Программирование на алгоритмическом языке

Содержание

Слайд 2

Циклы

Цикл – это многократное выполнение одинаковых действий.
цикл с известным числом шагов
цикл с

Циклы Цикл – это многократное выполнение одинаковых действий. цикл с известным числом
неизвестным числом шагов (цикл с условием)
Задача. Вывести на экран 5 раз слово «Привет».
Особенность: одинаковые действия выполняются 5 раз.

Слайд 3

Циклы

алг Привет
нач
вывод "Привет", нс
вывод "Привет", нс
вывод "Привет", нс

Циклы алг Привет нач вывод "Привет", нс вывод "Привет", нс вывод "Привет",
вывод "Привет", нс
вывод "Привет", нс
кон

Слайд 4

Циклы

алг Привет
нач
нц 5 раз
вывод "Привет!", нс
кц
кон

конец цикла

начало цикла

вывод "Привет!",

Циклы алг Привет нач нц 5 раз вывод "Привет!", нс кц кон
нс

тело цикла

Слайд 5

Циклы

начало

конец

Блок-схема:

да

нет

тело цикла

Циклы начало конец Блок-схема: да нет тело цикла

Слайд 6

Число шагов – переменная

алг Привет
нач
цел N
вывод "Сколько раз?", нс
ввод

Число шагов – переменная алг Привет нач цел N вывод "Сколько раз?",
N
нц N раз
вывод "Привет!", нс
кц
кон

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

Слайд 7

Задания

«3»: Ввести натуральное число и вывести в строчку все числа от 1

Задания «3»: Ввести натуральное число и вывести в строчку все числа от
до этого числа.
Пример:
Введите натуральное число:
4
Ответ: 1 2 3 4
«4»: Ввести два целых числа, найти их произведение, не используя операцию умножения.
Пример:
Введите два числа:
4 15
4*15=60

Слайд 8

Задания

«5»: Ввести натуральное число N и найти сумму всех чисел от 1

Задания «5»: Ввести натуральное число N и найти сумму всех чисел от
до N (1+2+3+…+N).
Пример:
Введите число слагаемых:
100
Сумма чисел от 1 до 100 равна 5050

Слайд 9

Циклы

алг Привет
нач
нц 5 раз
вывод "Привет!", нс
кц
кон

N := N +

Циклы алг Привет нач нц 5 раз вывод "Привет!", нс кц кон
1

Слайд 10

Блок-схема алгоритма

начало

конец

да

нет

N = 5?

N := 0

N := N + 1

еще не

Блок-схема алгоритма начало конец да нет N = 5? N := 0
сделали ни одного раза

проверить, все ли сделали

считаем очередной шаг

цикл

Слайд 11

Цикл с условием

алг Привет 2
нач
цел N
N:= 0
нц пока N

Цикл с условием алг Привет 2 нач цел N N:= 0 нц
<> 5
вывод "Привет!", нс
N:= N + 1
кц
кон

Слайд 12

Цикл с условием

алг Привет 3
нач
цел N
N:= 5
нц пока N

Цикл с условием алг Привет 3 нач цел N N:= 5 нц
<> ???
вывод "Привет!", нс
???
кц
кон

Вместо знаков вопроса добавьте числа и операторы так, чтобы цикл выполнился ровно 5 раз:

0

N:= N - 1

Слайд 13

Что получим?

алг Пример 1
нач
цел N
N:= 1
нц пока N <=

Что получим? алг Пример 1 нач цел N N:= 1 нц пока
5
вывод N, нс
N:= N + 1
кц
кон

1
2
3
4
5

Слайд 14

Что получим?

алг Пример 2
нач
цел N
N:= 1
нц пока N <=

Что получим? алг Пример 2 нач цел N N:= 1 нц пока
5
вывод N, нс
N:= N + 2
кц
кон

1
3
5

Слайд 15

Что получим?

алг Пример 3
нач
цел N
N:= 2
нц пока N <>

Что получим? алг Пример 3 нач цел N N:= 2 нц пока
5
вывод N, нс
N:= N + 2
кц
кон

2
4
6
8
10
12
14
16
...

Слайд 16

Что получим?

