Занятие Цикл с параметром 1 Конструкция цикла. Цикл с параметром



Скачать 54.68 Kb.
Дата10.11.2016
Размер54.68 Kb.

Занятие 7. Цикл с параметром

1) Конструкция цикла. Цикл с параметром


Конструкция цикла – это такой способ организации действий, когда некоторая последовательность действий выполняется несколько раз. Повторяющаяся последовательность действий называется телом цикла. Алгоритм, в котором используется цикл, называется циклическим. Говорят, что он имеет циклическую структуру.

Есть два вида циклов: цикл с параметром и циклы с условием. Каждый из этих видов используется в зависимости от задачи.



Цикл с параметром используется тогда, когда число повторений тела цикла заранее известно. Например, 10 раз написать слово «привет» или 100 раз сказать «Я так больше не буду». Он имеет следующий вид:

Для <параметр> От <НЗ> До <КЗ> c <шаг>

начало цикла

<тело цикла>

конец цикла

<параметр> – это переменная, значение которой изменяется от начального значения <НЗ> до конечного значения <КЗ> с шагом <шаг>.

Например, в первом классе учитель дал задание: 10 раз написать слово «БЕГЕМОТ». Выполнение этого задания можно записать в виде цикла с параметром:



Для х От 1 До 10 с шагом 1

начало цикла

напиши слово «БЕГЕМОТ»



конец цикла

В этом примере х – это параметр цикла, который изменяется от 1 до 10 с шагом 1, то есть он принимает 10 значений: 1, 2, 3, 4, 5, 6, 7, 8, 9. 10. Тело цикла состоит только из одного действия – напиши слово «БЕГЕМОТ».

К сожалению, в языке программирования Паскаль можно использовать лишь шаг равный 1 или –1.

Цикл с параметром и шагом 1:
For <параметр>:=<НЗ> To <КЗ> Do <тело цикла>;
Цикл с параметром и шагом –1:
For <параметр>:=<НЗ> Downto <КЗ> Do <тело цикла>;
Механизм работы цикла с параметром рассмотрим на примере цикла с шагом 1 можно записать в виде следующего алгоритма:


  1. Параметр принимает начальное значение.

  2. Если оно не больше конечного значения, то выполняем тело цикла, а иначе идем к пункту 4.

  3. Если при увеличении на 1 значение параметра не станет больше конечного значения, то увеличиваем значение параметра на 1 и идем к пункту 2.

  4. Переходим к следующему действию алгоритма.

Рассмотрим на примере.

Пример 1. Найти все двузначные числа, в записи которых есть цифра 7.

Решение:


Program Ex1;

Var x, k: Byte;

Begin

k:=0;


For x:=10 To 99 Do

Begin

x1:=x Div 10;

x2:=x Mod 10;

If (x1=7) Or (x2=7) Then

Begin

Write(x:4);

k:=k+1;


End;

End;

Writeln(‘k=’,k);

End.

k

x

x1

x2













Цикл с параметром и шагом –1 работает по аналогичному алгоритму. Составьте его.



Замечания:


  1. Значение параметра изменяется автоматически (если используется To, то увеличивается на 1, а если Downto, то уменьшается на 1), причем, параметр «пробегает» все значения от начального до конечного.

  2. Если используется To, то начальное значение не должно быть больше конечного.

Пример1.

    • For x:=2 To 7 Do writeln(‘HELLO’); – такой цикл выполнится 6 раз и переменная х будет изменяться от 2 до 7 с шагом 1.

    • For x:=2 To 2 Do writeln(‘HELLO’); – такой цикл выполнится 1 раз и переменная х будет изменяться от 2 до 2 с шагом 1.

    • For x:=7 To 2 Do writeln(‘HELLO’); – такой цикл не выполнится ни разу.

  1. Если используется Downto, то начальное значение не должно быть меньше конечного.

