Similar presentations:
Программирование на языке Паскаль
1. Программирование на языке Паскаль
1Программирование
на языке Паскаль
§ 59. Процедуры
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
2. Зачем нужны процедуры?
Алгоритмизация и программирование, Паскаль, 10 класс2
Зачем нужны процедуры?
writeln('Ошибка программы');
много раз!
program withProc;
var n: integer;
procedure Error;
begin
writeln('Ошибка программы')
end;
begin
read(n);
if n < 0 then Error;
...
end.
вызов
процедуры
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
3. Что такое процедура?
Алгоритмизация и программирование, Паскаль, 10 класс3
Что такое процедура?
Процедура – вспомогательный алгоритм, который
выполняет некоторые действия.
• текст (расшифровка) процедуры записывается
до основной программы
• в программе может быть много процедур
• чтобы процедура заработала, нужно вызвать её по
имени из основной программы или из другой
процедуры
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
4. Процедура с параметрами
Алгоритмизация и программирование, Паскаль, 10 класс4
Процедура с параметрами
Задача. Вывести на экран запись целого числа (0..255) в
8-битном двоичном коде.
много раз!
Алгоритм:
178 101100102
?
Как вывести первую цифру?
7
6 5 4
3 2 1
0
n:= 1 0 1 1 0 0 1 02
n div 128
?
разряды
n mod 128
Как вывести вторую цифру?
К.Ю. Поляков, Е.А. Ерёмин, 2013
n1 div 64
http://kpolyakov.spb.ru
5. Процедура с параметрами
Алгоритмизация и программирование, Паскаль, 10 класс5
Процедура с параметрами
Задача. Вывести на экран запись целого числа (0..255) в
8-битном двоичном коде.
Алгоритм:
n
k
вывод
k:= 128;
while k > 0 do begin
178
128
1
write(n div k);
50
64
0
n:= n mod k;
50
32
1
k:= k div 2
18
16
1
end;
2
8
0
178 10110010
2
4
0
2
2
1
Результат зависит
от n!
0
1
0
!
0
К.Ю. Поляков, Е.А. Ерёмин, 2013
0
http://kpolyakov.spb.ru
6. Процедура с параметрами
Алгоритмизация и программирование, Паскаль, 10 класс6
Процедура с параметрами
program binCode;
procedure printBin(n: integer);
var k: integer;
Параметры – данные,
begin
локальная
переменная
изменяющие работу
k:= 128;
while k > 0 do begin
процедуры.
write(n div k);
n:= n mod k;
k:= k div 2
end
значение параметра
end;
(аргумент)
begin
printBin(99)
end.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
7. Несколько параметров
Алгоритмизация и программирование, Паскаль, 10 класс7
Несколько параметров
procedure printSred(a: integer;
b: integer);
begin
write((a+b)/2);
end.
procedure printSred(a, b: integer);
begin
write((a+b)/2);
end.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru