Найти в Дзене

Обратный (downto) цикл for в Pascal

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

Предыдущие статьи вы можете почитать по ссылкам ниже:

Пишем свой генератор случайных чисел а-ля random.org на Pascal

Введение в циклы на Pascal. Часть 1. Цикл for.

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

Так вот, о том что хочу рассказать сегодня. У Фора, как мы помним есть счетчик - обычно это переменная i, которой и присваиваются значения этого цикла. Например от 0 до 10 или от 1 до 100. Но что, если нам нужно пробежать наоборот? Такой код ни к чему не приведет:

for i := 100 to 1 do

Цикл ни сделает ни одного шага и завершится. Как же быть? Ответ очень прост:

Заменим to на downto. Теперь наш цикл побежит в обратном направлении очень быстро, со скоростью света, можно сказать.

Давайте посмотрим пример, и три варианта его написания. Но для начала задание:

Вывести все нечетные числа от 1 до 100, от 100 до 1

Начнем с первого, тут все стандартно.

-2

Пишем простой код и сразу получаем ответ. mod здесь используется чтобы найти остаток от деления, ведь если число делится на 2 - оно четное, а если нет то (логично) нет

Хорошо, давайте попробуем сделать вторую часть задания:

-3

Вот вам и (не)рабочий пример. Цикл просто не запустился, но и программа, в свою очередь, ошибку не выдала. Осторожнее надо быть. Внимательность - лучший друг программиста.

Исправимся.

-4

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

Для быстроты проверки примера я выложу код программы сюда:

var i:integer;
begin
writeln('Вывести все нечетные числа от 100 до 1 ');
for i:= 100 downto 1 do
if i mod 2<>0 then write(i,' ');
end.

Просто проверьте его в своем паскале. Спасибо за просмотр и до скорых встреч.

-5

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

По возможности я попросил бы подписаться. Сейчас это критически важно для развития канала. Так то!

Доброго вам всем здоровьица в эти трудные времена!

Наука
7 млн интересуются