Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Запись.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
133 Кб
Скачать
☆

Отображение ломанной

procedure TForm1.Button3Click(Sender: TObject);

var i:integer;

var NextPoint:TPoint; //текущая точка звена ломанной

begin

NextPoint := PointArray[0];

Image1.Canvas.MoveTo(round(NextPoint.x) + round(Center.x),

round(NextPoint.y) + round(Center.y));

//проходим по всем точкам ломанной

for i:=1 to High(PointArray) do

begin

NextPoint := PointArray[i];

Image1.Canvas.LineTo(round(NextPoint.x) + round(Center.x),

round(NextPoint.y) + round(Center.y));

end;

end;

Вариант 2.

Комплексное число

Вспомните, что собой представляет комплексное число:

Z=X+iY где X- действительная часть,

Y – мнимая.

Задания:

- создать функцию для сложения (вычитания) двух комплексных чисел;

- создать функции для умножения (деления) двух комплексных чисел;

- находить аргумент и модуль комплексного числа

Вариант 3.

Информация о студенте

Информацию о студенте можно представить как совокупность определенных данных: фамилия, имя, отчество, 4 оценки результатов сессии.

Задания:

Осуществить ввод данных о нескольких студентах. Запоминать данные в динамический массив.

1) отсортировать по алфавиту введенный массив студентов (критерий сортировки поле фамилия)

2) показать всех студентов, у которых в фамилии встречается введенная комбинация символов

3) вывести всех студентов кто не сдал сессию

4) вывести всех студентов, чей средний бал за сессию выше 4

Примерный вид интерфейса и некоторые решения поставленных задач:

Вносим данные, запоминаем их в массив для последующей обработки, выводим внесенных студентов в StringGrid

implementation

{$R *.dfm}

//описываем тип данных для хранения информации о студенте

type

Student = record

F,I,O : String[20];

Ekz1,Ekz2,Ekz3,Ekz4:byte;

end;

//создаем пустой динамический массив данных о студентах

var

StudentArray: array of Student;

procedure TForm1.Button1Click(Sender: TObject);

var NextStudent:Student; //очередной введенный студент

LastRow:Integer; //номер предпоследней строки StringGrid-а

begin

//работа с переменной типа запись

with NextStudent do

begin

F := Edit1.Text;

I := Edit2.Text;

O := Edit3.Text;

Ekz1 := StrToInt(Edit4.Text);

Ekz2 := StrToInt(Edit5.Text);

Ekz3 := StrToInt(Edit6.Text);

Ekz4 := StrToInt(Edit7.Text);

end;

//запоминаем данные в последний элемент массива

SetLength(StudentArray, Length(StudentArray)+1);

StudentArray[High(StudentArray)] := NextStudent;

//выводим последние введенные данные в конец StringGrid-а

LastRow := StringGrid1.RowCount - 1;

with NextStudent do

begin

StringGrid1.Cells[0,LastRow]:=

IntToStr(Length(StudentArray));

StringGrid1.Cells[1,LastRow] := F;

StringGrid1.Cells[2,LastRow] := I;

StringGrid1.Cells[3,LastRow] := O;

StringGrid1.Cells[4,LastRow] := IntToStr(Ekz1);

StringGrid1.Cells[5,LastRow] := IntToStr(Ekz2);

StringGrid1.Cells[6,LastRow] := IntToStr(Ekz3);

StringGrid1.Cells[7,LastRow] := IntToStr(Ekz4);

end;

//увеличиваем кол-во строк

StringGrid1.RowCount := StringGrid1.RowCount + 1;

//очищаем поля ввода

Edit1.Text := '';

Edit2.Text := '';

Edit3.Text := '';

Edit4.Text := '';

Edit5.Text := '';

Edit6.Text := '';

Edit7.Text := '';

end;

Вариант 4.

Дата

Представим данные о дате в следующем виде:

TDateRec = record

Year: Integer;

Month: (Jan, Feb, Mar, Apr, May, Jun,

Jul, Aug, Sep, Oct, Nov, Dec);

Day: 1..31;

end;

Задания:

Осуществить на форме ввод дат в указанном формате и решить поставленные задачи:

- найти количество дней прошедших между двумя датами;

- определить сколько дней осталось до нового года;

- днем программиста считается 256 день с начала года. Определить когда будет празднование этого дня в 2008 году.

Функции для работы с датой и временем:

В Delphi для хранения даты и (или) времени предусмотрен формат TDateTime, представляющий собой, на самом деле, обычное число с плавающей точкой. При этом дата представляется целой частью числа, а время дробной. Преимущество этого подхода в том, что теперь даты и времена можно корректно складывать и вычитать, например:

var

StartTime: tDateTime;

procedure TForm1.FormCreate(Sender: TObject); begin StartTime := Now; // Now – стандартная функция, возвращает текущую дату и время end;

procedure TForm1.FormClick(Sender: TObject); begin Labell.Caption := 'Co времени запуска прошло' +

DateTimeToStr(Now - StartTime);

end;

Функции для работы с датой и временем приведены в таблице:

function EncodeDate(Year, Month, Day: Word): TDateTime;

Преобразует дату, заданную раздельно годом, месяцем и днем, в формат TDateTime. Если они выходят за допустимые пределы, возникает ИС EConvertError.

procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word) ;

Преобразует дату в виде TDateTime к раздельным составляющим: году, месяцу и дню.

function EncodeTime(Hour, Min, Sec, MSec: Word); TDateTime;

Преобразует значение времени, заданное часом, минутой, секундой и миллисекундой в формат TDateTime.

procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word) ;

Преобразует значение времени в формате TDateTime в раздельные составляющие: час, минуту, секунду и миллисекунду.

function DayOfWeek(Date: TDateTime): Integer;

Возвращает номер текущего дня недели от 1 (воскресенье) до 7 (суббота).

function Date: TDateTime;

Возвращает текущую дату.

function Time: TDateTime;

Возвращает текущее время.

function Now: TDateTime;

Возвращает текущие дату и время.

function DateToStr(Date: TDateTime): string;

Преобразует дату Date в текстовую строку.

function TimeToStr(Time: TDateTime): string;

Преобразует время из типа TDateTime в текстовую строку.

function DateTimeToStr (DateTime: TDateTime): string;

Преобразует дату и время из типа TDateTime в текстовую строку.

function StrToDate (const S: string): TDateTime;

Преобразует текстовую строку в дату типа TDateTime. Строка должна содержать два или три числа, разделенных символом, содержащимся в DateSeparator. Формат даты в строке определяется в соответствии со значением переменной ShortDateFormat.

function StrToTime(const S: string): TDateTime;

Преобразует текстовую строку S в значение времени. Должен использоваться формат HH:NN:SS, где SS может принимать значения 'AM' или PМ', иначе означает секунды. Если необходимо получать время в 24-х часовой шкале, то элемент SS формата опускается. Если преобразование невозможно, возникает ИС EConvertError.

function StrToDateTime (const S: string): TDateTime;

Преобразует текстовую строку S в дату и время в формате MM/DD/YY HH:NN:SS (элемент SS см. выше).

function FormatDateTime (const Format: string; DateTime: TDateTime): string;

Преобразует дату и время из типа TDateTime в текстовую строку, используя формат, задаваемый параметром Format (см. Примечание 1).

procedure DateTimeToString (var Result: string; const Format: string; DateTime: TDateTime);

Преобразует дату и время типа TDateTime в строку Result, используя формат, передаваемый параметром Format (см.примечание 1).