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

for i:=1 to n do

for j:=1 to m do

readln(a[i,j]);

Данный фрагмент позволит ввести элементы массива по строкам.

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

 

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

for i:=1 to n do

{begin}

for j:=1 to n do

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

{writeln;}

{end;}

 

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5

 

Данный фрагмент позволит вывести элементы массива в виде матрицы.

 

Обработка двумерных массивов

Рассмотрим типовые задачи обработки двумерных массивов с использованием вложенных циклов.

 

Задача.

 

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

Таблица идентификаторов.

Наименование переменной Обозначения в программе
Имя массива a
Количество строк n
Количество столбцов m
Индексы массива I,j
Сумма элементов s
Произведение элементов p

 

Program matr;

Uses

Crt;

Var

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

i, j, n, m: integer;

s,p :real;

Begin

Clrscr;

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);

writeln(‘ Произведение элементов p=’,p:8:3);

Readln;

End.

 

Задача.

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

 

Таблица идентификаторов.

 

Наименование переменной Обозначения в программе
Имя массива a
Количество строк и столбцов n
Индексы массива I,j
Сумма элементов над главной диагональю s

 

Program matr_1;

Uses

Crt;

Var

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

i, j, n, m: integer;

s,p :real;

Begin

Clrscr;

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]);

for i:=1 to 3 do

for j:=i +1 to 3 do

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

writeln('Сумма элементов s=', s);

Readln;

End.

 

Для ввода элементов массива используются вложенные циклы с указанием номера вводимого элемента.

Для поиска суммы элементов над главной диагональю во внутреннем цикле задан закон изменения параметра внутреннего цикла:

j:=i+1

 

Задача.

 

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

 

Таблица идентификаторов.

 

Наименование переменной Обозначения в программе
Имя массива a
Количество строк и столбцов n
Индексы массива I,j
Флажок f

programmatr_2;

Uses

Crt;

Var

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

i, j, n, f : integer;

Begin

Clrscr;

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

Readln (n,m);

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.

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

 








Дата добавления: 2017-06-02; просмотров: 860;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.015 сек.