Процедуры и функции в Паскале

Содержание

Слайд 2

Назначение При разработке программы иногда появляются повторяемые группы действий или возникает

Назначение

При разработке программы иногда появляются повторяемые группы действий или возникает

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

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

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

Слайд 3

Разделы Описание Структура Переменные Примеры Задания Диктант Начало Выход

Разделы

Описание
Структура
Переменные
Примеры

Задания
Диктант
Начало
Выход

Слайд 4

Функция Это последовательность операторов, имеющая имя и результат Обрабатывает данные, предназначенные

Функция

Это последовательность операторов, имеющая имя и результат
Обрабатывает данные, предназначенные ей

из главной программы, и затем возвращает полученный результат
Функция называется с помощью указателя. Указатель- это имя функции, после которого в круглых скобках перечисляются аргументы функции.

Далее

Слайд 5

Функции Pascal можно разделить на три группы: стандартные функции (abs(x), sqrt(x),

Функции Pascal можно разделить на три группы:

стандартные функции (abs(x), sqrt(x), sqr(x),

sin(x), cos(x), и т.д.);
функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную);
библиотечные функции (стандартные библиотечные модули).

Меню

Слайд 6

Структура функции В разделе операторов должен находится, хотя бы один оператор, присваивающий имени функции значение. Меню

Структура функции

В разделе операторов должен находится, хотя бы один оператор, присваивающий

имени функции значение.

Меню

Слайд 7

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

Объявление переменных

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

операторам программы, а так же операторам процедур и функций.

Далее

Локальные переменные - переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.

Слайд 8

Пример: program primer1; var r, c, q : real; function inper

Пример:

program primer1;
var
r, c, q : real;

function inper ( a:

real; b: real) :real;

var
x,y: real;

begin
<операторы функции>;
end;
begin
(основная программа)
end.

Глобальные переменные

Локальные переменные

Назад

Слайд 9

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

Примеры:

Вычисление функции

Вычисление Вычисление nВычисление n-й степени числа.

Вычисление скорости

свободного
падения тела.

Меню

Слайд 10

Вычисление функции program f1; uses Crt; var n,x: real; function fun(a:real):real;

Вычисление функции

program f1;
uses Crt;
var n,x: real;
function fun(a:real):real;
var y:real;
begin
y:=sqrt(a)+a;
fun:=y;
end;

Назад

begin
write('n='); readln(n);
x:=fun(n);
writeln('x=',x:3:5);
readln;

end.
Слайд 11

Вычисление скорости свободного падения тела. Назад program f2; uses Crt; var

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

Назад

program f2;
uses Crt;
var t,v: real;
function fun(t:real):real;
begin
fun:=9.8*t;

end;

begin
write('t='); readln(t);
v:=fun(t);
writeln('v=',v:3:5);
readln;
end.

Слайд 12

Вычисление n-й степени числа. program f2; uses Crt; var n: integer;

Вычисление n-й степени числа.

program f2;
uses Crt;
var n: integer;
z,x: real;
function

step(a:integer;x:real):real;
var y:real;
i:integer;
begin
y:=1;
for i:=1 to a do
begin y:=y*x;
step:=y; end;
end;

begin
write(‘степень='); readln(n);
write('x='); readln(x);
z:=step(n,x);
writeln('z=',z:3:5);
readln;
end.

Назад

Слайд 13

Процедуры Процедуры помещаются в разделе описаний и начинается зарезервированным (служебным) словом Procedure. Процедуре обязательно дается имя.

Процедуры
Процедуры помещаются в разделе описаний и начинается зарезервированным (служебным) словом

Procedure.
Процедуре обязательно дается имя.
Слайд 14

Входные и выходные параметры процедуры называются формальными параметрами. Procedure ( :

Входные и выходные параметры процедуры называются формальными параметрами.

Procedure <имя>

(<входные параметры> : <их тип>;
var
<выходные параметры> : <их тип>);
(раздел описаний)
begin
(раздел операторов)
end;
Слайд 15

Типы процедуры По входным и выходным параметрам процедуры могут быть следующих

Типы процедуры

По входным и выходным параметрам процедуры могут быть следующих типов:


1) иметь и входные и выходные параметры:
Procedure <имя>(<входные параметры> : <их тип>;
var <выходные параметры> : <их тип>);
Мы только познакомились с программой такого типа.
2) иметь входные параметры, но не иметь выходных:
Procedure <имя>(<входные параметры> : <их тип>);
3) иметь выходные параметры, но не иметь входных:
Procedure <имя>(var <выходные параметры> : <их тип>);
4) не иметь ни входных, ни выходных параметров:
Procedure <имя>;
Слайд 16

