Урок в 11 классе Массивы
Урок в 11 классе
Массивы
Многие задачи, решаемые с помощью компьютера, связаны с обработкой больших объемов информации, представляющей совокупность данных, объединенных единым математическим содержанием или связанных между собой по смыслу. Примером таких организованных совокупностей данных являются координаты точек в пространстве, матрица коэффициентов системы линейных уравнений, значения некоторой функции в произвольных точках, коэффициенты многочлена и т. д. Такие данные удобно представить в виде линейных или прямоугольных таблиц.
В линейной таблице каждому ее элементу соответствует порядковый номер, а в прямоугольной – два номера: номер по вертикали (номер строки) и номер по горизонтали(номер столбца).
В высшей математике табличные величины называют соответственно векторами и матрицами. В программе для представления таких данных используются массивы.
Массив – это упорядоченная совокупность однотипных данных, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Индексы определяют положение элемента в массиве, а число индексов определяет размерность массива, т. е. форму его компоновки: одномерный, двумерный и т. д. Имя массива образуется по общему правилу образования имен. Для записи элементов массива в память компьютера нужно выделить для их хранения необходимое количество ячеек памяти, которое определяется размером массива. Размеры массива задаются границами изменения индексов по каждому измерению. Одномерный массив соответствует линейной таблице, двумерный – прямоугольной. В языке Паскаль допускается работа с одномерными и двумерными массивами.
Массивы в среде Pascal объявляются следующим образом в разделе описания переменных:
Var <идентификатор>: Array[<тип индекса>] Of <тип элементов>;
В качестве индекса употребляется интервальный тип, например:
Var T: Array[1..12] Of Real;
то есть последовательные элементы этого массива располагаются следующим образом: a[1], a[2], a[3], … , a[12]. Причем значения индекса не должны выходить из диапазона 1..12.
Индексы элементов массива могут начинаться с любого целого числа, в том числе отрицательного.
Чтобы обратиться в программе к конкретному элементу массива, после имени переменной типа массив в квадратных скобках должно стоять выражение для соответствующего индекса элемента. Это может быть константа, входящая в диапазон констант, указанных при описании, это может быть переменная того же самого порядкового типа (если в качестве индексов используется конкретный диапазон целых значений, то переменная может принадлежать любому целому типу), наконец, это может быть произвольное выражение, значение которого так же принадлежит указанному типу. Например, a[5], a[i], a[i+1], a[2*k-1]. При использовании переменных для обозначения индекса их значения к моменту использования должны быть определены, а в случае арифметических выражений их результат не должен выходить за границы массива (минимальное и максимальное значения индекса).
Примеры задания одномерного массива:
Var day : Array[ 1..366 ] Of integer ;
Var stroka : Array[ 0..25 ] Of string ;
Двухмерные массивы в среде Pascal объявляются следующим образом в разделе описания переменных:
Var <идентификатор>: Array[<тип индекса>] Of <тип элементов>;
В качестве индекса употребляется интервальный тип, например:
Var Н: Array[1..12, 1..4] Of Integer;
Это описание соответствует таблице (матрице) целых чисел, состоящей из 12 строк и 4 столбцов.
Элементы многомерных массивов в памяти компьютера располагаются по строкам. То есть сначала расположены все элементы первой строки (первый индекс фиксирован и равен своему минимальному значению), затем второй и т.д. Таким образом, при равноправном расположении вложенных циклов для обработки многомерного массива сначала следует организовать цикл по первому индексу, потом по второму и т.д.
Как одномерные массивы так и матрицы обрабатываются в цикле for, но здесь используется два вложенных цикла. Рассмотрим пример считывания элементов матрицы с клавиатуры:
for i:=1 to 5 do
begin
for j:=1 to 10 do
begin
read(a[i, j]) ;
end;
readln;
end;
Аналогично производится распечатка массива, но нужно учитывать, что между элементами необходимо вставлять разделитель, а каждую новую строку переносить:
for i:=1 to 5 do
begin
for j:=1 to 10 do
begin
write(a[i, j], ’ ’) ;
end;
writeln;
end;
Рассмотрим примеры обработки матриц:
Пример 1. Дана матрица целых чисел размером 3х5. Вычислить сумму элементов матрицы.
var
m, n, i, j, s: integer;
a: array[1..3,1..5] of integer;
begin
s:=0;
writeln(‘введите значения элементов матрицы: ');
for i:=1 to 3 do //ввод матрицы с клавиатуры
for j:=1 to 5 do read(a[i,j]);
for i:=1 to 3 do //подсчет суммы элементов
for j:=1 to 5 do s:=s+a[i,j];
writeln(s);
end.
Пример 2. Сформировать квадратную матрицу следующего вида:

var
n: integer;
a : array [1..10,1..10] of integer;
i,j: integer;
begin
writeln('введите размерность матрицы:');
read(n);
for i:=1 to n do begin
for j:=1 to n do begin
if i=j then a[i,j]:=0;
if i
if i>j then a[i,j]:=1;
write(a[i,j],' ')
end;
writeln;
end;
еnd.
страница 1
скачать
Другие похожие работы: