Разделы презентаций


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

Содержание

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

Слайды и текст этой презентации

Слайд 1
Процедуры и функции

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

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

и фактические параметры
Рекурсия

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

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

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

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


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

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

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

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


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

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

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

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

формальных параметров>);
Описательная часть
Begin
Тело процедуры
End;
Begin

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

end.

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


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

Слайд 7Процедура вычисления суммы двух чисел

program pr1;
Uses crt;
Var a,b,s:real;

procedure 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

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

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



Процедура вычисления суммы двух чисел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:3:1,' и ',b:3:1,'

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

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.

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

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



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

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

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.



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

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

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



Для нахождения факториала какой тип переменных целесообразно использовать?Вычислить значение выражения a:=(3n!+2m!)/(m+n)! program pr2;Uses crt;Var m,n,x,y,z:integer; a:real;procedure fact(d:integer;var

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

0 до Х целого или вещественного типа (перед обращением к

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

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

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



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

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


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

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

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

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

поэтому ее первое отличие состоит в том, что процедура может

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

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


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

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



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

Слайд 16Составить программу, которая будет находить а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.



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

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

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

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

а что программой?

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

Локальные переменные
a
b
3
3
-3
Адрес с
a
b
c
48
Адрес с

A:=b+3

B:=3*a

C:=a+b


Состояние С
24
5
8
Ответ

Механизм передачи параметров в функции и процедурыЧто будет напечатано процедурой, а что программой? Глобальные переменныеЛокальные переменныеab33-3Адрес сabc48Адрес

Слайд 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


Механизм передачи параметров в функции и процедурыЧто будет напечатано функцией, а что программой? Глобальные переменныеЛокальные переменныеcb00Адрес acbd30a:=2B:=b+1D:=3Состояние

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

программы.


Ответ


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

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

программы.


Ответ


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

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

программы.

Ответ



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

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

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

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

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

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

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

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

End;


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

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

Слайд 25Вычисление факториала натурального числа
program fn2;
Uses crt;
Var n:integer; a:longint;;
function factorial(n:integer) :longint;

begin
if n=1 then factorial:=1

else factorial:=n*factorial(n-1);
end;
begin
clrscr;
writeln('введите значение n:'); readln(n);
a:=factorial(n); writeln('значение факториала ‘,n,‘!=‘,a:8);
readln; end.



Вычисление факториала натурального числаprogram fn2;Uses crt;Var n:integer; a:longint;;function factorial(n:integer) :longint;  begin    if n=1

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

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

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

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


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

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