Циклы в решении задач на целочисленную арифметику
Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий (тело цикла) повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).
Для организации цикла необходимо выполнить следующие действия: 1) перед началом цикла задать начальное значение параметра; 2) внутри цикла изменять параметр цикла с помощью оператора присваивания (while, repeat); 3) проверять условие повторения или окончания цикла (while, repeat).
Для организации цикла с известным числом повторений в Pascal используется оператор for. Структура цикла, организованного с помощью этого оператора, имеет вид: For I := A To B Do Begin End; или For I := A DownTo B Do Begin End; Здесь I - параметр, изменяющийся в цикле; A, B - выражения порядкового типа, обозначающие начальное, конечное значение параметра цикла. A, B - выражения порядкового типа, обозначающие начальное, конечное значение параметра цикла.
Задача. Дано натуральное n=5, действительное x. Вычислить сумму степеней sin x. Разработаем алгоритм решения задачи: 1) ввести данные - количество слагаемых n и число x; 2) присвоить переменной, в которой будем хранить степени sin x, значение 1; S := 0; 3) присвоить параметру цикла значение 1; 4) вычислить очередную степень sin x; 5) добавить вычисленное значение к сумме; 6) увеличить параметр цикла на 1; 7) вывести на печать сумму S; 8) конец.
Program Summa; Var S, X, Pr : Real; N, I : Integer; Var S, X, Pr : Real; N, I : Integer; Begin Begin Write('Введите число слагаемых и x: '); ReadLn(N, X); Write('Введите число слагаемых и x: '); ReadLn(N, X); Pr := 1; {в этой переменной хранятся последовательные степени sin x} Pr := 1; {в этой переменной хранятся последовательные степени sin x} S := 0; S := 0; For I := 1 To N Do Begin Begin Pr := Pr * Sin(X); {Очередная степень Sin(x)} Pr := Pr * Sin(X); {Очередная степень Sin(x)} S := S + Pr S := S + Pr End; End; WriteLn('Сумма равна ', S : 7 : 4) WriteLn('Сумма равна ', S : 7 : 4) End. End.
Заключение. Область применения цикла с параметром в языке Pascal значительно ограничена: ограничения связаны с шагом изменения параметра цикла, с типом параметра цикла, его начального и конечного значения. В некоторых языках, например, в Basic, таких ограничений не существует.