Задачи на линейные и ветвящиеся алгоритмы

advertisement
Задачи на линейные и ветвящиеся алгоритмы
О. И. Перескокова, 2010
Линейные алгоритмы. Арифметические операции.
First1°. Даны вещественные числа X, Y, Z. Поменять их значения местами "по кругу" записав
на место Y значение X, на место Z значение Y, а на место X прежнее значение Z.
First2°. Даны вещественные числа T, X, Y, Z. Поменять их значения местами "по кругу"
записав на место T значение X, на место X значение Y, на место Y значение Z, а на место Z
прежнее значение T.
First3°. Дано вещественное число x. Не пользуясь никакими другими арифметическими
операциями, кроме умножения, сложения и вычитания, вычислить значение выражения: 2x43x3+4x2-5x+6. Разрешается использовать не более 4 умножений, не более 4 сложений или
вычитаний и только одну переменную x. Обойтись без использования оператора
присваивания.
First4°. Дано вещественное число x. Не пользуясь никакими другими арифметическими
операциями, кроме умножения, сложения и вычитания, вычислить значения выражений: 12x+3x2-4x3 и 1+2x+3x2+4x3. Разрешается использовать не более 8 операций. Допускается
использовать только три дополнительных переменных, кроме переменной x.
First5°. Дано вещественное числа x и y. Не пользуясь никакими другими арифметическими
операциями, кроме умножения, сложения и вычитания, вычислить значение выражения:
3x2y2-2xy2-7x2y-4y2+15xy+2x2-3x+10y+6 Разрешается использовать не более 8 умножений и
не более 8 сложений или вычитаний. Допускается использовать только две переменных x и y.
Оператор присваивания использовать не разрешается.
First6°. Дано вещественное число a. Не пользуясь никакими операциями, кроме умножения,
вычислите a28 за 6 операций. Можно использовать дополнительные переменные.
First7°. Дано вещественное число a. Не пользуясь никакими операциями, кроме умножения,
вычислите a5 и a14 за 5 операций. Можно использовать дополнительные переменные.
First8°. Известно значение угла в градусах (выражено целым числом). Вычислите значение
этого же угла в радианах. Учтите, что результат может получиться вещественным. Для
получения значения числа π использовать соответствующую константу из стандартной
библиотеки.
First9°. Заданы следующие параметры арифметической прогрессии: первый член a1, ее
разность d и n - количество членов. Првый член прогрессии задается вещественным числом, а
разность и количество членов - целыми числами. Вычислить сумму n членов прогрессии и
значение n-го члена прогрессии.
First10°. Дано вещественное число - длина ребра куба (a). Найти объем куба (V) и площадь его
боковой поверхности (Sбок).
First11°. Даны два целых числа X и Y. Поменять местами их значения, не используя при этом
дополнительных переменных.
First12°. Дана скорость самолета V, измеренная в м/сек, и время полета Т в часах. Определите,
расстояние S, преодаленное самолетом, в километрах. V и T - целые числа, S - вещественное
число.
Линейные алгоритмы. Арифметические операции. Организация ввода-вывода.
First13°. Известна длина, ширина и высота прямоугольного параллелепипеда. Написать
программу вычисления площади поверхности параллелепипеда. Организовать диалог с
пользователем следующим образом:
Вычисление площади поверхности параллелепипеда.
Введите исходные данные:
Длина (см) -> 9
Ширина (см) -> 7.5
Высота (см) -> 5
Площадь поверхности: 300.00 кв. см.
First14°. Известен радиус основания и высота цилиндра. Написать программу вычисления
объема цилиндра. Организовать диалог с пользователем: следующим образом:
Вычисление объема цилиндра.
Введите исходные данные:
Радиус основания (см) -> 5
Высота цилиндра (см) -> 10
Объем цилиндра 785.40 куб.см.
First15°. Написать программу вычисления величины дохода по вкладу. Процентная ставка (в
процентах годовых) и время хранения (в днях) и размер вклада задается во время работы
программы. Считать, что год не високосный. Организовать диалог с пользователем
следующим образом:
Вычисление дохода по вкладу.
Введите исходные данные:
Величина вклада (руб.) -> 2500
Срок вклада (дней) -> 30
Процентная ставка (% годовых) -> 20
Доход: 41.10 руб.
Сумма по окончанию срока вклада: 2541.10 руб.
First16°. Найти площадь кольца, у которого внутренний радиус равен R1, а внешний - R2
(R2>R1). R1, R2 могут быть вещественными числами. Организовать диалог с пользователем
следующим образом:
Вычисление площади кольца.
Введите исходные данные:
Внутренний радиус (см) -> 12
Внешний радиус (см) -> 30
Площадь кольца: 2375.04 кв. см.
First17°. Составьте программу, отгадывающую положительное четное число, загаданное
пользователем. Ниже представлен рекомендуемый вариант диалога во время работы
программы.
Загадайте положительное четное число. Когда загадаете, нажмите Enter.
Загадали? Хорошо! Теперь прибавьте к нему 4. Когда все сделаете,
снова нажимайте Enter.
Дальше, уменьшите то, что получилось на 6 и снова Enter.
Ну, и наконец, поделите на 2. Если поделили, то Enter.
Что у вас получилось?
3
A сейчас, внимание! Я угадаю, какое число было загадано в самом начале!
Готовы?! Нажимайте Enter.
Это число - 8!!!
First18°. Составить программу вычисления стоимости поездки на автомобиле на дачу (туда и
обратно). Исходными данными являются: расстояние до дачи (в километрах); количество
бензина, которое потребляет автомобиль на 100 км пробега; цена одного литра бензина.
Организовать диалог с пользователем следующим образом:
Вычисление стоимости поездки на дачу.
Введите исходные данные:
Расстояние до дачи в одну сторону (км) -> 70
Расход бензина (л на 100 км) -> 8.5
Цена литра бензина (руб.) -> 22.5
Поездка на дачу обойдется 267.75 руб.
First19°. Составить программу определения площади круга, если известна длина окружности,
ограничивающей этот круг. В качестве значения числа π использовать константу cтандартной
библиотеки. Организовать диалог с пользователем следующим образом:
Вычисление площади круга по длине окружности:
Введите длину окружности (см) -> 62.83
Площадь круга, ограниченного этой окружностью 314.14 кв.см.
First20°. Написать программу, позволяющую определить f - угол (в градусах) между
положением часовой стрелки в начале суток и ее положением в h часов m минут и s секунд (0
≤ h ≤ 11, 0 ≤ m,s ≤ 59). Диалог с пользователем организовать следующим образом:
Вычисление градусной меры угла (f) между положением часовой стрелки
в начале суток и ее положением в h часов m минут s секунд.
Введите данные о текущем времени:
h -> 3
m -> 10
s -> 20
f = 95.17 градусов.
First21°. Известно, что "полторы кошки за полтора часа съедают полторы мышки" Требуется
написать программу, позволяющую определить сколько мышек съедят X кошек за X часов.
Диалог с пользователем организовать так, как представлено ниже (в ответе вывести 2 знака
после запятой):
Известно, что полторы кошки за полтора часа съедают полторы мышки.
Я умею вычислять сколько мышей сьедят X кошек за X часов.
X=8
Будет съедено 42.67 мышей.
First22°. Это задание не реализовано для текущего языка программирования.
First23°. Это задание не реализовано для текущего языка программирования.
First24°. Это задание не реализовано для текущего языка программирования.
Линейные алгоритмы. Операции Div и Mod. Выделение цифр числа.
First25°. Дано целое четырехзначное число n (n>0). Поменять в числе вторую и третью цифру
местами. Оператор присваивания использовать запрещается.
First26°. Получить третью от конца цифру в записи целого положительного числа k (k>100).
Оператор присваивания использовать запрещается.
First27°. Дано трехзначное число x (x>0). В нем зачеркнули первую слева цифру и приписали
ее справа. Вывести полученное число. Оператор присваивания использовать запрещается.
First28°. Дано целое четырехзначное число x (x>0). Требуется найти цифры числа. Нумерация
цифр осуществляется слева направо. Оператор присваивания использовать запрещается.
First29°. Дано целое число x (0 < x < 10 000). Требуется найти сумму цифр этого числа.
Оператор присваивания использовать запрещается.
First30°. Дано целое четырехзначное x (x>0). Требуется найти произведение цифр этого числа.
Оператор присваивания использовать запрещается.
First31°. Дано целое четырехзначное число x (x>0). Получить новое четырёхзначное число
путем прочтения исходного числа в обратном порядке. Оператор присваивания использовать
запрещается.
First32°. Дано целое трехзначное число x (x>0). Сформировать четырёхзначное число получив
его приписыванием цифры единиц в качестве цифры тысяч. Оператор присваивания
использовать запрещается.
First33°. Это задание не реализовано для текущего языка программирования.
First34°. Это задание не реализовано для текущего языка программирования.
First35°. Это задание не реализовано для текущего языка программирования.
First36°. Это задание не реализовано для текущего языка программирования.
Линейные алгоритмы. Логические операции и величины.
First37°. Даны три положительных вещественных числа a, b и c. Определить, существует ли
треугольник со сторонами, равными заданным значениям. Необходимо использовать
логическую переменную, и в качестве результата вывести ее значение: True или False.
Оператор ветвления использовать запрещается.
First38°. Даны положительные вещественные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с
ребрами a, b, c в прямоугольное отверстие со сторонами x, y. Просовывать кирпич в отверстие
разрешается только так, чтобы каждое из его ребер было параллельно или перепендикулярно
каждой из сторон отверстия. Необходимо использовать логическую переменную, и в качестве
результата вывести ее значение: True или False. Оператор ветвления использовать
запрещается.
First39°. Даны положительные вещественные числа a, b, c, d. Пары чисел a и b, c и d
обозначают размеры первого и второго прямоугольника соответственно. Требуется выяснить,
можно ли внутри одного из прямоугольников уместить другой так, чтобы каждая из сторон
одного прямоугольника была параллельна или перпндикулярна каждой из сторон другого
прямоугольника. Необходимо использовать логическую переменную, и в качестве результата
вывести ее значение: True или False. Оператор ветвления использовать не разрешается.
First40°. Данo целое число х, (10000 ≤ х ≤ 99999). Определить, верно ли, что все цифры числа
различны между собой. Необходимо использовать логическую переменную, и в качестве
результата вывести ее значение: True или False. Оператор ветвления использовать
запрещается.
First41°. Для заданного года y, (1 ≤ y ≤ 99999) определить, является ли, он високосным.
Напомним, что год високосный, если его номер кратен 4, однако, из кратных 100 високосными
являются лишь кратные 400; например, 1700, 1800, 1900 - не високосные годы, а 2000 високосный. Необходимо использовать логическую переменную, и в качестве результата
вывести ее значение: True или False. Оператор ветвления использовать запрещается.
First42°. Требуется написать программу, которая присвоит логической переменной значение
True, если квадратное уравнение ax2 + bx + c = 0, в котором коэффициенты a, b, c выражены
целыми числами и могут быть равны нулю, имеет ровно один корень. В противном случае
логическая переменная должна получить значение False. В качестве результата вывести
значение этой логической переменной. Оператор ветвления использовать запрещается.
First43°. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не
превосходит восьми: первое число - номер вертикали (при счете слева направо), второе номер горизонтали (при счете снизу вверх). Даны натуральные числа k, l, m, n, каждое из
которых не превосходит восьми. Требуется выяснить, являются ли поля (k,l) и (m,n) полями
одного цвета. Необходимо использовать логическую переменную, и в качестве результата
вывести ее значение: True или False. Оператор ветвления использовать запрещается. Можно
использовать несколько логических переменных.
First44°. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не
превосходит восьми: первое число - номер вертикали (при счете слева направо), второе номер горизонтали (при счете снизу вверх). Даны натуральные числа k, l, m, n, каждое из
которых не превосходит восьми. Требуется выяснить, может ли конь за один ход перейти с
поля (k,l) на поле (m,n). Необходимо использовать логическую переменную, и в качестве
результата вывести ее значение: True или False. Оператор ветвления использовать
запрещается.
First45°. Даны четыре натуральных числа a, b, c, d. Требуется определить есть среди них хотя
бы одна пара взаимно противоположных чисел. Напомним, что взаимно противоположными
являются числа одинаковые по абсолютной величине и разные по знаку. Необходимо
использовать логическую переменную, и в качестве результата вывести ее значение: True или
False. Оператор ветвления использовать запрещается.
First46°. Это задание не реализовано для текущего языка программирования.
First47°. Это задание не реализовано для текущего языка программирования.
First48°. Это задание не реализовано для текущего языка программирования.
Оператор ветвления
First49°. Даны три целых числа a, b и c. Определить количество отрицательных и
положительных среди этих чисел.
First50°. Даны четыре различных вещественных числа a, b, c и d. Определить минимальное
среди этих чисел.
First51°. Даны четыре различных вещественных числа a, b, c и d. Определить максимальное
среди этих чисел.
First52°. Даны три различных целых числа a, b и c. Определить среднее среди этих чисел, т.е.
то число, которое больше минимального и меньше максимального.
First53°. Даны три различных целых числа - a, b и c. Перераспределить их значения так, чтобы
в a оказалось меньшее из значений, а в c — большее, а в b - среднее. Вывести новые значения
переменных a, b, c.
First54°. Даны два различных вещественных числа - a и b. Меньшее из этих двух чисел
заменить их полусуммой, а большее - их удвоенным произведением. Вывести новые значения
переменных a и b.
First55°. Даны четыре целых числа a, b, c и d. Если данные числа упорядочены по неубыванию
(a ≤ b ≤ c ≤ d), то каждое из них удвоить. Если они упорядочены по убыванию (a > b > c > d),
то каждое из них возвести в квадрат. При невыполнении этих условий осуществить
циклическую перестановку: переменной а присвоить значение переменной b, переменной b значение с, в с занести d, а в d - начальное значение a.
First56°. Даны четыре различных вещественных числа a, b, c и d. Если a больше c то вычислить
min[min(a,b),max(c,d)], в противном случае - определить значение выражения
max[max(a,b),min(c,d)].
First57°. Дано четырехзначное число x (x>0) все цифры которого различны. Требуется
определить минимальную и максимальную цифры числа
First58°. Дано целое число x (104 ≤ x < 105). Найти частное произведений четных и нечетных
цифр данного числа. Четность или нечетность цифры определяется ее значением, а не
полложением в числе.
First59°. Это задание не реализовано для текущего языка программирования.
First60°. Это задание не реализовано для текущего языка программирования.
Определение принадлежности точки области
First61°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.1). В качестве результата
вывести логическое значение True или False.
First62°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.2). В качестве результата
вывести логическое значение True или False.
First63°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.3). В качестве результата
вывести логическое значение True или False.
First64°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.4). В качестве результата
вывести логическое значение True или False.
First65°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.5). В качестве результата
вывести логическое значение True или False.
First66°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.6). В качестве результата
вывести логическое значение True или False.
First67°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.7). В качестве результата
вывести логическое значение True или False.
First68°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.8). В качестве результата
вывести логическое значение True или False.
First69°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.9). В качестве результата
вывести логическое значение True или False.
First70°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.10). В качестве
результата вывести логическое значение True или False.
First71°. Даны вещественные числа x и y. Определить, принадлежит ли точка с координатами
(x,y) заштрихованной части плоскости. Считать, что точки на границе также принадлежат
области. Рисунок, определяющий область взять у преподавателя (рис.11). В качестве
результата вывести логическое значение True или False.
First72°. Это задание не реализовано для текущего языка программирования.
Оператор Case.
First73°. Для целого числа k от 1 до 99 напечатать фразу "Мне k лет", учитывая, что при
некоторых значениях k слово "лет" надо заменить на "год" или "года". Например: "Мне 24
года". Использовать оператор варианта.
First74°. Вывести надпись "На дереве сидело k ворон" в грамматически правильной форме для
заданного k.
First75°. Записать денежную сумму в виде "N рублей K копеек" в грамматически правильной
форме. Входные данные - два целых числа, разделенных пробелом, сначала указывается
сколько рублей, потом - сколько копеек. Например, для 1 23 результат "1 рубль 23 копейки".
First76°. Написать программу, которая по вводимому номеру единицы измерения (1 дециметр, 2 - километр, 3 - метр, 4 - миллиметр, 5 - сантиметр) и длине отрезка L выдавала бы
соответствующее значение длины отрезка в метрах. Использовать оператор варианта.
First77°. В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла
носили названия животных: крысы, быка, тигра, кролика, дракона, змеи, лошади, овцы,
обезьяны, курицы, собаки и свиньи. Написать программу, которая запрашивает номер года и
печатает его название по старояпонскому календарю (справка: 1996 год - год крысы).
Использовать оператор варианта.
First78°. Известно, сколько секунд прошло с начала суток. Определить, сколько полных часов
и сколько полных минут прошло к этому моменту. Ответ вывести в грамматически
правильной форме. Использовать оператор варианта. Диалог с пользователем организовать
следующим образом:
Определение количества часов и минут, прошедших от начала суток
по числу секунд.
Введите, сколько секунд прошло от начала суток 21698
Сейчас 6 часов 1 минута.
First79°. Это задание не реализовано для текущего языка программирования.
First80°. Это задание не реализовано для текущего языка программирования.
First81°. Это задание не реализовано для текущего языка программирования.
First82°. Это задание не реализовано для текущего языка программирования.
First83°. Это задание не реализовано для текущего языка программирования.
First84°. Это задание не реализовано для текущего языка программирования.
Задачи посложнее.
First85°. Составьте программу, которая по номеру дня в не високосном году выводит число и
месяц в общепринятой форме (например, 33-й день года - 2 февраля).
First86°. Вывести число N (N<1000) прописью. Например, для числа 506 результат "пятьсот
шесть".
First87°. Текущее показание электронных часов m (0 ≤ m ≤ 23) n минут (0 ≤ n ≤ 59) k секунд (0
≤ k ≤ 59). Какое время будут показывать часы через p часов (0 ≤ p ≤ 100) q минут (0 ≤ q ≤ 100) r
секунд (0 ≤ r ≤ 100)?
First88°. Написать программу, переводящую заданное десятичное число X (0 < X < 3000) в
римскую систему счисления. Справка: Римских цифр всего 7: I, V, X, L, C, D, M. Для записи
чисел от 1 до 10 используются три знака: I, V и X. I = 1, II = 2, III = 3, IV = 4, V = 5, VI= = 6,
VII = 7, VIII = 8, IX = 9 и X = 10. Если I перед V или X, то ее вычитают соответственно из 5
или 10, если же после, то прибавляют, причем столько раз, сколько этих знаков следует за V
или X. Числа 10, 20, 90, 100 записываются сходным образом, только при этом используются
знаки X = 10, L = 50 и C = 100. Получается, что XX = 20, XXX = 30, XL = 40, LX = 60, LXX =
70, LXXX = 80, XC = 90. Для записи чисел 100, 200, 300, ... , 900, 1000 используются знаки C =
100, D = 500 и M = 1000. Получаем: CC = 200, CCC = 300, CD = 400, DC = = 600, DCC = 700,
DCCC = 800 и CM = 900. Для записи любого числа в пределах тысячи надо к числу из третьей
группы приписать справа нужное число из второй группы, а затем и число из первой группы.
Например, CDLXXXVI = 486, CMLXXIX = 979. При записи римских цифр выполняется
правило: ни одна цифра не может следовать подряд более трех раз.
First89°. Даны начало и конец промежутка времени (в течение суток) в виде чч мм сс. Вывести
на печать "Промежуток времени составляет … часов … минут … секунд". Ответ вывести в
грамматически правильной форме.
First90°. Это задание не реализовано для текущего языка программирования.
First91°. Это задание не реализовано для текущего языка программирования.
First92°. Это задание не реализовано для текущего языка программирования.
First93°. Это задание не реализовано для текущего языка программирования.
First94°. Это задание не реализовано для текущего языка программирования.
First95°. Это задание не реализовано для текущего языка программирования.
First96°. Это задание не реализовано для текущего языка программирования.
Download