- •Московский государственный технический университет
- •Содержание.
- •Предисловие
- •Лабораторная работа №1 Процедурные типы
- •1. Теоретические сведения
- •Var X: real; I: integer;
- •X, y : byte;
- •VarFunc : FuncType;
- •I : integer;
- •2.Задачи для самостоятельного решения
- •Лабораторная работа №2 Модули
- •Теоретическая часть
- •Структура модулей
- •Связь модулей друг с другом
- •ISwap(a,b);
- •Var I, y :integer;
- •2.2. Практическая часть
- •Interface
- •Implementation
- •I: Integer;
- •3. Задачи, для самостоятельного решения
- •Лабораторная работа №3 Меню
- •1. Теоретическая часть
- •Var X,y,I: byte;
- •XUpLeft;
- •Var npos,I: integer;
- •Case npos of
- •Лабораторная работа №4.
- •2.Задачи, для самостоятельного решения:
- •Лабораторная работа № 5 Указатели. Связанные списки
- •1. Теоретические сведения
- •1.1. Указатели
- •1.2. Связные списки записей
- •1.3. Управление связанным списком записей (на примере)
- •1.3.1. Построение списка
- •Var ListOfChecks, CurrentCheck: pCheck;
- •1.3.2. Перемещение по списку
- •Var p: Pint;
- •2. Демонстрационные примеры
- •X1,y1,x2,y2: word;
- •Var npos,I,n,j :integer;
- •3: Begin
- •Interface
- •Задачи 1..4. Создать типизированный файл записей, содержащих сведения о багаже пассажира. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current: pnt;
- •Задача 5. Создать типизированный файл записей, содержащих сведения об автомобиле. Структура записи имеет следующий вид:
- •Var rec, beg, endd, current : pnt;
- •Задача 22. Создать типизированный файл записей, содержащих сведения о книгах. Структура записи имеет следующий вид:
- •1.2.Объект и инкапсуляция
- •1.3. Иерархия объектов и наследование
- •Visible: Boolean;
- •Init(x1,y1);
- •Interface
- •Interface
- •X,y : Integer;
- •Visible : Boolean;
- •Implementation
- •Var Temp : Word;
- •Var Temp : Word;
- •Var gm,gd:Integer;
- •Xp:Point;
- •Xs:Square;
- •Xps:PaintSquare;
- •InitGraph(Gd,Gm,'');
- •2. Демонстрационные примеры
- •X,y:integer;
- •Inherited init(ax,ay);
- •Задача 12. Простые объекты.
- •Задача 14. Простые объекты.
- •Задача 15. Простые объекты.
- •Задача 20. Простые объекты.
- •Задача 21. Простые объекты.
- •Задача 22. Простые объекты.
- •Задача 23. Простые объекты.
- •Задача 25. Простые объекты.
- •Лабораторная работа №8 Статические объекты
- •Теоретическая часть
- •1.1.Вывод точек и линий
- •1.2.Вывод многоугольников
- •Виды закраски определяется константами.
- •1.3.Вывод дуг, окружностей, эллипсов
- •1.4.Вывод текста
- •Демонстрационные примеры
- •Лабораторная работа №9
- •2. Задачи, для самостоятельного решения
- •Лабораторная работа №10
- •1.2. Перенос изображения
- •1.3. Масштабирование изображения
- •1.4. Масштабирование рисунка
- •1.5. Поворот изображения
- •1.5.1.Поворот точки
- •1.5.2. Поворот рисунка
- •1.6. Композиция преобразований
- •2. Демонстрационные примеры
- •X,y:integer;
- •1: CloseGraph;
- •3.Задачи, для самостоятельного решения
- •Лабораторная работа №12 Рубежный контроль №2
- •Задачи, для самостоятельного решения
3. Задачи, для самостоятельного решения
Приближенно вычислить интеграл:
b
Z= ∫ F(x) dx
а
на заданном отрезке [а;b] в соответствии с вариантом задания. Считать заданным число разбиений отрезка интегрирования n и численный метод решения. Включить в программу вычисление точного значения интеграла.
На печать вывести приближенное, точное значения интеграла и относительную погрешность вычисления в процентах.
Вар. зад. |
Подынтеграл. функция f (x) |
Первообразные F(х)=∫ f (x) dx |
Метод числен. решения |
Число отрезков |
Интервал интегр. |
Требуем. точность |
1. |
Ln²(x) / x |
Ln³(x)/3 |
Трап. |
60 |
[1;4] |
10–4 |
2. |
(1/x²)sin(1/x) |
Cos(1/x) |
Прям. |
50 |
[1;2,5] |
0,5 10–3 |
3. |
Xx (1 + lnx) |
X x |
Трап. |
40 |
[1;3] |
10–4 |
4. |
Cos(x) |
Sin(x) |
Трап. |
60 |
[0; /2] |
10–4 |
5. |
Sin²(x) |
X/2-(sin2x) /4 |
Трап. |
60 |
[0; /2] |
0,5 10–3 |
6. |
X ex sin x |
[x sinx+ (1-x) cosx] (e x / 2) |
Трап. |
100 |
[0; 1] |
10–4 |
7. |
(ln x/x)² |
-[ln x +2lnx+2] (1/x) |
Прям. |
50 |
[0; 2,5] |
10–4 |
8. |
X arctgx |
(arctg(x²-1)-x) / 2 |
Трап. |
50 |
[0;3] |
0,5 10-3 |
9. |
1 (sgrt (9+x²)) |
Ln│x + sgrt (x²+9)│ |
Прям. |
100 |
[0;2] |
10–5 |
10. |
eх cos²(x) |
Ex(1/2+ cos2x / 10 + sin2x / 5) |
Трап. |
60 |
[0; ] |
10–4 |
11. |
X³/(3+x) |
X³-3/2x² + 9x –27 ln(x+3) |
Прям. |
80 |
[1;2] |
0,5 10–4 |
12. |
(ln x/x)³ |
-1/(8x²) (4ln³x + 6ln²x + 6lnx+3) |
Трап. |
50 |
[1;2] |
10–4 |
13. |
X ((eх – e–х) / 2) |
X chx – shx |
Прям. |
50 |
[0;2] |
10–4 |
14. |
X² sin(2x) |
-(2x²-1) (cos(2x))/4 +(x) sin(2x)/2 |
Трап. |
100 |
[1;2] |
10–4 |
15. |
X/(x4+3x²+2) |
½ ln [(-x²-1)/(x²+2)] |
Трап. |
50 |
[1;2] |
0,5 10-3 |
Лабораторная работа №3 Меню
Цель работы – овладение практическими навыками разработки пользовательских меню одно и многоуровневого типов.
1. Теоретическая часть
Современные программы взаимодействуют с пользователем через специальный интерфейс типа «меню», в котором пользователю предлагается выбрать один из пунктов.
Для реализации меню необходимо обрабатывать коды нажатия клавиш управления курсором (←,↑,→,↓), по которым обычно осуществляется переход на следующий пункт. Активизация пункта обычно выполняется нажатием клавиши Enter. После выполнения нужного пункта программа должна вновь выводить меню и продолжать работу с ним. Выход из программы осуществляется по выбору специального пункта «выход» или по нажатию клавиши Esc.
Для создания окон меню используется графический режим работы экрана. Управление экраном осуществляется с помощью ресурсов модуля Crt, базирующегося на понятии “окно”.
Окно – часть экрана прямоугольной формы. В момент получения программой управления весь экран считается окном 25х80 знакомест. Программист может определять на экране новые окна и управлять их цветом символов и фона окна, так и размещение информации в окне.
Вывод информации в текстовом режиме осуществляется стандартными процедурами Write и WriteLn текущими цветом символа и цветом фона. При выводе четыре символа интерпретируются особым образом:
#7 –звуковой сигнал,
#8 – перемещение курсора влево на один символ,
#10 – перемещение курсора на строку вниз,
#13 – перемещение курсора в начало текущей строки.
Для организации окон в ТР используется процедура Window(Х1,Y1,X2,Y2);
где: Х1,Y1 – координаты левого верхнего угла, X2,Y2 – координаты правого нижнего угла окна.
Пример 3.1.
Window(1,1,80,25) {окно – полный экран},
Window(19,7,59,16) {окно в центре экрана}.
После активизации процедуры Window модуль Crt формирует две специальные переменные WindMin и WindMax, в которых фиксируются размеры текущего окна. Значения этих переменных можно использовать в программе для формирования оконных систем. Например, для получения координат Х и У верхнего угла текущего окна можно использовать выражения:
X: = Lo(WindMin), Y:= Hi(WindMax).
Аналогичным образом можно получить координаты правого нижнего угла текущего окна. Особенности архитектуры модуля Crt требуют при работе с WindMin и WindMax использовать отсчет координат не с (1,1) , а с (0,0), что необходимо учитывать при организации оконных интерфейсов в программе.
На экране могут находиться несколько окон, но в каждый отдельный момент времени активным может быть только одно окно. Процедуры и функции Writeln, Write, Readln, Read, Window, GotoXY, ClrScr, InsLine, DelLine, WhereX, WhereY выполняют соответствующее их назначению действия относительно текущего окна. Работу с текстовыми окнами продемонстрируем на следующем примере:
Program DemoRandomWindow;
Uses Crt;