Лабораторная работа №6
ДBУМЕРНЫЕ МАССИВЫ
Вариант №8
Задание 1: Составить программу для выполнения заданных действий над двумерным массивом вещественных чисел A(N,M). В программе предусмотреть ввод значений его элементов, вывод исходной и, при необходимости, преобразованной матриц.
8. Найти строку с наибольшей и наименьшей суммой элементов. Вывести на печать найденные строки и суммы их элементов.
Работа программы
Вводятся исходные данные: двумерный массив через оператор random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение |
n, m | real | Размер массива |
i,j | real | Номер элемента |
sum | real | Сумма элементов |
a | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 1 Блок схема алгоритма программы
Текст программы
Program dvumernie_massivi;
Const
n=5; m=5;
var i,j, sum, maxsum, minsum, k, s: integer;
a: array [1..n, 1..m] of integer;
Begin
maxsum:=0; minsum:=100;
randomize; writeln ('dvumernii massiv');
for i:=1 to n do begin sum:=0;
for j:=1 to m do begin
a[i,j]:=random (10);
write (a[i,j]:3,' ');
sum:=sum+a[i,j];
if sum>maxsum then begin maxsum:=sum; k:=i;
end; end;
if sum<minsum then begin minsum:=sum; s:=i;
end; end; readln;
begin write ('stroka s macsimalinoy summoy:');
i:=k; for j:=1 to m do begin
write (a[i,j]:3,' ');
end;
writeln; write ('macsimalinaya summa=',maxsum);
end; writeln;
write ('stroka s minimalinoy summoy:');
i:=s; for j:=1 to m do begin write (a[i,j]:3,' '); end;
writeln; write ('minimalnay summa=',minsum);
readln;
End.
Тестирование
Задаем двумерный массив, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
dvumernii massiv
1 2 3 2 3
4 5 6 5 6
7 8 9 4 2
1 3 7 8 4
2 4 5 4 2
stroka s macsimalinoy summoy: 7 8 9 4 2
macsimalinaya summa=32
stroka s minimalinoy summoy: 1 2 3 2 3
minimalnay summa=11
Задание 2:
8. Найти все неповторяющиеся элементы двумерного массива целых чисел.
Работа программы
Вводятся исходные данные: двумерный массив оператором random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 2.
Таблица 2 – Назначение переменных
Переменная | Тип | Назначение |
n, m | real | Размер массива |
i, j и k,l | real | Номер элемента |
h | real | Номера повторяющихся элементов |
a, b | integer | Массивы |
1.3Блок – схема алгоритма программы
Рис. 2 Блок схема алгоритма программы
Текст программы
Program dvumernie_massivi;
Const
n=5; m=5;
var i,j, k,l, h: integer;
a: array [1..n, 1..m] of integer;
b: array [1..n, 1..m] of integer;
Begin
h:=0; randomize;
writeln ('Deistvie nad massivami') writeln ('Ishodnii dvumernii massiv');
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random (50); write (a[i,j]:3,' ');
end; writeln; end; writeln;
for i:=1 to n do begin
for j:=1 to m do begin
b[i,j]:=a[i,j]; end; end;
writeln ('Nepovtoryauchiesya elementi');
for i:=1 to n do begin
for j:=1 to m do begin
h:=0;
for k:=1 to n do begin
for l:=1 to m do begin
if a[i,j]=b[k,l] then
h:=h+1; end; end;
if h<2 then write (a[i,j]:3,' '); end; end;
readln;
End.
Тестирование
1:
Deistvie nad massivami
Ishodnii dvumernii massiv
2 7 3 1 3
4 5 6 5 6
7 8 9 4 3
3 3 7 5 4
4 4 5 4 1
Nepovtoryauchiesya elementi
2 6 8 9
Задание 3:
8. Дана вещественная матрица размерности n * m. Найти общую сумму элементов только тех столбцов, которые имеют хотя бы один нулевой элемент.
Работа программы
Вводятся исходные данные: n, m с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 3.
Таблица 3 – Назначение переменных
Переменная | Тип | Назначение |
n, m | real | Размер массива |
i, j | real | Номер элемента |
sum | real | Сумма элемент |
a | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 3 Блок схема алгоритма программы
Текст программы
program dvumernie_massivi;
Const
row=100;
col=100;
var i,j,n,m,sum,h: integer;
a: array [1..row, 1..col] of integer;
Begin
writeln ('Vvedite kolichestvo strok i stolbcov'); readln (n,m);
h:=0; randomize;
writeln ('Deistvie nad massivami');
writeln ('Ishodnii dvumernii massiv');
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=random (10);
write (a[i,j]:3,' ');
end;
writeln;
end;
for i:=1 to n do begin
for j:=1 to m do begin
if a[i,j]=0 then begin h:=j; sum:=0;
for i:=1 to n do begin
sum:=sum+a[i,h];
end;
writeln ('summa elementov ',h,' stolbca= ',sum);
end; end; end;
readln;
end.
Тестирование
Вводим количество строк и столбцов, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Vvedite kolichestvo strok i stolbcov 5 5
Deistvie nad massivami
Ishodnii dvumernii massiv
3 7 3 1 3
4 0 6 5 0
7 8 9 4 3
5 3 7 5 4
6 4 5 4 0
summa elementov 2 stolbca= 22
summa elementov 5 stolbca= 10
Задание 4:
8. В массиве А[1:m, 1:n] все числа различны. В каждой строке находится минимальный элемент, затем среди этих чисел выбирается максимальное. Напечатать номер строки массива А, в которой расположено выбранное число.
Работа программы
Вводятся исходные данные: n и m, числа массива с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 4.
Таблица 4 – Назначение переменных
Переменная | Тип | Назначение |
n, m | integer | Десятичные числа |
a | integer | Массив |
i,j | integer | Номер элемента массива |
h, k, | integer | Значение чисел массива |
1.3Блок – схема алгоритма программы
Рис. 4 Блок схема алгоритма программы
Текст программы