Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodich_posobie_Turbo_Pascal.doc
Скачиваний:
33
Добавлен:
28.05.2015
Размер:
1.18 Mб
Скачать

2.5.4. Примеры типовых задач по теме «Двумерные массивы»

1. Составить программу подсчета суммы и произведения элементов двумерного массива вещественных чисел.

Введем обозначения:

a- имя массива;

n- количество строк в массиве;

m- количество столбцов в массиве;

i,j- индексы элементов массива;

s- сумма элементов массива;

p – произведение элементов массива.

Программа

Пояснения

program matr_1;

var

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

i, j, n, m: integer; s,p :real;

begin

writeln(‘ Введите n<=10 , m<=10 ’);

readln (n,m);

writeln(‘ Введите элементы массива по строкам ’);

for i:=1 to n do

for j:=1 to m do

readln(a[i, j]);

s:=0; p:=1;

for i:=1 to n do

for j:=1 to m do

begin

s:=s + a[i,j]; p:=p * a[i,j];

end;

writeln(‘s=’,s:8:3, ‘p=’,p:8:3);

readln; end.

Имя программы – matr_1

{Описательная часть}

{Исполнительная часть}

Вывод сообщения на экран

Ввод размера массива

Вывод сообщения на экран

Ввод элементов массива по строкам

Вложенные циклы

Подсчет суммы и произведения

Вывод результатов на экран

2. Задана целочисленная квадратная матрица. Определить является ли она симметричной относительно главной диагонали.

Введем обозначения:

a- имя массива;

n- количество строк и столбцов в массиве;

i,j- индексы элементов массива;

f- признак симметричности матрицы, допустим f=0 матрица симметрична, f =1 матрица не симметрична.

Программа

Пояснения

program matr_2;

var

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

i, j, n, f : integer;

begin

writeln(‘ Введите n<=10 ’);

readln (n);

writeln(‘ Введите элементы массива по строкам ’);

for i:=1 to n do

for j:=1 to n do

readln(a[i,j]);

f:=0

for i:=1 to n do

for j:=i to n do

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

if f=0 then writeln(‘ матрица симметрична’)

else writeln (‘матрица не симметрична’);

readln; end.

Имя программы – matr_2

{Описательная часть}

{Исполнительная часть}

Вывод сообщения на экран

Ввод размера массива

Вывод сообщения на экран

Ввод элементов массива

Определение симметричности матрицы

Вывод результатов на экран

При решении этой задачи сравниваются элементы расположенные над главной диагональю ( a[ i,j ] ) с элементами, расположенными под главной диагональю ( a[ j,i ] ) и в случае их равенства матрица считается симметричной.

3. Задана матрица вещественных чисел. Образовать одномерный массив, где каждый j – й элемент равен произведению элементов j-ого столбца двумерного массива.

Введем обозначения:

a- имя двумерного массива;

b- имя одномерного массива;

n- количество строк в массиве;

m- количество столбцов в массиве;

i,j- индексы элементов массива;

Программа

Пояснения

program matr_3;

var

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

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

i, j, n, f : integer;

begin

writeln(‘ Введите n<=10 , m<=10 ’); readln (n,m);

writeln(‘ Введите элементы массива по строкам ’);

for i:=1 to n do

for j:=1 to m do

readln (a[i, j]);

writeln(‘ Исходная матрица ’);

for i:=1 to n do

begin

for j:= 1 to n do

write( a[I,j] , ‘ ‘); writeln;

end;

writeln(‘ Образованный одномерный массив ’);

for j:=1 to m do

begin

b[ j ]:=1;

for i:=1 to n do

b[ j ]:= b[ j ] * a[ i, j ];

write( b[ j] , ‘ ‘);

end;

readln; end.

Имя программы – matr_3

{Описательная часть}

Описание двумерного массива

Описание одномерного массива

{Исполнительная часть}

Вывод сообщения на экран

Ввод размера массива а

Вывод сообщения на экран

Ввод элементов двумерного массива

Вывод на экран исходного массива в виде матрицы

Формирование и вывод на экран одномерного массива b

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

Введем обозначения:

a- имя двумерного массива;

n- количество строк в массиве;

m- количество столбцов в массиве;

i,j- индексы элементов массива;

kmax, lmax - номер строки и номер столбца, на пересечении которых находится максимальный элемент.

Программа

Пояснения

program matr_4;

var

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

i, j, n, m , kmax , lmax: integer;

max :real;

begin

writeln(‘ Введите n<=10 , m<=10 ’);

readln(n,m);

writeln(‘ Введите элементы массива по строкам ’);

for i:=1 to n do

for j:=1 to m do

readln(a[i,j]);

max:=a[1,1]; kmax:=1; lmax:=1;

for i:=1 to n do

for j:=1 to m do

if a[i,j]>max then

begin

max:=a[i,j];

kmax:=i;

lmax:=j;

end;

writeln(‘max=’, max:8:3);

writeln(‘строка - ‘, kmax,’ столбец - ’,lmax);

readln; end.

Имя программы – matr_4

{Описательная часть}

{Исполнительная часть}

Вывод сообщения на экран

Ввод размера массива

Вывод сообщения на экран

Ввод элементов массива по строкам

Поиск максимального элемента

Вывод результатов на экран

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