Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать эти команды несколько раз. В языке программирования PASCAL существует три вида циклов: 1. Арифметический (перечисляемый) цикл FOR 2. Логический цикл с предусловием WHILE 3. Логический цикл с постусловием REPEAT
Цикл с постусловием Repeat ; …………….. ; Until ;
Работа оператора repeat 1. Выполняется тело цикла; 2. Проверяется условие выхода из цикла; (Поэтому цикл выполняется хотя бы один раз) 3. Если условие ложно, то переход к п.1; 4. Если условие истинное, то происходит выход из цикла. Repeat – повторяй; Until – до тех пор пока; Конструкция: Repeat у:= а+1; a:=a+1; until а+2>10 Читается так: Повторяй у присваивать а+1 до тех пор, пока а+2 не станет больше 10.
Цикл с предусловием While do ; Если операторов больше одного нужно использовать «операторные скобки» Тогда While do begin ; …………….. ; end;
Работа оператора while ; 1. Проверяется условие, стоящее после while; 2. Если условие истинно, то выполняется оператор(тело цикла), стоящий после do; 3. Переход к п Если условие ложно, то происходит выход из цикла. Конструкция: While а+2
For i:=n1 to n2 do ; i – параметр цикла (счетчик), переменная целого типа n1 – начальное значение счетчика n2-конечное значение счетчика Особенностью арифметического цикла является то, что число повторений операторов цикла должно быть известно заранее. Решение о выполнении или невыполнении в очередной раз тела цикла принимается до начала его прохождения, поэтому может случиться так, что тело цикла не будет выполнено ни разу. Арифметический цикл FOR
Порядок выполнения цикла FOR
Количество выполнений тела цикла определяется до первого выполнения тела цикла, поэтому, если в выражении n 2 используются переменные, которые изменяются в теле цикла, это никак не повлияет на количество выполнений тела цикла. Например, в следующей последовательности операторов: 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.
В Турбо-Паскале имеются два способа для организации регулярного цикла: прямой и обратный. Прямой пересчет идет от известного меньшего числа до известного большего, на каждом шаге прибавляется единица (например, от 20 до 25: 20, 21, 22, 23, 24, 25). Обратный пересчет – от большего к меньшему. И на каждом шаге вычитается единица.
Вывести на экран значение y 2 (y=1,2,…,10) в возрастающем и убывающем порядке Использование оператора цикла for.
program kvadrat1; uses crt; var I, y :integer; Begin for i:=1 to 10 do begin Y:=i*i; write (y:6); end; end. program kvadrat2; uses crt; var I, y :integer; Begin for i:=10 downto 1 do begin Y:=i*i; write (y:6); end; end.
Вычисление суммы и количества чисел
Вычислить сумму n чисел, вводимых с клавиатуры. program Summa; uses crt; Var i, n :integer; x, sum : real; Begin writeln (введи количество чисел n); readln (n); sum:=0; for i:=1 to n do begin write (введи число); readln (x); sum:=sum+ x; end; writeln (sum=, sum:6:2); end.
Датчик случайных чисел Randomize; включает датчик случайных чисел A:= Random(X); присваивает переменной А случайное целое число в промежутке от 0 до Х Х должно быть целое число
program Summa; uses crt; Var i, n :integer; x, sum : real; Begin Randomize; writeln (введи количество чисел n); readln (n); sum:=0; for i:=1 to n do begin x:=random(100) sum:=sum+ x; end; writeln (sum=, sum:6:2); end.
Ввести n чисел. Подсчитать сколько из них положительных.
program количество; uses crt; Var i, n, kol :integer; x: real; Begin writeln (введи количество чисел n); readln (n); kol:=0; for i:=1 to n do begin write (введи число); readln (x); if x>0 then kol:=kol+1; end; writeln (количество положительных чисел равно, x); end.
Написать программу нахождения среднего арифметического n чисел вводимых с клавиатуры
Выбрать наименьшие значение из 20 чисел, вводимых с клавиатуры:
program min; uses crt; var i:integer; x,y : real; Begin writeln (введи первое число'); readln (x); for i:=2 to 20 do begin write (введи, I, чело); readln (y); if y
Среди всех двузначных чисел найти те, сумма цифр которых равна n (0