Операторы цикла © М.Е.Макарова
Цикл - это команда исполнителю повторить заданное количество раз, указанную последовательность команд В языке программирования PASCAL существует три вида циклов: 1.Арифметический (перечисляемый) цикл FOR 2.Логический цикл с предусловием WHILE 3.Логический цикл с послеусловием REPEAT
Особенностью арифметического цикла является то, что число повторений операторов цикла должно быть известно заранее. Решение о выполнении или невыполнении в очередной раз тела цикла принимается до начала его прохождения, поэтому может случиться так, что тело цикла не будет выполнено ни разу. Арифметический цикл FOR
Порядок выполнения цикла FOR
Количество выполнений тела цикла определяется до первого выполнения тела цикла, поэтому, если в выражении n2 используются переменные, которые изменяются в теле цикла, это никак не повлияет на количество выполнений тела цикла. Например, в следующей последовательности операторов: n := 10; For i := 1 to n do Begin Write (i); n := 100; End; тело цикла будет выполняться 10 раз, хотя уже после первого выполнения тела цикла конечное значение параметра цикла станет равным 100.
Цикл под номером 1 будет выполняться для счетчика, последовательно принимающего значения –10, –9, –8, –7, –6, –5, –4,то есть 7 раз. Цикл под номером 2 не будет выполняться ни разу, так как начальное значение счетчика больше конечного. Цикл под номером 3 будет выполняться 1 раз для счетчика, равного 3.
Правильно записаны фрагменты под номерами 1 и 4. Во фрагментах 2 и 3 в операторах тела цикла производится изменение значение счетчика цикла. Значение счетчика цикла может использоваться в выражениях, входящих в операторы тела цикла, но изменение значения счетчика цикла этими операторами недопустимо.
В Турбо-Паскале имеются два способа для организации регулярного цикла: прямой и обратный. Прямой пересчет идет от известного меньшего числа до известного большего, на каждом шаге прибавляется единица (например, от 20 до 25: 20, 21, 22, 23, 24, 25). Обратный пересчет – от большего к меньшему. И на каждом шаге вычитается единица.
Вывести на экран значение y 2 (y=1,2,…,10) в возрастающем и убывающем порядке Использование оператора цикла for.
начало y:=1, 10 Kw:=sqr(y) Y,kw конец y:=10, 1 Kw:=sqr(y) Y,kw Program KWADRAT; Uses crt; Var kw, y: integer; Begin Clrscr; For y:=1 to 10 do Begin kw:= sqr(y); Writeln (y:3,kw:5); End; Writeln; For y:=10 downto 1 do Begin kw:=sqr(y); Writeln (y:3,kw:5); End; Readln; End.
Выбрать наименьшие значение из 20 чисел, вводимых с клавиатуры:
program min; uses crt; var i:integer; x,y : real; begin clrscr; writeln ('Enter first'); readln (x); for i:=2 to 20 do begin write ('Enter next'); readln (y); if y
Вычисление суммы и количества чисел
Вычислить сумму n чисел, вводимых с клавиатуры. program Summa; uses crt; var I, n :integer; x, sum : real; begin clrscr; writeln (Enter n); readln (n); sum:=0; for i:=1 to n do begin write (Enter x); readln (x); sum:=sum+ x; end; writeln (sum=, sum:6:2); readln; end.
Среди всех двузначных чисел найти те, сумма цифр которых равна n (0
Итоги урока Для чего используются команды цикла? Как в цикле записать команду присваивания, чтобы она вычисляла сумму чисел? Количество? Какое начальное значение должно быть у переменной, в которой накапливаем сумму чисел? Можно ли изменять значение переменной цикла в теле цикла? Можно ли изменять значение верхней границы цикла в теле цикла? Какие трудности возникли у вас в ходе урока? Что вы посоветуете своим одноклассникам для преодоления этих трудностей?
Домашнее задание 1.Выучить конспект. 2.Написать программу, которая находит все двузначные числа и их количество, которые делятся на n или содержат цифру n (0