Задачи для решения на тему «условные алгоритмы»
Вариант 1. Заданы три числа: а. b, с. Определить, могут ли они быть сторонами треугольника, и если да, то определить его тип: равносторонний, равнобедренный, равносторонний. Замечание. Условия существования треугольника: a<=b + c, b<=a+c, c<=a+b. Нельзя исключать экстремальных случаев, когда одна (или несколько) сторон равны нулю либо когда одно из неравенств переходит в равенство (треугольник нулевой площади). Вариант 2. Треугольник задан длинами своих сторон: ша, b, c. Определить, является ли он тупоугольным, прямоугольным или остроугольным. Замечание. Достаточно, используя теорему косинусов, найти знаки косинусов внутренних углов треугольника, не вычисляя самих углов (они могут быть нулевыми или развернутыми). Вариант 3. Треугольник задан координатами своих вершин на плоскости: А(хa,уa), B(xb,yb), C(xc,yc). Определить, является он прямо-, остро- или тупоугольным. Замечание. Не следует отбрасывать экстремальные случаи, когда вершины треугольника совпадают или лежат на одной прямой. Например, треугольник с нулевой стороной обладает свойством прямоугольного и имеет два прямых угла. Вариант 4. Написать программу, определяющую, могут ли введенные три числа являться сторонами треугольника. Замечание. Числа а, b, с тогда и только тогда являются сторонами треугольника, когда существуют такие положительные х, у, z, что а = х+у, b = y+z, c = х+z. Вариант 5. Четырехугольник ABCD задан координатами своих вершин на плоскости; А(хa,уa), В(хb,уb), C(xc,yc), D(xd,yd). Проверить, является ли он выпуклым. Замечание. Есть несколько способов проверки выпуклости: анализ линейных неравенств, задаваемых сторонами; разбиение четырехугольника на треугольники со сравнением сумм их площадей и другие.
Вариант 6. Четырехугольник ABCD задан координатами своих вершин на плоскости; А(хa,уa), В(хb,уb), C(xc,yc), D(xd,yd). Определить тип четырехугольника: прямоугольник, параллелограмм, трапеция, произвольный четырехугольник. Вариант 7. Определить, пройдет ли кирпич со сторонами а и b сквозь прямоугольное отверстие со сторонами r и s. Стороны отверстия должны быть параллельны граням кирпича. Вариант 8. Может ли шар радиуса r пройти через ромбообразное отверстие с диагоналями р и q? Вариант 9. Можно ли коробку размером A×B×C упаковать в посылку размером X×Y×Z. Углом укладывать нельзя. Вариант 10. Можно ли из круглой заготовки радиуса r вырезать две прямоугольные пластинки с размерами A×B и C×D? Вариант 11. Можно ли на прямоугольном участке застройки размером а на b метров разместить два дома размером в плане р на q и r на s метров? Дома можно располагать только параллельно сторонам участка. Вариант 12. Проверить, лежит ли окружность (х-а)2 + (у-b)2 =r2 целиком внутри окружности (x-c)2 + (y-d)2 =s2 или наоборот. Вариант 13. Лежит ли точка М(х,у) внутри треугольника, заданного координатами своих, вершин A(хa, уa), В(хb, уb), С(хс, yc) на плоскости? Вариант 14. Два отрезка на плоскости заданы координатами своих концов. Определить, имеют ли эти: отрезки общие точки. Замечание. Необходимо рассмотреть различные случаи взаимной ориентации отрезков: на одной прямой, на параллельных или пересекающихся прямых. Вариант 15. Среди заданных целых чисел a,b,c найти пары кратных. Вариант 16. Как известно, число делится на 3 тогда и только тогда, когда сумма его цифр делится на 3. Проверить этот признак на примере заданного трехзначного числа. Вариант 17. Заданы координаты вершин треугольника АВС на плоскости. Вывести их в порядке обхода по часовой стрелке (для проверки достаточно рассмотреть знаки внутренних углов). Вариант 18. Путник двигался t1 часов со скоростью v1, затем t2 часов - со скоростью v2 и t3 часов - со скоростью v3. За какое время он одолел первую половину пути, после чего запланировал привал?
Вариант 19. Можно ехать на такси со скоростью v км/ч и оплатой р руб/км либо идти пешком со скоростью u км/ч бесплатно. Как с наименьшими затратами преодолеть путь за время t, если это возможно? Каковы эти затраты? Замечание. Рекомендуется рассмотреть «запредельные» случаи: когда времени слишком мало, чтобы успеть даже на такси, либо слишком много, так что и пешком можно с запасом успеть до отхода поезда. Вариант 20. Даны три числа a, b, c. Найти произведение наибольшего из этих чисел на наименьшее.
6.3 Операторы цикла
Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла (рисунок 6.5). Один проход цикла называется итерацией. Проверка условия выполняется на каждой итерации либо до тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с постусловием). Разница между ними состоит в том, что тело цикла с постусловием всегда выполняется хотя бы один раз, после чего проверяется, надо ли его выполнять еще раз. Проверка необходимости выполнения цикла с предусловием делается до тела цикла, поэтому возможно, что он не выполнится ни разу. Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла. Рисунок 6.5 - Структурные схемы операторов цикла: а - цикл с предусловием; б - цикл с постусловием
Начальные установки могут явно не присутствовать в программе, их смысл состоит в том, чтобы до входа в цикл задать значения переменным, которые в нем используются. Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение, как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, return и goto (смотри раздел 6.4 Операторы передачи управления). Передавать управление извне внутрь цикла не рекомендуется. Для удобства, а не по необходимости, в С++ есть три разных оператора цикла - while, do while и for.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|