При составлении программ часто возникают ситуации, когда 1. Заранее не известно количество повторений цикла; 2. Переменная – счетчик цикла должна изменяться с шагом 1. В таких случаях используют
Циклы с условием - Это повторение блока команд, до тех пока выполняется (или не выполняется) некоторое условие
Рассмотрим пример: Найти все двузначные числа, кратные 7. Начало Конец k:=14 K
При использовании циклов с условием необходимо всегда заботиться о том, чтобы переменная, использующаяся в условии завершения цикла, обязательно изменялась в теле цикла. Это может быть команда присваивания ( как в данной программе) или команда ввода.
Program Ex; Uses Crt; Var sum, x: real; K: integer; Begin Clrscr; sum:=0; k:=1; While sum
Решаем задачи Задача 1 Написать программу, которая «задумывает» число в диапазоне от 1 до 9 и предлагает пользователю угадать это число за 5 попыток. Пояснения к программе: 1. 1.Компьютер может «задумать» число с помощью функции Random Количество повторений цикла в этой задаче может быть от 1 до 5 – то есть, заранее не известно Так как пользователь должен сделать хотя бы одну попытку, то логично использовать команду цикла Repeat…until.
Program Ex; const Npop=5; Var pc, igrok, n: integer; Begin Randomize; pc:=random(9)+1; Writeln ('Game "Угадай число" '); Writeln (Компьютер загадывает число от 1 до 9); Writeln (Вы должны угадать это число'); Writeln (за 5 попыток'); repeat n:=n+1; Write (Введите число- '); readln(igrok); until (n=npop) or (pc=igrok); if pc = igrok then Writeln (Ok!') else Writeln (wrong number- ',pc); readln; end.
Для того, чтобы не «потерять» заданное число, введем переменную y, значение которой сначала будет =x. Последовательно будем находить целую часть и остаток от деления числа y на 10.Именно остаток от деления будет очередной цифрой x. На каждом шаге будем изменять число y : присваивать ему значение целой части от деления y на 10.Для нахождения количества цифр организуем счетчик, значение которого будет увеличено на 1.Процесс повторяется пока значение числа y не станет меньше 1. Задача 2. Найти все цифры и их количество заданного произвольного целого числа x>0.
Program Zifry; Uses Crt; var x, y, c: longint; r, k: integer; Begin clrscr; Writeln ('Enter celoe chislo do 10 znakov'); Readln (x); writeln; y:=x; k:=0; Writeln (cifry zadannogo chisla:'); repeat r:= y mod 10; y:=y div 10; k:=k+1; Writeln (k,' zifra = ',r); until y0; Writeln ('Chislo - ',x,' coderjit ', k, ' zifr'); readln; end. Ввод целого числа 0
Цикл с предусловием While ( пока условие истинно) Цикл с постусловием repeat ( до истинности условия) Цикл со счётчиком for 1. До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректного входа в цикл 1. Начальная установка переменной счетчика циклов до заголовка не требуется 2. В теле цикла должны присутствовать операторы, изменяющие переменные условия так, чтобы цикл через некоторое число итераций завершился 2. Изменение в теле цикла значений переменных, стоящих в заголовка цикла не допускается 3. Цикл работает пока условие истинно 3. Цикл работает пока условие ложно 3. Количество итераций цикла неизменно и точно определяется значениями нижней и верхней границ и шага цикла 4. Цикл завершает работу, когда условие становиться ложным 4. Цикл завершает работу, когда условие становиться истинным 4. Нормальный ход работы цикла может быть нарушен оператором Goto или процедурами Break и Continue 5Цикл может не выполниться ни разу, если исходное значение условия при входе в цикл равно False 5. Цикл выполняется как минимум один раз 5. Цикл может не выполниться ни разу, если шаг цикла будет изменять значение счётчика от нижней границы в направлении, противоположном верхней границе 6. Если в теле цикла требуется более одного оператора, то необходимо использовать составной оператор 6. Независимо от количества операторов в теле цикла использование составного оператора не требуется Таблица сравнения работы операторов While, repeat и for
Решаем вместе Написать программу, которая проверяет знание учениками таблицы умножения. Сомножители определяются с помощью функции Random. Каждому ученику дается 5 попыток, за которые программа выставляет оценку. Программу написать 3-мя способами – с использованием циклов For, While и Repeat.
1.Когда нельзя использовать цикл FOR? 2.Как записывается цикл WHILE? 3.Как записывается цикл REPEAT? 4.Назовите различия циклов WHILE и REPEAT. Проверь себя…..
Подведем итог Сегодня мы познакомились с логическими циклами While и Repeat. Узнали об их отличиях и особенностях применения. Рассмотрели примеры использования цикла WHILE. Обратили особое внимание на необходимость изменения в цикле переменной, которая участвует в условии завершения цикла.