Продолжительность работы – 2 часа
Цель работы: ознакомление и приобретение основных навыков работы с инструментальной средой и навыков программирования с применением подпрограмм-процедур и подпрограмм-функций.
Программа работы
1. Ознакомиться с возможностями отладчика в пошаговом режиме с заходом в подпрограммы.
2. Составить текст программы, используя фрагменты программы из лабораторной работы №1 и №2, с обязательным применением типов пользователя, процедуры и функции, а также параметра-значение и параметра-переменная.
3. Отладить программу индивидуального задания, используя изученные возможности отладчика в пошаговом режиме отладки.
Контрольные вопросы
1. Как обеспечить трассировку с заходом в подпрограммы?
2. Чем отличается обращение к подпрограмме-процедуре от обращения к подпрограмме-функции?
3. Чем отличаются заголовки подпрограмм при использовании параметра–значение, параметра–переменная, параметра–константа?
4. Как выполняются подпрограммы?
5. Какова область действия переменных?
6. Что такое локальные и глобальные переменные?
7. Чем отличаются заголовки подпрограммы-процедуры и подпрограммы-функции?
8. Как осуществляется обмен данными, если у подпрограммы отсутствуют параметры?
9. Чем отличаются формальные и фактические параметры?
10. По каким позициям должны совпадать формальные и фактические параметры?
Методические указания
К п. 2. В программе используется проверка первого условия лабораторной №1 и вычисление по первой формуле. В остальных случаях первого условия решается задача второй лабораторной по обработке матрицы. Части программы (по согласованию с преподавателем) оформляются минимум одной подпрограммой- функцией и одной подпрограммой-процедурой с использованием обмена данными через параметры –значения и параметры-переменные.
Широкая возможность предоставлена программисту использовать типы пользователя. Частые ошибки возникают, когда вместо имени переменной в программе применяют тип, поэтому нужно их уметь различать по описанию. При программировании большого числа развилок следует применять оператор выбора. При этом следует соблюдать требования к совпадению типов ключа и констант выбора и к недопустимости одинаковых констант выбора.
Одно из направлений модульного программирования - оформление части программы в виде подпрограммы. Обычно, если подпрограмма предназначена для вычисления одного значения, используют функции, в остальных случаях - процедуры. Следует различать и уметь программировать описание подпрограммы и обращение (вызов) к ней. Вызывают особые трудности и приводят к ошибкам вопросы передачи данных в подпрограмму и возврат результатов через параметры. Необходимо различать и уметь определять области действия глобальных и локальных переменных, особенно во вложенных подпрограммах.
Описание процедуры имеет следующую структуру:
Procedure <Имя> (<Список формальных параметров>);
const Описание локальных
type констант, типов и переменных
Var
procedure Описание внутренних процедур
function и функций
Begin
<Операторы>
end;
Описание функции имеет следующую структуру:
Function <Имя >(<Список формальных параметров>): < Тип результата>;
const Описание локальных
type констант, типов и переменных
Var
procedure Описание внутренних процедур
function и функций
Begin
Операторы, среди которых хотя бы один, который
присваивает имени функции значение результата
end;
Существуют понятия локальных и глобальных констант, типов и переменных. Поясним эти понятия на примере переменных. Переменные, описанные в основной программе, являются глобальными по отношению к процедурам и функциям, которые описаны позже этих переменных. Аналогично, переменные, описанные в процедурах и функциях, являются глобальными по отношению к внутренним процедурам и функциям, которые описаны позже. Остальные переменные называются локальными. Их область действия локализована, т.е. ограничена, той частью программы, где они описаны.
Исходные данные для работы можно передавать через глобальные переменные, а также через параметры. Параметры при вызове называются фактическими, а параметры в заголовке называются формальными.
При использовании подпрограмм необходимо соблюдать требования к параметрам. Формальные и фактические параметры должны совпадать по количеству, типу и порядку в списке. Значения фактических параметров при вызове подпрограмм могут передаваться формальным параметрам разными способами. Параметры–значения указываются в списке без служебных слов. Формальные параметры в этом случае принимают значения соответствующих им фактических. Поэтому изменение их значений в подпрограмме не влияет на значения соответствующих переменных в вызывающей программе.
Если перед списком формальных параметров стоит служебное слово Var, то они называются параметрами–переменными. В этом случае формальные параметры содержат ссылки (адреса) на фактические. При изменении их значений в подпрограмме будут изменяться и значения соответствующих переменных в вызывающей программе.
Параметры–константы передаются по ссылке как параметры–переменные, но изменение их внутри подпрограммы запрещено. Они описываются с помощью служебного слова Const.
При указании типов формальных параметров в заголовке подпрограмм необходимо использовать либо простые стандартные типы, либо ранее объявленные типы пользователя.