Циклические вычислительные процессы. Процессы, в которых ряд действий повторяются многократно по одним и тем же математическим зависимостям, называются циклическими.
Операторы цикла. При организации циклов необходимо: определить параметр цикла и его начальное значение; изменять значение параметра цикла на каждом шаге цикла; Проверка условия на выход из цикла.
Циклы с параметром FOR i: =B downto A do Begin {тело цикла} End; Если A<B, шаг=(-1) FOR i: = А to В do Begin {тело цикла} End; Оператор for применяют в тех случаях, когда значения параметра цикла целые и меняются с шагом +1, -1. где i - параметр цикла; A, B - его начальное и конечное значение; I, A, B - переменные или константы целого типа. Шаг изменения i - равен 1.
Вычислить Program sum; Var i: integer; S: real; begin S: =0; for i: = 1 to 50 do begin S: = S + 1/ i; end; Writeln (' сумма = ', S :8:3); end. Выделим переменную для накапливания суммы - S. Значение этой переменной необходимо предварительно обнулить. Паскаль не производит предварительной, начальной, инициализации переменных. Поэтому сумма может быть искажена без S := 0. Пример 1
WHILE DO begin {тело цикла}; End; «тело цикла» - выполняется до тех пор, пока выполняется. По этому оператору проверяется и, если оно выполняется, то выполняется – «тело цикла», после чего опять проверяется и т. д. Если условие ни разу не выполнилось, управление передается следующему оператору. Оператор цикла с предусловием. На практике цикл типа пока чаще всего используют в двух следующих случаях: Число повторений заранее не известно (например, цикл до достижения требуемой точности результата, цикл до первого отрицательного элемента и т.п.). Такой цикл называется циклом типа пока с прерыванием. Число повторений заранее известно, но шаг параметра цикла не равен 1 (в школьном АЯ) или 1, –1 (в Pascal). Такой цикл называется циклом типа пока без прерывания.
Вычислить: y = a sin (x ), x =[0;1], шаг=0,2 program fun; var y, a, x: real; begin x: =0; read (a); WHILE x<=1 do begin y: = a *sin (x); writeln (y=, y, x=, x); x: = x + 0.2; end; end. Пример 2
Оператор цикла с постусловием. REPEAT {тело цикла} UNTIL ; По этому оператору выполняется "тело цикла", а затем проверяется, если оно не выполнилось, цикл повторяется. И так до тех пор, пока не будет выполнено. Необходимо помнить: если сразу выполнилось, цикл будет пройден один раз.
Вычислить: y = a sin (x ), x =[0;1], шаг=0,2 program fun; var y, a, x: real; begin x: =0; read (a); repeat y: = a *sin (x); writeln (y=,y, x=,x); x: = x + 0.2; until x>1; end. Пример 2
§ 39 стр письменно Написать программу, которая после ввода натурального числа N и целого Х находит y=Х N без использования функции возведения в степень