![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Процедуры и функции представляют собой важный инструмент ТР, позволяющий писать хорошо структурированные программы.
Процедура представляет собой отдельную часть программы, которая имеет своё имя.
Процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные определенным образом и снабженные именем.
Описать программу - это значит указать ее заголовок и тело. В заголовке объявляют имя подпрограммы и формальные параметры. Для функции еще указывается тип возвращаемого ею результата. За заголовком следует тело подпрограммы, которое состоит из раздела описаний и раздела исполняемых операторов.
Заголовок процедуры имеет вид:
PROCEDURE <имя>[(< сп. ф. п. >)];
Заголовок функции:
FUNCTION<имя> [(< сп. ф. п.>)]: <тип>,
где <имя> - имя подпрограммы;
<сп. ф. п.> - список формальных параметров;
<тип> - тип возвращаемого функцией результата;
Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены их имена и тип:
PROCEDURE SB (a: real; b: integer; c: char);
Операторы тела подпрограммы рассматривают список формальных параметров как своеобразное расширение раздела описаний: все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы.
Вызов и выполнение осуществляется при помощи оператора процедуры:
<имя процедуры>(<список фактических параметров>);
Между формальными и фактическими параметрами должно быть полное соответствие, т.е. должно быть одинаковое количество, порядок их следования должен быть один и тот же, тип каждого фактического параметра должен совпадать с типом соответствующего ему формального параметра. Определение формального параметра тем или иным способом существенно только для вызывающей программы: если формальный параметр объявлен как параметр-переменная, то при вызове подпрограммы ему должен соответствовать фактический параметр в виде переменной нужного типа; если формальный параметр объявлен как параметр-значение, то при вызове ему может соответствовать произвольное выражение. Контроль над неукоснительным соблюдением этого правила осуществляется компилятором языка Turbo Pascal.
Расмотрим взаимодействие основной программы с процедурами и функциями.
Program
Const
MWSt = 14.0;
Var
Value, cost:real;
Procedure Input_number (var Input_value:real);
{данная процедура решает задачу ввода стоимости товара после предварительного запроса }
Begin
Write(‘Ведите, велечину стоимости товара: ’)
Readln (Input_value);
End;
Prodcedure Calulation_cost (Cost,Value:real);
{данная процедура позволяет вычислить велечину цены,учитывая при этом велечину налога}
Begin
Cost:=(1.0+MWSt/100.0)*Value;
End;
Procedure Output_result (Input_value:real);
{данная процедура позволяет вывести на экран результаты расчетов}
Begin
Writeln;{Оператор Writeln заданный без параметров,}
Writeln;{Переводит курсор на начало следующей строки}
Writeln(‘Расчетная цена с учетом’,MWSt:5:2,’% налога’,’составляет: ’,Cost:7:2,’ $.’);
End;
Begin {Основной блок программы}
Input_number (Value);
Calculation_cost (Cost,Value);
Output_result (Cost);
End.
На примере сложения двух чисел проиллюстрируем возможности ТП 7.0 по оформлению программ при помощи процедур и функций.
Program
{Программа демонстрирует различия между процедурами и функциями.}
Uses Crt;
Var
a,b,Sum_numbers: integer;
Prosedure Summing_up (Var sum: integer; a,b: integer);
Begin
Sum:= a + b;
End;
Function Sum(a,b: integer): integer;
Begin
Sum:= a + b;
End;
Begin
Clrscr;
a:= 12;
b:= 15;
{Сумма чисел с использованием процедуры}
Summing_up (Sum_numbers, a, b);
Writeln(‘Сумма чисел равна: ’,Sum_numbers);
{Сумма чисел с использовнием функции}
Sum_numbers:= Sum(a, b);
Writeln(‘Сумма чисел равна: ’,Sum_numbers);
Writeln(‘Сумма чисел равна: ’, Sum(a, b));
End.
Дата публикования: 2015-02-22; Прочитано: 224 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!