Turbo Pascal. Операторы цикла

В языке Турбо Паскаль имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программы – организовать цикл:

  • оператор цикла с предварительным условием;
  • оператор цикла с последующим условием;
  • оператор цикла с параметром.

Для всех операторов цикла характерна следующая особенность. Повторяющиеся вычисления записываются только один раз. Вход в цикл возможен только через его начало. Переменные оператора цикла должны быть определены до входа в циклическую часть. Необходимо предусмотреть выход из цикла: или по естественному его окончанию, или по оператору перехода. Если это не предусмотреть, то циклическая часть вычислений будет повторяться бесконечно. В этом случае говорят, что произошло «зацикливание» выполнения программы.

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

Оператор цикла While

Оператор цикла с предварительным условием While имеет следующий формат:

  While <выражение> do <оператор>; 

 где

 While (пока), do (делать) – зарезервированные слова;
выражение– выражение логического типа;
оператор– произвольный оператор.

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

Блок-схема оператора цикла с предварительным условием:

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

ЗАДАЧА 1. Вычислить сумму целых чисел от 0 до 99.

Program a10;
var
i:integer; {количество чисел}
s:integer; {сумма чисел}
begin
i:=1; s:=0;
while i&lt99&gt do
begin
s:=s+i;
i:=i+1;
end; {после выхода из цикла i = 99}
i:=i-1; {поэтому уменьшаем на 1}
writeln('Cумма',i:4, ' чисел равна:', s:6);
end.

Результаты работы программы:

 Cумма 98 чисел равна: 4851 

ЗАДАЧА 2. Вычислить сумму нечетных целых чисел от 0 до 99.

Program a11;
var
i:integer; {нечётное число}
s:integer; {сумма чисел}
begin
i:=1; s:=0;
while i&lt99&gt do
begin
s:=s+i;
i:=i+2;
end;
i:=i-2;
writeln('Сумма нечетных чисел равна:', s:6);
end.

Результаты работы программы:

 Cумма нечетных чисел равна: 2401 

Пример.

program example1;
var
ch:char;
begin
Write('Продолжить вычисления (Y/N)?');
ch:=' ';
while(UpCase(ch)<>'Y') and (UpCase(ch)<>'N')do
ch:=Readkey;
end.

Примечание:

  • Функция UpCase () преобразует символ в верхний регистр.
  • Функция Readkey () считывает символ с клавиатуры.

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

Формат оператора:

 Repeat
операторы циклической
 
 части программы 
 Until логическое выражение 

Здесь Repeat (повторять), Until (до тех пор) – зарезервированные слова языка.

Блок-схема оператора цикла с последующим условием:

Блок-схема оператора цикла с последующим условием

Оператор цикла с последующим условием Repeat работает следующим образом.

Операторы циклической части повторяются, по крайней мере, один раз до тех пор, пока значение логического выражения ложно (False). Условием прекращения циклических вычислений является истинное (True) значение логического выражения.

Итак, сначала выполняется циклическая часть, а затем проверяется условие. При этом нижняя граница операторов циклической части обозначена словом Until, поэтому нет необходимости заключать операторы циклической части в операторные скобки Begin...End.

ЗАДАЧА 3. Вычислить сумму нечетных целых чисел от 0 до 99 (см. Задачу 2).

Program a12;
Var
i:integer; {нечётное число}
s:integer; {сумма чисел}
Begin
i:=1; s:=0;
Repeat
s:=s+i;
i:=i+2;
Until i=99;
i:=i-2;
writeln('сумма нечетных чисел',' равна:', s:6);
End.

Результаты работы программы:

 Сумма нечетных чисел равна: 2401 

ЗАДАЧА 4. Написать программу, которая выводит таблицу квадратов первых пяти целых положительных нечетных чисел

Program a13;
var
x:integer; {число}
y:integer; {квадрат числа}
begin
writeln('Таблица квадратов');
writeln('==================');
writeln('Число квадрат');
writeln('-------------------');
x:=1;
repeat
y:=x*x;
writeln(x:4,y:6);
x:=x+2;
until x=11;
writeln('-------------------');
End.

Результаты работы программы:

 Таблица квадратов 
 ================== 
 Число   квадрат 
 ------------------ 
     1       1      
     3       9      
     5       25     
     7       49     
     9       81     
 ------------------ 

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

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

Блок-схема оператора цикла For

Формат оператора

 For i:=m1 to m2 Do
begin
 
 операторы циклической 
 части программы 
 end; 

здесь For (для), to (до), Do (делать) – зарезервированные слова языка;

 i – параметр цикла;

 m1m2 – начальное и конечное значения параметра цикла, могут задаваться выражениями, за исключением типа Real.

В операторе цикла For начальное m1 и конечное значение m2 параметра цикла i должны быть заданы. Параметр цикла i увеличивается/уменьшается автоматически.

Если i=1 и m1>m2, то циклическая часть не выполняется ни разу.

После естественного завершения работы оператора цикла (выход из цикла) значение параметра цикла i не определено.

Если параметр цикла увеличивается, то его шаг равен +1.

Если параметр цикла должен уменьшаться, то в этом случае m1 должно быть больше m2, а вместо служебного слова TO необходимо поставить DOWNTO. Шаг уменьшения равен –1.

ЗАДАЧА 5. Напечатать все буквы латинского алфавита.

Programa14;
var
ch:char;
begin
writeln('Латинский алфавит:');
for ch:='A' to 'Z' do
write(' ',ch);
end.

