БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ ПОВТОРЕНИЕ ЦИКЛЫ Повторение – это составная команда алгоритма, в которой в зависимости от соблюдения условия может повторяться команда или серия команд. Цикл – это команды алгоритма, которые позволяют несколько раз повторить одну и ту же группу команд. Цикл с предусловием (цикл «пока») While ? do (Тело цикла); ? Тело цикла В цикле с предусловием (цикл «пока») команда или серия команд повторяется, если условие соблюдается. Цикл с постусловием (цикл «до») Тело цикла нет Repeat Тело цикла; Until ? ; ? да В цикле с постусловием (цикл «до») – команда или серия команд повторяется, если условие не соблюдается. Это неопределенные циклы, так как количество выполнений тела цикла зависит от условия. Для того, чтобы при переводе записи алгоритма с языка блок-схем на язык программирования исключить внесение изменений в конструкцию команды, следует использовать приведенные выше алгоритмические конструкции, так как на языке программирования команды повторения реализуются именно таким образом. Задача: Найти сумму вводимых с клавиатуры положительных чисел. Конец вводимой последовательности – ввод 0. Дано: Последовательность любых чисел. 0 – конец последовательности. Получить: Сумму чисел больших нуля. Связи: а – переменная-ячейка для последовательного ввода чисел. Тип переменной а – вещественное число. S – переменная-ячейка для накопления суммы. Программа: S=0 Ввод A A≠0 Да Да A>0 S=S+A Ввод A Вывод S Анализ результатов: нет Program Symma1; Var a, s: real; Begin S:=0; Write(‘ Введите число: ’); Readln(a); While a<>0 do Begin If a>0 then S:=S+a; Write(‘Введите число: ’); Readln(a); End; Writeln(‘Sum = ’ , S:7:1); End. Ввести числа: 1, 3, 2, -2, 0. Предполагаемый результат: Sum = 6.0 S=0 Ввод A да A>0 S=S+A нет А=0 да Вывод S нет Программа: Program Symma2; Var a, s: real; Begin S:=0; Repeat Write( ‘Введите число: ’); Readln(a); If a>0 then S:=S+a; Until a = 0; Writeln( ‘Summa = ’ , S:7:1); End. Анализ результатов: Ввести числа: 1, 3, 2, -2, 0. Предполагаемый результат: Sum = 6.0 S=0 S=0 Ввод A Ввод A A≠0 да Да Да A>0 A>0 нет S=S+A S=S+A Ввод A нет А=0 да Вывод S Вывод S нет начало Открыть дневник Прочитать 1-ю запись в дневнике Выучить уроки. нет Есть задание? Да Выучить урок Прочитать следующую запись в дневнике Конец Задача: Найти сумму вводимых с клавиатуры чисел. Конец вводимой последовательности – ввод 0. Дано: Последовательность любых чисел. 0 – конец последовательности. Получить: Сумму чисел вводимой последовательности. Связи: а – переменная-ячейка для последовательного ввода чисел. Тип переменной а – вещественное число. S – переменная-ячейка для накопления суммы. Написать алгоритм. Написать программу. Выполнить программу. Произвести анализ полученного результата. Показать учителю. 1. Какие алгоритмические структуры присутствуют в вашем алгоритме? Программа: S=0 Ввод A A≠0 Да S=S+A Ввод A Вывод S Анализ результатов: Нет Program Symma1; Var a, s: real; Begin S:=0; Write(‘ Введите число: ’); Readln(a); While a<>0 do Begin S:=S+a; Write(‘Введите число: ’); Readln(a); End; Writeln(‘Sum = ’ , S:7:1); End. Ввести числа: 1, 3, 2, -2, 0. Предполагаемый результат? Написать алгоритм и программу с использованием алгоритмической структуры ЦИКЛ-ДО. Задача. Протабулировать функцию Y = X2 на интервале от -1 до 1 с шагом 0.2. Результат представить в виде: X Y -1.00 1.00 -0.80 0.64 … … 1.00 1.00 Программа: Program Tabl1; Var x, y: real; Begin x:= -1; Writeln(‘X’:5, ‘Y’:13); While x<= 1 do Begin y:= x*x; Writeln(x:8:2, y:10:2); x:= x + 0.2; End; Writeln; End. ЗАДАНИЕ: 1. Для данной программы написать алгоритм в виде блок-схемы. 2. Протабулировать функцию Y = sin(X), для Х от 0 до 6.28 с шагом 0.3 3. Протабулировать функцию Y = 3(X – 2)2 - 4 на интервале от -4 до 8 с шагом 0.5. Дом. работа Написать алгоритм на бытовую тему с использованием алгоритмической структуры – неопределенные циклы начало Открыть дневник Прочитать 1-ю запись в дневнике Выучить уроки. нет Есть задание? Да Выучить урок Прочитать следующую запись в дневнике Конец