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

Вопросы

  1. В чем различие между символами = и ==?

  2. Как выполнить несколько инструкций при соблюдении одного опре- деленного условия?

  3. Каково назначение else?

  4. Как вы определите, находится ли число в границах допустимых значений?

  5. Объясните использование «вложенных» инструкций if.

  6. Чем отличается переключатель switch от инструкции if?

  7. Как можно использовать числа с плавающей точкой в конструкциях

switch?

  1. Объясните, как можно использовать инструкцию if для проверки правильности ввода?

Упражнения

  1. Напишите программу, в которой вводится числовое значение, а за- тем выдается сообщение, четное или нечетное число было введено.

  2. Напишите программу, в которой вводится число и затем выдается сообщение, находится ли значение числа в пределах от 1 до 100.

  3. Напишите программу, в которой вводится целое число, а затем вы- дается сообщение, в каком интервале находится значение числа: меньше 0, от 0 до 50, от 51 до 100, от 101 до 150, больше 150.

  4. Напишите программу, которая просит пользователя ввести число- вые значения в переменные lownum и highnum. Значение lownum должно быть меньше чем highnum. Если числа введены не в соот- ветствии с этим условием, программа должна поменять значения, поместив меньшее число в lownum, а большее— в highnum. Значе- ния переменных должны быть выведены на экран.

  5. Объясните, почему следующая программа написана неверно:

6. main()

7. {

  1. int age;

  1. printf(Укажите Ваш возраст);

  2. scanf("%f", &age);

  3. if age < 18 then

  4. puts("Вы не

  5. можете участвовать в выборах");

  6. else

  7. if age > 18 then

  8. puts("Вы

  9. можете участвовать в выборах");

}

Глава 9

ЦИКЛЫ

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

Язык Си и Си++ имеет три структуры, известные под названием циклов, которые используются для управления повторами:

Цикл for;

цикл do...while;

цикл while.

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

Использование цикла for

Цикл for используется в том случае, когда известно точное количество повторов, которое нужно выпол- нить. Структура такого цикла показана на рис.9.1. Обратите внимание на то, что точка с запятой ставится только после инструкции, а не после параметров for. Однако три параметра внутри круглых скобок отде- ляются друг от друга точкой с запятой.

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

main()

{

int repeat;

for (repeat = 1; repeat <= 10; repeat++) printf("%d\n", repeat);

}

Этот цикл управляется переменной repeat, которая называется индексом*. Индексу можно присвоить лю- бое имя, но значение переменной обязательно должно быть целым числом. Выражение в круглых скобках после for делится на три составляющие:

repeat=1 инициализация переменной repeat путем присваивания ей начального значения

repeat <= 10

задает условие повтора цикла до тех пор, пока значение переменной repeat остается меньше или равно 10

repeat++ приращение значения переменной repeat после каждого повтора цикла

* Иногда используется термин управляющая переменная цикла. (Прим.перев.)

Рис. 9.1. Структура цикла for

При каждом новом повторе цикла программа выводит на экран текущее значение переменной repeat.

Когда программа начнет выполнение цикла, она присвоит переменной repeat начальное значение, равное

    1. Затем будет проверено, является ли истинным условие, что значение переменной меньше или равно 10. Если условие истинное, начнется выполнение инструкции, связанной с циклом, то есть вывод на экран значения переменной.

После выполнения инструкции произойдет увеличение значения переменной на единицу и снова будет проведена проверка истинности условия (рис.9.2). Так как условие все еще является истинным, цикл бу- дет выполнен во второй раз, отображая на дисплее текущее значение переменной. Этот процесс будет

Рис. 9.2. Условие проверяется перед каждым повтором цикла

повторяться до тех пор, пока значение переменной не вырастет до 11. Как только это произойдет, усло- вие repeat <= 10 уже не будет истинным, так что выполнение инструкции прекратится и цикл завершится.

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

main()

{

int repeat; char letter;

puts("Введите 10 символов"); for(repeat = 1; repeat <= 10; repeat++)

letter = getchar();

}

В этой программе функция getchar() выполняется 10 раз, по количеству повторов цикла, пока значение переменной repeat не увеличится с 1 до 11. Индекс в данном случае используется только для определе- ния количества повторов. С тем же результатом можно было записать инструкции следующим образом:

for (repeat = 101; repeat <= 110; repeat++) letter = getchar();

}

Здесь также вводится 10 символов, но теперь значение индекса изменяется от 101 до 110. Точное значе- ние индекса приобретает значение только в том случае, когда оно само по себе используется в цикле.