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

Содержание

Слайд 2

Вопросы для повторения: Назовите базовые алгоритмические структуры. Следование, ветвление, цикл Следование

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

Назовите базовые алгоритмические структуры.
Следование, ветвление, цикл
Следование – это …
линейная

последовательность действий
Ветвление – это …
выбор одной из двух серий действий с выходом на общее продолжение
Цикл – это …
повторение серии действий по условию
Слайд 3

Задание 1 Нарисуйте блок-схемы и напишите на языке программирования Паскаль два

Задание 1

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

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

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

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

начало

ввод a, b

c:=a

a>b

нет

вывод c

конец

да

c:=b

Слайд 5

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

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

начало

ввод 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.
Слайд 6

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

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

начало

ввод a, b

c:=a

a>b

нет

вывод S

конец

да

c:=b

Слайд 7

Неполное ветвление начало ввод a, b c:=a a>b нет вывод c

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

начало

ввод 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.
Слайд 8

Задание 2 Нарисуйте блок-схемы и напишите на языке программирования Паскаль два

Задание 2

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

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

Вложенные ветвления начало ввод a, b,c d:=a a нет вывод d

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

начало

ввод a, b,c

d:=a

a

нет

вывод d

конец

да

a

b

d:=c

d:=b

d:=c

да

да

нет

нет

Слайд 10

Вложенные ветвления начало ввод a, b,c d:=a a - вывод d

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

начало

ввод a, b,c

d:=a

a

-

вывод d

конец

a

b

d:=c

d:=b

d:=c

Program min1;
var a,b,c,d: integer;
begin
read(a,b,c);
if (a

if (a else d:=c
else
if (b else d:=c;
writeln('Наименьшее число=',d);
end.

+

+

+

-

-

Слайд 11

Последовательные ветвления начало ввод a,b,c d:=a (a нет вывод d конец

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

начало

ввод a,b,c

d:=a

(a

нет

вывод d

конец

да

d:=b

(b

нет

да

d:=c

(c

нет

да

Слайд 12

Последовательные ветвления начало ввод a,b,c d:=a (a нет вывод d конец

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

начало

ввод a,b,c

d:=a

(a

нет

вывод d

конец

да

d:=b

(b

нет

да

d:=c

(c

нет

да

Program min2;
var a,b,c,d: integer;
begin
read(a,b,c);
if (aif (b

and (bif (cwriteln('Наименьшее число=',d);
end.
Слайд 13

Задание 3 Для данного натурального числа N требуется вычислить сумму: S=1+1/2+1/3+…+1/N.

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

Найти сумму 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 с циклом-до начало ввод N S:=0 i:=1 S:=S+1/i

Найти сумму 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.
Слайд 16

Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока начало ввод N S:=0 i:=1 S:=S+1/i

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

начало

ввод N

S:=0

i:=1

S:=S+1/i

i:=i+1

i<=N

нет

вывод S

конец

да

Слайд 17

Найти сумму S=1+1/2+1/3+…+1/N с циклом-пока начало ввод N S:=0 i:=1 S:=S+1/i

Найти сумму 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.
Слайд 18

Задание 4 Какую структуру будет иметь алгоритм решения следующей задачи? Дано

Задание 4

Какую структуру будет иметь алгоритм решения следующей задачи?
Дано целое положительное

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

Задание 4 начало ввод N i:=1; S:=0; P:=1 N mod 2=0

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

да

нет

нет

Слайд 20

Задание 4 var N, i, P, S: integer; begin read(N); i:=1;

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