Отличия операторов repeat и while. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Отличия операторов repeat и while.



 

v Компьютер выходит из цикла оператора repeat тогда, когда условие истинно, а из цикла оператора while – когда условие ложно;

 

v while может ни разу не выполнить оператор, стоящий после do; repeat же хотя бы раз операторы, стоящие между repeat и until выполнит.

 

v Если тело цикла содержит несколько операторов, то в цикле while, в отличие от цикла repeat, необходимо использовать операторные скобки begin...end.


Цикл со счётчиком.

 

Цикл со счётчиком имеет следующий вид:

 

For имя := выражение_1 to выражение_2 do оператор;

имя – это имя произвольной переменной порядкового типа, называемой переменной цикла (или его счётчиком);

выражение_1 и выражение_2 – это произвольные выражения порядкового типа.

(For: читается – "фо"; переводится – "для"; to: читается – "ту"; переводится – "до"; do: читается – "ду"; переводится – "делай".)

 

Конструкция For i:=1 to 200 do... переводится так: для i, изменяющегося от 1 до 200, делай оператор, стоящий после слова do.

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

Оператор, стоящий после do может быть и составным.

 

Работает оператор For так:

Прежде всего вычисляется выражение_1, и переменной цикла (пусть это будет i) присваивается его значение. Затем вычисляется выражение_2 и сравнивается с i. Если i > выражение_2, то оператор For завершает свою работу, так ничего и не сделав. В противном случае выполняется оператор, стоящий после do. После выполнения этого оператора значение i увеличивается на единицу и снова сравнивается с выражение_2. Если i > выражение_2, то оператор For завершает свою работу, иначе снова выполняется оператор, стоящий после do, снова значение i

увеличивается на единицу и т.д.

 

 

Оператор For позволяет не только увеличивать, но и уменьшать переменную цикла. Для этого вместо to нужно писать downto.

(читается – "даунту"; переводится – "вниз до".)

 

Задача 17.

Написать программу с использованием оператора For, которая печатает на экране:

Прямой счёт:-4 –3 –2 –1 0 1 2 3 4 Обратный счёт:4 3 2 1 0 –1 –2 –3 –4 Конец счёта.

 

Программа.

 

Var i:Integer;

BEGIN

Write('Прямой счёт:');

For i:=-4 to 4 do Write(i,' ');

Write('Обратный счёт:');

For i:=4 to -4 downto Write(i,' ');

Write('Конец счёта.');

ReadLn;

END.

Элементарная техника программирования.

Вычислительная циклическая программа.

Задача.

Во дворце N залов. Известны длина и ширина каждого зала. Вычислить площадь пола каждого зала.

Программа.

Var i,dlina,shirina,N,S:Integer;

BEGIN

WriteLn('Введите число залов');

ReadLn(N);

For i:=1 to N do begin

WriteLn('Ведите длину и ширину зала');

ReadLn(dlina,shirina);

S:= dlina*shirina;

WriteLn('Площадь пола=',S)

end

END.

 

 

 
 


Счётчики.

Счётчик – это переменна я величина, в которой что–нибудь подсчитывается.

 

Задача.

В компьютер вводится 200 чисел. Компьютер должен подсчитать и напечатать, сколько среди них положительных.

Решение.

Введём переменную i, которая будет выполнять роль счётчика положительных чисел. Оператор с:=с+1 в нужный момент увеличивает значение счётчика на единицу. Увеличение с на единицу выполняется лишь при выполнении условия: а>0, где а – вводимое число. Счётчик перед входом в цикл необходимо обнулять, иначе он начнёт считать не с нуля.

 

VAR c,i:Integer;

a:Real;

BEGIN

c:=0;

For i:=1 to 200 do begin

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

ReadLn(a);

If a>0 then c:=c+1

end;

WriteLn('Из них положительных – ',c)

END.

 

Сумматоры

 

Сумматор – это переменная величина, в которой подсчитывается сумма чего – либо.

 

Задача.

Во дворце N залов. Известны длина и ширина каждого зала. Вычислить площадь пола всего дворца.

 

Решение.

Введём переменную Sum, которая будет выполнять роль сумматора. Оператор Sum:=Sum+S каждый раз увеличивает значение сумматора на величину S, т.е. в ячейке Sum накапливается сумма вычисленных площадей отдельных залов. Сумматор перед входом в цикл тоже необходимо обнулять, иначе он начнёт считать не с нуля.

Var i,dlina,shirina,N,S,Sum:Integer;

BEGIN

Sum:=0;

WriteLn('Введите число залов');

ReadLn(N);

For i:=1 to N do begin

WriteLn('Ведите длину и ширину зала');

ReadLn(dlina,shirina);

S:= dlina*shirina;

Sum:=Sum+S

end;

WriteLn('Площадь пола всего дворца=',Sum);

ReadLn

END.

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 107; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.39.74 (0.009 с.)