Язык программирования Pascal Процедуры и функции А. Жидков.

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



Advertisements
Похожие презентации
Подпрограммы в Паскале.
Advertisements

Функции и процедуры Инструмент структурирования программ Два типа подпрограмм Описание Локальные и глобальные переменные Параметры: формальные и фактические.
Понятие подпрограмм. Подпрограммы в языке Паскаль.
Все процедуры и функции делятся на стандартные встроенные определенные пользователем. Встроенные и стандартные вызываются без предварительного описания.
Языки и методы программирования Преподаватель – доцент каф. ИТиМПИ Кузнецова Е.М. Лекция 5.
Подпрограмма – это самостоятельная часть программы, реализующая определенный алгоритм.
Функции в Паскале Подпрограммы в Паскале. Подпрограмма - автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из.
Подпрограммы: процедуры и функции Информатика. 1. Подпрограммы При решении различных задач часто возникает необходимость проводить вычисления по одним.
Процедуры и функции Вербицкая Ольга Владимировна, Заозерная школа 16.
© М.Е.Макарова
Подпрограмма Подпрограмма - именованная часть программы к которой можно обращаться неоднократно по ее имени.
Подпрограммы 1.Принцип модульности 2.Область действия переменных 3.Параметры подпрограмм 4.Модули.
Подпрограммы в Паскале Подпрограммы в Паскале (Технология нисходящего программирования)
Процедуры и функции в Паскале. Рекурсия. Подпрограммы Часто в задаче требуется повторить определенную последовательность операторов в разных частях программы.
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ Паскаль НАЧАЛА ПРОГРАММИРОВАНИЯ.
Функции. Функция- это подпрограмма, которая вычисляет и возвращает некоторое значение. Функции описываются в разделе описаний следующим образом: Function.
Программа имеет заголовок следующего вида Program имя ; Имя - это имя программы. Идентификатор имени имеет не более семи символов. Имя начинается с буквы.
program и мя п рограммы ; var и мя п еременной : т ип ; begin операторы end. - Имя программы - Раздел описания переменных - Раздел операторов.
Что такое структурный подход в программировании? Как он реализуется в ЯП Паскаль? Что такое процедура? Кто дает название процедуре? Где записывается процедура?
Программирование на языке Паскаль Тема 13. Процедуры Тема 14. Функции.
Транксрипт:

Язык программирования Pascal Процедуры и функции А. Жидков

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

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

Описание процедур и функций Все процедуры или функции должны быть описаны в разделе описаний основной программы. Описание процедуры имеет вид: procedure имя (список формальных параметров); раздел описаний локальных параметров begin операторы тела процедуры end; Описание функции имеет вид: function имя (список формальных параметров): тип значения функции; раздел описаний локальных параметров begin операторы тела функции end;

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

Раздел описаний локальных параметров 1.Раздел описаний процедуры или функции устроен так же, как и раздел описаний программы. 2.Здесь описываются локальные переменные, константы и вложенные процедуры и функции. 3.Все такие локальные объекты доступны лишь внутри данной подпрограммы и не видны извне.

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

Решение задач с использованием подпрограмм Заданы координаты вершин двух треугольников на плоскости. Определить какой из треугольников имеет большую площадь. Дано: Координаты ABC (Xa, Ya) (Xb,Yb) (Xc,Yc) Координаты DEF (Xd, Yd) (Xe,Ye) (Xf,Yf) Найти: Smax=max(Sabc,Sdef)

Формулы для решения задачи Решение: Формула длинны отрезка по координатам концов Формула площади треугольника по трем сторонам (Формула Герона)

Схема программы Предлагается Разделить алгоритм на процедуры: –Ввод координат вершин треугольника –Определение длины сторон –Определение площади треугольника. начало Ввод вершин треугольника Длина стороны треугольника Площадь треугольника по формуле Герона Sabc

program input; var x1,y1,x2,y2,x3,y3:real; begin writeln (' '); writeln ('ввод координат вершин треугольника'); writeln ('введите координаты 1 вершины'); write ('x1='); read (x1); write ('y1='); read (y1); writeln ('введите координаты 2 вершины'); write ('x2='); read (x2); write ('y2='); read (y2); writeln ('введите координаты 3 вершины'); write ('x3='); read (x3); write ('y3='); read (y3); end; Процедура ввода данных procedure input (var x1,y1,x2,y2,x3,y3:real); begin writeln (' '); writeln ('ввод координат вершин треугольника'); writeln ('введите координаты 1 вершины'); write ('x1='); read (x1); write ('y1='); read (y1); writeln ('введите координаты 2 вершины'); write ('x2='); read (x2); write ('y2='); read (y2); writeln ('введите координаты 3 вершины'); write ('x3='); read (x3); write ('y3='); read (y3); end;

