Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Функции. При решении различных задач часто возникает необходимость проводить вычисления по одним и тем же алгоритмам




Begin

Begin

Begin

Процедуры

Подпрограммы

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

В языке Паскаль имеется две разновидности подпрограмм: процедуры и функции.

Структура любой подпрограммы аналогична структуре всей программы. Текст подпрограммы должен быть помещен в тексте программы непосредственно перед основным блоком (после объявления констант, типов и переменных).

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

Глобальные – это параметры, объявленные в разделе описаний основной программы, они действуют как в основной программе, так и в любой ее подпрограмме.

Локальные – это параметры, объявленные внутри подпрограммы и доступны только ей самой. Они недоступны для операторов основной программы и других подпрограмм.

Использование подпрограмм связанно с двумя этапами:

· описание подпрограмм;

· обращение к подпрограмме.

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

Описание процедуры имеет вид:

 

Procedure <имя> (формальные параметры);

<раздел описаний>

label <список меток>;

const <список констант>;

type <список типов>;

var <список переменных>

<тело процедуры>

End;

и помещается в основной программе в разделе описаний.

Формальные параметры представляют собой список переменных с указанием их типа. Эти переменные не описываются в разделе описания процедур, используются только в теле процедуры и локальны по отношению к ней.

Формальные параметры подразделяются:

1) на параметры–значения – это входные данные для работы процедур и функций, в списке формальных параметров они описываются в виде

(X1:T1; X2:T2;...) или (Х1,Х2:Т;...),

где Хi– имена параметров; Тi – тип параметров.

Например:

(а,b:real; c:integer;...)

2) параметры–переменные – это, как правило, выходные данные процедуры (результаты выполнения процедуры), которые передаются в основную программу. Описание выходных параметров следующее:

(... var x,s:real; var y:integer)

В целом заголовок процедуры с описанием формальных параметров может быть таким:

Procedure Prim (a,b:real; c:integer;

var x,s: real; var y:integer).

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

Обращение к процедуре:

<имя процедуры> (фактические параметры).

 

Например:

Prim (a,b,c,x,y).

При обращении к процедуре формальные параметры заменяются на фактические.

Следует запомнить: Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и типу данных.

Входные фактические параметры – это те, которые передаются в процедуру. В приведенном выше примере- это параметры а, b, c.

Входными параметрами могут быть: константы, переменные, выражения.

Выходными фактическими параметрами (которые получают значения из процедуры) могут быть только переменные (это параметры х, y).

Имена соответствующих формальных и фактических параметров могут быть одинаковыми или разными.

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

Пример. Вычислить расход тепла на нагрев стеклобоя при варке стекла

Q = Cp * B(Tм – 25)/100,

где B – количество стекломассы из боя; Тм – максимальная температура варки; Ср – средняя удельная теплоемкость стекломассы, равная

,

где Рi – содержание окислов в стекле, i = 1, 5; Аi, Ci – коэффициенты Шарпа и Гинтера, i = 1,5.

 

Программа.

Program Steklo;

type mas= array [1..5] of real;

var P,A,C:mas;

Cp,S1,S2,B,Q,Tм:real;

i:integer;

Procedure Sum2(P,A,C:mas;Tм:real; var S1,S2:real);

var i:integer;

S1:=0.0; S2:=0.0;

for i:=1 to 5 do

S1:=S1+P[i]*A[i]*Tм;

S2:=S2+P[i]*C[i];

end;

end;

Begin {основная программа}

for i:=1 to 5 do

readln(P[i]);

for i:=1 to 5 do

readln(A[i],C[i]);

readln(Tм,B);

Sum2(P,A,C,Tм,S1,S2); {обращение к процедуре}

Cp:=(S1+S2)*4.19/(0.00146*Tм+1);

Q:=Cp*B*(Tм–25)/100;

writeln (’Cp=’,Cp:10:4,’ Q=’,Q:10:4);

End.


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

Общая структура записи функции имеет вид:

 

Function <имя> (формальные параметры): <тип функции>;

<Раздел описания локальных переменных, меток, констант>




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 356; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.