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