- •Московский государственный технический университет
- •Содержание.
- •Предисловие
- •Лабораторная работа №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: Begin
textcolor (red);
writeln(‘Execute…’);
sound (660);
delay (1500);
nosound;
textcolor (white);
writeln (‘В строке содержатся цифры: ’);
searchString (instr,outstr);
textcolor (white);
writeln (outstr);
outstr : = ‘’;
readln;
end;
end;
drawmenu (npos);
end;
end;
until (ch1=#27) or ((ch1=#13) and (npos = 4)) or (ch1 = #3)
{пока не нажаты Esc, Enter или четвертый пункт меню или Сtrl + С}
window (1,1,80,25);
textcolor :=7;
clrscr; {если выход – очистить экран}
End.
Код программы модуля StSearch.pas следующий:
Unit StSearch; {модуль обеспечивает поиск чисел в строке}
Interface
procedure SearchString (st: string; var sr: string);
implementation
procedure SearchString; {интеграл функции}
var i, k :integer;
begin
k := 1; sr: = ‘’;
for i:=1 to length(st) do
begin
if st[i] in [‘0’..’9’] then sr := sr + st[i];
end;
end;
end.
Результатом выполнения данной программы с модулем будет меню следующего вида:
Ввести строку
- опция ручного ввода строки,
Импортиз файла
- опция импорта строки из текстового файла,
Просмотр цифр
Выход
3. Задачи, для самостоятельного решения
Разработать модуль обработки двунаправленного линейного связного списка, интерфейсная секция которого содержит объявления не менее 5-ти процедур и функций из предложенного списка:
1. Построить список.
2. Уничтожить список.
3. Вывести список на экран.
4. Определить длину списка.
5. Определить номер узла, если задан указатель на него.
6. Определить указатель на узел по его номеру.
7. Добавить узел к "хвосту" списка.
8. Удалить последний узел списка.
9. Добавить узел к "голове" списка.
10. Удалить первый узел списка.
11. Добавить узел после указанного номера.
12. Удалить узел с указанным номером.
13. Определить вхождение в список заданного узла (номер узла или указатель на узел).
14. "Склеить" два списка.
15. Отсортировать список в порядке возрастания (убывания)
значений какого-либо поля записи.
Тип записи и файл записей взять в соответствии с вариантом к данной лабораторной работе.
Задачи 1..4. Создать типизированный файл записей, содержащих сведения о багаже пассажира. Структура записи имеет следующий вид:
type PNT=^B;
Bag = record багаж
Fio: String[20]; Ф.И.О. пассажира
Colch: Integer; количество вещей
Ves: Real; общий вес вещей [кг]
next: PNT;
end;
Var rec, beg, endd, current: pnt;
Создать однонаправленный список записей.
1. Найти все записи, для которых средний вес одной вещи отличается не более чем на 0,3 кг от общего среднего веса вещи. Результаты записать в новый файл. Исходный и результирующий файлы распечатать.
2. Выяснить, имеется ли пассажир, багаж которого превышает багаж каждого из остальных пассажиров и по числу вещей, и по весу. Исходный файл и результат распечатать.
3. Выяснить, имеются ли два пассажира, багажи которых совпадают по числу вещей и различаются по весу не более чем на 0,5 кг. Исходный файл и результаты распечатать.
4. Дать сведения о багаже, число вещей в котором не меньше, чем в любом другом багаже, а вес вещей не больше, чем в любом другом багаже с этим же числом вещей. Исходный файл и результат распечатать.