алг Пример 4
нач
цел N
N:= 1
нц пока N <=

Что получим? алг Пример 4 нач цел N N:= 1 нц пока
5
вывод N*N*N, нс
N:= N + 1
кц
кон

1
8
27
64
125

Слайд 17

Что получим?

алг Пример 5
нач
цел N
N:= 5
нц пока N >=

Что получим? алг Пример 5 нач цел N N:= 5 нц пока
1
вывод N*N*N, нс
N:= N - 1
кц
кон

125
64
27
8
1

Слайд 18

Задания

«3»: Ввести натуральное число вывести квадраты и кубы всех чисел от 1

Задания «3»: Ввести натуральное число вывести квадраты и кубы всех чисел от
до этого числа.
Пример:
Введите натуральное число:
3
1: 1 1
2: 4 8
3: 9 27
«4»: Ввести два целых числа a и b (a ≤ b) и вывести квадраты все чисел от a до b.
Пример:
Введите два числа:
4 5
4*4=16
5*5=25

Слайд 19

Задания

«5»: Ввести два целых числа a и b (a ≤ b) и

Задания «5»: Ввести два целых числа a и b (a ≤ b)
вывести сумму квадратов всех чисел от a до b.
Пример:
Введите два числа:
4 10
Сумма квадратов 371

Слайд 20

Циклы с условием

Пример: Отпилить полено от бревна. Сколько раз надо сделать движения

Циклы с условием Пример: Отпилить полено от бревна. Сколько раз надо сделать
пилой?
Задача: Ввести целое число (<2000000) и определить число цифр в нем.
Идея решения: Отсекаем последовательно последнюю цифру, увеличиваем счетчик.
Проблема: Неизвестно, сколько шагов надо сделать.
Решение: Надо остановиться, когда n = 0, т.е. надо делать «пока n <> 0».

Слайд 21

Блок-схема алгоритма

начало

конец

нет

да

n <> 0?

count := 0

count := count + 1
n := div(n,

Блок-схема алгоритма начало конец нет да n 0? count := 0 count
10)

обнулить счетчик цифр

ввод n

выполнять «пока n <> 0»

вывод count

Слайд 22

Программа

алг Число цифр
нач
цел n, count
вывод "Введите целое число", нс
ввод

Программа алг Число цифр нач цел n, count вывод "Введите целое число",
n
count:= 0
вывод "В числе ", n, " нашли ", count, " цифр"
кон

нц пока n<>0
count:= count + 1
n:= div(n,10)
кц

, n1

; n1:= n

n1,

Слайд 23

Цикл с условием

Особенности:
можно использовать сложные условия:
можно записывать в одну строчку, разделяя команды

Цикл с условием Особенности: можно использовать сложные условия: можно записывать в одну
точкой с запятой:

Слайд 24

Цикл с условием

Особенности:
условие пересчитывается при каждом входе в цикл
если условие на входе

Цикл с условием Особенности: условие пересчитывается при каждом входе в цикл если
в цикл ложно, цикл не выполняется ни разу
если условие никогда не станет ложным, программа зацикливается

a := 4; b := 6
нц пока a > b; a:= a – b кц

a:= 4; b:= 6
нц пока a < b; d:= a + b кц

Слайд 25

Сколько раз выполняется цикл?

a:= 4; b:= 6
нц пока a < b; a:=

Сколько раз выполняется цикл? a:= 4; b:= 6 нц пока a 2
a + 1 кц

2 раза
a = 6

a:= 4; b:= 6
нц пока a < b; a:= a + b кц

1 раз
a = 10

a:= 4; b:= 6
нц пока a > b; a:= a + 1 кц

0 раз
a = 4

a:= 4; b:= 6
нц пока a < b; b:= a – b кц

1 раз
b = -2

a:= 4; b:= 6
нц пока a < b; a:= a – 1 кц

зацикливание

Слайд 26

Задания

«3»: Ввести целое число и определить, верно ли, что в нём ровно

Задания «3»: Ввести целое число и определить, верно ли, что в нём
3 цифры.
Пример:
Введите число: Введите число:
123 1234
Да. Нет.
«4»: Ввести целое число и найти сумму его цифр.
Пример:
Введите целое число:
1234
Сумма цифр числа 1234 равна 10.

