Читайте также: |
|
Лабораторная работа 5.
Лабораторная работа посвящена работе со структурой данных – запись (RECORD).
Запись представляет собой структуру данных, объединяющую под одним общим именем данные различных типов. Отдельные данные записи называются полями. Существуют простые записи и записи с вариативной частью.
Постановка задачи.
Написать приложение, реализующее различные задачи с использованием структуры - запись.
Используемые компоненты:
Form, Label, Edit, Button, Image, StringGrid.
Каждый вариант должен быть оформлен как отдельный проект, с произвольным интерфейсом.
Примеры и задания для самостоятельной работы.
Вариант 1.
Точка на плоскости.
Как известно точка на плоскости характеризуется двумя координатами. Т.е. есть величина «точка», хранимая в памяти как самостоятельная величина. Данные о точке включают в себя поля координат X и Y. Таким образом, для представления точки следует воспользоваться структурой запись, следующего вида:
Type
TPoint = record
x,y:real;
end;
Задания:
Используя данное определение точки реализовать следующие функции:
- отображение окружности с центром в точке, заданной пользователем;
- вычисление длины отрезка, заданного координатами двух точек;
- определить, является ли фигура заданная 3 точками, треугольником;
- построение замкнутой ломанной по заданным точкам, указывая их координаты на рисунке.
Примерный вид интерфейса и некоторые решения поставленных задач:
implementation
{$R *.dfm}
type TPoint = record
x,y:real;
end;
var Center:TPoint; //центр рабочей области для рисования
PointArray: array of TPoint; //массив точек ломанной
procedure TForm1.FormCreate(Sender: TObject);
begin
Center.x:= Image1.Width / 2;
Center.y:= Image1.Height / 2;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
//Строим оси координат. Остальные объекты будем смещать относительно этих осей
//производим округления, т.к. координаты на экране мониторы двобными быть не могут
Image1.Canvas.MoveTo(round(Center.x), 0);
Image1.Canvas.LineTo(round(Center.x), Image1.Height);
Image1.Canvas.MoveTo(0, round(Center.y));
Image1.Canvas.LineTo(Image1.Width, round(Center.y));
end;
Дата добавления: 2015-07-19; просмотров: 35 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Запись участников конференций по биоэтике | | | Информация о студенте |