§ 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 (< –3) 

  y = -x;

else

  if (< 0) 

    = 0;

  else

    y = x * x;

11. Напишите программу для вычисления значения функций.

1. begin mathsize 16px style f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell x squared comma space если space – 1 less or equal than space space х space less or equal than space 1 end cell row cell – sin space x space straight в space остальных space случаях end cell end table close end style               2. space f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell x minus 7 comma space если space space х space less than negative 7 end cell row cell square root of 49 space minus space x squared end root comma space space если space minus 7 space less or equal than space х space less or equal than 7 end cell row cell negative х space plus space 7 space straight в space остальных space случаях end cell end table close

3. begin mathsize 16px style f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell square root of x squared space plus space 9 end root comma space если space space х space less than negative 3 end cell row cell sin space x comma space space если space minus 3 space less or equal than space х space less than 0 end cell row cell cos squared space x comma space если space space х space greater or equal than space 0 end cell end table close end style                     4. f space left parenthesis x right parenthesis equals space open curly brackets table attributes columnalign left end attributes row cell open vertical bar x close vertical bar comma space если space space х space less than space 0 end cell row cell cos space x comma space если space 0 space less or equal than space x space less than space pi end cell row cell square root of x space plus space open square brackets x close square brackets end root comma space space если space pi space less or equal than space х space less than 100 end cell row cell bevelled fraction numerator 1 over denominator sin space x end fraction comma space если space space х space greater or equal than space 100 end cell end table close

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 — сто).