- •1. Основные элементы языка
- •1.1. Основные символы
- •1.2. Зарезервированные слова
- •1.3. Разграничители
- •2. Стандартные типы скаляров
- •2.1. Целочисленный тип /Integer/
- •2.2. Байтовый тип /Byte/
- •2.3. Вещественный тип /Real/
- •2.4. Булевский тип /Boolean/
- •2.5. Символьный тип /Char/
- •3. Сруктура программы
- •3.1. Заголовок программы
- •3.2. Раздел описания
- •3.2.1. Раздел описания меток
- •3.2.2. Раздел определения констант
- •3.2.3. Раздел определения типов
- •3.2.4. Раздел описания переменных
- •3.2.5. Раздел описания процедур и функций
- •3.2.5.1. Подпрограмма - функция
- •3.2.5.2. Подпрограмма - процедура
- •3.3. Раздел операторов
- •3.3.1. Оператор присвоения
- •3.3.2. Ввод – вывод данных
- •Кафедра вычислительной техники и инженерной кибернетики
- •Кафедра вычислительной техники и
- •3.3.3. Оператор безусловного перехода /goto/
- •3.3.4. Условные операторы
- •3.3.4.1. Оператор if
- •3.3.4.2. Оператор выбора /Case/
- •3.3.4.3. Операторы повтора for, while и repeat
- •Оператор For
- •Оператор while. Цикл с предусловием
- •Пример написания программы
- •Список литературы
- •Приложение 1 Основные стандартные процедуры и функции
- •Приложение 2 Структура построения программы в языке Pascal
- •Приложение 3 Символы схем алгоритмов по гост 19.002-80 и 19.003-80
- •Содержание
Оператор 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); |
нет да
|