- •Часть 2
- •Практическое занятие № 10
- •Краткие теоретические сведения
- •Пример выполнения задания
- •Контрольные вопросы
- •Варианты заданий
- •Практическое занятие № 11
- •Краткие теоретические сведения
- •Пример выполнения задания к лабораторной работе
- •Контрольные вопросы
- •Практическое занятие № 12
- •Задание: создать программу построения графика функции с поясняющим текстом в соответствии с номером индивидуального задания. Графический инструментарий
- •Пример выполнения задания Исходная функция: sin(X).
- •Контрольные вопросы
- •Практическое занятие № 13
- •Краткие теоретические сведения
- •Контрольные вопросы
- •1 Окно программы после нажатия кнопки «Выполнить».
- •Практическое занятие № 12
- •Практическое занятие № 13
- •Часть 2
- •394026 Воронеж, Московский просп., 14
Контрольные вопросы
1. Каким образом можно поместить графическое изображение в окно программы?
2. Какие способы построения графиков вы знаете?
3. Какой компонент можно использовать для построения графиков?
4. Как можно организовать анимационное изображение?
5. Какой компонент можно использовать для вывода рисунков?
6. Как в Delphi можно создать «мультик»?
Варианты заданий
График функции y=y(x)
|
Функция y(x) |
1 |
sin(x) |
2 |
cos(x) |
3 |
sin(x)+sin(2x) |
4 |
sin(x)-sin(2x) |
5 |
sin(x)+cos(2x) |
6 |
sin(x)-cos(2x) |
7 |
sin(x)*exp(x) |
8 |
cos(x)*exp(x) |
9 |
sin(x)*exp(-x) |
10 |
cos(x)*exp(-x) |
Практическое занятие № 13
РАЗРАБОТКА ПРОГРАММ, ИММИТИРУЮЩИХ РАБОТУ БАЗЫ ДАННЫХ, С ДАННЫМИ КОМБИНИРОВАННОГО ТИПА
Цель занятия: разработка программ, использующих структуры данных комбинированного типа.
Задание: разработать структуру записи для представления информации, характеризующей какой - либо объект реальной действительности в соответствии с индивидуальным вариантом. Используя ввод данных с клавиатуры ввести 5-7 записей, найти и выдать на экран информацию по задаваемому пользователем значению одного из полей.
Краткие теоретические сведения
Комбинированный тип данных или Запись (record) – это структурированный тип данных, состоящих из фиксированного числа элементов одного или нескольких различных типов. Описание типа данных Запись начинается словом record и заканчивается словом end. Между ними заключен список элементов, называемых полями, с указанием их имен (или идентификаторов) и имени типа. Например,
Type TPerson = record
FirstName :string[20];
LastName : string[20];
BirthYear : Integer;
end;
Идентификаторы полей должны быть уникальными только в пределах записи. Допускается вложение записей друг в друга, т.е. поле записи может быть в свою очередь тоже записью. Чтобы получить в программе реальную запись, нужно создать переменную соответствующего типа:
Var Friend : TPerson;
Доступ к содержимому записи осуществляется посредством её имени и имени поля, между которыми ставится разделительная точка. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи Friend, нужно записать:
Friend.FirstName := 'Alexander';
Friend.LastName := 'Ivanov';
Friend.BirthYear := 1991;
Обращение к полям записи имеет несколько громоздкий вид, что особенно неудобно при использовании мнемонических идентификаторов длиной более 5 символов. Для решения этой проблемы предназначен оператор with, который имеет следующий шаблон:
with <имя записи> do
<оператор>;
Однажды указав имя записи в операторе with, можно работать с именами ее полей как с обычными переменными, т.е. без указания имени записи перед именем поля. Например,
with Friend do
begin
FirstName := 'Alexander';
LastName := 'Ivanov';
BirthYear := 1991;
end;
После выполнения этого оператора значения полей записи Friend станут равными значениям соответствующих полей записи BestFriend.
Задание: разработать структуру записи для представления информации, характеризующей преподавателей учебного заведения. Свойства объекта: Фамилия, имя, отчество, дата рождения, домашний адрес, учебная дисциплина. Выдать сведения о преподавателях, родившихся в ноябре месяце.
Листинг модуля программы
unit Unit1;
implementation
{$R *.dfm}
type
TDate = record //Запись для хранения даты рождения
Den : 1..31;
Mes : 1..12;
God : 1910..1985;
end;
Tprep = record {Запись для хранения сведений о преподавателях}
Family : string[15];
Name : string[20];
Otches : string[18];
Drozhd : TDate;
Address: string;
Diszip : string[50];
end;
TSpisPrep = array [1..100] of Tprep;
var
SpisPr: TSpisPrep; {Массив для хранения сведений о преподавателях}
procedure TForm1.FormActivate(Sender: TObject);
Begin //Заголовки столбцов StringGrid1
StringGrid1.Cells[0,0] := 'Фамилия';
StringGrid1.Cells[1,0] := 'Имя';
StringGrid1.Cells[2,0] := 'Отчество';
StringGrid1.Cells[3,0] := 'День';
StringGrid1.Cells[4,0]:='Месяц';
StringGrid1.Cells[5,0]:='Год';
StringGrid1.Cells[6,0]:='Адрес';
StringGrid1.Cells[7,0]:='Дисциплина';
//Заголовки столбцов StringGrid2
StringGrid2.Cells[0,0]:='Фамилия';
StringGrid2.Cells[1,0]:='Имя';
StringGrid2.Cells[2,0]:='Отчество';
StringGrid2.Cells[3,0]:='День';
StringGrid2.Cells[4,0]:='Месяц';
StringGrid2.Cells[5,0]:='Год';
StringGrid2.Cells[6,0]:='Адрес';
StringGrid2.Cells[7,0]:='Дисциплина';
end; {TForm1.FormActivate}
procedure TForm1.BitBtn1Click(Sender: TObject);
var i, k :byte;
begin
for i:=1 to StringGrid1.RowCount-1 do
Family := StringGrid1.Cells[0,i];
Name := StringGrid1.Cells[1,i];
Otches := StringGrid1.Cells[2,i];
Drozhd.Den := StrToInt(StringGrid1.Cells[3,i]);
Drozhd.Mes := StrToInt(StringGrid1.Cells[4,i]);
Drozhd.God := StrToInt(StringGrid1.Cells[5,i]);
Address := StringGrid1.Cells[6,i];
Diszip := StringGrid1.Cells[7,i];
end;
k := 1;
for i := 1 to StringGrid1.RowCount-1 do
if SpisPr[i].DRozhd.Mes = 11
then begin
with Pr[i] do begin
StringGrid2.Cells[0,k] := Family;
StringGrid2.Cells[1,k] := Name;
StringGrid2.Cells[2,k] := Otches;
StringGrid2.Cells[3,k] := IntToStr(Drozhd.Den);
StringGrid2.Cells[4,k] := IntToStr(Drozhd.Mes);
StringGrid2.Cells[5,k] :=IntToStr(Drozhd.God);
StringGrid2.Cells[6,k] := Address;
StringGrid2.Cells[7,k] := Diszip;
end;
StringGrid2.RowCount := StringGrid2.RowCount+1;
k:=k+1;
end;end; {TForm1.BitBtn1Click}
procedure TForm1.BitBtn2Click(Sender: TObject);
{Процедура для добавления новой строки в таблицу}
begin
StringGrid1.RowCount:=StringGrid1.RowCount+1;
end; {TForm1.BitBtn2Click }end.