- •Министерство образования Российской Федерации
- •Информатика
- •Самара 1999
- •Компоненты
- •1. Полоса меню и подменю.
- •1.1. Выбор команд меню с помощью клавиш.
- •1.2. Выбор команд меню с помощью мышки.
- •Горячие клавиши меню
- •1.3. Сокращения
- •Общие горячие клавиши
- •Горячие клавиши редактирования
- •Горячие клавиши управления окнами
- •Горячие клавиши встроенной справочной информации
- •Горячие клавиши отладки/запуска
- •2. Окна Turbo Pascal
- •2.1. Управление окнами
- •2.2. Строка статуса
- •3. Диалоговые окна
- •3.1. Зависимые и независимые кнопки
- •3.2. Окна ввода и списки
- •4. Создание Вашей первой программы
- •4.1. Анализ Вашей первой программы
- •4.2. Сохранение Вашей первой программы
- •4.3. Компиляция Вашей первой программы
- •4.4. Выполнение Вашей первой программы
- •4.5. Проверка файлов, которые Вы создали
- •5. Ваша вторая программа
- •5.1. Отладка Вашей второй программы
- •5.2. Использование окна Watch
- •5.3. Исправление Вашей второй программы
- •Программирование на turbo pascal
- •1. Элементы программирования
- •2.1. Целые числа
- •2.2. Вещественный тип данных
- •2.3. Символьные и строковые типы данных
- •2.4. Булевские данные
- •2.5. Тип массив
- •3. Идентификаторы
- •4. Операторы
- •4.1. Операторы присваивания
- •4.2. Арифметические операторы
- •4.3. Операторы отношений
- •6. Ввод
- •7. Условные операторы
- •7.1. Оператор If
- •7.2. Оператор выбора Case
- •8. Цикл.
- •8.1. Цикл while.
- •8.2. Цикл Repeat … Until
- •8.3. Цикл For
- •9. Процедуры и функции.
- •10. Структура программ.
- •11. Структура процедуры и функции.
- •12. Пример программы.
- •13. Комментарии.
- •Контрольные задания Вариант №1
- •Вариант№2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
11. Структура процедуры и функции.
Процедуры и функции, известные под общим именем как подпрограммы могут быть описаны в любом месте программы, но до тела главной программы. Формат процедур:
Procedure имя процедуры (параметры);
Label
Метки;
Const
Объявление констант;
Type
Объявление типов данных;
Var
Объявление переменных;
Procedure, function;
Begin
Тело главной процедуры;
End.
Функции имеют такой же формат, как и процедуры, только они начинаются с заголовка function и заканчиваются типом данных возвращаемого значения:
Function имя функции (параметры): тип данных;
Имеются только два различия между программами, процедурами и функциями:
процедуры и функции имеют заголовок procedure или function, соответственно, а не program;
процедуры и функции заканчиваются точкой с запятой (;), а не точкой (.).
Процедуры и функции могут иметь описание своих констант, типов данных, переменных и свои процедуры и функции. Но все эти элементы могут быть использованы только в тех процедурах и функциях, где они объявлены.
12. Пример программы.
Рассмотрим версию программы DORATIO, в которой используются процедура получения двух значений и функция, определяющая их отношение:
Program DoRatio;
Var
A, B: Integer;
Ratio: Real;
Procedure GetData (var X, Y: Integer);
Begin
Writeln (‘Введите два числа:’);
Readln (X, Y);
End;
Function GetRatio (I, J: Real);
Begin
GetRatio := I / J;
End;
Begin
GetData (A, B);
Ratio:= GetRatio (A, B);
Writeln (‘Отношение равно’, Ratio);
End.
Это, конечно, не улучшение первоначальной программы, так как она имеет большой размер и медленнее выполняется. Но она показывает как используются и работают процедуры и функции.
После компиляции и запуска программы первым выполняется оператор GetData (A, B). Этот тип оператора известен как вызов процедуры. При обработке вызова выполняются операторы в GetData, при этом X и Y (формальные параметры) заменяются на А и В (фактические параметры). Ключевое слово var перед X и Y в операторе вызова GetData говорит о том, что фактические переменные должны быть переменными и что значения переменных могут быть известны и возвращены вызывающей программе. При завершении работы GetData управление возвращается в главную программу на опрератор, следующий за вызовом GetData.
Следующий оператор – вызов функции GetRatio. Отметим некоторые отличия. Во-первых, GetRatio возвращает значение, которое должно быть использовано; в этом случае оно присваивается Ratio. Во-вторых, значение присваивается GetRatio в главной программе, этим функция определяет, какое значение возвращается. В-третьих, нет ключевого слова var перед формальными параметрами I и J. Это означает, что они могут быть любыми целочисленными выражениями, такими как Ratio:= GetRatio (A+B, 300); и что если даже их значения будут изменены в функции, то новые значения не возвратятся обратно в вызывающую программу. Кстати, это не является отличием процедуры от функции. Можно использовать оба типа параметров для обоих типов программ.
