Назначение При разработке программы иногда появляются повторяемые группы действий или возникает необходимость расчленить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках
Слайды и текст этой презентации
Слайд 1Подпрограммы в Паскале
Слайд 2Назначение
При разработке программы
иногда появляются повторяемые группы действий или возникает
необходимость расчленить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм.
В Паскале подпрограмма является частью основной программы, ее описание располагается между разделом var главной программы и ее программным блоком (первым begin). Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим.
Рекурсивные функции | Информатика Паскаль #22 | Инфоурок
Подпрограмма — это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.
Слайд 3 В Паскале различают два вида подпрограмм:
процедуры и функции. Основное различие между ними
заключается в том, что процедура получает в результате своей работы любое количество данных, а функция — только одно значение.
Слайд 4Функция
Это последовательность операторов, имеющая имя и
результат
Обрабатывает данные, предназначенные ей из главной программы,
и затем возвращает полученный результат
Функция называется с помощью указателя. Указатель- это имя функции, после которого в круглых скобках перечисляются аргументы функции.
Слайд 5Функции Pascal можно разделить на три группы:
стандартные
функции (abs(x), sqrt(x), sqr(x), sin(x), cos(x), и
т.д.);
функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную);
библиотечные функции (стандартные библиотечные модули).
Слайд 6Структура функции
В разделе операторов должен находится, хотя
бы один оператор, присваивающий имени функции значение.
Вычисление площади треугольника через основание и высоту в программе на языке Паскаль
Меню
Слайд 7Объявление переменных
Глобальные переменные — переменные, объявленные в
основной программе, доступны всем операторам программы, а
так же операторам процедур и функций.
Локальные переменные — переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.
Слайд 8Пример:
program primer1;
var
r, c,
q : real;
function inper ( a:
real; b: real) :real;
begin
;
end;
begin
(основная программа)
end.
Слайд 9Примеры:
Вычисление функции
Вычисление Вычисление nВычисление n-й
Вычисление скорости свободного
падения тела.
Слайд 10Вычисление функции
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;
Слайд 11Вычисление скорости свободного падения тела.
Назад
program f2;
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;
Слайд 12Вычисление n-й степени числа.
program f2;
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;
Слайд 13Задания:
Рассчитать значение х=
Меню
4.Написать программу свободного падения. выводящую
таблицу скорости за первые 10 секунд с
шагом 0,5 секунд
3. Даны шесть различных чисел. Определить максимальное из них.
2. Рассчитать значение х=
Слайд 14Диктант по теме: «Функции в Паскале»
Какую подпрограмму
можно назвать функцией?
Объясните назначение локальных и глобальных
переменных.
Что такое указатель?
Перечислите группы функций.
Каким образом происходит обращение к функции?
Слайд 15Задания для самостоятельной работы
Составить программу для вычисления
суммы членов геометрической прогрессии.
Даны стороны двух треугольников.
Найти сумму их периметров и сумму их площадей.
Даны координаты точек прямоугольника. Определить, является ли он квадратом, ромбом, трапецией или параллелограммом, и вычислить, исходя из этого, площадь фигуры.
Найти все простые числа из заданного интервала натуральных чисел [N1, N2].
Слайд 16Вычисление функции
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;
Назад
Слайд 17Вычисление функции
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;
Назад
Слайд 18Составить таблицу скорости свободного падения тела за
первые 10 секунд с шагом 0,5 секунд
Назад
program
var t,v: real;
n:integer;
function fun(t:real):real;
begin
fun:=9.8*t;
end;
Слайд 19Ответы на диктант «Функции в Паскале»
Это
последовательность операторов, имеющая имя и результат.
Глобальные переменные
— переменные, объявленные в основной программе, доступны всем операторам программы, а так же операторам процедур и функций. Локальные переменные — переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.
Это имя функции.
Стандартные, функции программиста библиотечные.
В основной программе указывается имя функции и аргумент
Слайд 20Процедура – это независимая именованная часть программы,
которую можно вызвать по имени для выполнения
определенных действий.
Слайд 21
Структура процедуры:
procedure (список формальных параметров);
const
type
var
begin
;
end;
Вызов процедуры – это упоминание ее
имени в тексте основной программы.
Слайд 22PROGRAM PRIMER;
VAR A,B,S: REAL;
PROCEDURE
Источник: thepresentation.ru
Процедуры и функции в Паскале
При разработке программы иногда появляются повторяемые
группы действий или возникает необходимость расчленить программу
на функциональные модули, сделать ее структуру иерархической. Для
этого во всех языках программирования существуют средства
организации подпрограмм.
В Паскале подпрограмма является частью основной программы, ее
описание располагается между разделом var главной программы и ее
программным блоком (первым begin). Подпрограмм может быть
несколько, их описания располагаются в произвольном порядке одно за
другим.
Подпрограмма — это специальным образом
оформленный алгоритм, который может многократно
использоваться при решении более общей задачи.
• В Паскале различают два вида подпрограмм: процедуры и
функции. Основное различие между ними заключается в том, что
процедура получает в результате своей работы любое количество
данных, а функция — только одно значение.
3. Разделы
Описание
Структура
Переменные
Примеры
Задания
Диктант
Начало
Выход
4. Функция
Это последовательность операторов, имеющая имя и
результат
Обрабатывает данные, предназначенные ей из
главной программы, и затем возвращает полученный
результат
Функция называется с помощью указателя.
Указатель- это имя функции, после которого в
круглых скобках перечисляются аргументы функции.
Далее
5. Функции Pascal можно разделить на три группы:
стандартные функции (abs(x), sqrt(x), sqr(x),
sin(x), cos(x), и т.д.);
функции программиста (объявлять свою
собственную функцию и дальнейшем
использовать её так же как и стандартную);
библиотечные функции (стандартные
библиотечные модули).
Меню
6. Структура функции
Function <имя>():;
const …;
…..
Блок описания локальных переменных
var … ;
Begin
имя:= выражение;
End;
В разделе операторов должен находится, хотя бы один
оператор, присваивающий имени функции значение.
Меню
7. Объявление переменных
Глобальные переменные — переменные,
объявленные в основной программе,
доступны всем операторам программы, а так
же операторам процедур и функций.
•Локальные переменные — переменные,
объявленные в процедуре или функции. Они
доступны только операторам процедур или
функций.
Далее
8. Пример:
program primer1;
var
r, c, q : real;
Глобальные переменные
function inper ( a: real; b: real) :real;
var
x,y: real;
begin
Локальные переменные
;
end;
begin
(основная программа)
Назад
9. Примеры:
Вычисление функции n n
Вычисление скорости свободного
падения тела.
Вычисление n-й степени числа.
Меню
10. Вычисление функции
n n
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 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;
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.
Процедуре обязательно дается имя.
14. Входные и выходные параметры процедуры называются формальными параметрами.
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;
procedure fac(r:integer; var r1:integer);
var
i:integer;
begin
процедура завершается>
if r
18.
begin
r1:=0;
Exit; end;
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. Задания:
1.
Рассчитать значение х= 6 6 13 13 21 21
2
2
2
2. Рассчитать значение х= 1 sin 1 5 sin 5 3 sin 3
3
3
3
3. Даны шесть различных чисел. Определить
максимальное из них.
4.Написать программу свободного падения. выводящую
таблицу скорости за первые 10 секунд с шагом 0,5 секунд
Меню
20. Диктант по теме: «Функции в Паскале»
1.
2.
3.
4.
5.
Какую подпрограмму можно назвать
функцией?
Объясните назначение локальных и
глобальных переменных.
Что такое указатель?
Перечислите группы функций.
Каким образом происходит обращение
к функции?
меню
21. Задания для самостоятельной работы
1. Составить программу для вычисления суммы
членов геометрической прогрессии.
2. Даны стороны двух треугольников. Найти
сумму их периметров и сумму их площадей.
3. Даны координаты точек прямоугольника.
Определить, является ли он квадратом,
ромбом, трапецией или параллелограммом, и
вычислить, исходя из этого, площадь фигуры.
4. Найти все простые числа из заданного
интервала натуральных чисел [N1, N2].
меню
22. Вычисление функции
6 6
13 13
21 21
2
2
2
Ф
У
Н
К
Ц
И
я
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. Вычисление функции
Ф
У
Н
К
Ц
И
я
1 sin 1 5 sin 5 3 sin 3
3
3
3
begin
program f1;
s:=0;
uses Crt;
for i:=1 to 3 do begin
var n,x: real;
write(‘n=’); readln(n);
i:integer;
x:=fun(n)/3;
function fun(a:real):real;
s:=s+x;
var y:real;
end;
begin
writeln(‘s=’,s:3:5);
y:=a+sin(a);
readln;
fun:=y;
end.
end;
Назад
24. Составить таблицу скорости свободного падения тела за первые 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 write(‘t=’); readln(t);
v:=fun(t);
writeln(‘t=‘;t’v=’,v:3:5);
end;
readln;
end.
Назад
25. Ответы на диктант «Функции в Паскале»
1.
2.
3.
4.
5.
Это последовательность операторов, имеющая имя и
результат.
Глобальные переменные — переменные, объявленные в
основной программе, доступны всем операторам
программы, а так же операторам процедур и функций.
Локальные переменные — переменные, объявленные в
процедуре или функции. Они доступны только
операторам процедур или функций.
Это имя функции.
Стандартные, функции программиста библиотечные.
В основной программе указывается имя функции и
аргумент
Источник: ppt-online.org
ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ ПАСКАЛЬ
Ключевые слова подпрограмма процедура функция рекурсивная функция
подпрограмма
процедура
функция
рекурсивная функция
Подпрограммы Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.
Структура описания подпрограммы аналогична структуре главной программы. Описание подпрограммы начинается с заголовка и заканчивается оператором end
Процедуры Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных
Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных.
Для вызова процедуры достаточно указать её имя со списком фактических параметров.
Входные параметры: переменные, константы, выражения
Алгоритм Евклида Алгоритм Евклида
Процедура для нахождения НОД
procedure nod (a, b: integer; var c: integer);
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
c:=a
end;
Варианты вызова процедуры Между фактическими и формальными параметрами должно быть полное соответствие по количеству, порядку следования и типу
Варианты вызова процедуры
Между фактическими и формальными параметрами должно быть полное соответствие по количеству, порядку следования и типу.
в качестве параметров-значений
использованы константы
в качестве параметров-значений
использованы имена переменных
в качестве параметров-значений
использованы выражение и константа
I, x, y, z: integer; procedure nod (a, b: integer; var c: integer); begin while a<>b do if a>b then a:=a-b else b:=b-a; c:=a end;…
program n_6;
const m: array [1..6] of integer =(16, 32, 40, 64, 80, 128);
var I, x, y, z: integer;
procedure nod (a, b: integer; var c: integer);
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
c:=a
end;
begin
x:=m[1];
for i:=2 to 6 do
begin
y:=m[i];
nod (x, y, z);
x:=z
end;
writeln (‘НОД=’, x)
end.
Раздел описания операторов
главной программы
Раздел описания переменных
Программа с процедурой
Функции function (): ; begin ; := end;
Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
В блоке функции обязательно должен присутствовать оператор :=.
Перечень формальных параметров и их типов
Для вызова функции достаточно указать её имя со списком фактических параметров в любом выражении, в условиях, (после слов if, while, until) или в операторе write главной программы.
Функция поиска максимального из 2-х program n_7; var a, b, c, d, f: integer; function max (x, y: integer): integer; begin if x>y then max:=x…
Функция поиска максимального из 2-х
program n_7;
var a, b, c, d, f: integer;
function max (x, y: integer): integer;
begin
if x>y then max:=x else max:=y;
end;
begin
readln (a, b, c, d);
f:= max(max(a, b), max(c, d));
writeln (‘f=’, f);
end.
Раздел операторов
главной программы (поиск максимального из 4-х чисел)
Последовательность Фибоначчи В январе
В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод — новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц.
Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем — по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?
Числа 1, 1, 2, 3, 5, 8, … образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.
Математическая модель Пусть f(n) количество пар кроликов в месяце с номером n
Пусть f(n) количество пар кроликов в месяце с номером n.
По условию задачи:
f(1) = 1,
f(2) = 1,
f(3) = 2.
Из двух пар, имеющихся в марте, дать приплод в апреле сможет только одна: f(4) = 3.
Из пар, имеющихся в апреле, дать приплод в мае смогут только пары, родившиеся в марте и ранее:
f(5) = f(4) + f(3) = 3 + 2 = 5.
В общем случае:
f(n)= f(n –1)+ f(n – 2), n >= 3.
Функция function f (n: integer): integer; begin if (n=1) or (n=2) then f:=1 else f:=f(n-1)+f(n-2) end;
function f (n: integer): integer;
begin
if (n=1) or (n=2) then f:=1
else f:=f(n-1)+f(n-2)
end;
Полученная функция рекурсивная — в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.
Самое главное Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале различают два вида подпрограмм: процедуры и функции.
Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных.
Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
Вопросы и задания Для чего используются подпрограммы?
Вопросы и задания
Для чего используются подпрограммы?
В чём основное различие процедур и функций?
Напишите программу вычисления наименьшего общего кратного следующих четырёх чисел: 36, 54, 18 и 15.
Используйте процедуру вычисления наибольшего общего делителя двух чисел.
Напишите программу перестановки значений переменных a, b, с в порядке возрастания, т. е. так, чтобы a < b < c. Используйте процедуру swap.
procedure swap (var x, y: integer);
var m: integer;
begin
m:=x;
x:=y;
y:=m
end;
Исходные данные вводятся с клавиатуры.
Пример входных данных
Пример выходных данных
Напишите программу поиска наибольшего из четырёх чисел с использованием подпрограммы поиска наибольшего из трёх чисел.
Видоизмените программу сортировки массива выбором так, чтобы в ней использовалась процедура выбора наибольшего элемента массива.
Напишите программу вычисления выражения:
s =1!+2!+3!+…+ n!
Используйте функцию вычисления факториала.
Напишите программу вычисления выражения:
s = x3 + x5 + xn,
где x и n вводятся с клавиатуры.
Используйте функцию вычисления степени.
Напишите функцию, вычисляющую длину отрезка по координатам его концов. С помощью этой функции напишите программу, вычисляющую периметр треугольника по координатам его вершин.
Напишите функцию, вычисляющую площадь треугольника по целочисленным координатам его вершин.
С помощью этой функции вычислите площадь четырёхугольника по координатам его вершин.
Опорный конспект Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.
Подпрограмма, имеющая произвольное количество входных и выходных данных.
Подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
Источник: znanio.ru