- •Часть I
- •1. Основы языка высокого уровня турбо pascal
- •1.1. Алфавит языка Pascal
- •1.2. Идентификаторы
- •1.3. Константы
- •1.4. Правила записи Pascal программ
- •1.5. Основные части Pascal программ
- •1.6. Стандартные типы данных Pascal
- •1.7. Составной оператор. Пустой оператор
- •1.7. Физический смысл имени переменной
- •1.8. Арифметическое выражение
- •1.9. Таблица арифметических функций языка Pascal
- •1.10. Правила составления и вычисления арифметических выражений
- •1.11. Оператор присваивания
- •1.12. Согласование типов данных.
- •1.13. Способы ввода данных
- •1.14. Операторы ввода - вывода
- •1.15. Форматирование вывода данных
- •2. Алгоритмизация
- •2.1. Классификация алгоритмов
- •2.2.Линейный вычислительный процесс
- •2.3. Способы описания алгоритмов
- •2.4. Блок - схемы алгоритмов. Правила составления
- •2.5. Символы блок-схем
- •2.6. Разветвляющийся вычислительный процесс
- •2.7. Логическое выражение
- •2.8. Оператор условного перехода
- •2.9. Блок-схема операторов условного перехода
- •2.10. Оператор-переключатель
- •2.11. Блок-схема переключателя
- •2.12. Циклический вычислительный процесс. Определения
- •2.13. Циклы с известным числом повторений
- •2.14. Блок-схема цикла с известным числом повторений.
- •2.15. Операторы итерационных циклов
- •2.15. Характерные приёмы программирования циклических вычислительных процессов
- •3. Массивы
- •3.1. Определения
- •3.2. Способы обработки одномерных массивов
- •3.3. Ввод - вывод одномерных массивов
- •3.4. Ввод-вывод матриц
- •4. Типы данных turbo-pascal
- •4.1. Простые типы
- •4.2. Целые типы Turbo - Pascal
- •4.3. Вещественные типы
- •4.4. Перечисляемый тип
- •5. Подрограммы
- •5.1. Подпрограмма типа function
- •5.2. Подпрограмма типа procedure
5.2. Подпрограмма типа procedure
При всей похожести, два вида подпрограмм Pascal'я имеют свои различия. Так, любой алгоритм, реализованный Function, можно записать как Procedure, но не наоборот. Function всегда имеет один результат. Procedure может иметь несколько результатов или не иметь их вообще. Function вызывается в основную программу как встроенная функция - в выражении записывается её имя и фактические аргументы, охваченные скобками. Для вызова Procedure используется самостоятельная командная строка, как у встроенных процедур Read и Write, где записывается имя процедуры и фактические параметры, охваченные скобками. Результатом работы Function неможет быть массив, множество или файл, а Procedure позволяет это делать.
Заголовок Procedure записывается так:
PROCEDURE <имя> [( V1 : < тип1 > [; V2 : < тип2 > ;...; ] [ VAR V3 : <тип3> [; V4 : <тип4> ;...; ]])];
где
PROCEDURE - слово, начинающее заголовок этого вида подпрограммы;
<имя> - название процедуры, составленное программистом по правилам составления идентификаторов;
V1,V2 - параметры - значения ( аргументы процедуры, через которые в процедуру из основной программы передаются значения, служащие исходными данными для расчётов). Они не должны менять своё значение в процедуре;
VAR - ключевое слово, разделяющее два типа параметров процедуры;
V3,V4 - параметры - переменные ( аргументы процедуры, через которые подпрограмма передаёт выработанные ей результаты в основную программу );
[ ] - указание на необязательность атрибута.
Пример PROCEDURE:
...........................................
PROCEDURE Sum ( A, B : Real; VAR S : Real);
Begin
S := A + B ;
End;
....
Здесь переменные A и B являются исходными данными для подпрограммы, а S - результатом. Поэтому перед S в описании стоит слово VAR.
Вызов такой процедуры производится по её имени с употреблением фактических параметров:
Program Proc_Sum;
Var X, Y, Z, T, S1, S2 : Real;
PROCEDURE Sum ( A, B : Real; VAR S : Real);
Begin
S := A + B ;
End;
BEGIN
Write ( ‘ Ввести исходные значения X, Y, Z, T = ‘);
Read ( x, y, z, t );
Sum ( x, y, s1 );
Sum ( z, t, s2 );
WriteLn ( ' Первая сумма = ‘, S1 );
WriteLn ( ' Вторая сумма = ‘, S2 );
END.