Презентация "Алгоритмические структуры. Решение задач" 10 класс

Подписи к слайдам:
Алгоритмические структуры
  • Решение задач
  • Искандарова А.Р.
  • учитель информатики
  • МБОУ СОШ №18 г.Уфа
Вопросы для повторения:
  • Назовите базовые алгоритмические структуры.
    • Следование, ветвление, цикл
  • Следование – это …
    • линейная последовательность действий
  • Ветвление – это …
    • выбор одной из двух серий действий с выходом на общее продолжение
  • Цикл – это …
    • повторение серии действий по условию
Задание 1
  • Нарисуйте блок-схемы и напишите на языке программирования Паскаль два варианта алгоритма решения задачи: выбрать из двух числовых величин наибольшее значение. Первый вариант – с полным ветвлением, второй вариант – с неполным ветвлением.
Полное ветвление
  • начало
  • ввод a, b
  • c:=a
  • a>b
  • нет
  • вывод c
  • конец
  • да
  • c:=b
Полное ветвление
  • начало
  • ввод a, b
  • c:=a
  • a>b
  • нет
  • вывод c
  • конец
  • да
  • c:=b
  • Program max1;
  • var a,b,c: integer;
  • begin
  • read(a,b);
  • if (a>b) then c:=a
  • else c:=b;
  • writeln('Наибольшее число=',c);
  • end.
Неполное ветвление
  • начало
  • ввод a, b
  • c:=a
  • a>b
  • нет
  • вывод S
  • конец
  • да
  • c:=b
Неполное ветвление
  • начало
  • ввод a, b
  • c:=a
  • a>b
  • нет
  • вывод c
  • конец
  • да
  • c:=b
  • Program max2;
  • var a,b,c: integer;
  • begin
  • read(a,b);
  • c:=b;
  • if (a>b) then c:=a;
  • writeln('Наибольшее число=',c);
  • end.
Задание 2
  • Нарисуйте блок-схемы и напишите на языке программирования Паскаль два варианта алгоритма решения задачи: выбрать из трех числовых величин наименьшее значение. Первый вариант – с вложенными ветвлениями, второй вариант – с последовательными ветвлениями.
Вложенные ветвления
  • начало
  • ввод a, b,c
  • d:=a
  • a<b
  • нет
  • вывод d
  • конец
  • да
  • a<c
  • b<c
  • d:=c
  • d:=b
  • d:=c
  • да
  • да
  • нет
  • нет
Вложенные ветвления
  • начало
  • ввод a, b,c
  • d:=a
  • a<b
  • -
  • вывод d
  • конец
  • a<c
  • b<c
  • d:=c
  • d:=b
  • d:=c
  • Program min1;
  • var a,b,c,d: integer;
  • begin
  • read(a,b,c);
  • if (a<b) then
  • if (a<c)then d:=a
  • else d:=c
  • else
  • if (b<c) then d:=b
  • else d:=c;
  • writeln('Наименьшее число=',d);
  • end.
  • +
  • +
  • +
  • -
  • -
Последовательные ветвления
  • начало
  • ввод a,b,c
  • d:=a
  • (a<b)and(a<c)
  • нет
  • вывод d
  • конец
  • да
  • d:=b
  • (b<a)and(b<c)
  • нет
  • да
  • d:=c
  • (c<a)and(c<b)
  • нет
  • да
Последовательные ветвления
  • начало
  • ввод a,b,c
  • d:=a
  • (a<b)and(a<c)
  • нет
  • вывод d
  • конец
  • да
  • d:=b
  • (b<a)and(b<c)
  • нет
  • да
  • d:=c
  • (c<a)and(c<b)
  • нет
  • да
  • Program min2;
  • var a,b,c,d: integer;
  • begin
  • read(a,b,c);
  • if (a<b)and(a<c) then d:=a;
  • if (b<a) and (b<c) then d:=b;
  • if (c<a) and (c<b) then d:=c;
  • writeln('Наименьшее число=',d);
  • end.
Задание 3
  • Для данного натурального числа N требуется вычислить сумму: S=1+1/2+1/3+…+1/N.
  • Постройте блок-схемы и напишите программы, используя два варианта алгоритма: с циклом-до и с циклом-пока.
Найти сумму S=1+1/2+1/3+…+1/N с циклом-до
  • начало
  • ввод N
  • S:=0
  • i:=1
  • S:=S+1/i
  • i:=i+1
  • i>N
  • нет
  • вывод S
  • конец
  • да
Найти сумму S=1+1/2+1/3+…+1/N с циклом-до
  • начало
  • ввод N
  • S:=0
  • i:=1
  • S:=S+1/i
  • i:=i+1
  • i>N
  • нет
  • вывод S
  • конец
  • да
  • var i, N: integer; S: real;
  • begin
  • readln(N);
  • S:=0;
  • i:=1;
  • repeat
  • S:=S+1/i;
  • i:=i+1
  • until (i>N);
  • writeln('S=',S:5:3);
  • end.
Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока
  • начало
  • ввод N
  • S:=0
  • i:=1
  • S:=S+1/i
  • i:=i+1
  • i<=N
  • нет
  • вывод S
  • конец
  • да
Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока
  • начало
  • ввод N
  • S:=0
  • i:=1
  • S:=S+1/i
  • i:=i+1
  • i<=N
  • нет
  • вывод S
  • конец
  • да
  • var i, N: integer; S: real;
  • begin
  • readln(N);
  • S:=0;
  • i:=1;
  • while (i<=N) do
  • begin
  • S:=S+1/i;
  • i:=i+1;
  • end;
  • writeln('S=',S:5:3);
  • end.
Задание 4
  • Какую структуру будет иметь алгоритм решения следующей задачи?
  • Дано целое положительное число N. Если N – четное, то вычислить N!=1·2·3·…·N. Если N – нечетное, то вычислить сумму: 1+2+…+ N.
  • Составьте блок-схему алгоритма решения и опишите его на языке Паскаль.
Задание 4
  • начало
  • ввод N
  • i:=1; S:=0; P:=1
  • N mod 2=0
  • нет
  • вывод S
  • конец
  • да
  • i<=N
  • P:=P*i
  • i:=i+1
  • i<=N
  • S:=S+i
  • i:=i+1
  • вывод P
  • да
  • да
  • нет
  • N mod 2<>0
  • да
  • нет
  • нет
Задание 4
  • var N, i, P, S: integer;
  • begin
  • read(N);
  • i:=1; P:=1; S:=0;
  • if (N mod 2 = 0) then begin
  • while (i<=N) do begin
  • P:=P*i; i:=i+1; end;
  • writeln(N,'!=',P);
  • end;
  • if (n mod 2 <> 0) then begin
  • while (i<=N) do begin
  • S:=S+i; i:=i+1; end;
  • writeln('1+2+...+',N,'=',S);
  • end;
  • end.
Использованная литература
  • Информатика. Базовый уровень: учебник для 10 класса / И.Г. Семакин, Е.К. Хеннер, Т.Ю. Шеина. – М. : БИНОМ. Лаборатория знаний, 2014.
  • Информатика. Задачник-практикум в 2 т. / Под ред. И.Г. Семакина, Е.К. Хеннера: Том 1. – М. : БИНОМ. Лаборатория знаний, 2012.