Общие замечания

Приступая к решению задач этого раздела, следует вспомнить, что:

  • инструкция switch предназначена для выбора одного из нескольких возможных направлений дальнейшего хода программы;
  • выбор последовательности инструкций осуществляется в зависимости от равенства значения переменной-селектора константе, указанной после слова case;
  • если значение переменной-селектора не равно ни одной из констант, записанных после case, то выполняются инструкции, расположенные после слова default;
  • в качестве переменной-селектора можно использовать переменную целого (int) или символьного (char) типа.

Задачи

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

Город Код Цена минуты (руб.)
Владивосток 423 2,2
Москва 095 1,0
Мурманск 815 1,2
Самара 846 1,4

Вычисление стоимости разговора по телефону.
Введите исходные данные:
Код города -> 423
Длительность (целое количество минут)-> 3
Город: Владивосток
Цена минуты: 2.20 руб.
Стоимость разговора: 6.60 руб.

103. Напишите программу, которая по дате определяет день недели, на который эта дата приходится. Для вычисления дня недели воспользуйтесь формулой:

(d + ( 1/5 (13 m - 1) ) +Y + ( Y/4 + c/ 4 - 2 c + 777 ) mod 7
Здесь d — число месяца, т — номер месяца, если начинать счет с марта, как это делали в Древнем Риме (март — 1, апрель — 2, ..., февраль — 12), Y — номер года в столетии, с — количество столетий. Квадратные скобки означают, что надо взять целую часть от значения, находящегося в скобках. Вычисленное по формуле значение определяет день недели: 1 — понедельник, 2 — вторник, ..., 6 — суббота, 0 — воскресенье.