Главная » Delphi, Исходники, Массивы » Операции над массивами
Дек
20

Операции над массивами


В задании переменные вводить и выводить с помощью компонента TEdit, массивы – c помощью компонента TStringGrid, в котором 0-й столбец и 0-ю строку использовать для отображения индексов массивов. Вычисления выполнять, после нажатия кнопки типа TВutton. В местах возможного возникновения ошибок использовать конструкции для обработки исключительных ситуаций.
Задана матрица размером NxM. Получить массив B, присвоив его k-му элементу значение 0,
если все элементы k-го столбца матрицы нулевые, то и значение будет 1 в противном случае.
[sourcecode language=»delphi»]
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TMainForm = class(TForm)
StringGrid1: TStringGrid;





StringGrid2: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.Button1Click(Sender: TObject);
const
N = 3;
M = 3;
var
A: array [0..N, 0..M] of Integer;
B: array [0..M] of Integer;
I, J, R: Integer;
begin
for I := 0 to N do
for J := 0 to M do
try
A[I, J] := StrToInt(StringGrid1.Cells[I, J]);
except
A[I, J] := 0;
StringGrid1.Cells[I, J] := IntToStr(0);
end;
for J := 0 to M do
begin
R := 0;
for I := 0 to N do
if A[J, I] <> 0 then
R := 1;
B[J] := R;
end;
for J := 0 to M do
StringGrid2.Cells[J, 0] := IntToStr(B[J]);
end;
procedure TMainForm.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#8, #48..#57:;
else
Key := #0;
end;
end;
end.
[/sourcecode]
[download id=»17″]



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.