Московский Государственный Технический Университет

имени Н.Э.Баумана

Кафедра САПР


Задания на лабораторные работы по использованию языка PHP

Федорук В.Г.

В данной лабораторной работе используется следующее программное обеспечение:

Внимание. Любое полезное программное обеспечение можно найти по адресу http://www.gnu.org.

Для выполнения лабороторной работы используется сервер rk6lab.bmstu.ru. Php-файлы загружаются в каталог /pub/htdocs от имени пользователя rk6stud с помощью утилиты ftp. Доступ к БД femdb осуществляется по адресу localhost от имени пользователя rk6stud (пароль - rk6stud).

Ниже дан список вариантов заданий на лабораторную работу.

  1. Разработать web-программу решения системы линейных алгебраических уравнений методом Гаусса (запрос размерности системы на стартовой странице -> форма для ввода значений элементов матрицы и вектора правых частей -> форма с найденным вектором неизвестных). В качестве прототипа рекомендуется использовать http://tester.comcor.ru/gauss.php.
  2. Разработать web-программу решения системы линейных алгебраических уравнений с трехдиагональной матрицей коэффициентов методом прогонки (см. предыдущее задание).
  3. Разработать web-программу расчета определенного интеграла методом трапеций для заданных пользователем в полях формы: функции одного аргумента в аналитическом виде, пределов интегрирования, шага дискретизации. Для оперирования аналитическим выражением функции удобно использовать функцию create_function.
  4. Разработать web-программу для вывода графика функции одного аргумента, заданной пользователем в аналитическом виде в поле формы ввода. В этой же форме задаются начальное и конечное значения аргумента. Для оперирования аналитическим выражением функции удобно использовать функцию create_function.
  5. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb.
  6. Разработать web-программу для рисования цветастой "столбчатой" диаграммы, по оси x которой откладываются идентификаторы конечных элементов (КЭ), а по оси y - значения их площадей. Конечно-элементная сетка определяется данными таблиц nodes и elements базы данных femdb.
  7. Разработать web-программу для рисования цветастой "столбчатой" диаграммы, по оси x которой откладываются идентификаторы конечных элементов (КЭ), а по оси y - значения их периметров. Конечно-элементная сетка определяется данными таблиц nodes и elements базы данных femdb.
  8. Разработать web-программу для рисования цветастой круговой диаграммы, отображающей распределение узлов конечно-элементной сетки по квадрантам мировой системы координат. Конечно-элементная сетка определяется данными таблиц nodes и elements базы данных femdb.
  9. Разработать web-программу для рисования центров всех конечных элементов, содержащихся в БД femdb (центры должны быть помечены номерами КЭ).
  10. Разработать web-программу для рисования контура объекта по данным таблиц nodes и elements базы данных femdb.
  11. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb. Рядом с каждой вершиной вывести число, характеризующее количество КЭ, "подключенных" к ней.
  12. Разработать web-программу для рисования всех вершин, содержащихся в таблице nodes базы данных femdb (вершины должны быть помечены своими номерами).
  13. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц базы данных femdb, при этом каждый конечный элемент должен быть окрашен в цвет, соответсвующий его материалу.
  14. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц базы данных femdb. Рассматривая сетку как политическую карту некоторого континента, раскрасить ее минимальным количеством цветов.
  15. Разработать web-программу для рисования центров всех конечных элементов, содержащихся в БД femdb. Из центров наваять "стрелки" сторону начала мировой системы координат, длина стрелок должна быть пропорциональна расстоянию центра КЭ от начала системы координат.
  16. Разработать web-программу для рисования конечно-элементной сетки по данным БД femdb. Из вершин наваять "стрелки" направленные от начала мировой системы координат, длина стрелок должна быть пропорциональна расстоянию вершины от начала системы координат.
  17. Придумать цветовую шкалу, характеризующую значение периметра треугольного КЭ. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц базы данных femdb. Раскрасить все КЭ соответственно предложенной шкале.
  18. Придумать цветовую шкалу, характеризующую значение площади треугольного КЭ. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц базы данных femdb. Раскрасить все КЭ соответственно предложенной шкале.
  19. Разработать web-программу, рассчитывающую местоположение центров всех КЭ в сетке, определяемой таблицами БД femdb, формирующую новую сетку треугольных элементов на найденных центрах и рисующую эту сетку.
  20. Разработать web-программу для рисования всех вписанных в конечные элементы, определяемые БД femdb, окружностей.
  21. Предложить метрику, характеризующую степень приближения произвольного треугольника к равностороннему. Придумать цветовую шкалу, отвечающую этой метрике. Разработать web-программу для рисования конечно-элементной сетки по данным таблиц базы данных femdb. Раскрасить все КЭ соответственно предложенной шкале.
  22. Разработать интерактивную web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb. При указании мышью некоторого КЭ сетка должна перерисовываться с закраской этого элемента.
  23. Разработать интерактивную web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb. При указании мышью некоторого узла сетка должна перерисовываться с выделением цветом этого узла. Примечание. Для указания узла не должно требоваться абсолютно точное "попадание" курсора в узел.
  24. Разработать интерактивную web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb. При указании мышью некоторого ребра КЭ сетка должна перерисовываться с выделением цветом этого ребра. Примечание. Для указания ребра не должно требоваться абсолютно точное "попадание" курсора в ребро.
  25. Разработать интерактивную web-программу для рисования конечно-элементной сетки по данным таблиц nodes и elements базы данных femdb. При указании мышью двух узлов сетки должен прорисовываться отрезок прямой линии между этими узлами с указанием его длины в мировых координатах. Примечание. Для указания узлов не должно требоваться абсолютно точное "попадание" курсора в них.
