Вывод : Сегодня я узнал, что такое фрейм, научился с ним работать.
Практическая работа № 23
Тема практической работы: Создание таблиц. Таблицы: заполнение и редактирование.
Цель практической работы: Изучить свойства компонента TStringGrid. Написать программу с использованием массивов.
Ход работы :
Задание №1
Рис 96 Рис 97
Листинг :
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, Buttons;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
BitBtn1: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
BitBtn2: TBitBtn;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
Nmax=10;
Type
Mas1 = array[1..Nmax] of extended;
Mas2 = array[1..Nmax,1..Nmax] of extended;
Var
Form1: TForm1;
A : Mas2;
B,Y : Mas1;
N,i,j : integer;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
N:=3;
Edit1.Text:=IntToStr(N);
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid3.RowCount:=N+1;
StringGrid1.Cells[0,0]:='Массив A:';
StringGrid2.Cells[0,0]:='Массив B:';
StringGrid3.Cells[0,0]:='Массив Y:';
begin
StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
N:=StrToInt(Edit1.Text);
except
ShowMessage('Ошибочная запись числа '+Edit1.Text);
Edit1.SetFocus;
Exit;
end;
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=N+1;
StringGrid2.RowCount:=N+1;
StringGrid3.RowCount:=N+1;
begin
StringGrid1.Cells[0,i]:=' i= '+IntToStr(i);
StringGrid1.Cells[i,0]:=' j= '+IntToStr(i);
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
s: extended;
begin
for i:=1 to N do
for j:=1 to N do
begin
if StringGrid1.Cells[j,i]=' ' then
begin
ShowMessage('Ошибка заполнения массива А');
Exit;
end;
try
A[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
except
ShowMessage('Ошибочная запись числа '+StringGrid1.Cells[j,i]);
Exit;
end;
end;
for i:=1 to N do
begin
if StringGrid2.Cells[0,i]=' ' then
begin
ShowMessage('Ошибка заполнения массива В!');
Exit;
end;
try
B[i]:=StrToFloat(StringGrid2.Cells[0,i]);
except
ShowMessage('Ошибочная запись числа '+StringGrid2.Cells[0,i]);
Exit;
end;
end;
for i:=1 to N do
begin
s:=0;
for j:=1 to N do
s:=s+A[i,j]*B[i];
Y[i]:=s;
StringGrid3.Cells[0,i]:=FloatToStrf(y[i],fffixed,6,2);
end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
for i:=1 to N do
begin
StringGrid2.Cells[0,i]:=' ';
StringGrid3.Cells[0,i]:=' ';
for j:=1 to N do
StringGrid1.Cells[j,i]:=' ';
end;
end; end.
Достарыңызбен бөлісу: |