Презентация, доклад по информатике на тему Разработка алгоритмов с использованием подпрограмм

Содержание

Целесообразность использования подпрограммОдним из важных факторов эффективности алгоритма является использование подпрограмм (вспомогательных алгоритмов): процедур или функций. Достаточно сказать, что все промежуточные вычисления хранятся в регистровой памяти процессора, а не в оперативной, что повышает скорость работы программы

Слайд 1Разработка алгоритмов с использованием подпрограмм. (Примеры программ рассматриваются на языке Pascal)
Подготовил

учитель информатики и ИКТ
лицея г. Красный Лиман Донецкой области:
Заруднев Андрей Николаевич
Разработка алгоритмов  с использованием подпрограмм.  (Примеры программ рассматриваются на языке Pascal)Подготовил учитель информатики и ИКТ

Слайд 2Целесообразность использования подпрограмм
Одним из важных факторов эффективности алгоритма является использование подпрограмм

(вспомогательных алгоритмов): процедур или функций. Достаточно сказать, что все промежуточные вычисления хранятся в регистровой памяти процессора, а не в оперативной, что повышает скорость работы программы (скорость работы регистровой памяти выше, чем оперативной) и использует меньшее количество оперативной памяти.
Использование подпрограмм делает удобней разработку программ для сложных задач, когда могут появляться повторяемые группы действий или возникает необходимость разделить программу на функциональные модули. Рекомендуется нисходящее программирование (от более общего плана к детальному).
Целесообразность использования подпрограммОдним из важных факторов эффективности алгоритма является использование подпрограмм (вспомогательных алгоритмов): процедур или функций. Достаточно

Слайд 3Виды подпрограмм
В Паскале различают два вида подпрограмм: процедуры и функции. Основное

различие между ними состоит в том, что процедура может иметь любое количество входных и выходных данных (параметров), а функция – любое количество входных и только одно выходное значение.
Работа с подпрограммой состоит из двух этапов:
Описание подпрограммы - запись алгоритма решения задачи в специальной форме; данные, которые используются только в подпрограмме - локальные, а данные, используемые и в вызывающей программе - глобальные.
Вызов подпрограммы – передача ей данных для обработки из вызывающей программы и получение результатов.
Виды подпрограммВ Паскале различают два вида подпрограмм: процедуры и функции. Основное различие между ними состоит в том,

Слайд 4Процедуры
Процедуры могут быть описаны без параметров и с параметрами.
Процедура без параметров

может реализовать любой алгоритм. Все входные и выходные данные, с которыми производят действия операторы процедуры, – глобальные. Для промежуточных результатов используют локальные переменные.
Описание процедуры без параметров имеет вид:
Procedure имя;
{описание локальных переменных};
Begin
{операторы – тело подпрограммы}
End;
ПроцедурыПроцедуры могут быть описаны без параметров и с параметрами.Процедура без параметров может реализовать любой алгоритм. Все входные

Слайд 5Процедуры без параметров
Процедуры без параметров можно использовать, когда сложную программу необходимо

разделить на функциональные модули.
Рассмотрим пример использования таких процедур:
Вычислить длину катета прямоугольного треугольника, если известны длины двух других сторон треугольника.
Составим алгоритм этой задачи с использованием функциональных модулей: ВВОД ДАННЫХ, РЕШЕНИЕ, ВЫВОД РЕЗУЛЬТАТА. Для каждого модуля напишем процедуры без параметров с именами, соответственно: VVOD, RESHENIE, VYVOD.
Процедуры без параметровПроцедуры без параметров можно использовать, когда сложную программу необходимо разделить на функциональные модули. Рассмотрим пример

Слайд 6Пример записи процедур без параметров на Pascal
Сделаем описание процедуры VVOD.
Var

a, b, c: real; {глобальные переменные}
Procedure vvod;
Begin {начало тела процедуры}
Write(‘Введите длину гипотенузы’);
Readln(c); {глобальная переменная}
Write(‘Введите длину катета’);
Readln(а); {глобальная переменная}
End; {возврат в основную программу}
Пример записи процедур без параметров на Pascal Сделаем описание процедуры VVOD.Var a, b, c: real; {глобальные переменные}Procedure

Слайд 7Процедуры RESHENIE и VYVOD
Procedure reshenie;
Begin
b := sqrt(sqr(c) - sqr(a)); {глобальные переменные}
End;

{возврат в основную программу}