Функция расчета длины отрезка function dline (var x1,y1,x2,y2:real):real; begin dline:=sqrt(sqr(x2-x1)+sqr(y2-y1)); end;

Функция расчета площади треугольника по формуле Герона function geron (var a,b,c:real):real; var p:real; begin p:=(a+b+c)/2; geron:=sqrt(abs(p*(p-a)*(p-b)*(p-c))); end; Формальные параметры функции и их тип Локальный параметр и его тип Тип функции Имя функции

Основная программа begin input (xa,ya,xb,yb,xc,yc); {вызов процедуры} input (xd,yd,xe,ye,xf,yf); a:=dline(xb,yb,xc,yc); {вызов функции} b:=dline(xa,ya,xc,yc); c:=dline(xb,yb,xa,ya); d:=dline(xe,ye,xf,yf); e:=dline(xd,yd,xf,yf); f:=dline(xd,yd,xe,ye); Sabc:=geron(a,b,c); {вызов функции} Sdef:=geron(d,e,f); writeln ('Sabc=',Sabc,'Sdef=',Sdef); Smax:=Sabc; if Sdef>Sabc then Smax:=Sdef; writeln ('Smax=',Smax); end.

Окончательный текст программы program Smaxtr; Var xa,ya,xb,yb,xc,yc,a,b,c,Sabc: real; xd,yd,xe,ye,xf,yf,d,e,f,Sdef: real; Smax:real; procedure input (var x1,y1,x2,y2,x3,y3:real); begin writeln ('ввод координат вершин треугольника'); writeln ('введите координаты 1 вершины'); write ('x1='); read (x1); write ('y1='); read (y1); writeln ('введите координаты 2 вершины'); write ('x2='); read (x2); write ('y2='); read (y2); writeln ('введите координаты 3 вершины'); write ('x3='); read (x3); write ('y3='); read (y3); end; function dline (var x1,y1,x2,y2:real):real; begin dline:=sqrt(sqr(x2-x1)+sqr(y2-y1)); end; function geron (var a,b,c:real):real; var p:real; begin p:=(a+b+c)/2; geron:=sqrt(abs(p*(p-a)*(p-b)*(p-c))); end; begin input (xa,ya,xb,yb,xc,yc); input (xd,yd,xe,ye,xf,yf); a:=dline(xb,yb,xc,yc); b:=dline(xa,ya,xc,yc); c:=dline(xb,yb,xa,ya); d:=dline(xe,ye,xf,yf); e:=dline(xd,yd,xf,yf); f:=dline(xd,yd,xe,ye); Sabc:=geron(a,b,c); Sdef:=geron(d,e,f); writeln ('Sabc=',Sabc,'Sdef=',Sdef); Smax:=Sabc; if Sdef>Sabc then Smax:=Sdef; writeln ('Smax=',Smax); end.

Тестовое задание и результаты теста ΔABC A(0,0) B(-1,1) C(1,1) Sabc=1 ΔDEF D(-1,1) E(1,1) F(1,-1) Sdef=2 х у A B C D E F

Задание на самоподготовку 1. Составить программу для вычисления высот треугольника со сторонами а, b, c по формулам: 2. Составить подпрограмму вычисления площади трапеции по основаниям и высоте. Используя эту подпрограмму, найти площади заданных трапеций: a=6,5 b=3,4 h=2,5 a=13,4 b=8,3 h=5,7 a=15,5 b=8,4 h=6,5

Решение задачи на самоподготовку 2. Составить подпрограмму вычисления площади трапеции по основаниям и высоте. Используя эту подпрограмму, найти площади заданных трапеций: 1. a=6,5 b=3,4 h=2,5 2. a=13,4 b=8,3 h=5,7 3. a=15,5 b=8,4 h=6,5 PROGRAM Trapec; Const N=3; var i:integer; a,b,h,s: array[1..N] of real; Procedure STR(a, b, h: real ; var s: real); begin s:=(a+b)/2*h; end; BEGIN for i:=1 to N Do begin writeln('a=',' b=',' h='); readln(a[i],b[i],h[i]); end; for i:=1 to N Do begin STR (a[i],b[i],h[i],s[i]); Writeln (' a=', a[i]:6:2,' b=', b[i]:6:2,' h=', h[i]:6:2); Writeln ( ' s=', s [i]:7:3); end; END.