Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 3 курс Pascal.doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
825.86 Кб
Скачать

Циклы в Pascal

Паскаль предусматривает использование трех операторов цикла:

• оператор цикла с параметром for

• оператор цикла с предусловием while

• оператор цикла с постусловием repeat

1. Цикл с параметром

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

Общий вид: for <параметр>:=<начальное значение> to <конечное значение> do <оператор>;

Значение параметра меняется с шагом 1. Оператор представляет тело цикла, которое может быть простым или составным оператором.

Пример 1. Вывести квадраты первых десяти натуральных чисел.

Program primer;

Var i, x: integer;

begin

for i:=1 to 10 do begin {перебираем натуральные числа от 1 до 10}

x:=sqr(i); {возводим очередное число в квадрат}

write(x, ' '); {выводим полученное значение}

end;

readln

end.

Пример 2. Найти сумму 1 + 1/3 + 1/5 +...(N слагаемых).

Program primer;

Var I, N: integer;

S: real;

begin

Write('N='); Readln(N); {вводим количество слагаемых}

S:=0; {обнуляем сумму}

For I:=1 to N do {выполняем цикл N раз, добавляя к сумме по од ному слагаемому}

S:=S+1/(2*I-1);

Writeln('S=',S:5:2); {выводим значение суммы с двумя десятичными знаками}

Readln

end.

Пример 3. Подсчитать количество двузначных чисел, кратных 3.

Program primer;

Var i, k: integer;

begin

k:=0; for i:=10 to 99 do begin

if i mod 3=1 then k:=k+1;

end;

writeln ('k=', k);

readln;

end.

Пример 4. Найти сумму четных делителей введенного целого числа.

Program primer;

Var i, S, n: integer;

begin

Write (‘n=’); Readln(n);

S:=0;

for i:=2 to (n div 2) do

if (n mod i=0) and (i mod 2=0) then s:=s+i;

writeln('S=', S);

readln;

end.

Если необходимо, чтобы параметр цикла менялся с шагом -1, следует вместо to записать downto.

For i:=10 downto 1 do Writeln (i);

2. Цикл с предусловием.

While <условие> do <оператор>;

Цикл выполняется, пока условие остается истинным.

Пример. Первоначальный вклад составил S рублей. Через сколько лет сумма вклада более, чем в 2 раза превысит первоначальный вклад, если годовой процент составляет x%.

Например, S=1000 р, x=10%

1 год S=1000+1000*10/100=1100

2 год S=1100+1100*10/100=1210

Program primer;

Var s, sum, x: real;

n: integer;

Begin

Write(‘S=’); Readln(S);

Write(‘x=’); Readln(x);

Sum:=2*s; n:=0;

S:=0; a:=1; b:=2;

While S<=Sum do begin

s:=s+x/100;

n:=n+1;

end;

write('через ', n, ‘ лет’);

readln

end.

Пример 5. Задана арифметическая прогрессия -21; - 16;… Определить номер первого положительного члена прогрессии.

a – очередной член прогрессии, n – его порядковый номер

a=a+5

n=n+1

повторять, пока a<=0

Program primer;

var

a, n: integer;

begin

a:= -21; n:=1;

while a<=0 do begin

a:=a+5; n:=n+1; end;

writeln(‘n=’, n);

readln;

end.

Program primer;

var

a, n: integer;

begin

a:= -21; n:=1;

repeat

a:=a+5;

n:=n+1;

until a>0;

writeln(‘n=’, n);

readln;

end.

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