Кодпроцедурыобработкисобытия:
procedure TForm1.Edit1Change(Sender: TObject);
const
Max=10;
var
i,n:integer;
begin
try
n:=StrToInt(Edit1.Text);
if Max<n then
begin
Button1.Visible:=False;
StringGrid1.Visible:=False;
Label2.Visible:=False;
Label3.Visible:=False;
Label4.Visible:=False;
Label5.Visible:=False;
Edit2.Visible:=False;
Edit3.Visible:=False;
ShowMessage('Максиальное количество строк равно 10!');
end
else
begin
Button1.Visible:=False;
StringGrid1.Visible:=False;
Label2.Visible:=True;
Label3.Visible:=False;
Label4.Visible:=False;
Label5.Visible:=False;
Edit2.Visible:=True;
Edit3.Visible:=False;
StringGrid1.RowCount:=n+1;
for i:=1 to n do
StringGrid1.Cells[0,i]:=IntToStr(i);
end;
except ShowMessage('Ошибка!');
end;
end;
procedure TForm1.Edit2Change(Sender: TObject);
const
Max=10;
var
j,m:integer;
begin
try
m:=StrToInt(Edit2.Text);
if Max<m then
begin
Button1.Visible:=False;
StringGrid1.Visible:=False;
Label2.Visible:=True;;
Label3.Visible:=False;
Label4.Visible:=False;
Label5.Visible:=False;
Edit2.Visible:=True;
Edit3.Visible:=False;
ShowMessage('Максиальное количество столбцов равно 10!');
end
else
begin
Button1.Visible:=False;
StringGrid1.Visible:=False;
Label2.Visible:=True;
Label3.Visible:=True;
Label4.Visible:=False;
Label5.Visible:=False;
Edit2.Visible:=True;
Edit3.Visible:=True;
StringGrid1.ColCount:=m+1;
for j:=1 to m do
StringGrid1.Cells[j,0]:=IntToStr(j);
end;
except ShowMessage('Ошибка!');
end;
end;
procedure TForm1.Edit3Change(Sender: TObject);
begin
try
Button1.Visible:=True;
Label4.Visible:=True;
StringGrid1.Visible:=True;
except ShowMessage('Ошибка!');
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
Max=10;
var
i,j,n,m,K:integer;
B,S:real;
X:array[1..Max,1..Max] of real;
begin
try
n:=StrToInt(Edit1.Text);
m:=StrToInt(Edit2.Text);
B:=StrToFloat(Edit3.Text);
for i:=1 to n do
for j:=1 to m do
X[i,j]:=StrToFloat(StringGrid1.Cells[j,i]);
K:=0;
S:=0;
for i:=1 to n do
begin
j:=3;
While j<=m do
begin
if X[i,j]<B then
begin
S:=S+X[i,j];
K:=1;
end;
j:=j+3;
end;
end;
if K=0 then
begin
Label5.Visible:=False;
ShowMessage('В матрице нет таких элементов!');
end
else
begin
Label5.Visible:=True;
Label5.Caption:='Сумма элементов матрицы размера '+IntToStr(n)+'x'+IntToStr(m)+', меньших '+FloatToStr(B)+' и расположенных в столбцах с номерами кратными 3'+' равна '+FloatToStr(S);
end;
except ShowMessage('Ошибка!');
end;
end;
Окно программы:
Тестовые наборы:
n |
m |
B |
Матрица |
Результат |
9 |
9 |
4 |
1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 1 1 1 2 2 2 3 3 3 |
Сумма элементов матрицы размера 9x9, меньших 4 и расположенных в столбцах с номерами кратными 3 равна 54 |
6 |
6 |
7 |
1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 |
Сумма элементов матрицы размера 6x6, меньших 7 и расположенных в столбцах с номерами кратными 3 равна 54 |
3 |
3 |
3 |
1 2 2 1 2-1 1 2 3 |
Сумма элементов матрицы размера 3x3, меньших 3 и расположенных в столбцах с номерами кратными 3 равна 1 |
Вывод: Приобрели навыки разработки алгоритмов и программ с использованием двумерных массивов.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.