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

Пример использования цикла for

Дано натуральное число N. Получить все его делители.

Решение. Для получения делителей числа необходимо перебрать все натуральные числа в диапазоне от 2 до N/2 включительно. Для каждого числа будем выполнять проверку – делит ли оно число N без остатка. Если да, то делитель будем выводить на экран. 1 и само число N проверять не имеет смысла и их выведем на экран без проверки.

Program DELIT;

Var N,D:integer;

Begin

Write(‘введите N’); readln(N);

Writeln(‘Делители числа:’);

Writeln(‘1’);

For D:=2 to N div 2 do{деление целочисленное из-за требований цикла}

If N mod D = 0 then writeln(D);

Writeln(N);

End.

Оператор цикла с предусловием (while)

Это самый универсальный из циклов Паскаля. С его помощью можно реализовать любые варианты повторяющихся конструкций. Другое название – цикл ПОКА.

Оператор While имеет такую конструкцию:

W hile <логическое выражение> Do <оператор> ;

Правила работы:

  1. Вычисляется логическое выражение.

  2. Если получен результат True, то выполняется оператор, составляющий тело цикла и происходит возврат к п.1.

  3. Если результат False, то работа цикла завершается и происходит переход на оператор, следующий за циклом.

Т.о., логическое выражение цикла While – это условие продолжения повторений.

Особенности оператора WHILE:

  1. Если в начале работы цикла логическое выражение дает результат false, то тело цикла не будет выполнено ни разу.

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

  3. Если в теле цикла более одного оператора, то необходимо использовать составной оператор (Begin - End).

Пример использования цикла while

Пример. Дано натуральное число N. Найти сумму и количество цифр в его цифровой записи.

Решение. Решение этой задачи основано на том, что:

  • Остаток от деления любого натурального десятичного числа на 10 равен последней цифре в записи числа

  • Частное от деления – результат целочисленного деления – это все цифры числа, кроме последней. Т.о., последняя цифра отбрасывается.

Например: N = 5482

5482 mod 10 = 2 – последняя цифра

5482 div 10 = 548 – оставшаяся часть числа без последней цифры

Если теперь заменить исходное N на результат операции DIV и повторить действия, то мы получим следующую цифру и т.д. Поскольку цифровая запись числа постепенно сокращается, то результат DIV для одноразрядного числа, состоящего из старшего разряда, будет равен 0. Это и будет признаком завершения разбора числа на цифры.

Особенность алгоритма: исходное N теряется.

Program SK;

Var x,s,k,c: integer;

Begin

Write(‘введите N ’);

Readln(N);

S:=0; {сумма цифр}

k:=0; {количество цифр}

While N>0 Do {пока в числе N еще есть необработанные цифры}

Begin

C :=N mod 10; {очередная цифра числа}

S :=S + C; {накопление суммы цифр}

K := k + 1; {подсчет количества цифр}

N := N div 10; {удаление из числа обработанной цифры}

End;

Writeln(‘Сумма цифр =‘,S);

Writeln(‘Количество цифр =’,K);

End.

Оператор цикла с постусловием (repeat)

Другое название цикла – цикл «До». Оператор Repeat имеет такую конструкцию:

Repeat <операторы> Until <логическое выражение>;

П равила работы:

  1. Вычисляется логическое выражение.

  2. Если получен результат False, то выполняется оператор, составляющий тело цикла и происходит возврат к п.1.

  3. Если результат True, то работа цикла завершается и происходит переход на оператор, следующий за циклом.

Т.о., логическое выражение цикла Repeat – это условие завершения повторений.

Особенности оператора REPEAT:

  1. Вне зависимости от значения логического выражения операторы тела цикла будут выполнены хотя бы 1 раз. Эта особенности делает цикл Repeat менее универсальным, чем While.

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

  3. В цикле Repeat не используются составной оператор.

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