Цикл REPEAT Особенность этих циклов заключается в том, что тело цикла с постусловием всегда выполняется хотя бы один раз!
Синтаксическая диаграмма repeat оператор until Логическое выражение ;
Блок схема Тело цикла нет (false) Условие (логическое выражение ) да (true) REPEAT UNTIL Операторы, расположенные между REPEAT и UNTIL выполняются многократно до тех пор, пока условие false. Как только условие становится истинным, управление переходит к следующему оператору.
Сколько раз будет напечатано на экране слово «ИНФОРМАТИКА» если: repeat write (ИНФОРМАТИКА'); i:=i+1; until i=5; i = 5 i = 10 i < 6 i = 0 5 раз 10 раз 1 раз бесконечность Экранзначение iИНФОРМАТИКАi=1i=1 i=2i=2 i=3i=3 i=4i=4 i=5
Этапы решения задачи на компьютере 1. Анализ условия 2. Составление блок-схемы 3. Перевод решения на PASCAL 4. Тестирование и доводка алгоритма
Пример: Найти Сумму Последовательности Неравных Нулю Чисел, Завершающейся Нулем. Нуль Играет Роль Признака Конца Последовательности. Программа будет использовать ввод (слагаемые – числа необходимо вводить с клавиатуры) Программа будет использовать вывод (сумма – результат работы должен быть выведен на экран монитора) Программа использует цикл (часть программы повторяется несколько раз: запрос, суммирование, проверка)
НАЧАЛО Запрос Ввод слагаемого: A S:=S+A A=0 Вывод результата: S КОНЕЦ 1.Вывести на экран запрос об очередном слагаемом 2.Занести ответ пользователя в память 3.Суммировать в сумматор 4.Проверить слагаемое на равенство 0 (т.е. Признак окончания суммирования) 5.Вывести результат на экран PC Решение: Тело цикла Пока не 0
НАЧАЛО Запрос Ввод слагаемого: A S:=S+A A=0 Вывод результата: S КОНЕЦ S:=0 Program Summa ; Var A,S:Real; Begin S:=0; Repeat Write (Vvedite A=); Read (A); S:=S+A; Until A=0; Write (Summa=,S ); End. :2:2 Ln
Тестирование работы программы 1.S=0 2.На запрос вводим А=1.2 3.S=S+A=0+1.2=1.2 4.Проверяем А= На запрос вводим А=3.7 6.S=S+A= =4.9 7.Проверяем А= На запрос вводим А=0 9.S=S+A=4.9+0= Проверяем А=0=0 11.Выводим на экран S=4.9
Экран компьютера Vvedite A= Vvedite A=1.2 Vvedite A= Vvedite A=1.2 Vvedite A=3.7 Vvedite A= Vvedite A=1.2 Vvedite A=3.7 Vvedite A=0 Summa= 4.90
Соответствия блоков и команд Шапка программы или конец (Program, Var, Const и т.д.) Оператор (чаще всего :=) Оператор ввода или вывода (Write; WriteLn; Read: ReadLn) Начало цикла (Repeat) Условие (IF), конец цикла «До» (Until) или начало цикла «Пока» (While)
Требования к оформлению Все решения должны состоять из: 1. Условия задачи 2. Блок-схемы 3. Алгоритма на языке Pascal 4. Таблицы тестов
Задачи для самостоятельного решения 1. Найти произведение последовательности чисел не равных 1. Единица играет роль конца последовательности. 2. Вычислить факториал числа: n!=1*2*3*..*n 3. Вывести на экран определенную последовательность символов (цифр или букв), введенную с клавиатуры, несколько раз (количество определяется в процессе выполнения программы) а) в столбик; б) в строчку. 4. Вычислить сумму ряда: 1/x+1/x 2 +1/x /x n ½+1/2 2 +1/ /2 n