Дан двумерный массив размером 6 на 5. Сформировать одномерный массив,каждый элемент которого равен первому четному элементу соответствующего столбца,если такого нет,то равен нулю — Pascal(Паскаль)

uses crt;
const n=5; m=6;
var a: array[1..n,1..m] of shortint; a: array[1..n] of shortint; i,j,k: byte;
begin
k:=1;
randomize;
clrscr;
writeln('Исходный массив: ');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(19)-9;
write(a[i,j]:3);
end;
writeln;
end;
j:=0; 
for i:=1 to n do
begin
repeat 
inc(j);
until (a[i,j] mod 2 = 0) or (j>n);
if (a[i,j] mod 2 = 0) and (j<=n) then
begin
b[k]:=a[i,j];
inc(k);
end
else 
begin
b[k]:=0;
inc(k);
end;
j:=0;
end;
write('Результат: ');
for i:=1 to k do
write(b[i]:3);
end.

Следующий вариант

uses crt;
const m=6;
      n=5;
var a:array[1..m,1..n] of integer;
    b:array[1..n] of integer;
    i,j,k:byte;
begin
clrscr;
randomize;
writeln('Массив:');
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=random(20)+1;
    write(a[i,j]:4);
   end;
  writeln;
 end;
writeln;
for j:=1 to n do
 begin
  k:=0;
  for i:=m downto 1 do
  if a[i,j] mod 2=0 then
   begin
    k:=1;
    b[j]:=a[i,j];
   end;
  if k=0 then b[j]:=0;
 end;
writeln('Массив первых четных элеметов столбцов:');
for i:=1 to n do
write(b[i],' ');
readln
end.

Leave a Comment

79 + = 82