Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Процедуры и функции



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

Процедура представляет собой отдельную часть программы, которая имеет своё имя.

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

Описать программу - это значит указать ее заголовок и тело. В заголовке объявляют имя подпрограммы и формальные параметры. Для функции еще указывается тип возвращаемого ею результата. За заголовком следует тело подпрограммы, которое состоит из раздела описаний и раздела исполняемых операторов.

Заголовок процедуры имеет вид:

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; Прочитано: 206 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...