Stringgrid

  • Автор темы 111q
  • Дата начала
1

111q

Гость
#1
Помогите пожайлуста переделать из паскаля в дельфи такую программу с использованием стринггрида (т.е. как я ппонимаю надо чтоб в стриннгрид1 ввелась рондомом матрица а во второй стринггрид поместить результат) . Использовать подпрограммы (ввода, вывода, обрабатывающей части). Дан масив целых чисел A[M,N], где M,N<=10. Удалить все столбцы, в которых нет нулевого элемента. Использовать стринггрид. Вот код на паскале.
Код:
program Task;
uses crt;
type mas=array [1..10,1..10] of integer;
var a:mas;
m,n:integer;

procedure InputArray(var a:mas;var m,n:integer);
var i,j:integer;
k:boolean;
begin
k:=true;
while k do begin
write('Vvedite razmer massiva (m,n): ');
readln(m,n);
if (m>10) or (n>10) then writeln('Error!Razmer bolshhe 10!!')
else k:=false;
end;
{
writeln('Vvedite massiv razmerom ',m,' x ',n); }
for i:=1 to m do
for j:=1 to n do begin
write('a[',i,',',j,']=');
read(a[i][j]);
end;
end;

procedure DelCount(var a:mas;m:integer;var n:integer);
var i,j,i2,j2:integer;
f:boolean;
begin
f:=true;
j:=1;
while j<=n do begin
if not(f) then begin
for i2:=1 to m do
for j2:=j-1 to n-1 do
a[i2][j2]:=a[i2][j2+1];
n:=n-1;
j:=j-1;
end
else f:=false;
for i:=1 to m do
if a[i][j]=0 then f:=true;
j:=j+1;
end;
f:=false;
for i:=1 to m do
if a[i][n]=0 then f:=true;
if not(f) then n:=n-1;
end;

procedure OutputArray(a:mas;m,n:integer);
var i,j:integer;
begin
if n=0 then writeln('Stolbci ne soderzhat 0-elementov!')
else
for i:=1 to m do begin
writeln;
for j:=1 to n do
write(' ',a[i][j]);
end;
end;

begin
clrscr;
InputArray(a,m,n);
writeln;
writeln('Ishodnaia matrica: ');
OutputArray(a,m,n);
DelCount(a,m,n);
writeln;
writeln;
writeln('Rezultat: ');
OutputArray(a,m,n);
readln;
readln;
end.