Слайд 27

Задания

«5»: Ввести целое число и определить, верно ли, что в его записи

Задания «5»: Ввести целое число и определить, верно ли, что в его
есть две одинаковые цифры, стоящие рядом.
Пример:
Введите целое число: Введите целое число:
1232 1224
Нет. Да.
«6»: Ввести целое число и определить, верно ли, что в его записи есть две одинаковые цифры, НЕ обязательно стоящие рядом.
Пример:
Введите целое число: Введите целое число:
1234 1242
Нет. Да.

Слайд 28

Задания-2

«3»: Ввести целое число и определить, верно ли, что в нём ровно

Задания-2 «3»: Ввести целое число и определить, верно ли, что в нём
1 цифра «9».
Пример:
Введите число: Введите число:
193 1994
Да. Нет.
«4»: Ввести целое число и определить, верно ли, что все его цифры четные.
Пример:
Введите число: Введите число:
2684 2994
Да. Нет.

Слайд 29

Задания-2

«5»: Ввести целое число и определить, верно ли, что все его цифры

Задания-2 «5»: Ввести целое число и определить, верно ли, что все его
расположены в порядке возрастания.
Пример:
Введите целое число: Введите целое число:
1238 1274
Да. Нет.
«6»: Ввести целое число и «перевернуть» его, так чтобы первая цифра стала последней и т.д.
Пример:
Введите целое число: Введите целое число:
1234 782
4321 287

Слайд 30

Вычисление НОД

НОД = наибольший общий делитель двух натуральных чисел – это наибольшее

Вычисление НОД НОД = наибольший общий делитель двух натуральных чисел – это
число, на которое оба исходных числа делятся без остатка.

Перебор:

Записать в переменную k минимальное из двух чисел.
Если a и b без остатка делятся на k, то стоп.
Уменьшить k на 1.
Перейти к шагу 2.

это цикл с условием!

Слайд 31

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

Евклид
(365-300 до. н. э.)

НОД(a,b)= НОД(a-b, b)
= НОД(a, b-a)

Заменяем

