Implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var
i : IntType;
f : TextFile;
Begin
StringGrid1.Cells[0,0]:='Номер';
StringGrid1.Cells[1,0]:='Периметр';
StringGrid1.Cells[2,0]:='Площадь';
StringGrid1.Cells[3,0]:='Длина';
SpinEdit1.MinValue:=0; SpinEdit1.MaxValue:=100;
SpinEdit2.MinValue:=0; SpinEdit2.MaxValue:=50;
SpinEdit3.MinValue:=0; SpinEdit3.MaxValue:=20;
OpenDialog1.FileName:='*.inp';
If OpenDialog1.Execute Then
begin
AssignFile(f,OpenDialog1.FileName);
Reset(f);
i:=0;
ReadLn(f);
While not eof(f) do
begin
i:= i+1;
Read(f, TR[i].Name);
Read(f, TR[i].S);
Read(f, TR[i].P);
ReadLn(f,TR[i].L);
end;
N:= i;
CloseFile(f);
{Сделать кнопку "Вывод информации" видимой}
Button2.Visible:= True;
{Сделать кнопку "Вывод информации" доступной}
Button2.Enabled:=True;
{Вывод максимальных значений}
SpinEdit1.Value:= SpinEdit1.MaxValue;
SpinEdit2.Value:= SpinEdit2.MaxValue;
SpinEdit3.Value:= SpinEdit2.MaxValue;
end
Else Exit;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;
procedure TForm1.Button3Click(Sender: TObject);
Var
i,j,k : IntType;
f : TextFile; {Выходной файл}
Flag : TL; {Всмомогательный массив}
Begin
For j:=1 to N do
StringGrid1.Cells[j-1,i]:='';
If CheckBox1.Checked Then
begin
If ComboBox1.ItemIndex=0 Then {0 - не больше}
For i:=1 to N do
If TR[i].S > SpinEdit1.Value Then Flag[i]:=0;
{не печатать}
If ComboBox1.ItemIndex=1 Then {1 - не меньше}
For i:=1 to N do
If TR[i].S < SpinEdit1.Value Then Flag[i]:=0;
{не печатать}
end;
If CheckBox2.Checked Then
begin
If ComboBox2.ItemIndex=0 Then {0 - не больше}
For i:=1 to N do
If TR[i].P > SpinEdit2.Value Then Flag[i]:=0;
{не печатать}
If ComboBox2.ItemIndex=1 Then {1 - не меньше}
For i:=1 to N do
If TR[i].P < SpinEdit2.Value Then Flag[i]:=0;
{не печатать}
end;
If CheckBox3.Checked Then
begin
If ComboBox3.ItemIndex=0 Then {0 - не больше}
For i:=1 to N do
If TR[i].L > SpinEdit3.Value Then Flag[i]:=0;
{не печатать}
If ComboBox3.ItemIndex=1 Then {1 - не меньше}
For i:=1 to N do
If TR[i].L < SpinEdit3.Value Then Flag[i]:=0;
{не печатать}
end;
{Вывод результатов}
j:=0;
For i:=1 to N do
begin
If Flag[i] <> 0 Then {На печать только то, что не равно 0}
begin
j:= j+1;
StringGrid1.Cells[0,j]:=TR[i].Name;
StringGrid1.Cells[1,j]:=FloatToStr(TR[i].P);
StringGrid1.Cells[2,j]:=FloatToStr(TR[i].S);
StringGrid1.Cells[3,j]:=FloatToStr(TR[i].L);
end;
end;
If j = 0 Then {Если таких танных нет, то ничего не выводить}
For i:=1 to N do
For k:=1 to N do
StringGrid1.Cells[k-1,i]:='';
end;
end.
Результаты
а
Б
В
Файл с данными Lab-5.Inp
Nomer S P L
1 10 200 100
2 20 30 40
3 500 300 15
4 100 25 25
Конец
Блок-схема
Procedure TForm1.Button1Click(Sender: TObject);
Лабораторная работа № 6
Цель работы
Изучить компоненты Image, Chart.
Программа работы
Используя компоненты Image, Chart, написать программу для соответствующего варианта (номер определяется преподавателем).
Задание
Построить график и вывести график функции
Текст программы
unit Unit1;