Procedure vyvod;
Begin
Write(‘длина второго катета b=‘, b);
End; {возврат в основную программу}
Процедуры RESHENIE и VYVODProcedure reshenie;Beginb := sqrt(sqr(c) - sqr(a)); {глобальные переменные}End; {возврат в основную программу}Procedure vyvod;BeginWrite(‘длина второго

Слайд 8Основная программа
Для вызова процедуры без параметров в основной программе записывается имя

этой процедуры.

BEGIN
VVOD; {переход в тело процедуры}
RESHENIE; {переход в тело процедуры}
VYVOD; {переход в тело процедуры}
END.
Основная программаДля вызова процедуры без параметров в основной программе записывается имя этой процедуры. BEGINVVOD; {переход в тело

Слайд 9Процедуры с параметрами
Процедуры с параметрами используют тогда, когда появляются повторяемые группы

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

Слайд 10Процедуры с параметрами
Тетрадь
по алгебре
Ученика 7-А класса
Иванова Ивана
Тетрадь
по геометрии
Ученицы 7-А

класса
Ивановой Анны

Реализация задачи

Например: Необходимо составить программу для вывода на экран текста двух обложек тетрадей:

Процедуры с параметрамиТетрадь по алгебреУченика 7-А классаИванова ИванаТетрадь по геометрииУченицы 7-А классаИвановой АнныРеализация задачиНапример: Необходимо составить программу

Слайд 11Анализ решения
Для получения результата необходимо для одного титульного листа использовать группу

из четырех операторов вывода на экран:
Writeln(‘Тетрадь’);
Writeln(‘по алгебре’);
Writeln(‘Ученика 7-А класса’);
Writeln(‘Иванова Ивана’);
Writeln(‘Тетрадь’);
Writeln(‘по геометрии’);
Writeln(‘Ученицы 7-А класса’);
Writeln(‘Ивановой Анны’);
Анализ решенияДля получения результата необходимо для одного титульного листа использовать группу из четырех операторов вывода на экран:Writeln(‘Тетрадь’);Writeln(‘по

Слайд 12Определение параметров процедуры
Как видно, в группах часть текста одинаковая, но некоторые

фрагменты текста разные, а именно: название предмета (алгебре/геометрии), название учащегося (ученика/ученицы), фамилия имя (Иванова Ивана/Ивановой Анны).
Эти три фрагмента текста и будут параметрами процедуры, которые для записи процедуры мы заменим переменными: p, s, n – это формальные параметры.
Их описание делается в заголовке процедуры:
Procedure (переменные – входные данные: тип; var переменные результатов: тип);
Определение параметров процедурыКак видно, в группах часть текста одинаковая, но некоторые фрагменты текста разные, а именно: название

Слайд 13Описание процедуры с параметрами
Переменные p, s, n являются входными данными, а

для результата в программе не используются переменные. Запишем описание процедуры:
Procedure oblozhka(p, s, n: string);
begin
Writeln(‘Тетрадь’);
Writeln(‘по ’, p);
Writeln(s, ‘ 7-А класса’);
Writeln(n);
end;
Описание процедуры с параметрамиПеременные p, s, n являются входными данными, а для результата в программе не используются

Слайд 14Основная программа
Для вызова процедуры, в основной программе записывается имя процедуры, а

в скобках через запятую фактические параметры, их последовательность, количество и тип должны соответствовать формальным параметрам.
BEGIN
oblozhka(‘алгебре’, ‘Ученика’, ‘Иванова Ивана’);
oblozhka(‘геометрии’, ‘Ученицы’, ‘Ивановой Анны’);
END.
Основная программаДля вызова процедуры, в основной программе записывается имя процедуры, а в скобках через запятую фактические параметры,

Слайд 15Рассмотрим пример задачи. Составить алгоритм, который из вещественных чисел a, b,

c отрицательные числа возводит в квадрат.

Запишем программу с применением процедуры.
Var a, b, c: real;

procedure kvadrat(x: real; var y: real);
begin
if x <0 then y:=SQR(x);
End;
BEGIN
READ(a,b,c);
kvadrat(a,a);
kvadrat(b,b);
kvadrat(c,c);
writeln(a,b,c);
END.

Входные данные

результат

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

Рассмотрим пример задачи.  Составить алгоритм, который из вещественных чисел a, b, c отрицательные числа возводит в

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

данных (аргументов функции) определяет количество формальных параметров. В заголовке необходимо указать тип результата, т.е. тип самой функции. Переменная, в которую записывается результат работы подпрограммы, должна иметь имя функции.
Function имя_функции(входные данные: тип): тип результата;
{описание локальных переменных}
Begin
{операторы подпрограммы}
Имя_функции := результат;
End;
Подпрограммы-функцииПодпрограмма, имеющая единственный результат, может быть оформлена как функция. Количество входных данных (аргументов функции) определяет количество формальных

Слайд 17Вызов функции
В основной программе для вызова функции используется указатель – это

имя функции, после которого в круглых скобках, через запятую, перечисляются фактические параметры (аргументы функции). Указатель функции не является самостоятельным оператором, как процедура. Он записывается как значение в других операторах языка Паскаль. Примером вызова функции являются математические функции, например: write(sin(x)), у := sqr(x).
Рассмотрим несколько задач, в которых можно использовать подпрограмму-функцию.
Вызов функцииВ основной программе для вызова функции используется указатель – это имя функции, после которого в круглых

Слайд 18Накопление результата
1) Дано три вещественных числа a, b, c. Составить алгоритм,

который определяет сумму квадратов отрицательных чисел.
Идея решения: сумма будет складываться из трех чисел – если число отрицательное, то добавляться будет квадрат этого числа, иначе ничего не добавляется, т.е. ноль.
S := chislo(a) + chislo(b) + chislo(c);
Запишем программу с использованием вспомогательного алгоритма-функции chislo(х). Аргументом функции является формальное число х, а результатом имя функции chislo.

Накопление результата1) Дано три вещественных числа a, b, c. Составить алгоритм, который определяет сумму квадратов отрицательных чисел.

Слайд 19Var a, b, c, s: real;
function chislo(x: real): real;
begin
if x

<0
then chislo := SQR(х)
else chislo :=0;
end;
BEGIN
READ(a, b, c);
s := chislo(a) + chislo(b) + chislo(c);
Write(s);
END.

Программа на Pascal

Var a, b, c, s: real;function chislo(x: real): real;begin if x

Слайд 202) Дано три вещественных числа a, b, c. Составить алгоритм, который

