Вспомогательные алгоритмы. Запись вспомогательных алгоритмов на языке Паскаль

Содержание

Слайд 2

Домашнее задание § 2.3.3, 2.4, стр. 81-94, вопросы 2-3, стр. 92 вопросы 9-10, стр. 94

Домашнее задание

§ 2.3.3, 2.4, стр. 81-94, вопросы 2-3, стр. 92 вопросы

9-10, стр. 94
Слайд 3

ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ ПАСКАЛЬ Тематический модуль 17: ВСПОМОГАТЕЛЬНЫЕ АЛГОРИТМЫ

ЗАПИСЬ ВСПОМОГАТЕЛЬНЫХ АЛГОРИТМОВ НА ЯЗЫКЕ ПАСКАЛЬ

Тематический модуль 17:
ВСПОМОГАТЕЛЬНЫЕ АЛГОРИТМЫ

Урок 46-47

подпрограмма
процедура
функция


рекурсивная функция
Слайд 4

Вспомогательный алгоритм Вспомогательный алгоритм - алгоритм, целиком используемый в составе другого

Вспомогательный алгоритм

Вспомогательный алгоритм - алгоритм, целиком используемый в составе другого

алгоритма.

Блок «предопределённый процесс»

Вспомогательный алгоритм делает структуру алгоритма более простой и понятной.

Слайд 5

Алгоритм вычисления степени y = ax, где x - целое число,

 

Алгоритм вычисления степени

y = ax, где x - целое число,

a 0.

Обозначим алгоритм возведения числа в степень st(a, n, y).
Это вспомогательный алгоритм.

Слайд 6

Блок-схема решения задачи:

Блок-схема решения задачи:

Слайд 7

Формальные параметры используются при описании алгоритма. Фактические параметры - те величины,

Формальные параметры используются при описании алгоритма.
Фактические параметры - те величины,

для которых будет исполнен вспомогательный алгоритм.
Типы, количество и порядок следования формальных и фактических параметров должны совпадать.

Формальные и фактические параметры

Слайд 8

Схема вызова вспомогательного алгоритма

Схема вызова вспомогательного алгоритма

Слайд 9

Пример. Алгоритм вычисления степени с натуральным показателем n для любого вещественного

Пример. Алгоритм вычисления степени с натуральным показателем n для любого вещественного

числа а, представленный в виде рекурсивного алгоритма

Рекурсивный алгоритм

Алгоритм, в котором прямо или косвенно содержится ссылка на него же как на вспомогательный алгоритм, называют рекурсивным.

Слайд 10

Подпрограммы Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.

Подпрограммы

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.
Структура

описания подпрограммы аналогична структуре главной программы. Описание подпрограммы начинается с заголовка и заканчивается оператором end

Процедура

Функция

Подпрограмма

Слайд 11

Процедуры Процедура - подпрограмма, имеющая произвольное количество входных и выходных данных.

Процедуры

Процедура - подпрограмма, имеющая произвольное количество входных и выходных данных.

procedure

<имя_процедуры> (<описание параметров-значений>; var: <описание параметров-переменных>);
begin
<операторы>
end;

Для вызова процедуры достаточно указать её имя со списком фактических параметров.

Выходные параметры

Входные параметры: переменные, константы, выражения

Слайд 12

Алгоритм Евклида Процедура для нахождения НОД procedure nod (a, b: integer;

Алгоритм Евклида

Процедура для нахождения НОД

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

while a<>b do
if a>b
then a:=a-b
else b:=b-a;
c:=a
end;
Слайд 13

Варианты вызова процедуры Между фактическими и формальными параметрами должно быть полное

Варианты вызова процедуры

Между фактическими и формальными параметрами должно быть полное соответствие

по количеству, порядку следования и типу.

в качестве параметров-значений
использованы константы

nod (36, 15, z)

nod (x, y, z)

в качестве параметров-значений
использованы имена переменных

nod (x+ y, 15, z)

в качестве параметров-значений
использованы выражение и константа

!

Слайд 14

program n_6; const m: array [1..6] of integer =(16, 32, 40,

program n_6;
const m: array [1..6] of integer =(16, 32, 40, 64,

80, 128);
var I, x, y, z: integer;
procedure nod (a, b: integer; var c: integer);
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
c:=a
end;
begin
x:=m[1];
for i:=2 to 6 do
begin
y:=m[i];
nod (x, y, z);
x:=z
end;
writeln ('НОД=', x)
end.

Раздел описания операторов
главной программы

Раздел описания
подпрограммы

Заголовок главной программы

Описание констант

Раздел описания переменных

Программа с процедурой

Слайд 15

Функции function ( ): ; begin ; := end; Функция -

Функции

function <имя_функции> (<описание входных данных>): <тип_функции>;
begin
<операторы>;
<имя_функции> := <результат>
end;

Функция - подпрограмма,

имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.

В блоке функции обязательно должен присутствовать оператор <имя_функции>:=<результат>.

Перечень формальных параметров и их типов

Тип результата

!

Для вызова функции достаточно указать её имя со списком фактических параметров в любом выражении, в условиях, (после слов if, while, until) или в операторе write главной программы.

Слайд 16

Функция поиска максимального из 2-х program n_7; var a, b, c,

Функция поиска максимального из 2-х

program n_7;
var a, b, c,

d, f: integer;
function max (x, y: integer): integer;
begin
if x>y then max:=x else max:=y;
end;
begin
readln (a, b, c, d);
f:= max(max(a, b), max(c, d));
writeln ('f=', f);
end.

Заголовок главной программы

Описание переменных

Раздел
описания
подпрограммы

Раздел операторов
главной программы (поиск максимального из 4-х чисел)

Слайд 17

Последовательность Фибоначчи В январе Саше подарили пару новорождённых кроликов. Через два

Последовательность Фибоначчи

В январе Саше подарили пару новорождённых кроликов. Через два месяца

они дали первый приплод - новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц.

Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем - по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?

Числа 1, 1, 2, 3, 5, 8, … образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.

Слайд 18

Математическая модель Пусть f(n) количество пар кроликов в месяце с номером

Математическая модель

Пусть f(n) количество пар кроликов в месяце с номером n.


По условию задачи:
f(1) = 1,
f(2) = 1,
f(3) = 2.

Из двух пар, имеющихся в марте, дать приплод в апреле сможет только одна: f(4) = 3.
Из пар, имеющихся в апреле, дать приплод в мае смогут только пары, родившиеся в марте и ранее:
f(5) = f(4) + f(3) = 3 + 2 = 5.
В общем случае:
f(n)= f(n –1)+ f(n – 2), n >= 3.

Слайд 19

Функция function f (n: integer): integer; begin if (n=1) or (n=2)

Функция

function f (n: integer): integer;
begin
if (n=1) or (n=2) then

f:=1
else f:=f(n-1)+f(n-2)
end;

Полученная функция рекурсивная - в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.

Слайд 20

Самое главное Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью

Самое главное

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.

В Паскале различают два вида подпрограмм: процедуры и функции.
Процедура - подпрограмма, имеющая произвольное количество входных и выходных данных.
Функция - подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции.
Слайд 21

Опорный конспект Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью

Опорный конспект

Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм.


Подпрограмма, имеющая произвольное количество входных и выходных данных.

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

Процедура

Функция

Подпрограмма

Слайд 22

Работаем в РТ

Работаем в РТ