Организация повторений в Паскале
i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1 TO N DO действие 1; действие 2; Блок-схема цикла с параметром
ПОСЛЕДОВАТЕЛЬНОСТЬ ВЫПОЛНЕНИЯ КОМАНД ОПЕРАТОРА FOR...TO...DO Определяются значения переменных a1 и a2 ; 2. Переменной i присваивается значение переменной a1 ; 3. Проверяется условие выполнения тела цикла i a2; 4. Если это условие истинно, то выполняется тело цикла; 5. Увеличивается значение переменной i на 1; 6. Переход к пункту 3. Тело цикла будет выполнено a2 – a1 + 1 раз.
Примеры Выполнение цикла-фрагмента программы: For i:=14 downto 10 do write(i:3); Выведет на экран последовательность чисел в виде: Если переменная-счётчик имеет символьный char тип, то оператор выведет на экран последовательность букв в виде: For ch:=a to e do write (ch:2); a b c d e Оператор For ch:=e to a downto write (ch:2); Выведет на экран последовательность букв в виде: e d c b a
В операторе For... значение счетчика может не только увеличиваться, но и уменьшаться. Условие выполнения тела цикла: i a1. Тело цикла будет выполнено a2 – a1 + 1 раз. For i:=1 downto a1 do begin тело цикла end;
Правила Оператор for используется для организации циклов с фиксированным, заранее известным числом повторений; Количество повторений определяется начальным и конечным значением переменной-счётчика. Переменная-счётчик должна быть порядкового типа: чаще integer, реже – char, boolean и т.д. Начальное и конечное значение должны быть константами и должны принадлежать к одному и тому же типу. Параметр цикла for может изменяться(увеличиваться или уменьшаться) каждый раз при выполнении тела цикла только на единицу. Если нужен другой шаг изменения параметра, предпочтительнее циклы repeat или while
Найти сумму 4 произвольных чисел
Правильно записаны фрагменты под номерами 1 и 4. Во фрагментах 2 и 3 в операторах тела цикла производится изменение значение счетчика цикла. Значение счетчика цикла может использоваться в выражениях, входящих в операторы тела цикла, но изменение значения счетчика цикла этими операторами недопустимо.
Задача 1. Написать программу, которая вычисляет сумму положительных из n введённых с клавиатуры чисел. начало n S=0 1,n,1 x x>0 S=S+x S конец Да Нет
Program summa; Var i, n, x: integer; Begin Writeln (ввести количество чисел); Readln(n); s :=0; For i := 1 to n do Begin Writeln(ввести число); Readln(x); If x > 0 then s := s + x; End; Writeln (сумма >0 =, s); Readln; End.
начало 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. Задача 2. Вывести на экран значение y 2 (y=1,2,…,10) в возрастающем и убывающем порядке
Задача 3. Среди всех двузначных чисел найти те, сумма цифр которых равна n (0
1. Сколько раз будет выполнено тело цикла? for i:= –5 to 5 do тело цикла; for i:= 6 to 2 do тело цикла; for i:= 3 to 3 do тело цикла; for i:= 3 downto 4 do тело цикла; for i:= 3 downto 1 do тело цикла;
4. Написать программу, которая вычисляет среднее арифметическое вводимой с клавиатуры последовательности дробных чисел. Количество чисел должно задаваться во время работы программы.
WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие 1; действие 2; END; II. Цикл с предусловием Может не выполнится ни разу. Выполняется пока условие истинно. ПОКА (УСЛОВИЕ ИСТИННО) ВЫПОЛНЯТЬ НАЧАЛО действие 1; действие 2; КОНЕЦ; нет условие Действие 1 Действие 2 да Виды циклов Чтобы не было зацикливания, переменные, входящие в условие, должны изменяться в теле цикла.
WHILE (УСЛОВИЕ ИСТИННО) DO BEGIN действие 1; действие 2; END; условие Действие 1 Действие 2 да нет WHILE (УСЛОВИЕ ИСТИННО) DO действие 1; действие 2; условие Действие 1 Действие 2 да нет Виды циклов
Выполните счёт по блок-схеме для чисел : 5, 9, 12 начало х < 53? - 2 X 3 результат конец да нет Х = Р =
Задача 4. Вычислить сумму ряда чисел … Program sum; var a, s: integer; Begin writeln ( вычисление суммы ряда); a:=0; s:=0; while a
Задача 5. Найти количество цифр в введенном с клавиатуры числе (n > 0).... Write(n=); Readln(n ); m := n; k :=0; While m o do Begin m := m div 10; k := k +1; End; Writeln (количество цифр в числе, n, =, k); Readln; End. Постройте блок-схему решения данной задачи
Задача 6. Вычислить сумму ряда чисел Program sum; var a, s: integer; Begin writeln ( вычисление суммы ряда); a:=0; s:=0; while a
Задача 7. Составить программу, результатом работы которой будет печать квадратов чисел, находящихся в диапазоне от 0 до 1 с шагом 0,2
Задача 8. Составить программу, результатом работы которой будет печать значений функции y = 5x 2 – 2x + 1 на отрезке [-5; 5] с шагом x = 2.