Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфа 2сем..docx
Скачиваний:
9
Добавлен:
23.09.2019
Размер:
98.9 Кб
Скачать

1. Пошаговое проектирование алгоритмов и программ (методы “сверху-вниз”, “снизу-вверх”, комбинированный)

В пошаговом проектировании алгоритмов выделяют методы нисходящего и восходящего проектирования. Основным является метод нисходящего проектирования. В основу данного метода положена идея разделения исходной задачи на подзадачи. Каждая подзадача в свою очередь разделяется на ещё более простые подзадачи. И так далее пока каждая подзадача не будет раскрыта набором базовых управляющих структур.

При разделении задачи на подзадачи важно:

Чётко поставить очередную подзадачу

Тщательно специфицировать данные на очередном уровне детализации алгоритма.

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

Под процедурой понимают вспомогательный алгоритм, который описывает типовое, укрупнённое, функционально-завершённое действие.

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

Операторы ввода/вывода данных отсутствуют.

3. Преимущества и недостатки программ с процедурами.

Преимущества такой структуры программы:

Повышение наглядности программы, а часто и сокращение её длины (лишь в случае оформления в виде процедур повторяющихся фрагментов задачи)

Упрощение разработки программы за счёт разделения труда между несколькими её разработчиками, и как следствие этого – сокращение времени разработки программы.

Возможность использовать уже существующего фонда типовых алгоритмов (программ), и как следствие этого – сокращение времени разработки и повышение качества разработанной программы за счёт включения в её состав готовых, хорошо отлаженных фрагментов.

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

Недостатки процедурного программирования:

Увеличение времени обработки программ с процедурами.

Увеличение длины программы и бόльшие требуемые ресурсы памяти, если в программе нет повторяющихся фрагментов задачи.

4. Подпрограммы в Паскале. Подпрограммы-процедуры и подпрограммы-функции.

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

В Паскале имеется две разновидности подпрограмм:

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

PROCEDURE <имя процедуры> (<список формальных параметров>)

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

Есть два отличия от процедуры общего назначения:

Запись заголовка: Function <имя функции> (<список формальных параметров>):<имя типа функции>;

В разделе операторов блока функций хотя бы один раз должно быть присвоено значение т.е. в разделе операторов должен быть записан хотя бы 1 оператор присваивания вида <имя функции>:=<значение выходных данных>.

Функции в отличие от процедур общего назначения позволяют вычислить только одно единственное выходное (результирующее) значение.

5. Формальные и фактические параметры подпрограмм Паскаля.

Формальные параметры подпрограммы указывают, с какими параметрами следует обращаться к этой подпрограмме (количество параметров, их последовательность, типы). Они задаются в заголовке подпрограммы в виде списка формальных параметров, разбитого на группы, разделенные точками с запятыми. В группу формальных параметров включаются однотипные параметры одной категории.

Все формальные параметры можно разбить на четыре категории:

параметры-значения (эти параметры в основной программе подпрограммой не меняются);

параметры-переменные (эти параметры подпрограмма может изменить в основной программе);

параметры-константы (используются только в версии 7.0);

параметры-процедуры и параметры-функции (т. е. процедурного типа).

Для каждого формального параметра следует указать имя и, как правило, тип, а в случае параметра-переменной или параметра-константы - его категорию. Имена параметров могут быть любыми, в том числе и совпадать с именами объектов программы. Необходимо лишь помнить, что в этом случае параметр основной программы с таким именем становится недоступным для непосредственного использования подпрограммой. Тип формального параметра может быть практически любым, однако в заголовке подпрограммы нельзя вводить новый тип. Например, нельзя писать

function Max(A: arrayt1..100] of Real): Real;

Чтобы правильно записать этот заголовок, следует в основной программе ввести тип-массив, а затем использовать его в заголовке:

type tArr = arrayt1..100] of Real; function Max(A: tArr): Real;

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

6. Формальные параметры подпрограмм Паскаля. Параметры-значения и параметры-переменные.

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

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

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

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

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

7. Обработка в подпрограммах Турбо Паскаля одномерных массивов с регулируемыми размерами ( Использование нетипизированных формальных параметров и преобразования типов).

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

8. Процедуры и функции как параметры подпрограмм в Турбо Паскале. Процедурный тип в Турбо Паскале.

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

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

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

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

В Turbo Pascal процедуры и функции можно рассматривать как некоторые параметры и можно использовать переменные, принимающие значение процедуры или функции. С этой целью вводятся процедурные типы, которые указывают, какой вид подпрограммы (процедуру или функцию) можно использовать в качестве параметра и с какими параметрами должны быть эти подпрограммы.

Объявление процедурного типа похоже на заголовок подпрограммы. Пишется слово procedure или function, за которым в круглых скобках записывается список формальных параметров; для функции после списка формальных параметров через двоеточие указывается тип функции. В отличие от заголовка подпрограммы здесь не указывается имя подпрограммы.

Процедурные переменные можно использовать так же, как и переменные других типов: в выражениях (если эта переменная - функция), в виде оператора (если эта переменная - процедура), как компонента другой более сложной переменной, как передаваемый в подпрограмму параметр. Идея единства данных и подпрограмм получила дальнейшее развитие в объектно-ориентированном программировании.

9. Общая классификация типов в Турбо Паскале.

Среди типов, используемых в языке, есть стандартные типы, то есть заранее предопределённые, не требующие предварительного описания в программе, и нестандартные типы, определённые самим программистом.

Все другие типы данных должны быть описаны в программе со служебным словом TYPE.

TYPE <имя типа>=<определение типа>

10. Структурированные типы в Турбо Паскале, их сравнительная характеристика.

Любой из структурированных типов характеризуется множественностью образующих этот тип элементов, т.е. переменная или константа структурированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложености типов. В Турбо Паскале допускается произвольная глубина вложености типов, однако суммарная длина любого из них во внутреннем представлении не должна превышать 65520 байт.

Структурированные типы данных определяют наборы однотипных или разнотипных компонент. Типы компонент образуются из других типов (простых, структурированных, указателей и т. д.) данных.

В языке Паскаль существуют следующие структурированные типы.

тип-массив;

тип-запись;

тип-множество;

тип-файл.

Тип-строка.