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

Содержание

Слайд 2

Вспомогательный алгоритм - подпрограмма

Подпрограммы применяются когда:
часть алгоритма неоднократно повторяется в программе;
можно использовать

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

Слайд 3

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

Процедура( функция) представляет собой последовательность операторов, которая имеет имя, список

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

Слайд 4

Описание процедур и функций

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

Описание процедур и функций Все процедуры или функции должны быть описаны в
описаний основной программы.

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

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

Слайд 5

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

Список формальных параметров состоит из одной или нескольких секций,

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

Слайд 6

Раздел описаний локальных параметров

Раздел описаний процедуры или функции устроен так же, как

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

Слайд 7

Локальные и глобальные параметры

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

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

Слайд 8

Решение задач с использованием подпрограмм

Заданы координаты вершин двух треугольников на плоскости. Определить

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

Дано:
Координаты ΔABC
(Xa, Ya) (Xb,Yb) (Xc,Yc)
Координаты ΔDEF
(Xd, Yd) (Xe,Ye) (Xf,Yf)
Найти:
Smax=max(Sabc,Sdef)

Слайд 9

Формулы для решения задачи

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

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

Слайд 10

Схема программы

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

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

Слайд 11

program input;
var x1,y1,x2,y2,x3,y3:real;
begin
writeln ('--------------------------');
writeln ('ввод координат вершин треугольника');

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;

Слайд 12

Функция расчета длины отрезка

function dline (var x1,y1,x2,y2:real):real;
begin
dline:=sqrt(sqr(x2-x1)+sqr(y2-y1));
end;

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

Слайд 13

Функция расчета площади треугольника по формуле Герона

function geron (var a,b,c:real):real;
var p:real;

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

Формальные параметры функции и их тип

Локальный параметр и его тип

Тип функции

Имя функции

Слайд 14

Основная программа

begin
input (xa,ya,xb,yb,xc,yc); {вызов процедуры}
input (xd,yd,xe,ye,xf,yf);
a:=dline(xb,yb,xc,yc); {вызов функции}

Основная программа 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.

Слайд 15

Окончательный текст программы

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

Окончательный текст программы 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
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.

Слайд 16

Тестовое задание и результаты теста

ΔABC
A(0,0)
B(-1,1)
C(1,1)
Sabc=1
ΔDEF
D(-1,1)
E(1,1)
F(1,-1)
Sdef=2

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

Слайд 17

Задание на самоподготовку

1. Составить программу для вычисления высот треугольника со сторонами а,

Задание на самоподготовку 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

Имя файла: Язык-программирования-Pascal-Процедуры-и-функции-А.-Жидков.pptx
Количество просмотров: 955
Количество скачиваний: 7