Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Turbo Pascal.doc
Скачиваний:
2
Добавлен:
27.08.2019
Размер:
311.81 Кб
Скачать

Оператор For

Оператор for указывает на то, что составной оператор следует выполнять повторно до тех пор, пока не будут перебраны все значения управляющей переменой, задаваемые прогрессией. Прогрессия может быть возрастающей: to или убывающей: downto. Вычисления проводятся до тех пор, пока управляющая не примет конечное значение /задаваемое в операторе/.

Управляющая переменная, начальное и конечное значение должны быть одного и того же типа. Допускаются все простые типы, то есть все скалярные типы, за исключением вещественного.

Примеры:

for i := i1 to i2 do S; цикл может не выполняться, если i1>i2

for i := i1 dowto i2 do S; цикл может не выполняться, если i1<i2.

Пример. Вычислить сумму элементов вектора Х.

Program summa;

Var S: Real;

i, n: Integer;

x: array[1..100] of real;

begin

write(‘n=’); readln(n);

for i:=1 to n do begin

write (‘x[‘,i:2, ‘]=’);

readln (x[i]); end;

S:=0.0;

for i:=1 to n do S:=S+x[i];

writeln (‘сумма=’, S);

End.

Заметим, что составной оператор, повторно выполняемый при помощи оператора for, не должен содержать операторов, присваивающих значения управляющей переменной. Если необходимо завершить повторное выполнение составного оператора прежде, чем управляющая переменная примет конечное значение, то можно воспользоваться оператором goto. В таких случаях лучше воспользоваться оператором while или repeat.

После завершения выполнения операторов for значение управляющей переменной равно конечному значению, если же это не так, то значит цикл не был выполнен вообще. В этих случаях никакие значения управляющей переменной вообще не присваивались.

Оператор while. Цикл с предусловием

Оператор while /пока/ управляет повторным выполнением какого-либо оператора или группы операторов. Оператор выполняется повторно до тех пор, пока управляющее выражение принимает значение true /истина/.

Если управляющее выражение принимает с самого начала значение false /ложь/, то оператор вообще не выполняется.

Пример: составить программу для расчета значений функции y = exlgx на отрезке [a, b] и шагом dx с использованием оператора цикла с предусловием.

нет

x:=xn;

while (x<=xk) do

begin

y:=exp(x)*ln(x)/ln(10);

writeln (‘x=’, x:6:3, ‘y=’, y:8:3);

x:=x+dx;

end;

Оператор Repeat. Цикл с постусловием

Bыражение, управляющее повторным выполнением заданного оператора в операторе repeat /повторить/, должно быть булевского типа. Последовательность операторов, заключенная между зарезервированными словами repeat и until /пока/, выполняется повторно до тех пор, пока управляющее выражение не примет значение true /истина/. В отличие от оператора while тело оператора repeat выполняется по крайней мере один раз, так как определение значения условного выражения производится в конце цикла.

Пример: составить программу для расчета значений функции y = exlgx на отрезке [a, b] и шагом dx с использованием оператора цикла с постусловием.

x:=xn;

Repeat

y:=exp(x)*ln(x)/ln(10);

writeln(‘x=’, x:6:3, ‘y=’, y:8:3);

x:=x+dx;

Until (x>xk);

нет да