ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ
Ключевые слова while ( цикл-ПОКА) repeat (цикл-ДО) for (цикл с параметрами)
Программирование циклов с заданным условием продолжения работы Общий вид оператора: whiledo while do Здесь: - логическое выражение; пока оно истинно, выполняется тело цикла; - простой или составной оператор, с помощью которого записано тело цикла. Тело цикла Условие да нет
да нет Начало Список данных x, y, r, q - цел x, y r:=x q:=0 r >=x r:= r - y q:= q +1 Конец r, y program n_14; var x, y, q, r: integer; begin writeln ('Частное и остаток'); write ('Введите делимое x >>'); readln (x); write ('Введите делитель y >>'); read (y); r:=x; q:=0; while r>=x do begin r:=r-y; q:=q+1 end; writeln ('Частное q=', q ); writeln ('Остаток r=', r ) end.
Программирование циклов с заданным условием окончания работы Общий вид оператора: repeatuntil repeat until Здесь: ; ; … - операторы, образующие тело цикла; - логическое выражение; если оно ложно, то выполняется тело цикла. Тело цикла Условие да нет
program n_15; var i: integer; x: real; begin writeln ('График тренировок'); i:=1; x:=10; repeat i:=i+1; x:=x+0.1*x; until x >=25; writeln ('Начиная с ', i, '-го дня спортсмен будет пробегать 25 км') end. Конец да нет Начало Список данных i – цел x - вещ i := 1 x := 10 x >= 25 i := i +1 x := x +0,1 x i
Программирование циклов с заданным числом повторений Общий вид оператора: for for := todo to do Здесь: - переменная целого типа; и - выражения того же типа, что и параметр; - простой или составной оператор - тело цикла. После каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условие выхода из цикла - превышение параметром конечного значения. Тело цикла i = i1, i2
program n_16; var i,n:integer;a,y:real; begin writeln ('Возведение в степень'); write ('Введите основание a >>'); readln (a); write ('Введите показатель n >>'); readln (n); y:=1; for i:=1 to n do y:=y*a; writeln ('y=', y) end. Конец Начало Список данных i, n – цел a, y - вещ y := 1 y := y * a y a, n i = 1, n
Различные варианты программирования циклического алгоритма Для решения одной и той же задачи могут быть созданы разные программы. Организуем ввод целых чисел и подсчёт количества введённых положительных и отрицательных чисел. Ввод должен осуществляться до тех пор, пока не будет введён ноль. В задаче в явном виде задано условие окончания работы. repeat Воспользуемся оператором repeat.
program n_17; var n, k1, k2: integer; begin k1:=0; k2:=0; repeat write ('Введите целое число>>'); readln (n); if n>0 then k1:=k1+1; if n 0 Начало Список данных n, k1, k2 - цел n < 0 n = 0 k1, k2 Конец k1:=0 k2:=0 k1:=k1+1 k2:=k2+1 да нет
Ввод осуществляется до тех пор, пока не будет введён ноль. Работа продолжается, пока n 0. while Воспользуемся оператором while : program n_18; var n, k1, k2: integer; begin k1:=0; k2:=0; while n0 do begin writeln ('Введите целое число>>'); read (n); if n>0 then k1:=k1+1; if n 0 да нет n Начало Список данных n, k1, k2 - цел n 0 k1, k2 Конец k1:=0 k2:=0 k1:=k1+1 k2:=k2+1 нет
Самое главное В языке Паскаль имеются три вида операторов цикла: while цикл-ПОКА) repeat (цикл-ДО) for ( цикл с параметром). Если число повторений тела цикла известно, то лучше воспользоваться оператором for ; в остальных случаях используются операторы whil e и repeat.
Вопросы и задания Дана последовательность операторов: a:=1; b:=2; while a+b 55! = 120 Введите n> 66! = 720 Требовалось написать программу вычисления факториала числа n (факториал числа n есть произведение всех целых чисел от 1до n). Программист торопился и написал программу неправильно. Ниже приведён фрагмент его программы, в котором содержится пять ошибок: k:=1; f:=0; while k 55 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50 Напишите программу, которая выводит на экран таблицу умножения на n (n - целое число в диапазоне от 2 до 10, вводимое с клавиатуры). Какой из трёх рассмотренных операторов цикла является, по вашему мнению, основным, т. е. таким, что им можно заменить два других? Обоснуйте свою точку зрения.
Опорный конспект while (цикл-ПОКA) repeat (цикл-ДО) for (цикл с параметром). Число повторений цикла известно Число повторений цикла известно В языке Паскаль имеются три вида операторов цикла: Число повторений цикла неизвестно Число повторений цикла неизвестно