§ 4. Оператор ветвления
4.2. Решение задач с использованием оператора ветвления
Пример 4.2. Таня и Катя живут в разных домах. Им стало интересно, кто из них живет ближе к школе. Они разместили на карте прямоугольную систему координат так, чтобы школа имела координаты (0, 0). Известно, что Танин дом имеет координаты (x1; y1), а Катин — (x2; y2). Девочки ходят в школу по прямой и проходят разные расстояния. Написать программу, которая определит, чей дом ближе к школе. Этапы выполнения задания I. Исходные данные: координаты домов девочек x1, y1, x2, y2. II. Результат: сообщение о том, чей дом ближе. III. Алгоритм решения задачи. 1. Ввод координат домов. «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msub»«mi»r«/mi»«mi»T«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«msqrt»«msubsup»«mi»x«/mi»«mn»1«/mn»«mn»2«/mn»«/msubsup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msubsup»«mi»y«/mi»«mn»1«/mn»«mn»2«/mn»«/msubsup»«/msqrt»«mo»§#160;«/mo»«/math» и «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«msub»«mi»r«/mi»«mi»K«/mi»«/msub»«mo»§#160;«/mo»«mo»=«/mo»«msqrt»«msubsup»«mi»x«/mi»«mn»2«/mn»«mn»2«/mn»«/msubsup»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«msubsup»«mi»y«/mi»«mn»2«/mn»«mn»2«/mn»«/msubsup»«/msqrt»«mo»§#160;«/mo»«mo».«/mo»«/math» 3. Сравнение расстояний и вывод ответа IV. Описание переменных: x1, y1, x2, y2, r_T, r_K — тип double. Пример 4.3. Проверить является ли введенное число трехзначным, и если да, то вывести четные цифры этого числа. Этапы выполнения задания I. Исходные данные: a (трехзначное число). II. Результат: переменные a1, a2, a3 (цифры числа) или сообщения: «не трехзначное», «нет четных цифр». III. Алгоритм решения задачи. 1. Ввод исходного числа. 3.1. Для выделения первой цифры a1 находим целую часть от деления числа a на 100. 4. Вывод результата. IV. Описание переменных: a, a1, a2, a3 – int. Пример 4.4. Вычислить значение функции для заданного x. «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»(«/mo»«mi»x«/mi»«mo»)«/mo»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mfenced open=¨{¨ close=¨¨»«mtable columnalign=¨left¨»«mtr»«mtd»«mi»x«/mi»«mo»§#160;«/mo»«mo»§#8212;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1077;§#1089;§#1083;§#1080;«/mi»«mo»§#160;«/mo»«mi»x«/mi»«mo»§#160;«/mo»«mo»§#60;«/mo»«mo»-«/mo»«mn»2«/mn»«/mtd»«/mtr»«mtr»«mtd»«mi»x«/mi»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1077;§#1089;§#1083;§#1080;«/mi»«mo»§#160;«/mo»«mo»§#8212;«/mo»«mo»§#160;«/mo»«mn»2«/mn»«mo»§#160;«/mo»«mo»§#8804;«/mo»«mo»§#160;«/mo»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»§#8804;«/mo»«mn»2«/mn»«/mtd»«/mtr»«mtr»«mtd»«mn»2«/mn»«msqrt»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»+«/mo»«mo»§#160;«/mo»«mn»2«/mn»«/msqrt»«mo»,«/mo»«mo»§#160;«/mo»«mi»§#1077;§#1089;§#1083;§#1080;«/mi»«mo»§#160;«/mo»«mi»§#1093;«/mi»«mo»§#160;«/mo»«mo»§#62;«/mo»«mn»2«/mn»«/mtd»«/mtr»«/mtable»«/mfenced»«/math» Этапы выполнения задания I. Исходные данные: переменная x (значение переменной). II. Результат: переменная f (значение функции). III. Алгоритм решения задачи. 1. Ввод исходных данных. 2.1. Сначала проверим истинность условия x < –2. Если оно истинно, то вычислим значение функции по формуле f = x – 2. Иначе (это значения, для которых x ≥ –2) проверим следующее условие. 3. Вывод результата. IV. Описание переменных: x, f — double. Пример 4.5. Определить, принадлежит ли точка a(x, у) данной области. Этапы выполнения задания I. Исходные данные: переменные x и y (координаты точки). II. Результат: слово «да» или «нет» в зависимости от принадлежности точки закрашенной области. III. Алгоритм решения задачи. 1. Ввод исходных данных. 3. Вывод результата. IV. Описание переменных: x, y – double. |
Пример 4.2. V. Программа:
VI. Тестирование. Танин дом — x1 = 2.3, y1 = 4.5, Катин дом — x2 = −2.1, y2 = 4.9. Результат: Танин дом — x1 = −6.1, y1 = 4.5, Катин дом — x2 = −1.71, y2 = −3.2. Результат: Пример 4.3. V. Программа:
VI. Тестирование. Результат для значения 345: Другие варианты исходных данных VII. Анализ результатов. Для полной проверки программы требуется еще проверить значения, в которых цифр меньше трех, содержащие 1 четную цифру (на разных позициях), две четные цифры. Пример 4.4. V. Программа:
V. Тестирование: VI. Анализ результатов. Число 5 больше 2, поэтому вычисление значения функции происходит по формуле «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«mn»2«/mn»«msqrt»«mi»x«/mi»«mo»+«/mo»«mn»2«/mn»«/msqrt»«mo»§#160;«/mo»«mo»=«/mo»«mn»2«/mn»«msqrt»«mn»7«/mn»«/msqrt»«mo».«/mo»«/math» Для числа −0.3 вычисления происходят по формуле «math xmlns=¨http://www.w3.org/1998/Math/MathML¨»«mi»f«/mi»«mo»§#160;«/mo»«mo»=«/mo»«mo»§#160;«/mo»«msup»«mi»x«/mi»«mrow»«mn»3«/mn»«mo»§#160;«/mo»«/mrow»«/msup»«mo»=«/mo»«mo»§#160;«/mo»«msup»«mrow»«mo»(«/mo»«mo»-«/mo»«mn»0«/mn»«mo».«/mo»«mn»3«/mn»«mo»)«/mo»«/mrow»«mn»3«/mn»«/msup»«/math». Полная проверка программы требует ввести значения, принадлежащие каждому из указанных в условии промежутков. Пример 4.5. V. Программа:
VI. Тестирование: VII. Анализ результатов. Полная проверка программы требует ввести значения, принадлежащие каждой из областей, которые образуются при пересечении прямых. |