§ 4. Оператор ветвления
Упражнения
1. Можно ли изменить логическое выражение в операторе ветвления в примере 4.1 так, чтобы сообщения "pologitelnoe" и "ne pologitelnoe" пришлось поменять местами? Если да, то как это сделать?
2*. Какие изменения нужно внести в программу примера 4.1, чтобы рассматривались три случая: "pologitelnoe", "otricatelnoe", "ravno 0"?
3. Добавьте в программу примера 4.2 проверку корректности исходных данных: координаты домов должны быть такими, чтобы расстояния до школы были различными. Если расстояния одинаковы, то вывести сообщение 'Координаты введены неверно', а если разные, то вывести ответ.
4. Какие изменения понадобится внести в программу примера 4.2, если допустить, что девочки могут проходить одинаковые расстояния? Внесите изменения в программу и проверьте правильность ее работы.
5. Как известно, многие задачи имеют не единственное решение. Так, Юля нашла другой способ вычисления второй цифры трехзначного числа для примера 4.3. Какую из команд использовала Юля? Объясните, что получится при выполнении каждой из приведенных команд.
1. a2 = a % 2. 10 / 10; a2 = a / 100 % 10; 3. a2 = a % 100 / 10;
6. Петя решил усовершенствовать программу примера 4.3 и проверку цифр в числе записал следующим образом:
if ( a1 % 2 == 0)
cout << a1 << endl;
else
if (a2 % 2 == 0)
cout << a2 << endl;
else
if (a3 % 2 == 0)
cout << a3 << endl;
else
cout << "net takih" << endl;
Почему Петина отметка оказалась невысокой? Приведите примеры, для которых программа выдает неправильный ответ. Если такое возможно, то приведите примеры, когда программа выдает правильный ответ.
7. Дано натуральное число. Напишите программу, которая проверит, является ли оно трехзначным и кратна ли 7 сумма его цифр.
8. Дано натуральное число. Напишите программу, которая проверит, является ли оно четырехзначным и расположены ли его цифры в порядке убывания.
9. Дано натуральное число. Напишите программу, которая проверит, является ли число шестизначным «счастливым» (т. е. сумма первых трех цифр числа равна сумме последних трех).
10. Запишите функцию, значение которой вычисляется с помощью предложенного фрагмента программы:
if (x < –3)
y = -x;
else
if (x < 0)
y = 0;
else
y = x * x;
11. Напишите программу для вычисления значения функций.
1. 2.
3. 4.
12. Напишете программу, которая проверит, принадлежит ли точка а(x, у) области.
1. |
2. |
3. |
|||
4. |
5. |
6. |
13. Напишите программу, которая определит, имеется ли среди чисел a, b, c хотя бы одна пара равных между собой чисел. Указать, какие числа равны.
14. Напишите программу, которая определит является ли треугольник со сторонами a, b, c равнобедренным. Если да, то программа должна указать, какая из сторон является основанием, а какие — боковыми сторонами.
15. Дан номер года. Напишите программу, которая определит — является ли он високосным (год является високосным, если его номер делится на 4, за исключением тех, которые делятся на 100 и не делятся на 400).
16. Напишите программу, которая найдет количество точек пересечения прямой
y = kx + b и окружности x2 + y2 = r2. Значения k, b, r вводятся.
17*. Даны действительные числа x1, y1, x2, y2, x3, y3, являющиеся координатами вершин треугольника. Напишите программу, которая определит, лежит ли начало координат внутри этого треугольника.
18. Вводится число от 1 до 4, определяющее пору года. Напишите программу, которая выведет название этой поры года (1 — зима, 2 — весна, 3 — лето, 4 — осень). Использовать оператор switch.
19. Дано натуральное число N (N < 20), определяющее сумму денег в рублях. Напишите программу, которая выведет для этого числа наименование: «рубль», «рубля», «рублей».
20*. Вводится число от 1 до 100. Напишите программу, которая выведет название этого числа (1 — один, 2 — два, ..., 100 — сто).