10 класс алгоритмы с повторениями
TRANSCRIPT
![Page 1: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/1.jpg)
ЗЛАТОУСТОВСКАЯ ОБЩЕОБРАЗОВАТЕЛЬНАЯ ШКОЛА І-ІІІ СТУПЕНЕЙ
Учитель информатикиЛесконог Елена Викторовна
Алгоритмы с повторениями. Операторы цикла на языке
программирования. Вложенные циклы.
![Page 2: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/2.jpg)
При составлении программ часто возникают ситуации, когда
1. Заранее не известно количество повторений цикла;
2. Переменная – счетчик цикла должна изменяться с шагом
≠ 1.
В таких случаях используют логические циклы.
Логические циклы - это циклическое повторение блока
команд, пока выполняется (или не выполняется) некоторое
условие.
Логические циклы
![Page 3: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/3.jpg)
Логические циклы
Цикл ПОКАНачало
Ввод данных
Условие
Тело цикла
Начало
Ввод данных
Условие
Тело цикла
Цикл ДО
Истина
Истина
Ложь
Ложь
![Page 4: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/4.jpg)
Цикл с предусловием / ПОКА /
While условие do
<оператор>;
Цикл с постусловием / ДО /
Repeat
<операторы>
Until условие;
Логические циклы
![Page 5: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/5.jpg)
Сравнение циклов While и Repeat
В цикле While проверка условия выполнения цикла находится
в начале цикла, а в Repeat – в конце.
Цикл Repeat всегда выполняется хотя бы один раз, а цикл While
может не выполнятся ни разу.
В цикле While выход из цикла осуществляется, если условие
ложно, а в Repeat – если условие истинно.
Между словами Repeat и Until можно размещать несколько
операторов без Begin и End, а цикл While…do может содержать
только один оператор тела цикла; поэтому нужно использовать
Begin и End.
![Page 6: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/6.jpg)
Пример
Найти все
двузначные числа,
кратные 7.
Составить блок-
схему;
Написать программу.
Начало
Конец
k:=14
K<=99
k:=k+7
Вывести kИстина
Ложь
![Page 7: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/7.jpg)
Program z_1;
Uses Crt;
Var k: integer;
Begin
Clrscr;
k:=14;
Результат программы
While k<=99 do Begin Writeln(k); k:=k+7; end;readln;end.
![Page 8: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/8.jpg)
Пояснение
While k<=99 do Begin Writeln(k); k:=k+7; end;readln;end.
При использовании логических циклов необходимо всегда заботиться о том, чтобы переменная, использующаяся в условии завершения цикла, каким-то образом обязательно изменялась в теле цикла. Это может быть команда присваивания (как в данной программе) или команда ввода.
![Page 9: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/9.jpg)
Дополнение
При подключении Uses Crt необходимо использовать функцию Clrscr.Clrscr - очищает активное окно и устанавливает курсор в левый верхний угол окна.
![Page 10: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/10.jpg)
Program PRIM_2;
uses CRT;
Begin
WriteLn('1 строка');
WriteLn('2 строка');
WriteLn('3 строка');
ClrScr;
WriteLn('А куда они делись?=)');
End.
Пример использования ClrScr
Program PRIM_1;
Begin
WriteLn('1 строка');
WriteLn('2 строка');
WriteLn('3 строка');
End.
![Page 11: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/11.jpg)
Вложенные циклы
Цикл называется вложенным, если он находится в теле другого цикла. for i:=0 to n do
begin for j:=0 to m do begin for k:=0 to w do begin end; end;end;
Внутренний цикл должен полностью находиться в теле внешнего цикла.
Цикл j
Цикл k
Цикл i
![Page 12: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/12.jpg)
Пример
Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова -5 рублей, теленок – 0,5 рубля и на 100 рублей надо купить 100 животных.РешениеB – количество быковK - количество коровT- количество телят.После этого можно записать два уравнения:10b+5k+0,5t=100 b+k+t=100,Преобразуем их:20b+10k+t=200 b+k+t=100
На 100 рублей можно купить:
•Не больше 10 быков, 0≤b≥10
•Не больше 20 коров, 0≤k≥20
•Не больше 200 телят, 0≤t≥200
![Page 13: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/13.jpg)
Результат программы
Program z_2;Uses Crt;Var b, k, t:integer;BeginClrscr;for b:=0 to 10 do for k:=0 to 20 do for t:=0 to 200 do
if (20*b+10*k+t=200) and (b+k+t=100) then writeln(‘Быков ',b,' Коров ',k,' Телят ', t);readln;end.
![Page 14: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/14.jpg)
Пояснение
Сколько раз будет проверяться условие в данной программе?Значение b изменяется 11 раз – от 0 до 10;k - 21, t - 201 Таким образом, условие будет проверяться 11*21*201 = 46431 раз.
![Page 15: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/15.jpg)
Результат программы
Program z_3;Uses Crt;Var b, k, t:integer;BeginClrscr;for b:=0 to 10 do for k:=0 to 20 do
begin t:=100-(b+k); if 20*b+10*k+t=200 then writeln(‘Быков ',b,' Коров ',k,' Телят ', t); end;readln;end.
![Page 16: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/16.jpg)
Пояснение
11*21*201 = 46431Если известно количество быков и коров, то количество телят можно вычислить по формуле: t:=100-(b+k);Цикл по переменной t можно исключить. Количество повторений проверки условия становиться 11*21=231
![Page 17: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/17.jpg)
Задача
В кассе есть монеты по 2, 5 и 10 копеек. Сколькими способами можно выдать сдачу на некоторую сумму Sum?
![Page 18: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/18.jpg)
Результат программы
Program z_3;Uses Crt;Var Sum, Xmax, Ymax, Zmax, x, y, z, p:integer;BeginClrscr;Writeln (‘Введите сумму: '); Readln (Sum); p:=0;Xmax:=Sum div 2; Ymax:=Sum div 5; Zmax:=Sum div 10;Writeln (' 2 5 10 Всего монет');Writeln ('______________________');
![Page 19: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/19.jpg)
for x:=0 to Xmax do for y:=0 to Ymax do for z:=0 to Zmax do if 2*x+5*y+10*z=Sum then begin writeln(x:3,y:3,z:3,x+y+z:8); p:=p+1; end;
If p=0 then writeln(‘Вариантов нет') else writeln (‘Всего ', p,' Вариантов');readln;end.
Результат программы
![Page 20: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/20.jpg)
Задача
Составьте программу, удваивающую значение целой переменной а, если а>5.
![Page 21: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/21.jpg)
РешениеЕсли а > 5, то значение а надо заменить на 2а. В противном случае (а <= 5) никаких действий производить не нужно.
Решение
![Page 22: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/22.jpg)
Результат программы
Program Pr2; Var а : Integer; Begin WriteLn (‘Введите число’); ReadLn (а); If а >5 Then а := а*2; WriteLn (‘а =', а); End.
![Page 23: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/23.jpg)
Задача
Составить программу, проверяющую правильность пароля
![Page 24: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/24.jpg)
Решение
Предположим, что пароль – это слово «груша». Программа запрашивает у пользователя пароль, сравнивает его с нашим паролем. Если пользователь ввел правильный пароль, то для него доступ открыт, а если пароль не правильный, то доступ закрыт.
Решение
![Page 25: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/25.jpg)
Результат программы
Program Pr6;Var parol :string;BeginWriteLn (‘Какой пароль?’);ReadLn (parol);If parol=‘груша’
then writeLn (‘Доступ для Вас открыт’) Else writeLn (‘Доступ закрыт!!!’);ReadLn;End.
![Page 26: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/26.jpg)
Задача
Написать программу, которая проверяет, делится ли на 3 целое число, введенное с клавиатуры.
![Page 27: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/27.jpg)
Задача
Написать программу на расчёт:Из трех данных чисел выбрать наибольшее.
![Page 28: 10 класс алгоритмы с повторениями](https://reader038.vdocuments.mx/reader038/viewer/2022103021/55cfa491bb61eb692b8b45b5/html5/thumbnails/28.jpg)
Домашнее задание
Составить блок-схемы к задачам решенным на уроке.
Написать программу на расчет наименьшего числа:
Ввести три числа и найти наименьшее из них.
Пример:
Введите три числа:
54 89 133
Наименьшее число 54