Rambler's Top100

Билет 23. Вопрос 1

Операторы повторения в языке ПАСКАЛЬ.

 

В языке Паскаль существуют 3 оператора цикла.

  1. ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ. ОПЕРАТОР WHILE.

 

Этот оператор имеет вид:

while условие do

оператор;

While и do - служебные слова,

условие - булево выражение (простое или составное),

оператор - тело цикла, состоящее из (только одного любого) оператора языка Pascal. Eсли в операторе while...do используются несколько операторов, то они заключаются в операторные скобки begin и end.

Выполняется след. образом:

•  сначала вычисляется значение булева выражения,

•  если оно истинно (TRUE), то выполняется оператор, следующий за служебным словом do (операторы могут быть заключены в операторные скобки begin...end),

•  снова происходит возврат к вычислению значения булева выражения. Так повторяется, пока значение булева выражения не станет ложным (FALSE).

•  если условие сразу ложно, то тело цикла ни разу не выполняется.

 

ПРИМЕРЫ:

 

1. Вычислить произведение: 1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16

program proizv;

uses crt;

var i,p: integer;

begin

clrscr;

p:=1; i:=1;

while i<=16 do

begin

p:=p*i;

i:=i+1;

end;

writeln(' Произведение равно :', p);

readln

end.

2. Вычислить сумму : 1+3+5+7+9+11+13+15+17+19+21+23+25+27+29

program proizv;

uses crt;

var i,s: integer;

begin

clrscr;

s:=0; i:=1;

while i<=29 do

begin

s:=s+i;

i:=i+2;

end;

writeln(' Сумма равна :', s);

readln

end.

2.ОПЕРАТОР ЦИКЛА С ПОСТ. УСЛОВИЕМ. ОПЕРАТОР REPEAT.

Cтруктура оператора:

repeat

операторы

until условие;

 

Этот оператор ВЫПОЛНЯЕТСЯ следующим образом:

•  сначала выполняется операторы, следующие за служебным словом repeat,

•  вычисляется значение булева выражения, образующего условие. Если значение булева выражения ложно, то происходит возврат к выполнению операторов, следующего за служебным словом repeat, и снова вычисляется булево выражение. Так повторяется, пока значение булева выражения остается ложным. Как только оно станет истинным, выполнение оператора цикла прекращается.

В ОТЛИЧИЕ от оператора while...do операторы, следующие за служебным словом repeat будут обязательно выполнен хотя бы один раз независимо от значения булева выражения. Eсли в операторе while...do используются несколько операторов, то они заключаются в операторные скобки begin и end. Если такой же составной оператор используется в операторе repeat, то в его записи служебные слова begin и end могут быть опущены.

 

repeat

read (b);

if b<>0 then m:=m+b

until b=0;

 

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

 

Пример 1. Найти наибольшее натуральное число , которое меньше В. В - натуральное число. program nax;

 

uses crt;

var a,b: integer;

begin

clrscr;

writeln(' Введите число В ');

read(b);

a:=1;

repeat

a:=a+1;

until a>b;

writeln('Наибольшее число, меньшее чем В, равно ',(a-1):5)

end.

 

Пример 2. В переменную х по очереди вводятся числа до тех пор, пока не будет введен 0. Определить среди них количество чисел, больших 100.

 

program pp;

uses crt;

var x:real;

k:integer;

begin

clrscr;

k:=0;

writeln(' Вводите любые числа ');

repeat

read(x);

if x>100 then k:=k+1

until x=0;

writeln('Количество чисел больших 100 равно ',k:5)

end.

ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ. ОПЕРАТОР FOR.

 

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

цикла (оператор для). Структура оператора:

 

FOR <имя переменной>:=выр-ние 1 TO выр-ние 2 DO

begin

оператор 1;

оператор 2;

end;

Пример

for i:=1 to 4 do

s:=s+i;

 

В этом цикле присутствует управляющая переменная. Она всегда должна быть целого типа. Для нее указывают начальное и конечное значение. В ходе цикла она должна пробежать все промежуточные значения. Шаг изменения равен 1. Если начальное значение больше конечного , то тело цикла ни разу не выполняется.

Если начальное значение равно конечному, то цикл выполнится ровно 1 раз.

Нельзя изменять значение управляющей переменной внутри тела цикла.

Иногда цикл FOR можно использовать по-другому:

 

for i:=a1 downto a2 do

оператор ;

for i:=4 downto 1 do

s:=s+i;

 

В этом случае значение управляющей переменной изменяется с шагом - 1.

Для досрочного выхода из цикла, определяемого одним из операторов while, repeat, for, может быть использован оператор exit.

 

Пример 1. Найти сумму S=1+2+3+...+n

 

program summa;

uses crt;

var s,n,i:integer;

begin

clrscr;

writeln('Введите количество слагаемых');

read(n);

for i:=1 to n do

s:=s+i;

writeln(' Значение суммы равно ,s:5)

end.

 

Пример 2. Напечатайте все целые числа по убыванию на промежутке [15;29]

 

program proizv;

uses crt;

var i : integer;

begin

clrscr;

writeln;

for i:=29 downto 15 do

write(i:3);

end.

Вверх

Белорусский рейтинг MyMinsk.com Сайты беларуси Регистр "ЗУБР" Каталог на TIGA.BY, а также  новости, работа, объявления, фото и многое другое Рейтинг@Mail.ru Rambler's Top100 Белорусский каталог программ Faststart - рейтинг сайтов, каталог интернет ресурсов, счетчик посещаемос­ти Яндекс.Метрика
Hosted by uCoz