Результаты работы программы:

 Латинский алфавит: 

 ABCDEFGHIJKLMNOPQRSTUVWXYZ 

ЗАДАЧА 6. Написать программу, которая выводит таблицу квадратов первых десяти целых положительных чисел.

program a15.
var
x:integer; {число}
y:integer; {квадрат числа}
i:integer; {параметр цикла}
begin
writeln('Таблица квадратов');
writeln('=================');
writeln('Число квадрат');
writeln('-----------------');
x:=1;
for i:= 1 to 10 do
begin
y:=x*x;
writeln(x:4,y:6);
x:=x+1;
{лучше так!}
{y:=i*i;}
{writeln(i:4,y:6);}
end;
writeln('-----------------');
end.

Результат работы программы:

 Таблица квадратов 
 ================== 
 Число   квадрат 
 ------------------ 
     1       1      
     2       4      
     3       9      
     4       16     
     5       25     
     6       36     
     7       49     
     8       64     
     9       81     
    10       100    
 ------------------ 

Добавить комментарий:

Комментарии  

Terrelltarly
Международное кастинговое сообщество приглашает на кастинг.
Нужны Модели для проб в съемках.
Если вы проходите профотбор мы предоставим вам все необходимое для сотрудничества в топовых рекламных агенствах
Подробную информацию узнать можно на нашем сайте
is.gd/G9daJT

piccash.net/allimage/2017/11-7/img_thumb/794164-thumb.jpeg: piccash.net/46253/794164/
Adrianna
With the Ꮋenry 532, use the brush sidse oof a dгiveway applicator how to seаl concrete crаcks: www.intersnap.com/perma-treat-sanitize-seal-tile-concrete-prematreat/ work the
sealer into 4 foot by 4 foot ѕections.
Tammi
One oof thе tools thаtt ԝill generate quite a lot of attention is because of a
persons ѵision rates for banks especially commerciall banks.
An in-house Ƅookқeeper iis therefore a major liaЬility to your small enterprise that's trying to sᥙrvive in spite of today's harsһ economiϲ climate.

Merchɑnt Advisors square mеasure your trustworthy cоnsultants so you can get monetary facilitaye at
the proper timke as well as on the top potential terms.


Lοok at my web page; cashback bоnus: ockaghofysys.mihanblog.com/post/comment/new/17/fromtype/postone/fid/14984359545950517209e73/atrty/1498435954/avrvy/0/key/f2576373547cf88ee2ea9934ae71b969/
Andres
I'm not sᥙre whyy but thіs website is loading
very slow for me. Is anyοne else having this issᥙe or is it a issue on my end?

I'll check back later on and see if the problem still exists.


Here iѕ my webpage ... Laurene: porch.com/reno-nv/home-builders/bridges-construction-inc-/pp
Oliver
The profeѕsionals ccan tackl thе issue with expert filtration framewoгks and other commercial AC services.
Because of the һigh efficiency oof heating unitѕ,
exhaust temperatures can Ƅe managed without the use of
expensive chimneys. It transfers its eneгgy tο things that have lower temperature by electromagnetic radiation.

Also visit my web-site: marketing south
lаke tahoe: Www.manta.com/
Clara
Hey, Ѕteve from Bridges.
Fantastіc “Tᥙrbo Pascal. Операторы цикла” is
indeed an interesting subject
Merely wanted to say that I liked your site.

Havee a look at my webpage: carsn city vanity aand linen cabinet sets (Woodrow: www.bridgesconst.com/custom-cabinets/)
Leigh
Andⅾ users entering your site willstay on the mobile siteіf thеy find
it fast and user-friendly that can be entrusted wіth experienced mobile
ssearch engine Optimization Company. Aloing with search engvine optimization, the сοmpany serves oyher Internet maarketing solutions such as Ꮲay Per
Cⅼicck Management, Social Мedia Optimization, link building servicеs,
website design, multimedia, web development and services softwaгe development, to name a few.
The eⅽond type consiѕts of an offshore SEOfirms that operate in countries such ɑs India, Philipⲣines, Vietnam
and China.

Feel fгee to surf to my weЬ page: marijuana seo baton rouge
louisiana (www.Intersnap.com/marijuana-websites/marijuana-seo-baton-rouge-louisiana/: www.intersnap.com/marijuana-websites/marijuana-seo-baton-rouge-louisiana/)
Antonia
What's up, Ꮪteve with Bridges.
Wow “Turbo Pаscаl. Операторы цикла” is really an intriguing
topic
Wɑnted to say that I liked reading your site.


My ƅlog; furniture vanity
bathroom: www3.tok2.com/home/kyudo/g_book/g_book.cgi/rk=0/javascript:void(0);
Jimmie
Hi, Stеvе here at Bridges.
Truly “Turbo Pascal. Операторы цикла” is іndeed an interesting suƅject
I just ѡant tto say tha I liked reading
your ρost.

Here is myy web-sitе: medicine caƄinets for bаthroom: thiwijabingo.mihanblog.com/post/comment/new/21/fromtype/postone/fid/1503069366599704b690821/atrty/1503069366/avrvy/0/key/ac17f36ea60b786372e99533d6db18f7/
profile4716
Need cheap hosting? Try webhosting1st, just $10 for an year.

radiofantasy.netsons.org/images/photos/3161/2/6775ddea50adcd8674104c19.jpg

Добавить комментарий

Защитный код
Обновить