Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Создание паузы в программе

Цикл for можно использовать и без инструкций, с целью создания задержки в программе:

for (delay = 1; delay <= 1000; delay++);

Хотя инструкции, связанные с циклом, отсутствуют, тем не менее, цикл будет повторен 1000 раз, пока выполняется указанное условие, то есть пока значение переменной delay не возрастет с 1 до 1001. Вы- полнение повторов цикла приостановит переход программы к выполнению следующих инструкций.

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

Вы можете провести эксперимент, чтобы выяснить, как долго будет выполнять тысячу повторов ваша сис- тема. Длительность паузы зависит от быстродействия компьютера. Выполнение цикла может длиться 1 секунду на быстром компьютере и 2 секунды на медленном*. Чтобы установить желательную длитель- ность паузы, можно увеличивать или уменьшать количество повторов, заданное в условии.

* Автор несколько утрирует. Для получения паузы в 1 секунду даже на очень медленном ком- пьютере цикл потребуется повторить несколько тысяч раз. (Прим.перев.)

Составные инструкции

В одном цикле можно выполнить несколько инструкций. Для этого всю последовательность инструкций, относящихся к циклу, следует заключить в фигурные скобки. В качестве примера посмотрите программу перевода 101 последовательного значения температур (от 32 до 132) в значения по шкале Цельсия:

main()

{

int temp; float celsius;

puts("Шкала Фаренгейта\tШкала Цельсия\n"); for (temp = 32; temp <= 132; temp++)

{

temp, celsius);

}

celsius = (5.0 / 9.0) * (temp - 32); printf("%d\t\t%6.2f\n",

}

При каждом повторе цикла выполняются две инструкции. Значение индекса определяет как количество повторов, так и значения, которые следует перевести в шкалу Цельсия. Сравните только что просмотрен- ную вами программу со следующей:

main()

{

int temp, repeat; float celsius;

puts("Шкала Фаренгейта\tШкала Цельсия\n"); temp = 10;

for (repeat = 1; repeat <= 10; repeat++)

{

celsius = (5.0 / 9.0) * (temp - 32); printf("%d\t\t%6.2f\n",

temp, celsius);

}

temp += 10;

}

Теперь индекс определяет только количество повторов. Значения температуры, которые следует преобра- зовать, определяет переменная temp. Эта переменная увеличивает свое значение на 10 при каждом по- вторе: с 10 до 20, 30 и так далее, вплоть до 100.

Использование переменных

Если во время составления программы вы не знаете, сколько повторов потребуется, вы все же можете ис- пользовать цикл for, при условии, что количество повторов будет указано в момент запуска программы на выполнение. Можно ввести значение в переменную и использовать ее в условии. Например, следующая программа просит пользователя указать пределы значений температуры, которые требуется преобразо- вать, то есть, по сути, пользователь сам должен определить количество повторов цикла:

main()

{

int temp, start, end; float celsius;

printf("Введите начальное значение температуры: ");

scanf("%d", &start); printf("Введите конечное

значение температуры: ");

scanf("%d", &end);

puts("Шкала Фаренгейта\tШкала Цельсия\n"); for (temp = start; temp <= end; temp++)

{

celsius = (5.0 / 9.0) * (temp - 32); printf("%d\t\t%6.2f\n",

temp, celsius);

}

}

Здесь требуется ввести начальное и конечное значения температур, которые мы хотим привести к шкале Цельсия. Переменные start и end используются в цикле for для установки начального значения индекса и для проверки условия. Цикл завершится, когда значение переменной temp превысит величину перемен- ной end. Таким образом, если вы введете числа 20 и 43, программа преобразует значения температур от 20 до 43 градусов по Фаренгейту в соответствующие значения по шкале Цельсия. Цикл будет повторен 24 раза, затем завершится.