Алгоритм Евклида Евклид (365-300 до. н. э.) НОД(a,b)= НОД(a-b, b) = НОД(a,
большее из двух чисел разностью большего и меньшего до тех пор, пока они не станут равны. Это и есть НОД.

НОД (14, 21) = НОД (14, 21-14) = НОД (14, 7)

НОД (1998, 2) = НОД (1996, 2) = … = 2

Пример:

много шагов при большой разнице чисел:

= НОД (7, 7) = 7

Надо: вычислить наибольший общий делитель (НОД) чисел a и b.

Слайд 32

Блок-схема алгоритма

начало

конец

Блок-схема алгоритма начало конец

Слайд 33

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

нц пока a <> b
если a > b
то

Алгоритм Евклида нц пока a b если a > b то a:=
a:= a - b
иначе b:= b - a
все
кц

Слайд 34

Модифицированный алгоритм Евклида

НОД(a,b)= НОД(mod(a,b), b)
= НОД(a, mod(b,a))

Заменяем большее из двух

Модифицированный алгоритм Евклида НОД(a,b)= НОД(mod(a,b), b) = НОД(a, mod(b,a)) Заменяем большее из
чисел остатком от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Тогда большее — это НОД.

НОД (14, 21) = НОД (14, 7) = НОД (0, 7) = 7

Пример:

Еще один вариант:

НОД(2·a,2·b)= 2·НОД(a, b)
НОД(2·a,b)= НОД(a, b) | при нечетном b

Слайд 35

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

«3»: Составить программу для вычисления НОД с помощью алгоритма Евклида.
«4»: Составить

Алгоритм Евклида «3»: Составить программу для вычисления НОД с помощью алгоритма Евклида.
программу для вычисления НОД с помощью модифицированного алгоритма Евклида и заполнить таблицу:

Слайд 36

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

«5»: Выполнить задание на «4» и подсчитать число шагов алгоритма для

Алгоритм Евклида «5»: Выполнить задание на «4» и подсчитать число шагов алгоритма для каждого случая.
каждого случая.

Слайд 37

Программирование на алгоритмическом языке

Тема 5. Циклы с переменной

Программирование на алгоритмическом языке Тема 5. Циклы с переменной

Слайд 38

Цикл с переменной

Задача: вывести кубы чисел от 1 до 8.

Нужны ли

Цикл с переменной Задача: вывести кубы чисел от 1 до 8. Нужны
переменные? Сколько?
Как они должны изменяться?
Нужен ли цикл?

Слайд 39

Блок-схема алгоритма

начало

конец

нет

да

N <= 8?

N := 1

N := N + 1

кубN := N*N*N

Блок-схема алгоритма начало конец нет да N N := 1 N :=

Слайд 40

Цикл с переменной

Задача: вывести кубы натуральных чисел от 1 до 8.

алг

Цикл с переменной Задача: вывести кубы натуральных чисел от 1 до 8.
Кубы
нач
цел N, кубN
N:= 1
нц пока N <= 8
кубN:= N*N*N
вывод кубN, нс
N:= N + 1
кц
кон

N:= 1

N <= 8

N:= N + 1

3 действия с N

Слайд 41

Цикл с переменной

Задача: вывести кубы натуральных чисел от 1 до 8.

алг

Цикл с переменной Задача: вывести кубы натуральных чисел от 1 до 8.
Кубы
нач
цел N, кубN
кон

нц для N от 1 до 8
кубN:= N*N*N
вывод кубN, нс
кц

для 1,2,3,…,8

Слайд 42

Цикл с переменной

Задача: вывести кубы чётных чисел от 2 до 8.

алг

Цикл с переменной Задача: вывести кубы чётных чисел от 2 до 8.
Кубы
нач
цел N, кубN
кон

нц для N от 2 до 8 шаг 2
кубN:= N*N*N
вывод кубN, нс
кц

для 2,4,6,8

Слайд 43

Сколько раз выполняется цикл?

a := 1
нц для i от 1 до 3;

Сколько раз выполняется цикл? a := 1 нц для i от 1
a:=a+1 кц

a = 4

a := 1
нц для i от 3 до 1; a:=a+1 кц

a = 1

a := 1
нц для i от 1 до 3 шаг -1; a:=a+1 кц

a = 1

a := 1
нц для i от 3 до 1 шаг -1; a:=a+1 кц

a = 4

Слайд 44

Цикл с переменной

Особенности:
переменная цикла может быть только целой (цел)
начальное и конечное значения

Цикл с переменной Особенности: переменная цикла может быть только целой (цел) начальное
и шаг – целые
можно записывать в одну строчку, разделяя команды точкой с запятой:
если шаг > 0 и конечное значение < начального, цикл не выполняется ни разу (проверка условия в начале цикла, цикл с предусловием)
если шаг < 0 и конечное значение > начального, цикл не выполняется ни разу

Слайд 45

Замена одного вида цикла на другой

нц для i от 1 до 10

Замена одного вида цикла на другой нц для i от 1 до

| тело цикла
кц

i:= 1
нц пока i <= 10
| тело цикла
i:= i + 1
кц

нц для i от a до b шаг -1
| тело цикла
кц

i:= a
нц пока i >= b
| тело цикла
i:= i - 1
кц

Замена пока на для возможна только тогда, когда можно заранее вычислить число шагов цикла.

Замена цикла для на пока возможна всегда.

Слайд 46

Задания

«3»: Ввести натуральное число N и вывести числа от N до 1

Задания «3»: Ввести натуральное число N и вывести числа от N до
(через одно) в порядке убывания.
Пример:
Введите натуральное число:
8
Ответ: 8 6 4 2

Слайд 47

Задания

«4»: Ввести два целых числа a и b (a ≤ b) и

Задания «4»: Ввести два целых числа a и b (a ≤ b)
вывести кубы всех чисел от a до b.
Пример:
Введите два числа:
4 6
4*4*4=64
5*5*5=125
6*6*6=216
«5»: Ввести целое число a и вывести сумму квадратов всех чисел от 1 до a с шагом 0.1.
Пример:
Введите последнее число:
3
Сумма 91.7

12 + 1.12 + 1.22 +…+ a2