Процедуры Описания меток, констант,типов и т.п. Действительны только в пределах данной

Процедуры
Описания меток, констант,типов и т.п. Действительны только в пределах данной последовательности

процедуры.
Для принудительного выхода из процедуры используется оператор завершения exit, который обеспечивает выход во внешний блок (основную программу).
Слайд 17

Написать процедуру вычисляющею значение факториала числа r. program pr1; var r,r1:integer;

Написать процедуру вычисляющею значение факториала числа r.

program pr1;
var r,r1:integer;
procedure fac(r:integer; var

r1:integer);
var
i:integer;
begin
{если значение r отрицательно. то r1=0 и процедура завершается}
if r<0 then
Слайд 18

begin r1:=0; Exit; end; {если значение r не отрицательно} r1:=1; for

begin
r1:=0;
Exit; end;
{если значение r не отрицательно}
r1:=1;
for i:=2 to

r do
r1:=r1*i;
end;
begin
write('ведите число r=');
readln (r);
fac(r,r1);
writeln ('факториал числа',r,'=',r1);
readln;
end.
Слайд 19

Задания: Рассчитать значение х= Меню 4.Написать программу свободного падения. выводящую таблицу

Задания:

Рассчитать значение х=

Меню

4.Написать программу свободного падения. выводящую таблицу скорости за первые

10 секунд с шагом 0,5 секунд

3. Даны шесть различных чисел. Определить максимальное из них.

2. Рассчитать значение х=

Слайд 20

Диктант по теме: «Функции в Паскале» Какую подпрограмму можно назвать функцией?

Диктант по теме: «Функции в Паскале»

Какую подпрограмму можно назвать функцией?
Объясните назначение

локальных и глобальных переменных.
Что такое указатель?
Перечислите группы функций.
Каким образом происходит обращение к функции?

меню

Слайд 21

Задания для самостоятельной работы Составить программу для вычисления суммы членов геометрической

Задания для самостоятельной работы

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

стороны двух треугольников. Найти сумму их периметров и сумму их площадей.
Даны координаты точек прямоугольника. Определить, является ли он квадратом, ромбом, трапецией или параллелограммом, и вычислить, исходя из этого, площадь фигуры.
Найти все простые числа из заданного интервала натуральных чисел [N1, N2].

меню

Слайд 22

Вычисление функции program f1; uses Crt; var n,x,s: real; i:integer; function

Вычисление функции

program f1;
uses Crt;
var n,x,s: real;
i:integer;
function fun(a:real):real;
var y:real;
begin
y:=sqrt(a)+a;
fun:=y;
end;

Назад

begin
s:=0;
for i:=1 to 3 do begin
write('n='); readln(n);
x:=fun(n)/2;
s:=s+x;
end;
writeln(‘s=',s:3:5);
readln;
end.

Ф
У
Н
К
Ц
И
я

Слайд 23

Вычисление функции program f1; uses Crt; var n,x: real; i:integer; function

Вычисление функции

program f1;
uses Crt;
var n,x: real;
i:integer;
function fun(a:real):real;
var y:real;
begin
y:=a+sin(a);
fun:=y;
end;

Назад

begin
s:=0;
for i:=1 to 3 do begin
write('n='); readln(n);
x:=fun(n)/3;
s:=s+x;
end;
writeln(‘s=',s:3:5);
readln;
end.

Ф
У
Н
К
Ц
И
я

Слайд 24

Составить таблицу скорости свободного падения тела за первые 10 секунд с

Составить таблицу скорости свободного падения тела за первые 10 секунд с

шагом 0,5 секунд

Назад

program f2;
uses Crt;
var t,v: real;
n:integer;
function fun(t:real):real;
begin
fun:=9.8*t;
end;

begin
n:=1;
whle n<=10 do begin
write('t='); readln(t);
v:=fun(t);
writeln(‘t=‘;t'v=',v:3:5);
end;
readln;
end.

Ф
У
Н
К
Ц
И
я