NetNado
  Найти на сайте:

Учащимся

Учителям



Урок в 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


скачать

Другие похожие работы:





Документы

архив: 1 стр.