Структурированные типы данных. Двумерные массивы. Матрицы

Содержание

Слайд 2

Структурированные типы данных

Двумерный массив - Матрица

Структурированные типы данных Двумерный массив - Матрица

Слайд 3

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

Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас

Двумерный массив Каждый элемент имеет свой номер, как у одномерных массивов, но
номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца.
Таким образом, номер элемента определяется пересечением строки и столбца.
Например, a21 – это элемент, стоящий во второй строке и в первом столбце.

Двумерный массив или матрица в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов).
Положение элементов в двумерных массивах Паскаля описывается двумя индексами.
Их можно представить в виде прямоугольной таблицы или матрицы.
Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

Слайд 4

Матрица

Матрица – это прямоугольная таблица чисел (или других элементов одного типа).
Матрица –

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

A

строка 2

столбец 3

ячейка A[3,4]

Слайд 5

Описание двумерного массива Паскаля

Существует несколько способов объявления двумерного массива Паскаля.
Мы уже умеем

Описание двумерного массива Паскаля Существует несколько способов объявления двумерного массива Паскаля. Мы
описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами.
Рассмотрим варианты описания двумерных массивов:
1. Объявления в разделе переменных var

const N = 3;
M = 4;
var A: array[1..N,1..M] of integer;
B: array[-3..0,-8..M] of integer;
Q: array['a'..'d',False..True] of real;

Слайд 6

Описание двумерного массива Паскаля

2. Объявления в разделе типов type

type
Vector = array

Описание двумерного массива Паскаля 2. Объявления в разделе типов type type Vector
[1..5] of <тип_элементов>;
Matrix= array [1..10] of vector;
Var
m: matrix;

Мы объявили двумерный массив m, состоящий из 10 строк, в каждой из которых 5 столбцов.
При этом к каждой i -й строке можно обращаться m [ i ], а каждому j -му элементу внутри i -й строки – m [ i , j ].

Слайд 7

Описание двумерного массива Паскаля

type
matrix= array [1..5] of array [1..10] of <

Описание двумерного массива Паскаля type matrix= array [1..5] of array [1..10] of
тип элементов >;
Var
m: matrix;

Определение типов для двумерных массивов можно задавать и в одной строке:

или еще проще: :

type
matrix = array [1..5, 1..10] of <тип элементов>;;
Var
m: matrix;

Слайд 8

Описание двумерного массива Паскаля

3. Объявления в разделе констант const

const
a: array[1..10] of

Описание двумерного массива Паскаля 3. Объявления в разделе констант const const a:
integer=(31,546,61,9876,-35,654,1,0,90,-429);
mass:array = ((2,3,1,0), (1,9,1,3), (3,5,7,0));

или

const
row=3;col=3;
matrix_1:array[1..row,1..col] of word=((1,2,3),(4,5,6),(7,8,9));
vector_1:array[1..row] of word=(1,2,3);

Слайд 9

Ввод и вывод данных матрицы

Объявление:

for i:=1 to N do
for j:=1 to

Ввод и вывод данных матрицы Объявление: for i:=1 to N do for
M do begin
write('A[',i,',',j,']=');
read ( A[i,j] );
end;

A[1,1]=

25

A[1,2]=

14

A[1,3]=

14

...

A[3,4]=

54

i

j

for j:=1 to M do
for i:=1 to N do begin

const
N = 3; M = 4;
var
A: array[1..N,1..M] of integer;

Ввод с клавиатуры:

Слайд 10

Ввод и вывод данных матрицы

Объявление:

const
N = 3; M = 4;
var
A:

Ввод и вывод данных матрицы Объявление: const N = 3; M =
array[1..N,1..M] of integer;
i, j:integer;

Заполнение случайными числами:

randomize;
for i:=1 to N do
for j:=1 to M do
A[i,j] := random(25) - 10;

цикл по строкам

цикл по столбцам

Слайд 11

Ввод и вывод данных матрицы

Вывод на экран:

for i:=1 to N do begin
writeln;
end;

перейти

Ввод и вывод данных матрицы Вывод на экран: for i:=1 to N
на новую строку

for j:=1 to M do
write ( A[i,j]:5 );

вывод строки

в той же строке

Слайд 12

Ввод и вывод данных матрицы

Ввод и вывод данных матрицы

Слайд 13

Обработка элементов матрицы

Задача: заполнить матрицу из 3 строк и 4 столбцов случайными

Обработка элементов матрицы Задача: заполнить матрицу из 3 строк и 4 столбцов
числами и вывести ее на экран. Найти сумму элементов матрицы.

program qq;
const N = 3; M = 4;
var A: array[1..N,1..M] of integer;
i, j, S: integer;
begin
{ заполнение матрицы и вывод на экран}
S := 0;
writeln('Сумма элементов матрицы ', S);
end.

for i:=1 to N do
for j:=1 to M do
S := S + A[i,j];

Слайд 14

Обработка элементов матрицы

Задача 2. Вывести на экран главную диагональ квадратной матрицы из

Обработка элементов матрицы Задача 2. Вывести на экран главную диагональ квадратной матрицы
N строк и N столбцов.

A[2,2]

A[3,3]

A[N,N]

for i:=1 to N do
write ( A[i,i]:5 );

A[1,1]

Задача 2a. Найти сумму элементов главной диагонали квадратной матрицы из N строк и N столбцов.

Слайд 15

Обработка элементов матрицы

Задача 3. Вывести на экран вторую диагональ.

Задача 3a. Найти сумму

Обработка элементов матрицы Задача 3. Вывести на экран вторую диагональ. Задача 3a.
элементов побочной диагонали квадратной матрицы из N строк и N столбцов.

A[1,N]

A[N,1]

A[N-1,2]

A[2,N-1]

for i:=1 to N do
write ( A[i, ]:5 );

N+1-i

сумма номеров строки и столбца N+1

Слайд 16

Обработка элементов матрицы

Задача 4. Найти сумму элементов, стоящих на главной диагонали и

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

строка 1: A[1,1]
строка 2: A[2,1]+A[2,2]
...
строка N: A[N,1]+A[N,2]+...+A[N,N]

S := 0;
for i:= 1 to N do

цикл по всем строкам

for j:= 1 to i do
S := S + A[i,j];

складываем нужные элементы строки i

Слайд 17

Обработка элементов матрицы

Задача 5. Перестановка строк или столбцов.
В матрице из N

Обработка элементов матрицы Задача 5. Перестановка строк или столбцов. В матрице из
строк и M столбцов переставить 2-ую и 4-ую строки.

2

4

j

A[2,j]

A[4,j]

for j:=1 to M do begin
c := A[2,j];
A[2,j] := A[4,j];
A[4,j] := c;
end;

Задача 6. К третьему столбцу добавить шестой.

for i:=1 to N do
A[i,3] := A[i,3] + A[i,6];

Слайд 18

Задачи для самостоятельного решения

1. Заполнить матрицу из 7 строк и 7 столбцов

Задачи для самостоятельного решения 1. Заполнить матрицу из 7 строк и 7
случайными числами в интервале [10,90] и вывести ее на экран.
2. Заполнить элементы, отмеченные зеленым фоном, числами 99, и вывести полученную матрицу на экран.
Имя файла: Структурированные-типы-данных.-Двумерные-массивы.-Матрицы.pptx
Количество просмотров: 40
Количество скачиваний: 0