Similar presentations:
Вспомогательные алгоритмы. Процедуры
1.
ВСПОМОГАТЕЛЬНЫЕАЛГОРИТМЫ. ПРОЦЕДУРЫ
Урок 1
Учитель: Н.В. Фоменко
2.
ПОНЯТИЕ ВСПОМОГАТЕЛЬНОГОАЛГОРИТМА
Вспомогательный алгоритм – это алгоритм,
целиком используемый в составе другого
алгоритма, т.е. это алгоритм решения
некоторой задачи, являющейся подчиненной
по отношению к исходной (основной) задаче.
Изображение на блок-схемах:
Имя всп.
алгоритма
3.
ВСПОМОГАТЕЛЬНЫЙ АЛГОРИТМ ДОЛЖЕНИметь имя, по которому его можно вызвать из
основной программы
Иметь достаточно малые размеры
После завершения работы возвращать управление
тому алгоритму, из которого он был вызван
Основной алгоритм, вызвавший вспомогательный
алгоритм, после завершения работы последнего
должен продолжить работу с той точки, в которой
он был прерван
4.
ВСПОМОГАТЕЛЬНЫЕ АЛГОРИТМЫ ВЯЗЫКЕ PASCAL
Называются подпрограммами
Различают два вида подпрограмм:
процедуры
• функции
5.
ПРОЦЕДУРАЭто подпрограмма, имеющая имя, которая
начинает выполняться после ее вызова по
имени из главной программы
Синтаксис:
procedure имя;
раздел описания локальных переменных
begin
тело процедуры
Заканчивается знаком ;
end;
Процедура записывается в тексте программы
перед оператором begin, начинающим
основную программу
6.
ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕПЕРЕМЕННЫЕ
Глобальные переменные – переменные, которые
описаны в основной программе. Они действуют в
теле основной программы и в процедуре
Локальные переменные описываются в процедуре
и действуют только внутри нее
Глобальные переменные можно использовать в
любом месте программы, если их имена не
совпадают с локальными. В этом случае говорят,
что локальная переменная закрывает собой
глобальную
Правило: стараться так писать программы, чтобы
имена переменных не повторялись в основной
программе и в подпрограмме
7.
ЗАДАЧАЗаполнить массив из 10 элементов
случайными числами от -20 до +20
Вывести массив на экран
Поменять местами элементы массива
следующим образом: 1-2, 3-4,…, 9-10
Вывести измененный массив на экран
начало
ввод
вывод
обмен
Разобьем умышленно этот алгоритм на
подзадачи и каждую оформим как процедуру
Процедура Вывод будет вызвана 2 раза
вывод
конец
8.
РЕШЕНИЕprogram massiv;
procedure change;
const n=10;
Локальная
var i,t: integer;
переменная
var a: array [1..n] of integer; begin
procedure inp;
for i:=1 to n div 2 do
var i: integer;
begin
begin
t:=a[2*i-1];
randomize;
a[2*i-1]:=a[2*i];
for i:=1 to n do
a[2*i]:=t
a[i]:=-20+random(41);
end;
end;
end;
procedure out;
var i: integer;
begin
Начало
begin
inp;
основной
for i:=1 to n do
out;
программы
write((a[i]:4);
change;
writeln
out
end;
end.
!Правило: переменная счетчик цикла должна быть описана внутри
того блока, в котором этот цикл используется, т.е. является докальной