|
|||
6.6.1. Оператор цикла с параметром forДля многократного повторения одних и тех же действий в Паскале предусмотрены три оператора цикла. Если число повторений цикла известно, то применяется оператор for. Если число повторений заранее неизвестно, но известно условие завершения цикла, применяются операторы repeat и while. Оператор цикла с параметром for имеет вид: f or i: = a to b do s; При выполнении оператора for сначала вычисляется начальное значение а, которое присваивается переменной i, называемой параметром цикла. Затем вычисляется конечное значение b и проверяется, имеет ли место равенство i = b. Если равенства нет, выполняется оператор s, который может быть составным, и переменная i увеличивается на единицу. После этого проверка (не равен ли параметр конечному значению), выполнение оператора s и увеличение переменной i на единицу выполняется циклически до тех пор, пока не наступает равенство i = b. Параметр цикла i, начальное и конечное значения a и b могут принадлежать любому порядковому типу данных (например, integer ). Если начальное значение превышает или равно конечному значению с самого начала, оператор s не выполняется ни разу. Использованные здесь зарезервированные слова for, to и do имеют смысл от, до и выполнить, соответственно. Возможна другая форма оператора цикла с параметром: for i: = a down to b do s; Здесь, чтобы выполнялся оператор s, начальное значение а должно превышать конечное значение b. Кроме того, в этом случае параметр i с каждым циклом уменьшается на единицу, пока не станет равным значению b. Оператор цикла for имеет такие особенности: · в теле цикла запрещается явно изменять значение параметра цикла; · по завершении работы оператора for значение параметра цикла считается неопределенным. Пример использования оператора цикла for: program maxi; {программа нахождения наибольшего элемента одномерного массива} var x: array [1.. 100] of real; {исходный массив} n: integer; {число элементов массива} k: integer; {параметр цикла} max: real; {наибольший элемент массива} begin write (’n =’): readln (n); for k: = 1 to n do begin write (’a[’, k: 3, ’]=’): readln (a[k]); end; max: = a[1]; for k: = 2 to n do if a[k] > max then max: = a[k]; writeln (’наибольший элемент =’, max: 10: 4); end.
|
|||
|