Двумерный массив

Вид материалаЗадача
Подобный материал:
Двумерный массив


ЗАДАЧА 1.

Дан двумерный массив. Найти сумму элементов столбца в котором находится максимальный элемент массива.


Решение:

Program pr1;

uses crt;

Var

a: array[1..10,1..10] of integer;

i,j,l:integer;

s,max:integer;

Begin

clrscr;

randomize;

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=random(40);

for i:=1 to 5 do

begin

for j:=1 to 6 do

write(a[i,j]:4);

writeln;

end;

max:=a[1,1];

for i:=1 to 5 do

for j:=1 to 6 do

if a[i,j]>max then max:=a[i,j];

writeln('max=',max);

for j:=1 to 6 do

for i:=1 to 5 do

if a[i,j]=max then

begin

l:=j;

s:=0;

for i:=1 to 5 do s:=s+a[i,l];

writeln('s',l,'=',s);

end;

readkey;

End.


ЗАДАЧА 2.

Дан двумерный массив. Определить есть ли в данном массиве строка состоящая только из отрицательных элементов.


Решение:

Program pr2;

uses crt;

Var

a: array[1..10,1..10] of integer;

i,j,h,k:integer;

Begin

clrscr;

randomize;

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=random(10)-8;

for i:=1 to 5 do

begin

for j:=1 to 6 do

write(a[i,j]:4);

writeln;

end;

h:=0;

for i:=1 to 5 do

begin

j:=0;

k:=0;

while j<7 do

begin

j:=j+1;

if a[i,j]<0 then k:=k+1;

end;

if k=6 then h:=h+1;

end;

if h<>0 then writeln('В массиве есть строки состоящие только из отрицательных элементов');

readkey;

End.


ЗАДАЧА 3.

Дан двумерный массив. Сформировать одномерный массив каждый элемент которого равен количеству положительных элементов (включая 0 ) соответствующего столбца.


Решение:

Program pr3;

uses crt;

Var

a: array[1..10,1..10] of integer;

b: array[1..10] of integer;

i,j,k:integer;

Begin

clrscr;

randomize;

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=random(10)-3;

for i:=1 to 5 do

begin

for j:=1 to 6 do

write(a[i,j]:4);

writeln;

end;

for j:=1 to 6 do

begin

k:=0;

for i:=1 to 5 do

if a[i,j]>=0 then k:=k+1;

b[j]:=k;

end;

writeln('Полученный массив');

for i:=1 to 6 do write(b[i]:4);

Readkey;

End.


ЗАДАЧА 4.

Дан двумерный массив. Поменять местами две строки.


Решение:

Program pr4;

uses crt;

Var

a: array[1..10,1..10] of integer;

i,j,p,q,t:integer;

Begin

clrscr;

randomize;

for i:=1 to 5 do

for j:=1 to 6 do

a[i,j]:=random(10)-3;

for i:=1 to 5 do

begin

for j:=1 to 6 do

write(a[i,j]:4);

writeln;

end;

writeln('Введите номера строк, которые нужно поменять местами');

readln(p);

readln(q);

for j:=1 to 6 do

begin

t:=a[p,j];

a[p,j]:=a[q,j];

a[q,j]:=t;

end;

writeln('Полученная матрица ');

for i:=1 to 5 do

begin

for j:=1 to 6 do

write(a[i,j]:4);

writeln;

end;

Readkey;

End.


ЗАДАЧА 6.

Сформировать двумерный массив по следующему правилу:



Решение:

Program pr6;

uses crt;

Var

a: array[1..10,1..10] of integer;

i,j,n:integer;

Begin

clrscr;

writeln(введите размерность= ');

readln(n);

for i:=1 to n do

for j:=1 to n do

if (i<>1) and (i<>n) and (j<>1) and (j<>n) then a[i,j]:=1 else a[i,j]:=0;

for i:=1 to n do

begin

for j:=1 to n do

write(a[i,j]:4);

writeln;

end;

Readkey;

End.