Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.doc
Скачиваний:
16
Добавлен:
15.11.2018
Размер:
435.2 Кб
Скачать

Массив. Многомерные (двумерные) массивы

Массив — это упорядоченный набор объектов одного типа, называемых компонентами массива, у каждого из которых имеется индекс или номер. Основными характеристиками массива являются: имя, размерность, тип его элементов и тип его индексов. Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.

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

Если число индексов в описании массива равно N, то массив называется N-мерным. На практике часто используются двумерные массивы, соответствующие понятию матрицы.

Каждый элемент двумерного массива характеризуется номером строки и номером столбца. Например: А[3,8] – элемент из массива А находящийся в 3 строке и 8 столбце.

Описание массивов

1. Общая форма (явный способ) описания двумерного массива имеет следующий вид:

Var

<идентификатор> : array [<тип индекса строки>, <тип индекса столбца>] of <тип элементов>;

Пример:

VAR

a: ARRAY [1..10,1..20] OF integer;

2. Неявный способ.

Type

<имя типа> = ARRAY [<тип индекса строки>, <тип индексов столбца> ] OF <тип элементов >

VAR <имя переменной> :<имя типа>;

При таком способе описания в разделе Typeописывается тип массива, который будет использоваться в программе, то есть его размер и тип элементов. Далее в разделе VAR для переменных, которые будут содержать массив, указывается новый тип. Если необходимо создать массивы разных типов или разных размеров, то для них создаются отдельные типы, а после объявляются переменные этих типов.

Пример:

Type

Mass1 = ARRAY [1..10,1..20] OF integer;

VAR A: Mass1;

Ввод и вывод значений производится поэлементно. Значения элементам массива можно присвоить с помощью оператора присваивания, однако чаще всего они вводятся с экрана с помощью оператора Read или Readln с использованием оператора организации цикла for:

Ввод элементов двумерного массива В:

for I := 1 to 10 do

for J := 1 to 15 do

Readln (B[I,J]) ;

Вывод значений элементов массива выполняется аналогичным образом, но используются операторы Write или Writeln:

Вывод элементов двумерного массива В:

for I := 1 to 10 do

for J := 1 to 15 do

Writeln (B[I,J]);

program my;

var

a : array [1..5, 1..5] of real;

i, j : byte;

s : real;

begin

s:=0;

for i:=1 to 5 do

for j:=1 to 5 do

begin

write('Введитечисло [',i,’,’,j,'] : ');

readln(a[i,j]);

if a[i,j]>0 then s:=s+a[i,j];

end;

writeln('s = ', s:0:2);

readln;

end.

14. Опишите общую структуру процедуры в языке программирования Паскаль (Delphi). Запишите общий вид вызова процедуры. Перечислите варианты формальных параметров.

Оформите в виде процедуры алгоритм вычисления степени y=xn с натуральным показателем.

Процедуры

Подпрограммой называется именованная логически законченная группа операторов языка, которую можно вызвать для выполнения по имени любое количество раз из различных мест программы.

В языке Pascal для организации подпрограмм используются процедуры и функции.

Процедура – это независимая поименованная часть программы, предназначенная для выполнения определенных действий. Она состоит из заголовка и тела. После однократного описания процедуру можно вызвать по имени из последующих частей программы. Когда процедура выполнит свою задачу, программа продолжится с оператора, следующего непосредственно за оператором вызова процедуры. Использование имени процедуры в программе называется вызовом процедуры.

Описание процедуры:

Procedure <имя> [(<список формальных параметров>)];

[<раздел описаний>];

Begin

<оператор-1>;

<оператор-2>;

<оперaтop-N>

End;

где Procedure - служебное слово, определяющее заголовок процедуры; <имя> - имя процедуры (идентификатор); <список формальных параметров> - перечень имен для обозначения исходных данных и результатов работы процедуры с указанием их типа (имени типа), допускается описание процедуры без параметров; <раздел описаний> - раздел локальных описаний используемых в процедуре меток, констант, типов, переменных, процедур и функций; Begin, End - служебные слова, ограничивающие содержательную часть процедуры (раздел операторов). Заканчивается блок процедуры точкой с запятой.

Вызывается процедура по её имени, например:

PRIM(Список_ фактических параметров);

Параметры

Передавать информацию из основной программы в подпрограмму и наоборот мы можем только через переменные, которые носят специальное название — формальные параметры.

Существует 2 вида параметров:

- те, через которые данные только поступают в подпрограмму, называют параметры-значения.

- те, через которые данные возвращаются в основную программу из процедуры, называют параметры-переменные.

Формальные параметры указываются рядом с именем процедуры в круглых скобках. Список параметров формально определяет количество переменных, которое необходимо для обмена информацией, и их тип. При этом, как и в разделе описания переменных, указывается имя переменной и через двоеточие её тип. Этого достаточно для их объявления.

Параметры-переменные (результат работы процедуры) отличаются от параметров-значений тем, что перед ними стоит служебное слово Var.

При каждом обращении к процедуре мы должны поместить в параметры некоторые значения. Эти значения называются фактическими параметрами.

Фактические параметры — это параметры (данные), которые передаются процедуре при ее вызове.

Количество, порядок и тип формальных и фактических параметров должны в точности совпадать.

В качестве формальных параметров могут быть только переменные с указанием их типа. В качестве фактических параметров могут быть константы, переменные, выражения без указания их типа.

Procedure Step1(n:integer, х:real; Var у: real);

Var

i: integer;

Begin {Stepl}

y:=1

for i := 1 to n do

у := y*x

End; {Stepl}