Программирование на языке Паскаль. Процедуры

Содержание

Слайд 2

Зачем нужны процедуры? writeln('Ошибка программы'); много раз! program withProc; var n:

Зачем нужны процедуры?

writeln('Ошибка программы');

много раз!

program withProc;
var n: integer;
begin
read(n);
if n

< 0 then Error;
...
end.

procedure Error;
begin
writeln('Ошибка программы')
end;

вызов процедуры

Слайд 3

Что такое процедура? Процедура – вспомогательный алгоритм, который выполняет некоторые действия.

Что такое процедура?

Процедура – вспомогательный алгоритм, который выполняет некоторые действия.

текст (расшифровка)

процедуры записывается до основной программы
в программе может быть много процедур
чтобы процедура заработала, нужно вызвать её по имени из основной программы или из другой процедуры
Слайд 4

Процедура с параметрами Задача. Вывести на экран запись целого числа (0..255)

Процедура с параметрами

Задача. Вывести на экран запись целого числа (0..255) в

8-битном двоичном коде.

много раз!

Алгоритм:

178


101100102

7 6 5 4 3 2 1 0

1 0 1 1 0 0 1 02

разряды

n:=

n div 128

n mod 128

n1 div 64

Слайд 5

Процедура с параметрами Задача. Вывести на экран запись целого числа (0..255)

Процедура с параметрами

Задача. Вывести на экран запись целого числа (0..255) в

8-битном двоичном коде.

Алгоритм:

k:= 128;
while k > 0 do begin
write(n div k);
n:= n mod k;
k:= k div 2
end;

178


10110010

Слайд 6

Процедура с параметрами program binCode; begin printBin(99) end. procedure printBin(n: integer);

Процедура с параметрами

program binCode;
begin
printBin(99)
end.

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;

Параметры – данные, изменяющие работу процедуры.

локальная переменная

значение параметра
(аргумент)

Слайд 7

Несколько параметров procedure printSred(a: integer; b: integer); begin write((a+b)/2); end. procedure

Несколько параметров

procedure printSred(a: integer;
b: integer);
begin
write((a+b)/2);
end.

procedure printSred(a, b: integer);
begin
write((a+b)/2);
end.

Слайд 8

Задачи «A»: Напишите процедуру, которая принимает параметр – натуральное число N

Задачи

«A»: Напишите процедуру, которая принимает параметр – натуральное число N –

и выводит на экран линию из N символов '–'.
Пример:
Введите N:
10
----------
«B»: Напишите процедуру, которая выводит на экран в столбик все цифры переданного ей числа, начиная с первой.
Пример:
Введите натуральное число:
1234
1
2
3
4
Слайд 9

Задачи «C»: Напишите процедуру, которая выводит на экран запись переданного ей

Задачи

«C»: Напишите процедуру, которая выводит на экран запись переданного ей числа

в римской системе счисления.
Пример:
Введите натуральное число:
2013
MMXIII
Слайд 10

Изменяемые параметры Задача. Написать процедуру, которая меняет местами значения двух переменных.

Изменяемые параметры

Задача. Написать процедуру, которая меняет местами значения двух переменных.

program

Exchange;
var x, y: integer;
begin
x:= 2; y:= 3;
Swap(x, y);
write(x, ' ', y)
end.

procedure Swap(a, b: integer);
var c: integer;
begin
c:= a; a:= b; b:= c;
end;

2 3

передача по значению

Слайд 11

Изменяемые параметры procedure Swap( a, b: integer); var c: integer; begin

Изменяемые параметры

procedure Swap( a, b: integer);
var c: integer;
begin
c:= a; a:=

b; b:= c;
end;

var

передача по ссылке

переменные могут изменяться

var a, b: integer;
...
Swap(a, b); { правильно }
Swap(2, 3); { неправильно }
Swap(a, b+3); { неправильно }

Вызов:

Слайд 12

Задачи «A»: Напишите процедуру, которая переставляет три переданные ей числа в

Задачи

«A»: Напишите процедуру, которая переставляет три переданные ей числа в порядке

возрастания.
Пример:
Введите три натуральных числа:
10 15 5
5 10 15
«B»: Напишите процедуру, которая сокращает дробь вида M/N. Числитель и знаменатель дроби передаются как изменяемые параметры.
Пример:
Введите числитель и знаменатель дроби:
25 15
После сокращения: 5/3