Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TurboPascal_СПРАВОЧНИК.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
308.74 Кб
Скачать

Двумерные массивы.

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

Двумерный массив — массив, у которого положение каждого элемента характеризуется двумя числами, первое из них определяет номер строки, второе – номер столбца, на пересечении которых находится элемент. Он так же, как и одномерный массив, состоит из значений одного типа. В двумерных массивах хранятся значения прямоугольных таблиц. Примеры описания двумерных массивов:

Var С : array [1. .5, 1. .10] of integer;

R1, R2: array [0. .10, 1. .365] of char;

Sim : array [1. .20, 1. .10] of string[20];

X, S : array [1. .M, 1. .N] of byte;

Работа с элементами

В математике часто используют многомерные массивы (двумерные, трехмерные и т.д.). Мы рассмотрим двумерные массивы, иначе называемые матрицами.

Например :

5 4 3 6

2 8 1 7

4 3 9 5

Данная матрица имеет размер 3 на 4, т.е. она состоит из трех строк и четырех столбцов. Если всю матрицу обозначить одним именем, например А, то каждый элемент матрицы будет иметь два индекса - А[i,j]

Здесь первый индекс i обозначает номер строки (i=1,2,3), второй индекс j - номер столбца (j=1,2,3,4).

Такую матрицу можно описать следующим образом :

Var A: array [1..3,1..4] of integer;

При решении задач с использованием двумерных массивов во всех случаях (кроме некоторых частных) организуются вложенный цикл.

Перемещение по строке :

for i:=1 to m do {внешний цикл, изменяется номер строки}

for j:=1 to n do {внутренний цикл, изменяется номер столбца}

Перемещение по столбцу :

for j:=1 to n do {внешний цикл, изменяется номер столбца}

for i:=1 to m do {внутренний цикл, изменяется номер строки}

Ввод (заполнение) элементов двумерного массива (матрицы)

For i:=1 to n do

For j:=1 to m do

Readln(A[i,j]);

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

Массив содержит 3 строки и 4 столбца, т.е. 3х4=12 элементов

а11

а12

а13

а14

а21

.

.

.

.

.

.

.

F or i:=1 to 3 do

For j:=1 to 4 do

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

1. б Заполнение двумерного массива по столбцу :

а11

а12

.

.

а21

.

.

.

а31

.

.

.

F or j:=1 to 4 do

For i:=1 to 3 do

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

2а. Печать матрицы на экран :

For i:=1 to n do begin

For j:=1 to m do Write (A[i,j]); {Вывод эл-тов одной строки матрицы}

Writeln; { переход на следующую строку экрана}

end;

где А - имя массива;i - индекс строки;j - индекс столбца;

n - количество элементов в строке;m - количество элементов в столбце.

2б. Печать 3-й строки на экран :

For i:=1 to n do Write (A[3,i],’ ‘); {Вывод эл-тов одной строки матрицы}

end;

3а. Вычисление суммы элементов 2-той строки.

s:=0;

For i:=1 to n do s:=s+a[2,i];

Writeln(‘Сумма элементов 2-й строки = ’,s);

3б. Вычисление суммы элементов 2-го столбца.

s:=0;

For i:=1 to n do s:=s+a[i,2];

Writeln(‘Сумма элементов 2-го столбца = ’,s);

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

S:=0;

for i:=1 to m do

for j:=0 to n do S:=S+a[i,j];

6. Задача поиска максимального (минимального) элемента и его индексов.

Ищем максимальный элемент каждой строки :

For i:=0 to m do

begin

max:=a[i,1];

ind_L:=i; {сохраняем номер строки}

ind_C:=1; {заносим номер 1 - первый столбец}

for j:=1 to n do

if a[i,j]>max then begin

max:=a[i,j];

ind_C:=j {сохраняем номер j-ого столбца}

end;

writeln(‘max строки ’,i,’=’,max)

end;

7. Алгоритм поиска минимального элемента и его индексов для всего массива.

Min:=a[1,1];

ind_L:=1;

ind_C:=1;

for i:=1 to m do

for j:=1 to n do

if a[i,j]<min then begin

min:=a[i,j]; ind_L:=i; ind_C:=j;

end;

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