Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЕлизавета Ртищева
1 Подпрограммы: процедуры и функции Информатика
2 1. Подпрограммы При решении различных задач часто возникает необходимость проводить вычисления по одним и тем же алгоритмам, но с различными данными в одной программе. Такие вычисления целесообразно оформить в виде отдельных подпрограмм. Подпрограммы являются основой модульного программирования. В языке Паскаль имеется две разновидности подпрограмм: процедуры и функции.
3 Структура любой подпрограммы аналогична структуре всей программы. Текст подпрограммы должен быть помещен в тексте программы непосредственно перед основным блоком (после объявления констант, типов и переменных). Все параметры, которые используются в подпрограмме, можно разделить на две категории: глобальные и локальные.
4 Глобальные – это параметры, объявленные в разделе описаний основной программы, они действуют как в основной программе, так и в любой ее подпрограмме. Локальные – это параметры, объявленные внутри подпрограммы и доступны только ей самой. Они недоступны для операторов основной программы и других подпрограмм. Использование подпрограмм связанно с двумя этапами: описание подпрограмм; обращение к подпрограмме.
5 2. Процедуры Процедуры используются в том случае, если подпрограмма имеет несколько результатов вычислений или результат является многомерной величиной, или не имеет результата. Описание процедуры имеет вид: Procedure (формальные параметры); label ; const ; type ; var Begin End; и помещается в основной программе в разделе описаний.
6 Формальные параметры представляют собой список переменных с указанием их типа. Эти переменные не описываются в разделе описания процедур, используются только в теле процедуры и локальны по отношению к ней. Формальные параметры подразделяются: 1) на параметры–значения – это входные данные для работы процедур и функций, в списке формальных параметров они описываются в виде (X1:T1; X2:T2;...) или (Х1,Х2:Т;...), где Хi– имена параметров; Тi – тип параметров. Например: (а,b:real; c:integer;...)
7 2) параметры–переменные – это, как правило, выходные данные процедуры (результаты выполнения процедуры), которые передаются в основную программу. Описание выходных параметров следующее: (... var x,s:real; var y:integer)
8 В целом заголовок процедуры с описанием формальных параметров может быть таким: Procedure Prim (a,b:real; c:integer; var x,s: real; var y:integer). Процедура не может выполняться сама, ее необходимо вызвать из основной программы или другой подпрограммы по имени с указанием в скобках фактических параметров.
9 Обращение к процедуре: (фактические параметры). Например: Prim (a,b,c,x,y). При обращении к процедуре формальные параметры заменяются фактическими. Следует запомнить: Между формальными и фактическими параметрами должно быть соответствие по количеству, порядку следования и типу данных.
10 Входные фактические параметры – это те, которые передаются в процедуру. В приведенном выше примере- это параметры а, b, c. Входными параметрами могут быть: константы, переменные, выражения. Выходными фактическими параметрами (которые получают значения из процедуры) могут быть только переменные (это параметры х, y). Имена соответствующих формальных и фактических параметров могут быть одинаковыми или разными.
11 При использовании в качестве параметров процедур сложного типа данных (массивы, множества, записи) в основной программе необходимо описать имя типа этих данных, а затем указать их в списке формальных параметров процедуры. Пример. Вычислить расход тепла на нагрев стеклобоя при варке стекла Q = Cp * B(T м – 25)/100, где B – количество стекломассы из боя; Т м – максимальная температура варки; Ср – средняя удельная теплоемкость стекломассы, равная где Р i – содержание окислов в стекле, i = 1, 5; А i, C i – коэффициенты Шарпа и Гинтера, i = 1,5.
12 Программа. 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;varS1,S2:real); var i:integer; Begin S1:=0.0; S2:=0.0; for i:=1 to 5 do begin S1:=S1+P[i]*A[i]*Tм; S2:=S2+P[i]*C[i]; end;
13 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/( *Tм+1); Q:=Cp*B*(Tм–25)/100; writeln (Cp=,Cp:10:4, Q=,Q:10:4); End.
14 3. Функции Подпрограмма функция предназначена для вычисления какого–либо одного параметра, значение которого присваивается имени функции. Общая структура записи функции имеет вид: Function (формальные параметры): ; Begin ; end;
15 Формальные параметры – это параметры, необходимые для выполнения данной функции, т.е. – исходные данные. Тип функции может быть только скалярным: real, integer, char, boolean, string. Особенности функций следующие: функция имеет только один результат выполнения (однако может иметь несколько входных параметров); результат выполнения функции должен быть обозначен именем функции, т.е. внутри подпрограммы–функции должна иметь место конструкция следующего вида: Имя функции := значение (результат вычислений).
16 Обращение к функции из основной программы или другой подпрограммы осуществляется непосредственно в выражении с указанием имени функции со списком фактических параметров: := (список фактических параметров). Порядок обращения к подпрограмме–функции следующий. Если при компиляции программы встречается имя подпрограммы (процедуры или функции), это имя отыскивается в описании.
17 В описании подпрограммы формальным параметрам присваиваются соответствующие фактические. Формальные параметры заменяются фактическими, после чего выполняется тело подпрограммы. Результат выполнения функции присваивается имени функции и передается в основную программу. Следует запомнить: Так как происходит замена формальных параметров на фактическиие, то число, тип и порядок следования формальных и фактических параметров должен обязательно совпадать.
18 Пример. Составить программу вычисления затрат тепла на образование силикатов при варке стекла по выражению, где В j – массив значений стеклобоя, j = 1,2, … 5; Q i – удельный расход тепла, i = 1,2, … 6; P i – концентрация реагентов в шихте, i = 1,2, … 6. Program Teplo; type mas1=array[1..5]of real; mas2=array[1..6]of real; var QS,B:mas1; Q,P:mas2; i,j:integer; Function Sum(Q,P:mas2):real; var i:integer; s:real;
19 Begin s:=0.0; for i:=1 to 5 do s:=s+Q[i]*P[i]; Sum:=s; end; {Основная программа} Begin for i:=1 to 6 do readln (Q[i],P[i]); for j:=1 to 5 do readln (B[j]); for j:=1 to 6 do begin {Обращение к функции Sum(Q,P)} QS[j]:=(100–B[j])*Sum(Q,P)/100; writeln (QS, j, =,QS[j]:10:2); end; End.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.