Двумерные массивы ( матрицы ) на языке PASCAL Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера.

Презентация:



Advertisements
Похожие презентации
A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5] Двумерный массив можно представить.
Advertisements

Массивы Паскаль. Массивы - это Заранее известное число однотипных элементов Элементы (каждое данное массива) имеют общее имя(имя массива) и тип (тип элементов.
Индекс – величина, характеризующая положение элемента, относительно начала массива. МАССИВЫ Конечная, упорядоченная по номерам совокупность значений, объединенных.
Одномерные массивы Решение задач. Табличный способ организации данных Одномерные и двумерные массивы.
Двумерные массивы. Заполнение и вывод элементов. Понятие. Двумерный массив – это массив с двумя измерениями (прямоугольные таблицы, матрицы). Пример:
1 Индекс – величина, характеризующая положение элемента, относительно начала массива. МАССИВЫ Конечная, упорядоченная по номерам совокупность значений,
Двумерные массивы Паскаля – матрицы. Каждый элемент имеет свой номер, который состоит из двух чисел – номера строки, в которой находится элемент, и номера.
Двумерные массивы. Массивы, положение элементов в которых описывается двумя индексами, называются двумерными. Их можно представить в виде прямоугольной.
Двумерный массив. Матрица Прямоугольная таблица, состоящая из чисел А=
Шутилина Л.А., A[1,1]A[1,2]A[1,3]A[1,4]A[1,5] A[2,1]A[2,2]A[2,3]A[2,4]A[2,5] A[3,1]A[3,2]A[3,3]A[3,4]A[3,5] A[4,1]A[4,2]A[4,3]A[4,4]A[4,5]
Двумерный массив.. Двумерным массивом называется совокупность однотипных данных, каждое значение которых, зависит от его положения в строке и в столбце.
5.Дана матрица А и вектор Х соответствующих размерностей. Нечетные строки матрицы заменить элементами вектора Х. Результаты работы: n=4 m=
const n=10; var a:array[1..n] of integer; i,j,c,b,k:integer; begin randomize; for i:=1 to n do begin a[i]:=random(11)-5;write(a[i]:5) end;writeln;
3. Дана прямоугольная матрица, элементами которой являются целые числа. Поменять местами ее строки следующим образом: первую строку с последней, вторую.
Тема: «Понятие массива. Назначение. Тип. Размер. Размерность. Одномерный массив» :56:36.
Двумерные массивы Решение задач из сборника «Задачи по программированию» под редакцией С. Окулова.
Язык программирования Pascal Массивы А. Жидков. Массивы Массив – поименованный набор однотипных элементов, каждый из которых имеет свой номер, (индекс).
Организация данных в виде массива. Массив - это упорядоченный набор фиксированного количества некоторых значений, называемых элементами массива. Каждый.
Одномерные массивы. Массив - это упорядоченная последовательность данных одного типа, объединенных под одним именем. Проще всего представить себе массив.
Транксрипт:

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

Описание двумерного массива Паскаля Существует несколько способов объявления двумерного массива Паскаля. Мы уже умеем описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами. Рассмотрим следующее описание типов и переменных: Пример описания двумерного массива Паскаля A: array [1..5,1,,10] of ; Мы оъявили двумерный массив Паскаля m, состоящий из 10 строк, в каждой из которых 5 столбцов. При этом к каждой i -й строке можно обращаться m [ i ], а каждому j -му элементу внутри i -й строки – m [ i, j ]. Определение типов для двумерных массивов Паскаля можно задавать и в одной строке:Type Matrix= array [1..5] of array [1..10] of < тип элементов >; или еще проще: type matrix = array [1..5, 1..10] of ; Обращение к элементам двумерного массива имеет вид: M [ i, j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце. Тут главное не перепутать строки со столбцами, а то мы можем снова получить обращение к несуществующему элементу. Например, обращение к элементу M [10, 5] имеет правильную форму записи, но может вызвать ошибку в работе программы. Мы оъявили двумерный массив Паскаля m, состоящий из 10 строк, в каждой из которых 5 столбцов. При этом к каждой i -й строке можно обращаться m [ i ], а каждому j -му элементу внутри i -й строки – m [ i, j ]. Определение типов для двумерных массивов Паскаля можно задавать и в одной строке:Type Matrix= array [1..5] of array [1..10] of < тип элементов >; или еще проще: type matrix = array [1..5, 1..10] of ; Обращение к элементам двумерного массива имеет вид: M [ i, j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце. Тут главное не перепутать строки со столбцами, а то мы можем снова получить обращение к несуществующему элементу. Например, обращение к элементу M [10, 5] имеет правильную форму записи, но может вызвать ошибку в работе программы.

Основные действия с двумерными массивами Паскаля Пример программы ввода двумерного массива Паскаля с клавиатуры var A : array [1..5, 1..10] of integer; i, j: integer; { индексы массива } begin for i :=1 to 5 do {цикл для перебора всех строк} for j :=1 to 10 do {перебор всех элементов строки по столбцам} read ( a [ i, j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце}

Вывод двумерного массива Паскаля на экран for i :=1 to 5 do {цикл для перебора всех строк} begin for j :=1 to 10 do {перебор всех элементов строки по столбцам} write ( a [ i, j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции} writeln ; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки} End. Пример программы вывода двумерного массива Паскаля

Задача. Вычислить сумму элементов каждой строки массива program summa(output); var I,j:integer; S:array[1..4] of integer; A:array[1..4, 1..3] of integer; begin for I:=1 to 4 do for j:=1 to 3 do read (A[i,j]); for I:=1 to 4 do for j:=1 to 3 do S[i]:=S[i]+A[i,j]; for i:=1 to 4 do write('s=',s[i]); end.

Задача. Вычислить сумму всех элементов двумерного массива program summa(output); var I,j:integer; S: integer; A:array[1..2, 1..5] of integer; begin for I:=1 to 2 do for j:=1 to 5 do read (A[i,j]); for I:=1 to 2 do for j:=1 to 5 do S:=S+A[i,j]; write(S:2); end.

Задача: Поменять местами в массиве столбцы и строки program mesto(input,output); var I,j:integer; A:array[1..4, 1..4] of integer; begin for I:=1 to 4 do for j:=1 to 4 do read (A[i,j]); for j:=1 to 4 do begin for i:=1 to 4 do begin write (A[i,j]); end; writeln; end; end.

ЗАДАЧА: Заполнить масcив по правилу Program prim (input,ouiput); var I,j:integer; A:array[1..9, 1..9] of integer; begin for I:=1 to 9 do for j:=1 to 9 do A[i,j]:=i+j; for I:=1 to 9 do begin for j:=1 to 9 do begin write(A[i,j]:4); end; writeln; end; end.

ЗАДАЧА: Составить таблицу умножения (по правилу) program ymn(input,output); var I,j:integer; A:array[1..10, 1..10] of integer; begin for I:=1 to 10 do for j:=1 to 10 do A[i,j]:=i*j; for I:=1 to 10 do begin for j:=1 to 10 do write(A[i,j]:4); end; writeln; end.

Задача. Вычислить сумму элементов каждого столбца массива program summa(output); var I,j:integer; S:array[1..3] of integer; A:array[1..4, 1..3] of integer; begin for I:=1 to 4 do for j:=1 to 3 do read (A[i,j]); for I:=1 to 4 do for j:=1 to 3 do S[j]:=S[j]+A[i,j]; for j:=1 to 3 do write('s=',s[j]); end.

ЗАДАЧИ: Вычислить сумму элементов массива program s_1(output); summa(output); var I,j:integer; S:array[1..3] of integer; A:array[1..4, 1..3] of integer; begin for I:=1 to 4 do for j:=1 to 3 do read (A[i,j]); for I:=1 to 4 do for j:=1 to 3 do S[j]:=S[j]+A[i,j]; for j:=1 to 3 do write('s=',s[j]); end. program summa(output); var I,j:integer; S:array[1..4] of integer; A:array[1..4, 1..3] of integer; begin for I:=1 to 4 do for j:=1 to 3 do read (A[i,j]); for I:=1 to 4 do for j:=1 to 3 do S[i]:=S[i]+A[i,j]; for i:=1 to 4 do write('s=',s[i]); end. program summa(output); var I,j:integer; S: integer; A:array[1..2, 1..5] of integer; begin for I:=1 to 2 do for j:=1 to 5 do read (A[i,j]); for I:=1 to 2 do for j:=1 to 5 do S:=S+A[i,j]; write(S:2); end. Каждого столбца Каждой строки Всех элементов

Примеры решения задач с двумерными массивами Паскаля Задача: Найти произведение ненулевых элементов матрицы. Решение: Program pr(input,output); var A:array[1..2,1..5] of integer; i,j,p:integer; Begin for i:=1 to 2 do begin for j:=1 to 5 do read(A[i,j]); end; begin p:=1; end; for i:=1 to 2 do begin for j:=1 to 5 do if A[i,j]0 then p:=p*A[i,j]; writeln(p); end; end.