Операторы организации циклов

 

Циклические операторы используются для многократного повторения некоторого фрагмента программы, который называется телом цикла. Количество повторений может быть заранее заданным или определяться выполнением некоторого условия.

В языке Паскаль имеется три вида операторов цикла:

– оператор цикла с предварительным условием;

– оператор цикла с последующим условием;

– оператор цикла с параметром.

Оператор цикла с параметром.

Оператор цикла с параметром используется в тех случаях, когда заранее известно, сколько раз должна повториться циклическая часть программы. Оператор цикла имеет вид:

for i := m1 to m2 do

Begin

операторы циклической части программы

End;

 

Здесь for, to, do – служебные слова; i – счетчик цикла (или управляющая переменная); m1, m2 – начальное и конечное значения параметра цикла.

Если в цикле выполняется один оператор, то операторные скобки begin и end не пишутся.

for i := m1 to m2 do

оператор;

 

Циклическая часть программы выполняется повторно для каждого значения параметра цикла i от его начального значения m1 до конечного значения m2 включительно.

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

Возможные значения управляющей переменной определяются перед первым выполнением цикла. Если параметр цикла имеет целый тип, то он автоматически увеличивается на +1 от значения m1 до значения m2. Если параметр цикла должен уменьшаться на –1, то вместо служебного слова to используют downto.

В качестве m1 и m2 могут использоваться выражения, при этом их тип должен совпадать с типом i.

В теле цикла запрещается явное изменение управляющей переменной (например, оператором присваивания).

После завершения цикла управляющая переменная сохраняет свое последнее значение.

Если используется конструкция to и m1 больше m2 (downto и m1 меньше m2), то цикл не работает ни разу.

Пример 1. Параметр цикла возрастает от 1 до 5.

Var

s: real;

i: integer;

Begin

s:=0;

for i := 1 to 5 do

s := s+1;

End.

Пример 2. Параметр цикла убывает от 5 до 1.

Var

s: real;

i: integer;

Begin

s:=0;

for i := 5 downto 1 do

s := s+1;

End.

Пример 3. Параметр цикла является символьной переменной и принимает значения ‘A’, ‘B’, ‘C’, ‘D’.

Var

m: char;

s: real;

Begin

s:=0;

for m := ’a’ to ‘d’ do

s:=s+1;

End.

Ввод-вывод числовых одномерных массивов. Элементы одномерного массива можно вводить по одному (ввод каждого элемента заканчивается нажатием клавиши Enter) или все сразу (элементы вводятся друг за другом через пробел и в конце нажимают клавишу Enter).

 

(*Ввод по одному элементу с комментарием*)

for i := 1 to 10 do

Begin

Write(‘Введите b[ ’,i,’ ] =’);

ReadLn(b[i]);

end;

При выполнении данной группы операторов на экран будет выведено

Введите b[ 1 ]=

Следует с помощью клавиатуры набрать значение b[1], например 4 Enter.

Теперь на экран будет выведено

Введите b[ 2 ]=

Следует с помощью клавиатуры набрать значение b[2], например 24 Enter и т.д.

Вывод элементов одномерного массива можно осуществить всех элементов в одну строку или вывести в каждой строке по одному элементу массива.

(*Вывод всех элементов А в одной строке*)

WriteLn(‘Массив A’);

for i := 1 to 5 do

Write(a[i]:5:1,’ ‘);

WriteLn;

На экране, например, может быть выведено следующее:

-12.5 3.4 67.0 –8.6 3.2

Оператор цикла с предварительным условием

Используется, как правило, в тех случаях, когда заранее неизвестно число повторений цикла.

Форма записи оператора цикла с предусловием следующая:

while условие do

Begin

операторы циклической части программы (тело цикла)

End;

Здесь while, do – зарезервированные слова; условие - выражение логического типа.

Если в циклической части стоит всего один оператор, то операторные скобки begin и end можно не указывать и оператор цикла примет вид:

while условие do оператор;

Оператор цикла действует следующим образом. Предварительно проверяется логическое выражение – условие. Если оно истинно, то выполняются операторы циклической части программы. Если логическое выражение ложно, то происходит выход из цикла.

Если с самого начала значение логического выражения ложно, то операторы циклической части не выполняются ни разу.

Логическое выражение должно меняться в теле цикла, иначе цикл будет бесконечным.

 
 

Пример. Вычислить значения функции y при изменении х от с до d с шагом h.

 

 

Var

x, a, y, c, d, h: real;

Begin

(*Ввод исходных данных*)

WriteLn(‘Введите с,d,h,a’);

ReadLn(c, d, h, a);

(*присвоение х нижней границы интервала*)

x := c;

(*сравнение х с верхней границей интервала*)

while x <= d do

Begin

(*Вычисление y*)

if x > a then y := x * cos(a*x)

else y := sin(x) + a * x;

(*Вывод y и х*)

WriteLn(‘y= ’, y:10:2,’ x= ’,x:6:2)

(*Увеличение х на шаг и переход на

оператор while*)

x := x + h;

End;

End.








Дата добавления: 2017-01-29; просмотров: 1721;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.