Пример 2.

    • For x:=2 Downto 7 Do writeln(‘HELLO’); – такой цикл не выполнится ни раз.

    • For x:=2 Downto 2 Do writeln(‘HELLO’); – такой цикл выполнится 1 раз и переменная х будет изменяться от 2 до 2 с шагом -1.

    • For x:=7 Downto 2 Do writeln(‘HELLO’); – такой цикл выполнится 6 раз и переменная х будет изменятся от 7 до 2 с шагом -1.

  1. В языке программирования Паскаль параметр – это переменная порядкового типа (целый тип, символьный, логический), при этом параметр, начальное и конечное значения должны быть одного типа. Начальное и конечное значения могут быть как конкретными значениями данного типа, так и переменными. Например,

    Пример 3. Найти сумму всех двузначных чисел равных квадрату суммы своих цифр.

    Решение:


    S:=0;

    For x:=10 To 99 Do

    If Sqr(x Div 10+x Mod 10)=x Then S:=S+x;


    Пример 4. Найти сумму всех двузначных чисел из отрезка от А до В равных квадрату суммы своих цифр.

    Решение:


    Writeln(‘Введите два двузначных числа’);

    Readln(A, B);

    S:=0;


    For x:=A To B Do

    If Sqr(x Div 10+x Mod 10)=x Then S:=S+x;

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

Пример 5. Ввести 10 целых чисел. Найти сумму и количество положительных введенных чисел.

S:=0; K:=0;



For x:=1 To 10 Do

Begin


Writeln(‘Введите число’);

Readln(y);

If y>0 Then

Begin


S:=S+y;

K:=K+1;


End;

End;

Writeln(‘S=’,S,’ K=’,K);

  1. Изменять значение параметра внутри тела цикла может привести к серьезным ошибкам и считается «признаком дурного тона» в программирования (ВЫ НЕ УМЕЕТЕ ПРАВИЛЬНО ИСПОЛЬЗОВАТЬ ЦИКЛЫ), поэтому договоримся этого не делать.

2) Упражнения


  1. Какие из циклов записаны правильно, а какие нет? Почему?

    • For i:=1 To 10 Do Writeln(‘Я самый умный’);

    • For x:=10 To 1 Do Writeln(‘ПРИВЕТ ВСЕМ’);

    • For s:=10 Do 12 To s:=s+1;

    • For d:=5 To 16 Downto s:=s+d;

    • For f:=10 To 9 Do; Writeln(f);

  2. Сколько раз выполнится тело цикла?

    • k:=7; t:=30;

For i:=k-5 To 32-t Do <тело цикла>;

    • a:=9; b:=5; c:=1; s:=11;

For j:=a Downto b Do Write(s:4, c:6);

    • a:=1; b:=a+10;

For j:=a To b Do Writeln(‘Hi-Hi-Hi’);

  1. Какие значения будет иметь переменные после выполнения циклов (x, y, k, i – это переменные целого типа)?

    • k:=0; y:=2;

For i:=60-k To 64-k Do y:=y+2;

    • k:=3; y:=5; x:=0;

For i:=k Downto y Do x:=x+i;

    • x:=0;

For i:=1 To 10 Do

If x Mod 3=0 Then x:=x+i;

3) Задачи


  1. Найти все двузначные числа, в записи которых есть цифра N или само число делится на цифру N (N вводится с клавиатуры).

  2. Найти количество всех двузначных чисел, сумма цифр которых равна N (N вводится с клавиатуры).

  3. Найти количество всех трехзначных чисел, сумма цифр которых равна N (N вводится с клавиатуры).

  4. Найти сумму положительных нечетных чисел, меньших 100.

  5. Найти сумму и количество чисел из отрезка от А до В, кратных 3 и заканчивающихся на 2, 4 или 8 (А и В вводятся с клавиатуры).

  6. Среди всех четырехзначных чисел найти те, в записи которых ровно три одинаковых цифры, например, 3373 или 3733.

  7. Среди всех четырехзначных чисел из отрезка от А до В найти те, в записи которых есть две пары одинаковых цифр, например, 1221 или 1122.

  8. В трехзначном числе зачеркнули первую цифру слева. Когда полученное двузначное число умножили на 7, то получили исходное число. Найдите все такие числа.

  9. Среди всех четырехзначных чисел найти все числа-перевертыши (слева и справа читаются одинаково, например, 1331 или 7007).


База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница