Слайд 2
Процедурно-ориентированные языки имеют средства структурирования
программ.
Структурирование предполагает расчленение
программы на относительно
самостоятельные фрагменты
Нисходящее программирование – метод конструирования
сложных программ
Слайд 3
Отличие функции от процедуры
Процедура может возвращать значение обработки
(вычислений), если параметр объявляется с атрибутом VAR как параметр-переменная.
Процедура на выходе может выдавать несколько значений или ни одного.
Вызов функции можно использовать в списках параметров оператора WRITE (невозможно для процедуры).
В теле функции результат вычислений обязательно присваивается переменной, имя которой совпадает с именем функции.
Слайд 4
Описание подпрограммы
После раздела переменных и констант и
до
начала основной части
Структура
begin
end;
Переменные локальные
и глобальные
Структура подпрограммы такая же как основной программы
Слайд 5
Глобальные переменные объявляются в
основной программе. Доступны основной
и всем ее подпрограммам.
Локальные объявлены внутри подпрограммы
и доступны
только ей самой.
Одноименные глобальные и локальные переменные – разные переменные.
Обращение к таким переменным в теле подпрограммы трактуется как к локальным (глобальные не доступны).
Слайд 6
FUNCTION():
FUNCTION beta (a, b : real; c
: integer) : real
PROCEDURE()
PROCEDURE vsp (x, y: integer; var
m, n: real)
Формальные параметры
Слайд 7
Вызов процедуры (функции)
Указание имени и в круглых скобках
списка
фактических параметров
Слайд 8
Количество и тип фактических параметров
должны совпадать с
количеством и типом
формальных параметров
d:=beta(3, 4, 7.5)
3,4,7.5 фактические параметры
(константы), перечисляются через запятую
Слайд 10
const
a:integer=5; b:integer=7 ;
procedure udv (var c:integer;d:integer);
begin
c:=2*c;
d:=2*d;
writeln('udvoennoe:',c:5,d:5);
end;
begin
writeln (' Ishodnoe:',a:5,b:5);
udv (a,b);
writeln(' rezultat:',a:5,b:5); readln
end.
Слайд 11
var а,b:integer;
function max(i,j:integer):integer;
begin
if i>j then
max:=i else max:=j
end;
begin
writeln('Vvedite
a,b');
readln(a,b);
writeln('Maxim=',max(a,b));
readln;
end.
Слайд 12
program Factorials; {Ctrl+Break Enter}
var n:integer;
Function Factorial (k:integer):longint;
var i: integer; f: longint;
begin f:=1;
for i:=1 to k do f:=f*i;
factorial:=f; end;
begin
repeat
writeln('VVedite n'); readln(n);
if n<0 then writeln('Error')
else writeln(n,'!=',factorial(n));
until eof
end.
Слайд 13
Program sochet;
{C =n!/(m!*(n-m)!) }
uses CRT;
var n,m:integer; a,b,c,d:
longint;
Function Factorial (k:integer):longint;
var i:
integer; f: longint;
begin
f:=1;
for I:=1 to k do f:=f*i;
factorial:=f;
end;
Лист1
Слайд 14
begin
Clrscr;
writeln('VVedite kol sochet iz n po m'); readln(n,m);
a:=Factorial(n);
b:=Factorial(m);
c:=Factorial(n-m);
d:=a div (b*c);
writeln('Kol sochet iz',n:2,' po',m:2,' =',d:3);
readln;
end.
Лист2
Слайд 15
const raz=20;
var
n,m: integer;
massiv: array[1..raz,1..raz] of integer;
x,y: integer;
procedure massiv_out
(l,k: integer);
var
i,j: integer;
begin
for i:=1 to l do begin
for j:=1 to k do
write(massiv[i,j]:6);
writeln end;
end;
Лист1
Слайд 16
begin
writeln('Vvedite razmer massiva N x M');
readln(n,m);
for x:=1 to
n do
for y:=1 to m do
massiv[x,y]:=1;
massiv_out(n,m);
readln;
end.
Лист2
Слайд 17
Рекурсия
Процедура (функция) может обращаться к другой процедуре(функции).
Вызов функции
из нее самой называется рекурсией.
Recurrence – повторение или возвращение
Слайд 18
program Factorials;
var n:integer;
Function Factorial (n:integer):real;
begin
if n=0 then
factorial:=1
else factorial:=n*factorial(n-1)
end;
begin
repeat
writeln('VVedite n'); readln(n);
if n<0 then writeln('Error')
else writeln('n!=',factorial(n));
until eof
end.