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

Презентация:



Advertisements
Похожие презентации
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Advertisements

Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Все процедуры и функции делятся на стандартные встроенные определенные пользователем. Встроенные и стандартные вызываются без предварительного описания.
© М.Е.Макарова
Подпрограмма Подпрограмма - именованная часть программы к которой можно обращаться неоднократно по ее имени.
Подпрограммы 1.Принцип модульности 2.Область действия переменных 3.Параметры подпрограмм 4.Модули.
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.
Подпрограмма – это самостоятельная часть программы, реализующая определенный алгоритм.
Учитель НСШ Кумакшев А.Н, учитель БСШ2 Вахмистров Г.Г. Элективный курс по информатике «Процедуры и функции на языке Pascal».
Понятие подпрограмм. Подпрограммы в языке Паскаль.
Подпрограммы в Паскале.
Модули Информатика. Наличие модулей в Turbo-Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки программ и данных.
1 ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ. ПОДПРОГРАММЫ И МОДУЛИ ПРИ РЕШЕНИИ ЗАДАЧ ХИМИЧЕСКОЙ ТЕХНОЛОГИИ. Лекция 2. Подпрограммы План 1.Процедуры и функции. 2.Описание.
Программирование на языке Паскаль Тема 13. Процедуры Тема 14. Функции.
МЕТОД ПОСЛЕДОВАТЕЛЬНОЙ ДЕТАЛИЗАЦИИ. ПРОЦЕДУРЫ И ФУНКЦИИ Урок 1.
Подпрограммы. Субкомпетенции: 1. Обработка данных с помощью стандартных подпрограмм и подпрограмм, определённых пользователем. 2. Организация передачи.
Функции и процедуры Инструмент структурирования программ Два типа подпрограмм Описание Локальные и глобальные переменные Параметры: формальные и фактические.
Транксрипт:

Подпрограммы: процедуры и функции Информатика

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

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

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

2. Процедуры Процедуры используются в том случае, если подпрограмма имеет несколько результатов вычислений или результат является многомерной величиной, или не имеет результата. Описание процедуры имеет вид: Procedure (формальные параметры); label ; const ; type ; var Begin 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, C i – коэффициенты Шарпа и Гинтера, 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;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;

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.

3. Функции Подпрограмма функция предназначена для вычисления какого–либо одного параметра, значение которого присваивается имени функции. Общая структура записи функции имеет вид: Function (формальные параметры): ; Begin ; end;

Формальные параметры – это параметры, необходимые для выполнения данной функции, т.е. – исходные данные. Тип функции может быть только скалярным: real, integer, char, boolean, string. Особенности функций следующие: функция имеет только один результат выполнения (однако может иметь несколько входных параметров); результат выполнения функции должен быть обозначен именем функции, т.е. внутри подпрограммы–функции должна иметь место конструкция следующего вида: Имя функции := значение (результат вычислений).

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

В описании подпрограммы формальным параметрам присваиваются соответствующие фактические. Формальные параметры заменяются фактическими, после чего выполняется тело подпрограммы. Результат выполнения функции присваивается имени функции и передается в основную программу. Следует запомнить: Так как происходит замена формальных параметров на фактическиие, то число, тип и порядок следования формальных и фактических параметров должен обязательно совпадать.

Пример. Составить программу вычисления затрат тепла на образование силикатов при варке стекла по выражению, где В 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;

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.