Паскаль. Основы программирования

       

Что такое цикл?


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

Если вас спросят, что такое цикл, то, наверное, вы не задумываясь ответите, что это повторяемость

чего-то.

И это совершенно правильно!

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

Циклы в математике - явление очень часто встречающееся.

Например, пока

натуральные числа меньше 10, тогда надо суммировать их.

Другими словами, мы находим сумму чисел от 1 до 10.

В этом примере повторяется сложение натуральных чисел, пока выполняется условие

(числа меньше 10).

Такие циклы называются циклами с предыдущим условием или, коротко, с предусловием, потому что условие записывается перед выполнением повторяющейся группы операторов.

Цикл в программировании - это многократно выполняемая группа команд, часть программы.



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

 На языке Паскаль возможны циклы с предусловием, которые организуются с помощью оператора:

while (пока) ... do (выполнять) ...

Формат оператора: while <условие> do <операция>.

Работа оператора заключается в том, что операция выполняется до тех пор, пока будет выполняться условие, указанное в операторе while.

Если операция содержит не один оператор, а несколько, то их объединяют с помощью ОПЕРАТОРНЫХ СКОБОК begin и end, например;   

   

                                         while <условие> do

                                             begin

                                                S1; S2; S3; ...

                                            end;

В этом примере символами s1, s2, s3, ... обозначены операторы.

Действие цикла while

... do ... можно изобразить графически следующей схемой (см.
рис. 20):



Рис. 20

Рассмотрим работу оператора while ... do ... на примере.

Пример 1. Определить и вывести на экран цифры целого числа n.

Разберем математику этого вопроса на частном примере.

Найдем цифры числа 4538. Для этого надо найти остаток от деления 4538 на 10 с помощью операции нахождения остатка от деления целых чисел (mod):

 4538 mod 10 = 8, получим последнюю цифру числа (она же является первой справа).

Выдаем сообщение: "1 - я цифра справа равна 8".

После этого выполним целочисленное деление заданного числа 4538 на 10, получим 453 (остаток отбрасывается):

4538 div 10 = 453.

Далее процесс повторяем:

                          2 - й раз;                   453 mod 10 = 3

2 - я цифра справа равна 3,

                                                   453 div 10 = 45,

                 3 - й раз;                     45 mod 10 = 5,

                                        3 - я цифра справа равна 5,

                                                     45 div 10 = 4,

                 4 - й раз;                     4 mod 10 = 4,

                                        4 - я цифра справа равна 4,

                                                      4 div 10 = 0.

Обратите внимание! Процесс будет продолжаться пока

число  n не равно нулю. Как только оно станет равно нулю  цикл  заканчивается.

В программе еще надо указывать какая по счету цифра в числе справа. Для этого надо завести еще одну переменную в качестве счетчика. Эта переменная каждый цикл должна увеличиваться на 1.





Программа

Program

Problem1; {Опред. и вывод на экран цифр числа.}

    uses WinCrt;

    var

       n, p, i : integer;

    begin

       write('Введите натуральное число n <= 32767 '); readln(n);

       i := 1;

       while n <> 0 do

          begin

             p := n mod 10;

             writeln(i, ' - я цифра справа равна ', p);

             n := n div 10;

             i := i + 1

          end

    end.

Построение

программы
и ее работа.

В разделе описаний

Переменная n для целого числа, p - для цифр числа, i - счетчик цифр.

В разделе операторов

С помощью оператора write выводится на экран запрос для пользователя о вводе целого числа. Оператор readln заносит его значение в память и присваивает переменной n.

Счетчику i устанавливается первоначальное значение 1.

В операторе while записывается условие (пока n не равно 0), при котором цикл будет выполняться.

Так как в цикле несколько операторов, то используются операторные скобки

begin ... end.

В них записаны операторы:

p := n mod 10; - определяется последняя цифра;

writeln(i,' - я цифра справа равна ', p); - выводится на экран порядковый номер цифры справа и сама эта цифра;

n := n div

10; - от числа "зачеркивается" последняя цифра;

i := i + 1; - счетчик увеличивается на 1.


Содержание раздела