Циклы на языке Pascal повторение
Циклы позволяют многократно выполнять одну или группу команд, причем в тексте программы нет необходимости записывать эти команды несколько раз. В языке программирования 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). Обратный пересчет – от большего к меньшему. И на каждом шаге вычитается единица.
Использование оператора цикла for.
начало y:=1, 10 Kw:=sqr(y) Y,kw конец y:=10, 1 Kw:=sqr(y) Y,kw Var kw, y: integer; Begin For y:=1 to 10 do Begin kw:= sqr(y); Writeln (y, -,kw); End; Writeln; For y:=10 downto 1 do Begin kw:=sqr(y); Writeln (y, -,kw); End; End. Вывести на экран значение y2 (y=1,2,…,10) в возрастающем и убывающем порядке
var i:integer; x,y : real; begin writeln ( Введи первое '); readln (x); for i:=2 to 20 do begin write ( Введи следующее '); readln (y); if y
Вычислить сумму n чисел, вводимых с клавиатуры. var I, n :integer; x, sum : real; begin 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); end.
Среди всех двузначных чисел найти те, сумма цифр которых равна n (0
Задания для самостоятельного выполнения 1.Написать программу, которая находит сумму целых положительных чисел, которые больше 20, меньше 100, кратны 3 и заканчиваются на 2, 4 или 8. 2.Написать программу, которая выводит на экран таблицу стоимости порций мороженного. КоличествоПломбирКаштанКрем-брюле
При составлении программ часто возникают ситуации, когда 1. Заранее не известно количество повторений цикла; 2. Переменная – счетчик цикла должна изменяться с шагом 1. В таких случаях используют
- Это циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие
1.В цикле While проверка условия выполнения цикла находится в начале цикла, а в Repeat – в конце. Цикл Repeat всегда выполняется хотя бы один раз, а цикл While может не выполнятся ни разу. 2.В цикле While выход из цикла осуществляется, если условие ложно, а в Repeat – если условие истинно. 3.Между словами Repeat и Until можно размещать несколько операторов без Begin и End, а цикл While…do может содержать только один оператор тела цикла; поэтому нужно использовать Begin и End.
Найти все двузначные числа, кратные 7. Начало Конец k:=14 K
Var sum, x: real; K: integer; Begin sum:=0; k:=1; While sum
var a,b,c : real; begin writeln ( Введите числа a и b ); readln ( a, b ); c := a; while c < b do begin writeln (c:8:2) ; c := c*a; end; end. Даны числа a, b (a > 1). Получить все члены бесконечной последовательности a, a 2, a 3, … a n пока a n b, то не будет выводить ни одного значения.
Он основан на следующих свойствах величин: пусть a и b- одновременно 0, и пусть a b. Если b=0, то НОД(a,b) = a, Если b 0, то для чисел a,b,c, где c- остаток от деления a на b (c=a mod b) выполнено равенство: НОД(a,b)=НОД(b,c), Например: НОД(15,6)=НОД(6,3)=НОД(3,0)=3. - Это алгоритм вычисления наибольшего общего делителя (НОД) двух целых положительных чисел.
Начало Задать a, b B>0 C:= a MOD b A:= b B:= c Конец НОД = a Var a,b,c: integer; begin Writeln (Enter a, b. (a>b)); readln( a, b); While b>0 do begin c:= a MOD b; a:= b; b:= c; end; Writeln (NOD(a,b)=,a); end.
С клавиатуры вводится произвольная последовательность положительных чисел, за которой следует 0. Определить: 1.Максимальное число в этой последовательности. 2.Количество четных чисел. Задания для самостоятельного выполнения