96.51K
Category: programmingprogramming

Вспомогательные алгоритмы. Процедуры с параметрами

1.

ВСПОМОГАТЕЛЬНЫЕ АЛГОРИТМЫ.
ПРОЦЕДУРЫ С ПАРАМЕТРАМИ
Урок 2
Учитель: Н.В. Фоменко

2.

АКТУАЛИЗАЦИЯ ОПОРНЫХ ЗНАНИЙ
Что такое вспомогательный алгоритм?
Для чего он используется?
Какие типа вспомогательных алгоритмов
существуют на Паскале?
Что такое процедура?
Синтаксис процедуры
В чем различие между глобальными и
локальными переменными?

3.

ПРОЦЕДУРА С ПАРАМЕТРАМИ
Можно выполнять с разными исходными данными
В заголовке процедуры с параметрами указывается
список формальных параметров (т.е. параметров, не
имеющих конкретного значения
Синтаксис:
procedure имя ([var] пар-р1: тип1; [var] пар-р2: тип2;…;
[var] пар-рn: типn);
раздел описания локальных переменных
begin
тело процедуры
end;
Слово var записывается в квадратных скобках не потому,
что оно должно так записываться, а потому, что в
некоторых случаях оно может отсутствовать

4.

ТИПЫ ПАРАМЕТРОВ
Бывают двух типов:
Параметры-значения
Параметры-переменные
С помощью параметров-значений в процедуру
при вызове передаются данные, необходимые для ее
работы, т.е. это входные параметры. В процедуре
они не изменяются. Слово var при их описании не
пишется
Параметры-переменные – это выходные
параметры. С их помощью в вызывающую
программу передаются значения, полученные в
результате выполнения процедуры. При описании
слово var перед ними писать обязательно

5.

ВЫЗОВ ПРОЦЕДУРЫ С ПАРАМЕТРАМИ
При вызове процедуры с параметрами в скобках после
ее имени указывают фактические параметры
Для параметра-значения фактическим параметром
могут быть переменная, константа или
выражение
Для параметра-переменной фактическим
значением может быть только переменная
Количество формальных и фактических параметров
должно совпадать и они обязательно должны быть
одного типа
Изменения, происходящие в процедуре с формальным
параметром, не влияют на значение фактического
параметра

6.

ЗАДАЧА
Найти большее из 4 чисел a, b, c, d, используя алгоритм
нахождения наибольшего из 2-х чисел в качестве
вспомогательного.
Назовем наибольшее из a и b – mab, из c и d – mcd
Наибольшее из mab и mcd будет решением max
В процедуре мы используем параметры так,
program largest;
как будто у нас есть переменные с
var a, b ,c, d, max, mab, mcd: real;
соответствующими значениями.
procedure max1 (x,y: real; var z: real);
begin
Параметры x,y,z – формальные.
if x>y then z:=x else z:=y;
Вместо них при вызове подставляются
end;
фактические
begin
writeln (‘введите 4 числа’);
x
y
z
readln( a,b,c,d);
1 раз
a
b
mab
max1 (a,b, mab); max1(c,d, mcd);
2 раз
c
d
mcd
max1 (mab,mcd,max);
3раз
mab mcd max
writeln(‘наибольшее из’, a, b, c,d,’=‘, max)
end.

7.

ЕЩЕ О ПАРАМЕТРАХ
В качестве фактических параметров можно
использовать выражение или константу, например, при
вызове max1(2-3,7,mab); переменная mab получит
значение 7
Переменные mab и mcd могут быть входными и
выходными. Такие переменные надо описывать как
параметры-переменные, т.е. со словом var
Если некая переменная t описана в процедуре и такая
же описана в основной программе, то присвоение
переменной t значения в процедуре не изменит
значение этой переменной в основной программе
Если переменная описана в основной программе и не
описана в процедуре, она будет глобальной и будет
иметь одно и то же значение и в процедуре и в основной
программе

8.

ПРИМЕР 2
Написать процедуру, меняющую значения 2-х
переменных
program param;
var a,b: integer;
procedure change(var x,y: integer);
var t: integer;
begin
t:=x; x:=y; y:=t
end;
begin
a:=5; b:=8;
writeln (‘до обмена а=‘,a, ‘b=, b);
change (a,b);
writeln (‘после обмена а=‘ a,’b=‘,b)
end.
English     Русский Rules