- •Московский государственный технический университет
- •Содержание.
- •Предисловие
- •Лабораторная работа №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
- •Задачи, для самостоятельного решения
Задача 20. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - слово. Параметры: текст, длина, количество согласных букв. Методы: конструктор, определяющий поле текста и длину, и процедура, определяющая количество гласных букв. Определить количество слов в предложении, в которых согласных букв больше, чем гласных.
Задача 21. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - слово. Параметры: текст, длина, количество гласных букв. Методы: конструктор, определяющий поле текста и длину, и процедура, определяющая количество согласных букв. Определить количество слов в предложении, в которых гласных букв больше, чем согласных.
Задача 22. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - предложение. Параметры: массив слов (n<10) и их количество. Методы: конструктор и процедура, определяющая количество слов 'Тверь' в предложении. Определить процент таких слов в предложении.
Задача 23. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - строительство дома. Параметры: объем работ (в денежном отношении) и процент готовности объекта. Методы: конструктор и процедура, определяющая объем невыполненных работ. Определить самое законченное строительство.
Задача 24. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - адрес. Параметры: массив адресов (n<10) и их количество. Методы: конструктор и процедура, определяющая адресатов, проживающих в каждом городе и их процентное соотношение.
Задача 25. Простые объекты.
Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и содержит процедуры, работающие с указанными структурами.
Объект - фотообъектив. Параметры: массив фотообъектив (n<10) и их количество. Методы: конструктор и процедура, определяющая объективы, фокусное расстояние которых - 100 и 120 мм, диаметр равен 80 мм, а материал - LiF и их процентное соотношение.
Лабораторная работа №8 Статические объекты
Цель работы – овладение практическими приемами и навыками разработки программ по работе в графическом режиме. Закрепление основных функций и процедур, применяемых в эьлм режиме. Уяснить различия между текстовым и графическим режимами.
Теоретическая часть
1.1.Вывод точек и линий
Для высвечивания точки используется процедура PutPixel(x,y:integer; Pixel:word);
x,y - координаты высвечиваемой точки;
Pixel - цвет высвечиваемой точки.
В Турбо-Паскале существует три процедуры построения отрезка прямой.
Процедура LineTo(x,y:integer); рисует отрезок прямой из текущей точки в заданную.
x,y - координаты заданной точки.
Процедура LineRel(Dx,Dy:integer); рисует отрезок прямой из текущей точки в точку, отстоящую на расстояние (Dx,Dy) от текущей.
Dx,Dy - задаваемые расстояния (вдоль оси X и оси Y соответственно) от текущей точки до заданной.
Процедура Line(x1,y1,x2,y2:integer); рисует отрезок прямой, соединяющий точку (x1,y1) с точкой (x2,y2).
x1,y1 - координаты первой точки;
x2,y2 - координаты второй точки.
Образец линии устанавливается процедурой
SetLineStyle(LineStyle:word;Pattern:word;Thickness:word);
Параметр LineStyle задает тип линии. Он может принимать одно из следующих значений, задаваемых константами:
SolidLn=0 - сплошная;
DottedLn=1 - точечная;
CenterLn=2 - штрих пунктирная;
DashedLn=3 - пунктирная;
UserBitLn=4 - тип линии определяется пользователем.
Параметр Pattern определяет тип линии, задаваемый пользователем. Этот параметр игнорируется, если LineStyle не равен UserBitLn. При задании типа линии пользователем используется 16 -битовый шаблон, определяемый параметром Pattern:
биты с нулевыми значениями не вызывают изменения отображения в данной точке, а биты со значениями 1 отображают точку.
Параметр Tickness определяет толщину линии, он может принимать два значения NormWidth=1 и TickWidth=3. В первом случае рисование производится линиями обычной толщины, во втором случае - утолщенными (в 3 раза).
При инициализации графического режима по умолчанию устанавливается сплошной тип линии обычной толщины.
Процедура DrawPoly(NumPoints:word; var PolyPoints); выводит ломаную линию в соответствии с текущим цветом и текущим образцом линии.
NumPoints - число вершин ломаной;
PolyPoints - массив координат ломаной, элементами массива являются записи типа PointType.
type PointType=record
x,y:integer; {координаты вершин ломаной}
end;
Число элементов массива должно быть не меньше NumPoints. Ломаную можно построить также, последовательно рисуя отрезки - звенья ломаной.