определяет произведение квадратов отрицательных чисел.
Основной алгоритм этой задачи: (с использованием подпрограммы-функции) - будет отличаться от суммы.
Если число отрицательное, то будем умножать на квадрат этого числа, иначе ничего не добавляется, т.е. умножать надо на единицу! Но тогда, если все числа не будут отрицательными произведение должно быть равно нулю, а в нашем случае оно получится равным единицы, следовательно необходимо вначале сделать проверку всех чисел и выбрать один из вариантов решения: по формуле или присвоить ноль.
2) Дано три вещественных числа a, b, c. Составить алгоритм, который определяет произведение квадратов отрицательных чисел.Основной алгоритм

Слайд 21Текст программы
Var a, b, c, P: real;
function chislo(x: real): real;
begin
if

x <0 then chislo := SQR(х) else chislo := 1;
end;
BEGIN
READ(a, b, c);
If (a >= 0) and (b >= 0) and (c >= 0)
Then P := 0
Else P := chislo(a) * chislo(b) * chislo(c);
Write(P);
END.
Текст программыVar a, b, c, P: real;function chislo(x: real): real;begin if x = 0) and (b >=

Слайд 22Задачи с несколькими числами, с промежуточными вычислениями максимума или минимума этих

чисел

Найти разность максимального и минимального среди четырех любых чисел a, b, c, d.
Промежуточными вычислениями в этой задаче являются максимум и минимум этих четырех чисел, т.е. необходимо три раза найти экстремум для двух чисел: 1) а и b; 2) c и d; 3) значение (1-ой пары) и значение (второй пары).
Используем подпрограммы-функции максимума и минимума для двух чисел (числа – параметры функции могут быть заданы в виде арифметических выражений или функций). Разность запишем в операторе вывода:
Write(max-min);

Задачи с несколькими числами, с промежуточными вычислениями максимума или минимума этих чиселНайти разность максимального и минимального среди

Слайд 23VAR a, b, c, d: real;
FUNCTION max(x, y: real): real;
begin
if x

>y then max:=x else max:=y;
end;
FUNCTION min(x, y: real): real;
begin
if x end;
BEGIN
READLN(a, b, c, d);
WRITE(‘max-min = ', max(max(a, b), max(c,d)) - min(min(a, b), min(c, d)));
END.

Текст программы

VAR a, b, c, d: real;FUNCTION max(x, y: real): real;beginif x >y then max:=x else max:=y;end;FUNCTION min(x,

Слайд 24Использованная литература:
Дмитриева М.В., Кубанский А.А. Элементы современного программирования. – С.-Пб.: Изд-во

С.-Петербургского университета, 1991.
Основы информатики и вычислительной техники: Проб. учеб. пособие для сред. учеб. Заведений. В 2-х частях/ Под ред. А.П.Ершова, В.М. Монахова. – М.: Просвещение. – Ч. 1, 1985, Ч. 2, 1986.
Окулов С.М. Основы программирования. – М.: Лаборатория базовых знаний, 2001.
Остер Г. Задачник. – Росмэн, 1998. – 128 с.
Использованная литература:Дмитриева М.В., Кубанский А.А. Элементы современного программирования. – С.-Пб.: Изд-во С.-Петербургского университета, 1991.Основы информатики и вычислительной

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть