Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЯП лекции.doc
Скачиваний:
12
Добавлен:
03.12.2018
Размер:
634.37 Кб
Скачать

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

Особенность данного цикла – автоматизация контроля и изменение параметра цикла, т.е. в цикле указывается начальное и конечное значения параметра цикла, шаг изменяется «=+1 или - 1».

БП к Ц

ОПЕРАТОР

шаг +1

FOR p:=N1 to N2 DO операторы;

шаг -1

FOR p:=N1 downto N2 DO операторы;

Примечание:

1. Параметр цикла должен быть порядковым.

2. В теле цикла не рекомендуется блок модификации параметра цикла.

3. Если тело цикла состоит из нескольких операторов, необходимо использовать операторные скобки.

var n,p,y:integer;

begin

writeln(‘Введите n’);

read(n);

y:=1;

f

Y=1

or p:=1(+1) to n do y:=y*p;

writeln(N);

readln;

end.

Y=Y*P

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

  1. если шаг изменения параметра цикла +1 или -1:

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

  1. если шаг изменения параметра цикла не равен 1:

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

Типовые задачи на операторов цикла.

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

Пример Из введенной последовательности целых чисел вывести max значение. Окончанием ввода последовательности считать введенный ноль, причем ноль в сравнениях не участвует.

MAX=X

var x,max:integer;

begin writeln (‘Введите первое число’);

readln(max);

if max <>0 then

begin writeln(‘Введите следующее число’);

readln(x);

while x <>0 do begin

if max<x then max:=x;

writeln(‘Введите следующее число’);

readln(x);

end;

writeln(‘max= ‘,max);

end

else writeln(‘Нет последовательности’);

end.

Операторы целочисленного деления.

DIV, MOD – арифметические операторы.

Все операторы, участвующие в целочисленном делении, должны быть целыми.

var a,b,c:integer;

begin

a:=b div c;

В результате целочисленного деления DIV в переменную a разместится целая часть без остатка в результате целочисленного деления b на c.

a:=b mod c;

Пример. В результате MOD в переменную a запишется остаток в виде целого числа, возникший при делении b на c.

var n,c:integer;

begin writeln(‘Введите n’);

r

C=N mod 10

eadln(n);

repeat c:=n mod 10;

write(c);

n:=n div 10;

until n=0;

e

N=N div 10

nd.

Вложенные циклы.

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

Пример.

Y=0

Var y,k,n: integer;

Begin y=0

For k:=1 to 20 do

For n:=10 to 35 do

Y:=y+(k*n);

Writeln(y);

Readln;

E

Y=Y+(K*N)

nd.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]