Mathian
Мастер
Всем Хай!
Я совсем забыл про Массивы! Вот вам урок.
[HR][/HR]Я совсем забыл про Массивы! Вот вам урок.
Массив - набор однотипных компонентов/элементов, расположенных в памяти непосредственно друг за другом. Доступ к ним осуществляется по индекс(у/ам). В отличие от списка, массив является структурой с произвольным доступом.
Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, одномерным или вектором.
[HR][/HR]
Объявление одномерных массивов:
Объявить массивы можно как и в разделе переменных:
PHP:
Var Имя_Массива1, Имя_Массива2 : Array [Тип_Индекса] of Тип_Элемент(а/ов);
PHP:
Const Имя_Массива: Array [Тип_Индекса] of Тип_Элемент(а/ов) = (Список_Элементов);
PHP:
Var Имя_Массива: Тип;
Ввод данных в одномерный массив можно осуществить несколькими способами:
•Оператором Read
•В разделе Констант
•Так же можно заполнить его сгенерировав числа для заполнения функцией "Random"
[HR][/HR]
Оператором Read:
PHP:
For B:=1 to C do
Begin
Writeln('Введите элемент массива:');
Read (A[B]);
В разделе Констант:
PHP:
Const B = 5;
A:=array [1..B] of integer (-8,0,4,1,3);
Рандомными числами:
PHP:
Randomize;
For B:=1 to C do
A[B] := Random (D-E)*E;
[HR][/HR]
Вывод данных осуществляется за счёт операторов Write и WriteLn. Пример:
PHP:
Program Primer;
Var a, b, c: array [1..100] of integer;
I, n: byte;
Begin
Write (‘Введите размерность:’);
Readln(n);
For i:=1 to n do
Readln (a[i]);
For i:=1 to n do
Readln (b[i]);
For i:=1 to n do
C[i]:=a[i]+b[i];
For i:=1 to n do
write (c[i],’ ‘);
end.
Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.
Пример описания двумерного массива:
PHP:
Type
Vector = array [1..5] of <тип_элементов>;
Matrix= array [1..10] of vector;
Var m: matrix;
Ввод двумерного массива:
Для последовательного ввода элементов одномерного массива мы использовали цикл for, в котором изменяли значение индекса с 1-го до последнего. Но положение элемента в двумерном массиве Паскаля определяется двумя индексами: номером строки и номером столбца. Это значит, что нам нужно будет последовательно изменять номер строки с 1-й до последней и в каждой строке перебирать элементы столбцов с 1-го до последнего. Значит, нам потребуется два цикла for , причем один из них будет вложен в другой.
Пример:
PHP:
type
matrix= array [1..5, 1..10] of integer;
var
a, : matrix;
i, j: integer; { индексы массива }
begin
for i :=1 to 5 do {цикл для перебора всех строк}
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
readln ( a [ i , j ]); {ввод с клавиатуры элемента, стоящего в i -й строке и j -м столбце}
PHP:
for i :=1 to 5 do {цикл для перебора всех строк}
begin
for j :=1 to 10 do {перебор всех элементов строки по столбцам}
write ( a [ i , j ]:4); {печать элементов, стоящих в i -й строке матрицы в одной экранной строке, при этом для вывода каждого элемента отводится 4 позиции}
writeln ; {прежде, чем сменить номер строки в матрице, нужно перевести курсор на начало новой экранной строки}
end ;
С вами был Лев Попов((Lev_Popov)).
Удачного обучения! xD
Последнее редактирование:
