МБОУ "Лицей №57"

Адрес: г.Прокопьевск, ул.Институтская, 41


E-mail: lyceum57@mail.ru

Примеры решения задач с двумерными массивами

 Задача 1: Найти произведение ненулевых элементов матрицы.

 Решение:

 Для решения данной задачи нам потребуются переменные: матрица, состоящая, например, из целочисленных элементов; P – произведение элементов, отличных от 0; I , J – индексы массива; N , M – количество строк и столбцов в матрице.

 Входными данными являются N , M – их значения введем с клавиатуры; матрица – ввод матрицы оформим в виде процедуры, заполнение матрицы осуществим случайным образом, т.е. с помощью функции random ().

 Выходными данными будет являться значение переменной P (произведение).

 Чтобы проверить правильность выполнения программы, необходимо вывести матрицу на экран, для этого оформим процедуру вывода матрицы.

 Ход решения задачи:

1)      обсудим сначала выполнение основной программы, реализацию процедур обговорим чуть позже:

2)      введем значения N и M;

3)      введем двумерный массив;

4)      выведем полученную матрицу;

5)      присвоим начальное значение переменной P =1;

6)      выполним последовательный перебор всех строк i от 1-й до N-й, в каждой строке будем перебирать все столбцы j от 1-го до M-го, для каждого элемента матрицы будем проверять условие: если a [i,j]<>0, то произведение P будем домножать на элемент a[i,j] ( P := P * a[i,j]);

7)      выведем на экран значение произведения ненулевых элементов матрицы – P .

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

i,j,m,n,P:integer;

begin

writeln('vvedi razmer matrizi');

read(n,m);

randomize;

for i:=1 to n do begin

for j:=1 to m do begin

a[i,j]:=random(100);write(a[i,j]:5:1);end;

writeln; end;

P:=1;

for i:=1 to n do

for j:=1 to m do

if a[I,j]<>0 then P:=P*a[i,j];

write(‘P=’,P);

end.

Задача 2: Вычислите среднее арифметическое значение элементов двухмерного массива А(nхm), больших заданного числа Q.

 

 Решение:                                                             

var a:array[1..100,1..100]of real;  Q,x:real;

i,j,m,n,k:integer;

begin

writeln('vvedi razmer matrizi');

read(n,m);

writeln('vvedi Q’);

read(Q);

randomize;

for i:=1 to n do begin

for j:=1 to m do begin

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

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

writeln; end;

x:=0;k:=0;

for i:=1 to n do

for j:=1 to m do

if a[i,j]>Q then

                      begin x:= x+a[i,j];k:=k+1; end;

x:=x/k;

write(‘srednee arifm = ‘,x:10:3);

end.

Задача 3: Задан двухмерный массив вещественных чисел. Найдите номер строки и номер столбца, в которых находится наименьший элемент.

Решение:                                                              

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

min:real; i,j,m,n,k,l:integer;

begin

writeln('vvedi razmer matrizi');

read(n,m);

randomize;

for i:=1 to n do begin

for j:=1 to m do begin

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

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

writeln; end;

min:=a[1,1];k:=1;l:=1;

for i:=1 to n do

for j:=1 to m do

if a[i,j]< min then

                      begin min:= a[i,j];k:=i;l:=j end;

write(‘nomer stroki = ‘,k,’ nomer stolbza=’,l);

end.

Обратная связь

Имя отправителя *:
E-mail отправителя *:
Тема письма:
Текст сообщения *:
Код безопасности *:

Задачи для самостоятельной работы:

 1. В массиве записаны целые числа. Вычислить:

а) произведение элементов побочной диагонали массива, меньших 10;

б) сумму элементов главной диагонали массива, оканчивающихся цифрой 7;

в) количество нулевых элементов главной диагонали массива;

г) число нечетных элементов побочной диагонали массива.

2. Определите максимальный по модулю элемент матрицы А(n,n) и его индексы.

3. Определите в матрице А(7, 7) наибольший из положительных элементов.

4. Дана действительная матрица А(7, 8). Найдите среднее арифметическое наибольшего и наименьшего ее значений.

5. Определите наименьший элемент каждой четной строки матрицы А(n,n).

6. Определите номера строк матрицы А(n,n), хотя бы один элемент которых равен заданному числу В.

7. Определить:

а) минимальный элемент главной диагонали массива;

б) максимальный элемент побочной диагонали массива.

8. В двухмерном массиве из n строк и n столбцов, где n- нечетное число, все элементы различны. Наибольший элемент среди стоящих на главной и побочной диагоналях поменять местами с элементом, стоящим на пересечении этих диагоналей.

9. Составить программу:

а) которая определяет, есть ли хотя бы один элемент, равный заданному числу, на главной диагонали массива;

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

Бесплатный хостинг uCoz