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

Лабораторная работа №2 Программирование с использованием подпрограмм

Продолжительность работы – 2 часа

Цель работы: ознакомление и приобретение основных навыков работы с инструментальной средой Delphi и навыков программирования с применением подпрограмм-процедур и подпрограмм-функций.

Программа работы

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

2. Отладить программу индивидуального задания, используя изученные возможности отладчика в пошаговом режиме отладки.

Контрольные вопросы

  1. Как обеспечить трассировку с заходом в подпрограммы?

  2. Чем отличается обращение к подпрограмме-процедуре от обращения к подпрограмме-функции?

  3. Чем отличаются заголовки подпрограмм при использовании параметра–значение, параметра–переменная, параметра–константа?

  4. Как выполняются подпрограммы?

  5. Какова область действия переменных?

  6. Что такое локальные и глобальные переменные?

  7. Чем отличаются заголовки подпрограммы-процедуры и подпрограммы-функции?

  8. Как осуществляется обмен данными, если у подпрограммы отсутствуют параметры?

  9. Чем отличаются формальные и фактические параметры?

  10. По каким позициям должны совпадать формальные и фактические параметры?

Методические указания

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

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

Описание процедуры имеет следующую структуру:

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

const Описание локальных

type констант, типов и переменных

var

procedure Описание внутренних процедур

function и функций

begin

<Операторы>

end;

Описание функции имеет следующую структуру:

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

constОписание локальных

typeконстант, типов и переменных

var

procedure Описание внутренних процедур

functionи функций

begin

Операторы, среди которых хотя бы один, который

присваивает имени функции значение результата

end;

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

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

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

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

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

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

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

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

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