Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Процедуры и функции

Содержание

СодержаниеПроцедурыФункцииМеханизм передачи параметров в функции и процедурыГлобальные и локальные переменныеФормальные и фактические параметрыРекурсия
Процедуры и функции СодержаниеПроцедурыФункцииМеханизм передачи параметров в функции и процедурыГлобальные и локальные переменныеФормальные и фактические параметрыРекурсия Подпрограммы: глобальные и локальные переменныеВсе подпрограммы должны быть описаны в разделе описаний. Формальные и фактические параметрыВ описании подпрограмм параметры обозначены только именами, поэтому их ПроцедурыРешение задач Описание процедурыProgram Pr1;Const …Type … Var … Procedure (); Описательная часть Begin Процедура вычисления суммы двух чиселprogram pr1;Uses crt;Var a,b,s:real;procedure summa(x,y:real;var z:real);beginz:=x+y;end;beginclrscr;writeln('введите a,b'); readln(a,b);summa(a,b,s);writeln(' Программа перестановки значений переменных a,b,c в порядке возрастания(a Программа перестановки значений переменных a,b,c в порядке возрастания(a Для нахождения факториала какой тип переменных целесообразно использовать?Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program Ввод вывод элементов одномерного массиваФункция Random(X) формирует случайное число от 0 до Ввод и вывод элементов одномерного массива ФункцииРешение задач Описание функцииФункции предназначены для того, чтобы вычислять только одно значение,1. поэтому ее Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program fn2;Uses crt;Var m,n:integer; a:real;function fact(d:integer) :longint; Составить программу, которая будет находить аb, то есть b-ю степень числа А, Механизм передачи параметров в функции и процедурыРазбор заданий Механизм передачи параметров в функции и процедурыЧто будет напечатано процедурой, а что Механизм передачи параметров в функции и процедурыЧто будет напечатано функцией, а что Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ РекурсияПримеры задач Понятие рекурсииПодпрограммы в Turbo Pascal могут обращаться к самим себе. Такое обращение Вычисление факториала натурального числаprogram fn2;Uses crt;Var n:integer; a:longint;;function factorial(n:integer) :longint;  begin
Слайды презентации

Слайд 2 Содержание
Процедуры
Функции
Механизм передачи параметров в функции и процедуры
Глобальные и

СодержаниеПроцедурыФункцииМеханизм передачи параметров в функции и процедурыГлобальные и локальные переменныеФормальные и фактические параметрыРекурсия

локальные переменные
Формальные и фактические параметры
Рекурсия


Слайд 3 Подпрограммы: глобальные и локальные переменные
Все подпрограммы должны быть

Подпрограммы: глобальные и локальные переменныеВсе подпрограммы должны быть описаны в разделе

описаны в разделе описаний. Каждая подпрограмма должна иметь имя.


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

Слайд 4 Формальные и фактические параметры
В описании подпрограмм параметры обозначены

Формальные и фактические параметрыВ описании подпрограмм параметры обозначены только именами, поэтому

только именами, поэтому их называют формальными. До вызова подпрограммы

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

Слайд 5 Процедуры
Решение задач

ПроцедурыРешение задач

Слайд 6 Описание процедуры
Program Pr1;
Const …
Type …
Var …
Procedure

Описание процедурыProgram Pr1;Const …Type … Var … Procedure (); Описательная часть

();
Описательная часть
Begin

Тело процедуры
End;
Begin

<имя процедуры>(<список фактических параметров>);

end.

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


Слайд 7 Процедура вычисления суммы двух чисел
program pr1;
Uses crt;
Var a,b,s:real;

procedure

Процедура вычисления суммы двух чиселprogram pr1;Uses crt;Var a,b,s:real;procedure summa(x,y:real;var z:real);beginz:=x+y;end;beginclrscr;writeln('введите a,b');

summa(x,y:real;var z:real);
begin
z:=x+y;
end;
begin
clrscr;
writeln('введите a,b'); readln(a,b);
summa(a,b,s);

writeln(' сумма чисел ',a:3:1,' и ',b:3:1,'

= ',s:3:1);
readln; end.

x,y,z – формальные параметры, локальные переменные

a,b,s – глобальные переменные

a,b,s – фактические параметры

х

y

z

a

b

s

Параметры-значения

Параметр-переменная


Слайд 8 Программа перестановки значений переменных a,b,c в порядке возрастания(a

Программа перестановки значений переменных a,b,c в порядке возрастания(a

perest;
var a,b,c: integer;
procedure swap(var x,y: integer);
var t: integer;
begin
t:=x; x:=y;

y:=t;
end;
begin
writeln(‘Введите три числа ');
readln(a,b,c);
if a>b then swap(a,b);
if b>c then swap(b,c);
if a>с then swap(a,с);
writeln(a,' ',b,' ',c);
readln; end.

Найдите ошибку в этом решении. Для этого составьте полную систему тестов.

Измените программу так, чтобы аналогичная задача решалась для четырех переменных


Слайд 9 Программа перестановки значений переменных a,b,c в порядке возрастания(a

Программа перестановки значений переменных a,b,c в порядке возрастания(a

perest;
var a,b,c: integer;
procedure swap(var x,y: integer);
var t: integer;
begin
t:=x; x:=y;

y:=t;
end;
begin
writeln(‘Введите три числа ');
readln(a,b,c);
if a>b then swap(a,b);
if b>c then swap(b,c);
if a>с then swap(a,с);
writeln(a,' ',b,' ',c);
readln; end.

Слайд 10 Для нахождения факториала какой тип переменных целесообразно использовать?
Вычислить

Для нахождения факториала какой тип переменных целесообразно использовать?Вычислить значение выражения a:=(3n!+2m!)/(m+n)!

значение выражения a:=(3n!+2m!)/(m+n)!
program pr2;
Uses crt;
Var m,n,x,y,z:integer; a:real;
procedure fact(d:integer;var

q:integer);
var i:integer;
begin
q:=1;
for i:=1 to d do
q:=q*i;
end;
begin
clrscr;
writeln('введите значения n, m '); readln(n,m);
fact(n,x); fact(m,y); fact(m+n,z);
a:=(3*x+2*y)/z;
writeln('значение выражения при m= ',m:4,' и n= ',n:4,'равно',a:8:3);
readln; end.

N!=1·2·3·…· N


Слайд 11 Ввод вывод элементов одномерного массива
Функция Random(X) формирует случайное

Ввод вывод элементов одномерного массиваФункция Random(X) формирует случайное число от 0

число от 0 до Х целого или вещественного типа

(перед обращением к функции ее необходимо инициализировать, использовав процедуру Randomize). Если параметр Х не задан, результат будет типа Real в пределах от 0.0 до 1.0.
Для получения массива целых случайных чисел из диапазона [A,B] random(B-A+1)+A

Задание: Оформить ввод элементов одномерного массива с помощью генератора случайных чисел (диапазон значений от -10 до 20) и вывод элементов как процедуры.

Для А=-10 В=20 random(20-(-10)+1)+(-10)


Слайд 12 Ввод и вывод элементов одномерного массива

Ввод и вывод элементов одномерного массива

Слайд 13 Функции
Решение задач

ФункцииРешение задач

Слайд 14 Описание функции
Функции предназначены для того, чтобы вычислять только

Описание функцииФункции предназначены для того, чтобы вычислять только одно значение,1. поэтому

одно значение,
1. поэтому ее первое отличие состоит в том,

что процедура может иметь новые значения у нескольких параметров, а функция только одно (оно и будет результатом).
2. Второе отличие заключается в заголовке функции. Он состоит из слова FUNCTION, за которым идет имя функции, затем в круглых скобках идет список формальных параметров, после чего через двоеточие записывается тип результата функции.
3. В теле функции обязательно должен быть хотя бы один оператор присвоения, где в левой части стоит имя функции, а в правой – ее значение.

Function <имя>(<список формальных параметров>):<тип результата>
Описательная часть
Begin
Тело функции
<имя>:=<значение>;
End;


Слайд 15 Вычислить значение выражения a:=(3n!+2m!)/(m+n)!
program fn2;
Uses crt;
Var m,n:integer;

Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program fn2;Uses crt;Var m,n:integer; a:real;function fact(d:integer) :longint;

a:real;
function fact(d:integer) :longint;
var i:integer; q:longint;
begin

q:=1;
for i:=1 to d do
q:=q*i;
fact:=q;
end;
begin
clrscr;
writeln('введите значения n, m '); readln(n,m);
a:=(3*fact(n)+2*fact(m))/fact(m+n);;
writeln('значение выражения при m= ',m:4,' и n= ',n:4,'равно',a:8:3);
readln; end.

Слайд 16 Составить программу, которая будет находить аb, то есть

Составить программу, которая будет находить аb, то есть b-ю степень числа

b-ю степень числа А, где А и В –

это целые числа и В>0, вводимые с клавиатуры.

Составьте программу, заменив функцию процедурой

program pr2;
Uses crt;
Var a,b:integer;
c:longint;
Function stepen(x,y:integer):longint;
var i:integer; s:longint;
begin
s:=1;
for i:=1 to y do
s:=s*x;
Stepen:=s;
end;

begin
clrscr;
writeln('введите значения a, b'); readln(a,b);
C:=stepen(a,b);
writeln('s=',s);
readln;
end.


Слайд 17 Механизм передачи параметров в функции и процедуры
Разбор заданий

Механизм передачи параметров в функции и процедурыРазбор заданий

Слайд 18 Механизм передачи параметров в функции и процедуры
Что будет

Механизм передачи параметров в функции и процедурыЧто будет напечатано процедурой, а

напечатано процедурой, а что программой?
Глобальные переменные
Локальные переменные
a
b
3
3
-3
Адрес с
a
b
c
48
Адрес

с


A:=b+3

B:=3*a

C:=a+b


Состояние С

24

5

8

Ответ


Слайд 19 Механизм передачи параметров в функции и процедуры
Что будет

Механизм передачи параметров в функции и процедурыЧто будет напечатано функцией, а

напечатано функцией, а что программой?
Глобальные переменные
Локальные переменные
c
b
0
0
Адрес a
c
b
d
3
0

a:=2
B:=b+1

D:=3



Состояние

a

3

0

2

d

0

0

f:=d

Ответ

f

3

c:=b-a


Слайд 20 Механизм передачи параметров в функции и процедуры
Определите результат

Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ

выполнения предложенной программы.
Ответ


Слайд 21 Механизм передачи параметров в функции и процедуры
Определите результат

Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ

выполнения предложенной программы.
Ответ


Слайд 22 Механизм передачи параметров в функции и процедуры
Определите результат

Механизм передачи параметров в функции и процедурыОпределите результат выполнения предложенной программы.Ответ

выполнения предложенной программы.
Ответ


Слайд 23 Рекурсия
Примеры задач

РекурсияПримеры задач

Слайд 24 Понятие рекурсии
Подпрограммы в Turbo Pascal могут обращаться к

Понятие рекурсииПодпрограммы в Turbo Pascal могут обращаться к самим себе. Такое

самим себе. Такое обращение называется рекурсией. Объект, который частично

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

Подпрограмма <имя>(<список формальных параметров>): Описательная часть
Begin

if <условие> then < обращение к подпрограмме <имя>>
else <операторы>;

End;

if <условие> then <операторы>
else < обращение к подпрограмме <имя>>;


  • Имя файла: protsedury-i-funktsii.pptx
  • Количество просмотров: 127
  • Количество скачиваний: 0