Алгоритмические структуры
Вопросы для повторения:
Задание 1
Полное ветвление
Полное ветвление
Неполное ветвление
Неполное ветвление
Задание 2
Вложенные ветвления
Вложенные ветвления
Последовательные ветвления
Последовательные ветвления
Задание 3
Найти сумму S=1+1/2+1/3+…+1/N с циклом-до
Найти сумму S=1+1/2+1/3+…+1/N с циклом-до
Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока
Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока
Задание 4
Задание 4
Задание 4
Использованная литература
241.50K
Категория: ПрограммированиеПрограммирование

Алгоритмические структуры

1. Алгоритмические структуры

Решение задач

2. Вопросы для повторения:

Назовите базовые алгоритмические
структуры.
Следование – это …
линейная последовательность действий
Ветвление – это …
Следование, ветвление, цикл
выбор одной из двух серий действий с выходом на
общее продолжение
Цикл – это …
повторение серии действий по условию

3. Задание 1

Нарисуйте блок-схемы и напишите на языке
программирования Паскаль два варианта
алгоритма решения задачи: выбрать из двух
числовых величин наибольшее значение.
Первый вариант – с полным ветвлением,
второй вариант – с неполным ветвлением.

4. Полное ветвление

начало
ввод a, b
да
a>b
нет
c:=b
c:=a
вывод c
конец

5. Полное ветвление

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
да
a>b
нет
c:=b
c:=a
вывод c
конец

6. Неполное ветвление

начало
ввод a, b
c:=b
да
a>b
c:=a
вывод S
конец
нет

7. Неполное ветвление

начало
Program max2;
var a,b,c: integer;
begin
read(a,b);
c:=b;
if (a>b) then c:=a;
writeln('Наибольшее
число=',c);
end.
ввод a, b
c:=b
да
a>b
c:=a
вывод c
конец
нет

8. Задание 2

Нарисуйте блок-схемы и напишите на языке
программирования Паскаль два варианта
алгоритма решения задачи: выбрать из трех
числовых величин наименьшее значение.
Первый вариант – с вложенными
ветвлениями, второй вариант – с
последовательными ветвлениями.

9. Вложенные ветвления

начало
ввод a, b,c
да
да
d:=a
a<c
нет
a<b
нет
да
b<c
d:=c
d:=b
вывод d
конец
нет
d:=c

10. Вложенные ветвления

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<c
-
a<b
-
+
d:=c
d:=b
вывод d
конец
b<c
d:=c

11. Последовательные ветвления

начало
ввод a,b,c
да
(a<b)and(a<c)
нет
d:=a
да
(b<a)and(b<c)
нет
d:=b
вывод d
да
d:=c
конец
(c<a)and(c<b)
нет

12. Последовательные ветвления

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.
начало
ввод a,b,c
да
d:=a
да
(b<a)and(b<c)
нет
d:=b
да
вывод d
d:=c
конец
(a<b)and(a<c)
нет
(c<a)and(c<b)
нет

13. Задание 3

Для данного натурального числа N требуется
вычислить сумму: S=1+1/2+1/3+…+1/N.
Постройте блок-схемы и напишите
программы, используя два варианта
алгоритма: с циклом-до и с циклом-пока.

14. Найти сумму S=1+1/2+1/3+…+1/N с циклом-до

начало
ввод N
S:=0
i:=1
S:=S+1/i
i:=i+1
нет
i>N
да
вывод S
конец

15. Найти сумму S=1+1/2+1/3+…+1/N с циклом-до

начало
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.
ввод N
S:=0
i:=1
S:=S+1/i
i:=i+1
нет
i>N
да
вывод S
конец

16. Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока

начало
ввод N
S:=0
i:=1
i<=N
да
S:=S+1/i
i:=i+1
нет
вывод S
конец

17. Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока

начало
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.
ввод N
S:=0
i:=1
i<=N
да
S:=S+1/i
i:=i+1
нет
вывод S
конец

18. Задание 4

Какую структуру будет иметь алгоритм
решения следующей задачи?
Дано целое положительное число N. Если
N – четное, то вычислить N!=1·2·3·…·N.
Если N – нечетное, то вычислить сумму:
1+2+…+ N.
Составьте блок-схему алгоритма решения
и опишите его на языке Паскаль.

19. Задание 4

начало
Задание 4
ввод N
i:=1; S:=0; P:=1
да
i<=N
да
P:=P*i
i:=i+1
N mod 2=0
нет
вывод P
да
i<=N
да
S:=S+i
i:=i+1
нет
нет
N mod 2<>0
вывод S
конец
нет

20. Задание 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.

21. Использованная литература

Информатика. Базовый уровень: учебник
для 10 класса / И.Г. Семакин, Е.К. Хеннер,
Т.Ю. Шеина. – М. : БИНОМ. Лаборатория
знаний, 2014.
Информатика. Задачник-практикум в 2 т. /
Под ред. И.Г. Семакина, Е.К. Хеннера: Том
1. – М. : БИНОМ. Лаборатория знаний,
2012.
English     Русский Правила