Лабораторная работа №9
Повторяющиеся вычисления - циклы


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

while (В) {s}


где B - выражение логического типа; s - операторы, называемые телом цикла. Операторы s в фигурных скобках выполняются до тех пор, пока условие B не станет ложным.


Пример 1. Нахождение общего делителя


Напишем программу, которая для двух заданных чисел определяет наибольший общий делитель.
При решении задачи воспользуемся алгоритмом Евклида. Если значение m равно нулю, то наибольший общий делитель чисел n и m равен n:
НОД(n, 0) = n.
В остальных случаях верно следующее соотношение:
НОД(n, m) = НОД(m, n%m).
В функции nod переменная р используется для получения остатка от деления чисел n и m (листинг 1). Выполнение цикла продолжается до тех пор, пока значение р не станет равным нулю. Последнее вычисленное значение m равно наибольшему общему делителю.


Листинг 1. Наибольший общий делитель двух чисел


Если число повторений заранее известно, то можно воспользоваться следующим оператором цикла, который часто называют оператором цикла арифметического типа. Синтаксис этого оператора таков:

for (А; В; I){S}

Выражение А служит для инициализации параметра цикла и вычисляется один раз в начале выполнения цикла. Выражение B (условие продолжения) управляет работой цикла. Если значение выражения ложно, то выполнение цикла завершается, если истинно, то выполняется оператор S, составляющий тело цикла. Выражение I служит для изменения значения параметра цикла. После выполнения тела цикла S вычисляется значение выражения I, затем опять вычисляется значение выражения B и т.д. Цикл может прекратить свою работу в результате выполнения оператора break в теле цикла.


Пример 2. Совершенные числа


Напишем программу, определяющую, является ли заданное число n совершенным.
Совершенным называется число n, равное сумме своих делителей, не считая самого числа. Например, число 6 является совершенным, т. к. верно 6 = 1 + 2 + 3, где 1, 2, 3 - делители числа 6. Число 28 также является совершенным, справедливо равенство 28 = 1 + 2 + 4 + 7 + 14. При решении задачи воспользуемся только функцией sumdei (листинг 2).


Листинг 2. Итерационные методы. Совершенные числа


Обратите внимание на значение параметра обработки события. В данном случае это оператор присваивания, в правой части которого вызов функции sov.
Оператор for...in используется для анализа свойств объекта. Синтаксис оператора:

for (i in t) {s}

где i - переменная цикла; t - объект; s - последовательность операторов.
В результате выполнения оператора цикла производится перебор свойств объекта. Переменная цикла при каждом повторении содержит значение свойства объекта. Количество повторений тела цикла s равно числу свойств, определенных для объекта t.


Пример 3. Определение свойств элемента формы


Напишем сценарий, с помощью которого можно определить свойства элемента формы "поле ввода многострочного текста".
Свойства объекта с помощью оператора цикла формируются в строке result, затем после просмотра всех свойств значение строки result помещается в поле ввода многострочного текста.
Сценарий определения свойств текстового поля приведен в листинге 3.


Листинг 3. Операции над объектами. Свойства текстового поля


Задания

1. Проверить примеры из лабораторной работы.
2. Напишите программу, которая "переворачивает" заданное натуральное число.
3. Напишите сценарий, в котором определяется количество "счастливых" шестизначных автобусных билетов, т. е. таких, в номерах которых сумма первых трех цифр равна сумме трех последних.
4. Напишите программу, определяющую все делители заданного натурального числа.

возврат оглавление следующая

Хостинг от uCoz