Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции - Паскаль-переплет.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
626 Кб
Скачать
☆

§7. Базовые циклические алгоритмы

1. Алгоритм вычисления суммы чисел.

Вычислить сумму 12 целых чисел, введенных с клавиатуры.

PROGRAM summa;

VAR a: integer; {введенное число}

i: integer; {счетчик цикла}

S: integer; {сумма}

BEGIN

S:=0;

FOR i:=1 TO 12 DO

BEGIN

writeln(’задайте значение очередного слагаемого ’);

readln(a);

S:=S+a

END;

writeln(‘Сумма =’,S);

END.

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

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

PROGRAM kol;

VAR a: integer; {входная переменная}

i: integer; {счетчик цикла}

K : integer; {счетчик отрицательных чисел}

BEGIN

K:=0;

FOR i:=1 TO 10 DO

BEGIN

write(’задайте значение переменной a: ’);

readln(a);

IF a<0 THEN K:=K+a

END;

IF K=0 THEN writeln(‘Отрицательных чисел нет»)

ELSE writeln(‘Количество отрицательных чисел’,K:4);

END.

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

PROGRAM summa;

VAR a: integer; {введенное число}

i: integer; {счетчик цикла}

S: integer; {сумма}

K: integer; {счетчик чисел кратных 3}

BEGIN

S:=0; K:=0;

FOR i:=1 TO 10 DO

BEGIN

write(’задайте значение очередного слагаемого ’)

readln(a);

IF a mod 3=0 THEN

begin

K:=K+1;

S:=S+a;

end

END;

IF K=0 THEN writeln(‘чисел кратных 3 нет’)

ELSE writeln(‘сумма чисел кратных 3 =’, S:6)

END.

4. Алгоритм вычисления n!.

n!=1*2*3*...*n. 0!=1

PROGRAM N;

VAR F: integer;

i: integer;

BEGIN

F:=1;

FOR i:=1 TO 15 DO

F:=F*i;

writeln(’15! =’,F)

END.

5. Алгоритм вычисления аn.

PROGRAM step;

VAR a: integer; {основание}

n:integer; {показатель степени}

i: integer; {счетчик цикла}

W: integer; {результат}

BEGIN

write(‘задайте основание а’); readln(a);

write(‘введите показатель n’); readln(n);

W:=1;

FOR i:=1 TO n DO

W:=W*a;

writeln(a,’в степени ‘,n,’ равно ’,W:6)

END.

Вычислить : 1! + 2! + 3! + ... + n!, при n=5

.......

s:=0; F:=1;

For i:=1 to 5 do

begin

f:=f*i;

s:=s+f;

end;

§8. Цикл с предусловием while

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

Форма записи:

WHILE <лог выр-ние / условие> DO BEGIN операторы

циклической части

программы

END

WHILE ( пока ) DO ( выполнять )

Сначала выполняется значения условия . Пока оно истинно выполняются операторы циклической части . Когда только оно становится ложным, происходит выход из цикла. Если условие ложно то цикл не выполняется ни разу. Возможен случай , когда в циклической части стоит оператор перехода (EXIT, GOTO) передающий управление за пределы цикла. В такой ситуации цикл может завершиться до его естественного окончания.

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

Пример : a:=1;

n:=1;

WHILE 2-a<=3-n+1 DO

BEGIN

a:=a+2;

n:=n+1

END;