Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otchet.doc
Скачиваний:
6
Добавлен:
22.02.2015
Размер:
160.26 Кб
Скачать

Лабораторная работа № 5. Двумерные массивы

Задание 1. Заполните пустые места в алгоритме поиска минимального элемента в двумерном массиве.

Задание 2. Составьте блок-схему к программе, вычисляющей произведение элементов двумерного массива.

Листинг программы:

Program Example10;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,m: integer;

P: longint;

Begin

Clrscr;

Write('n='); Readln(n);

Write('m='); Readln(m);

for i:=1 to n do

for j:=1 to m do Begin

Write('a[',i,',',j,']=');

Readln(a[i,j]);

End;

P:=1;

for i:=1 to n do

for j:=1 to m do P:=P*a[i,j];

Write('P=',P);

Readkey

End.

Доработайте программу, чтобы на экран выводился массив в виде матрицы.

Листинг программы:

Program Example10;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,m: integer;

P: longint;

Begin

Clrscr;

Write('n='); Readln(n);

Write('m='); Readln(m);

for i:=1 to n do

for j:=1 to m do Begin

Write('a[',i,',',j,']=');

Readln(a[i,j]);

End;

for i:=1 to n do Begin

for j:=1 to m do Write(a[i,j]:4);

Writeln;

End;

P:=1;

for i:=1 to n do

for j:=1 to m do P:=P*a[i,j];

Write('P=',P);

Readkey

End.

Протокол выполнения программы:

n=2

m=3

a[1,1]=2

a[1,2]=1

a[1,3]=3

a[2,1]=5

a[2,2]=4

a[2,3]=5

2 1 3

5 4 5

P=600

Задание 3. Составьте программу для поиска максимального элемента и его индексов.

Листинг программы:

Program z53;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,m,max,imax,jmax: integer;

Begin

Clrscr;

Write('n='); Readln(n);

Write('m='); Readln(m);

for i:=1 to n do

for j:=1 to m do Begin

Write('a[',i,',',j,']=');

Readln(a[i,j]);

End;

for i:=1 to n do Begin

for j:=1 to m do Write(a[i,j]:4);

Writeln;

End;

max:=a[1,1];imax:=1;j:=1;

for i:=1 to n do

for j:=1 to m do

if max<a[i,j] then Begin

max:=a[i,j];

imax:=i;

jmax:=j;

End;

Write('max=',max,' imax=',imax,' jmax=',jmax);

Readkey

End.

Протокол выполнения программы:

n=2

m=3

a[1,1]=6

a[1,2]=2

a[1,3]=8

a[2,1]=1

a[2,2]=3

a[2,3]=7

6 2 8

1 3 7

max=8 imax=1 jmax=3

Задание 4. Заполните пустые места в программе, вычисляющей сумму элементов, расположенных на главной диагонали.

Листинг программы:

Program z54;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,S: integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:=1 to n do

for j:=1 to n do Begin

Write('a[',i,',',j,']=');

Readln(a[i,j]);

End;

S:=0;

for i:=1 to n do

for j:=1 to n do if i=j then S:=S+a[i,j];

for i:=1 to n do

Begin

for j:=1 to n do

Write(a[i,j]:5);

Writeln;

End;

Writeln('S=',S);

Readkey

End.

Протокол выполнения программы:

n=3

a[1,1]=1

a[1,2]=2

a[1,3]=3

a[2,1]=4

a[2,2]=5

a[2,3]=6

a[3,1]=4

a[3,2]=5

a[3,3]=6

1 2 3

4 5 6

7 8 9

S=15

Доработайте программу, чтобы считалась сумма элементов, расположенных на побочной диагонали.

Листинг программы:

Program z54;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,S1,S2: integer;

Begin

Clrscr;

Write('n='); Readln(n);

for i:=1 to n do

for j:=1 to n do Begin

Write('a[',i,',',j,']=');

Readln(a[i,j]);

End;

S1:=0;

for i:=1 to n do

for j:=1 to n do if i=j then S1:=S1+a[i,j];

S2:=0;

for i:=1 to n do

for j:=1 to n do if i+j=n+1 then S2:=S2+a[i,j];

for i:=1 to n do

Begin

for j:=1 to n do

Write(a[i,j]:5);

Writeln;

End;

Writeln('S1=',S1);

Writeln('S2=',S2);

Readkey

End.

Протокол выполнения программы:

n=3

a[1,1]=6

a[1,2]=2

a[1,3]=9

a[2,1]=1

a[2,2]=3

a[2,3]=7

a[3,1]=4

a[3,2]=8

a[3,3]=5

6 2 9

1 3 7

4 8 5

S1=14

S2=16

Задание 5. Составьте программу для поиска максимального элемента на побочной диагонали. Для заполнения массива воспользуйтесь датчиком случайных чисел.

Листинг программы:

Program z55;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,max: integer;

Begin

Clrscr;

Write('n='); Readln(n);

Randomize;

for i:=1 to n do Begin

for j:=1 to n do Begin

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

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

End;

Writeln;

End;

max:=a[1,n];

for i:=1 to n do

for j:=1 to n do

if i+j=n+1 then if max<a[i,j] then max:=a[i,j];

Writeln('max=',max);

Readkey

End.

Протокол выполнения программы:

n=3

0 3 86

20 27 67

31 16 37

max=86

Задание 6. Составьте программу для поиска минимального элемента среди элементов, расположенных выше главной диагонали.

Листинг программы:

Program z56;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,min: integer;

Begin

Clrscr;

Write('n='); Readln(n);

Randomize;

for i:=1 to n do Begin

for j:=1 to n do Begin

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

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

End;

Writeln;

End;

min:=a[1,2];

for i:=1 to n do

for j:=1 to n do

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

Writeln('min=',min);

Readkey

End.

Протокол выполнения программы:

n=3

85 81 88

82 22 57

26 98 47

min=57

Задание 7. Составьте программу, которая подсчитывает количество строк в двумерном массиве, содержащих отрицательные элементы.

Листинг программы:

Program z57;

Uses crt;

Var a: array[1..100,1..100] of integer;

i,j,n,k: integer;

f:boolean;

Begin

Clrscr;

Write('n='); Readln(n);

Randomize;

for i:=1 to n do Begin

for j:=1 to n do Begin

a[i,j]:=random(100)-50;

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

End;

Writeln;

End;

k:=0;

for i:=1 to n do Begin

f:=false;

for j:=1 to n do if a[i,j]<0 then f:=true;

if f then k:=k+1;

End;

Writeln('k=',k);

Readkey

End.

Протокол выполнения программы:

n=4

1 30 19 -34

35 10 48 36

15 0 37 28

-25 23 37 40

k=2

Задание 8. Составьте программу, которая вычисляет сумму элементов по столбцам.

Листинг программы:

Program z58;

Uses crt;

var a: array[1..100,1..100] of integer; s: array[1..100] of integer;

i,j,n: integer;

Begin

Clrscr;

Write('n='); Readln(n);

Randomize;

for i:=1 to n do Begin

for j:=1 to n do Begin

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

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

End;

Writeln;

End;

for j:=1 to n do Begin

s[j]:=0;

for i:=1 to n do s[j]:=s[j]+a[i,j];

End;

Writeln;

for i:=1 to n do Write(s[i]:5);

Readkey

End.

Протокол выполнения программы:

n=4

2 0 8 1

1 6 9 6

8 9 5 1

8 4 6 2

19 19 28 10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]