Приложение 1.

При отправке HTML-формы вместо стандартной кнопки submit можно использовать изображение с помощью тега следующего вида:

<input type="image" src="image.png" name="sub">
Когда пользователь щелкнет мышью на изображении, на сервер вместе с обычными переменными формы будут переданы две дополнительные: sub_x и sub_y. Они содержат координаты курсора мыши в момента нажатия пользователем кнопки.

Приложение 2.

Для создания учебной БД femdb можно использовать следующую последовательность SQL-запросов.

DROP TABLE IF EXISTS elements;
CREATE TABLE elements (
  id smallint(6) NOT NULL default '0',
  n1 smallint(6) NOT NULL default '0',
  n2 smallint(6) NOT NULL default '0',
  n3 smallint(6) NOT NULL default '0',
  props char(12) NOT NULL default 'steel',
  PRIMARY KEY  (id)
);

LOCK TABLES elements WRITE;
INSERT INTO elements VALUES (1,2,3,5,'steel'),(2,1,2,4,'steel'),(3,2,5,4,'steel'),
	(4,5,6,4,'steel'),(5,5,7,6,'steel'),(6,5,8,7,'steel'),(7,8,9,7,'steel'),(8,8,10,9,'steel'),
	(9,10,11,9,'steel'),(10,10,12,11,'steel'),(11,12,13,11,'steel'),(12,12,14,13,'steel'),
	(13,12,15,14,'steel'),(14,14,18,13,'steel'),(15,15,16,14,'steel'),(16,16,17,14,'steel'),
	(17,14,17,18,'steel'),(18,16,20,17,'steel'),(19,17,19,18,'steel'),(20,20,19,17,'steel'),
	(21,20,21,19,'steel'),(22,19,21,23,'steel'),(23,20,22,21,'steel'),(24,22,24,21,'steel'),
	(25,21,24,23,'steel'),(26,28,27,22,'steel'),(27,27,29,26,'steel'),(28,27,26,22,'steel'),
	(29,24,26,25,'steel'),(30,24,25,23,'steel');
UNLOCK TABLES;

DROP TABLE IF EXISTS loadings;
CREATE TABLE loadings (
  type char(1) NOT NULL default '',
  direction char(1) default NULL,
  node smallint(6) NOT NULL default '0',
  value float default NULL,
  KEY key_node (node)
);

LOCK TABLES loadings WRITE;
INSERT INTO loadings VALUES ('r','x',1,NULL),('r','x',2,NULL),('r','x',3,NULL),
	('h',NULL,14,NULL),('f','x',27,-10),('f','y',27,-50);
UNLOCK TABLES;

DROP TABLE IF EXISTS materials;
CREATE TABLE materials (
  name char(12) NOT NULL default '',
  density float NOT NULL default '0',
  elastics float NOT NULL default '0',
  poisson float NOT NULL default '0',
  strength float NOT NULL default '0',
  PRIMARY KEY  (name)
);

LOCK TABLES materials WRITE;
INSERT INTO materials VALUES ('steel',7.8,200,0.25,1000),
	('aluminium',2.7,65,0.34,600),('concrete',5.6,25,0.12,300),
	('duraluminium',2.8,70,0.31,700),('titanium',4.5,116,0.32,950),
	('brass',8.5,93,0.37,300);
UNLOCK TABLES;

DROP TABLE IF EXISTS nodes;
CREATE TABLE nodes (
  id smallint(6) NOT NULL default '0',
  x float NOT NULL default '0',
  y float NOT NULL default '0',
  PRIMARY KEY  (id)
);

LOCK TABLES nodes WRITE;
INSERT INTO nodes VALUES (1,-95,20),(2,-87.5,20),(3,-80,20),(4,-95,10),
	(5,-80,15),(6,-85,-1),(7,-75,-3),(8,-65,15),(9,-55,-6),(10,-40,15),(11,-35,-10),
	(12,-15,15),(13,-15,-14),(14,0,0),(15,5,20),(16,20,8),(17,20,-10),(18,10,-20),
	(19,30,-27),(20,40,-3),(21,50,-25),(22,60,-15),(23,60,-39),(24,65,-25),(25,75,-35),
	(26,80,-20),(27,75,-7),(28,65,-5),(29,83,-9);
UNLOCK TABLES;