Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROSY_DLYa_PODGOTOVKI_K_EKZAMENU_1.docx
Скачиваний:
74
Добавлен:
13.03.2016
Размер:
127.83 Кб
Скачать

24. Структурный тип данных "массив". Реализация массивов переменной длины.

МАССИВЫ.

Массив – структурна переменная, все компоненты которой одного типа.

Свойства:

1) К любой компоненте можно обратиться. Она явно обозначена, прямой доступ.

2) Чисто компонент определяется при описании и в программе не меняется

3) Каждой компоненте сопоставляется индекс, который опр местом в массиве.

Типовые действия над массивами:

- ввод массива;

- просмотр элементов массива, поиск;

- накопление суммы, произведения;

- нахождение экстремума.

Описание типа массива задается следующим образом:

<имя типа> = ARRAY [ <сп.инд.типов>] OF <тип>

Здесь <имя типа> - правильный идентификатор;

ARRAY, OF - зарезервированные слова (массив, из);

<сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;

<тип> - любой тип Турбо Паскаля.

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

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

В Турбо Паскале можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:

var

a,b begin

array [1. .5] of Single;

a := b;

end

После этого присваивания все пять элементов массива А получат те же значения, что и в массиве В. Однако над массивами не определены операции отношения. Нельзя, например, записать (if a=b then).

Сравнить два массива можно поэлементно.

25. Правила записи программного модуля.

МОДУЛИ

Модуль - независимая часть программы, которая описывает абстрактное действие и к которому можно обращаться по имени. Структура модуля:

{<Абстрактное действие >}

<Заголовок>

<Блок> // <Блок> ::=<Раздел описаний>

<Составной оператор>

При проектировании используется 2 типа модуля: главный модуль и процедурный модуль (процедура). Структура главного модуля (с главного модуля начинается выполнение программы):

{Цель программы}

Program <имя> (<имена файлов>); //Перечислены имена файлов с входными и выходными данными программы.

Раздел описаний //Должен содержать определение типов входных, выходных данных задачи.

begin

Главный алгоритм

end.

Процедура - это вспомогательный алгоритм, который описывает некоторое абстрактное действие и к которому можно обращаться по имени.

Аппарат процедур в языках программирования состоит из двух частей: описание процедуры и вызов процедуры.

Описание процедуры (процедура) - это фрагмент программы, оформленный по определенным правилам и имеющий имя, по которому его можно вызвать.

Структура процедурного модуля (описание процедуры) (Выполняется процедура только при выполнении оператора процедуры, вызове ее из другого модуля):

{Цель, описание входных, выходных данных}

Procedure <имя> (<описание параметров>); //Содержит описания типов входных выходных данных процедуры.

Раздел описаний //Содержит описания внутренних данных процедуры.

begin

Алгоритм

end.

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

<Описание входных формальных параметров>:=<список описаний переменных>

<Описание выходных формальных параметров>:=var<список описаний переменных>

В языке Паскаль существует два вида процедур: процедуры общего вида и функции. Результатом вычисления процедуры общего вида могут быть несколько переменных, как скалярного, так и структурного типа. Функция может вычислять только одно значение скалярного типа. Формальные параметры функции могут быть только аргументами (входными данными функции).

{Цель, описание входных, выходных данных}

Function <имя> (<описание параметров>): <тип>;

Раздел описаний

begin

Алгоритм //Должен содержать оператор, который присваивает результат имени функции.

end.

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

Среди входных параметров процедуры может быть формальное имя функции (процедуры). Для описания типа этой функции в языке Турбо Паскаль существует

процедурный тип, который описывает заголовок этой формальной функции (процедуры).

Дпя того чтобы установилась такая связь формального и фактического процедурного параметра, необходимо перед описанием функции вставить директиву компилятора {$F+}. Параметры, предаваемые процедуре при вызове, называются фактическими параметрами.

Вызов процедуры включает следующие шаги:

- среди описаний процедур ищется процедура с именем <имя процедуры>;

- вместо формальных параметров подставляются (передаются) соответствуют фактические параметры;

- выполняется модифицированное тело процедуры;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]