Все программы должны содержать текстовые подсказки объясняющие какие данные пользователь должен ввести. Например:

Выберите способ ввода параметров треугольника:
1. Длины сторон
2. Координаты вершин

Программа должна осуществлять все необходимые проверки и предотвращать "падение" программы. Если обнаружены неверные входные данные или недопустимое действие (например: попытка поделить на нуль), на экран необходимо вывести соответствующее сообщение и, если ошибка во входных данных, дать пользователю возможность ввести их заново.

Задания должны быть выполнены на всех языках указанных в задании!

 

1. Простой вывод2. Переменные int и double3. Арифметика для разных типов4. Обмен значениями5. Падение объекта6. Корни уравнения7. Площадь треугольника8. Калькулятор9. Встреча10. Фиксированная сумма11. Возведение в степень12. Факториал13. Простое число14. Степень двойки15. Угадай число16. Хобби17. Казино18. Евротур19. Медвежья память20. Истина в вине21. Индекс массы тела22. Поиск всех выходов из лабиринта


 

1. Простой вывод

Задача без теста

С++ и Python

Напишите программу отображающую в консоль следующее сообщение:
"Результат выражения 2+2*2 = "
В этой же строке, без пробела, выведите ответ. Ответ должен быть посчитан в программе.

Формат ввода Нет ввода

Формат вывода Сообщение в одной строке

 

2. Переменные int и double

Задача без теста

Только C++

Объявите в коде программы 2 переменные типа int. Первой переменной присвойте значение 3, а второй 3.14.

Объявите в коде программы 2 переменные типа double. Первой переменной присвойте значение 3, а второй 3.14.

Отобразите содержимое переменных на экран, каждая переменная в новой строке. Объясните получившийся результат.

Только Python

Создайте две переменные и присвоите им числа 3 и 3.14 соответственно.

Отобразите содержимое переменных на экран, каждая переменная в новой строке. Объясните получившийся результат.

Формат ввода Нет ввода

Формат вывода Согласно заданию

 

3. Арифметика для разных типов

Задача без теста

Только C++

Объявите в коде программы 2 переменные типа int. Запросите значения для этих переменных у пользователя. Для этой пары чисел рассчитайте и выведите на экран результат следующих действий: +, -, *, /;

Повторите задание для пары переменных типа double, double , пары int, double и пары double, int .

Обратите внимание на разницу в поведении операторов +, -, *, / в зависимости от типа операндов.

Только Python

Объявите в коде программы 2 переменные. Запросите значения для этих переменных у пользователя. Для этой пары чисел рассчитайте и выведите на экран результат следующих действий: +, -, *, /;

Обратите внимание на разницу в поведении операторов +, -, *, / в зависимости от типа операндов.

Какой оператор Python соответствует оператору / языка С++

Формат ввода Согласно заданию

Формат вывода Согласно заданию

 

4. Обмен значениями

Задача без теста

С++ и Python

Создайте 2 переменных a и b числового типа. Запросите значения у пользователя. Обменяйте a и b значениями двумя способами:

Выведите результат на экран.

Формат ввода Согласно заданию

Формат вывода Согласно заданию

 

5. Падение объекта

Задача без теста

С++ и Python

По формуле вычислите какое расстояние преодолеет объект если он падает (уже учтено в формуле) с ускорением свободного падения м.

Параметры , и запросить у пользователя.

Какие типы лучше всего выбрать для , , и почему? (Вопрос для С++)

Запишем последний член формулы () в виде: a*t*t / 2 или 1/2*a*t*t. Есть ли какая-то разница, с точки зрения математики и с точки зрения программирования?

Формат ввода Параметры , и заданные в одной строке через пробел.

Формат вывода Одно число. Расстояние, которое объект преодолеет с учётом введённых пользователем параметров.

 

6. Корни уравнения

Ссылка для тренировки

С++ и Python

Дано уравнение вида: . Напишите программу вычисляющую все действительные корни этого уравнения.

Параметры - любое вещественное число.

Формат ввода
Три вещественных числа каждый в отдельной строке. Числа могут быть любыми, в том числе и нулями.

Формат вывода
Если уравнение имеет два корня, то вывести их, каждый в отдельной строке.
Если уравнение имеет один корень, вывести только один корень.
Во всех остальных случаях отобразить на экран соответствующее текстовое сообщение на русском языке.

Пример 1

ВводВывод
1
5
4
x1 = -1
x2 = -4

Пример 2

ВводВывод
0
4
4
x = -1

 

7. Площадь треугольника

Ссылка для тренировки

С++ и Python

Дан треугольник со сторонами и вершинами . Напишите программу рассчитывающую площадь треугольника.

Программа должна поддерживать два способа ввода параметров треугольника и давать пользователю возможность выбрать нужный ему способ:

Параметры и координаты вершин могут быть любым вещественным числом.

Формат ввода
В первой строке одно число: 1 - ввод параметров треугольника через длины сторон или 2 - ввод параметров через координаты вершин или другое целое число по модулю не более 1000 - ошибочный ввод.

Для случая ввода параметров треугольника через длины сторон: три вещественных числа каждый в отдельной строке.

Для случая ввода параметров через координаты вершин: три пары вещественных чисел, каждая пара в отдельной строке, числа в паре разделены пробелом. Первое число координата вершины, второе координата.

Формат вывода
Текст "S = " затем вещественное число равное площади треугольника.
Если введены некорректные данные, то вывести сообщение об ошибке с поясняющим текстом на русском языке.

Пример 1

ВводВывод
1
3
4
5
S = 6

Пример 2

ВводВывод
2
0 0
0 4
3 0
S = 6

 

8. Калькулятор

Ссылка для тренировки

С++ и Python

Реализуйте калькулятор, выполняющий основные арифметические действия:

Формат ввода
В одной строке, через пробел вводятся: вещественное число, затем символ - знак операции и вещественное число.

Формат вывода
Результат вычисления или сообщение об ошибке с поясняющим текстом на русском языке.

Пример

ВводВывод
6 * 742

 

9. Встреча

Ссылка для тренировки

С++ и Python

Пользователь вводит два значения времени в виде часов и минут. Каждое из которых означает время прихода человек. Известно, каждый человек ждёт второго не более 15 минут, затем уходит. Требуется определить состоится ли встреча.

Формат ввода
В первой строке входных данных указаны два целых числа и , между которыми стоит символ ":". При этом и задают некоторое время.
Во второй строке входных данных указаны два целых числа и , между которыми стоит символ ":". При этом и задают некоторое время.

Формат вывода
В единственное строке выведите "Встреча состоится" или "Встреча не состоится".

Пример 1

ВводВывод
9:20
9:25
Встреча состоится

Пример 2

ВводВывод
9:50
10:30
Встреча не состоится

 

10. Фиксированная сумма

Ссылка для тренировки

С++ и Python

Задано целое число и два диапазона целых чисел , .
Вам необходимо найти два целых числа или определить, что таких чисел не существует, для которых выполняется: , , .

Примечание : Использовать циклы запрещено!.

Формат ввода
В первой строке входных данных записано пять целых чисел , , , ( , , ), разделённых одним пробелом.

Формат вывода
В единственной строке выходных данных Вам необходимо вывести два искомых целых числа , , разделённые одним пробелом, или -1, если таких чисел не существует.
Если существует несколько искомых пар целых чисел , , то выведите пару с минимальных значением .

Пример 1

ВводВывод
0 -2 -1 1 2-2 2

Пример 2

ВводВывод
0 -2 -1 5 6-1

 

11. Возведение в степень

Ссылка для тренировки

С++ и Python

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

Формат ввода
В первой строке число возводимое в степень, во второй строке целое число - степень.

Формат вывода
В единственной строке результат работы программы.

Пример

ВводВывод
3
3
27

 

12. Факториал

Ссылка для тренировки

С++ и Python

Напишите программу для расчёта факториала целого положительного числа .

Формат ввода
Целое положительное число.

Формат вывода
Значение факториала

Пример

ВводВывод
5120

 

13. Простое число

Ссылка для тренировки

С++ и Python

Напишите программу определяющую является ли число простым.

Формат ввода
Одно целое положительное число для проверки

Формат вывода
Строка: "Простое" или "Составное" в зависимости от вида числа

Пример

ВводВывод
17Простое

 

14. Степень двойки

Ссылка для тренировки

С++ и Python

Задано целое число . Вам необходимо найти количество таких чисел , что и — степень двойки.

Формат ввода
В единственной строке входных данных записано одно целое число .

Формат вывода
В единственной строке выходных данных Вам необходимо вывести одно целое число, являющееся ответом на задачу.

Пример 1

ВводВывод
00

Пример 2

ВводВывод
11

Пример 3

ВводВывод
53

 

15. Угадай число

Ссылка для тренировки

С++ и Python

Компьютер загадывает случайное целое число в диапазоне . Пользователю даётся 5 попыток угадать это число. После каждой попытки угадать программа отображает соответствующее текстовое сообщение.
После завершения игры пользователю предлагается начать сначала.

Формат ввода
В процессе угадывания пользователь вводит одно целое число.
После завершения игры пользователь вводит 1 если хочет продолжить или не 1 чтобы завершить игру.

Формат вывода
После ввода пользователем числа:

После завершения игры, не зависимо от исхода, выводится сообщение: "Хотите начать сначала? (1 - ДА )".

Пример 1

Консоль
{Приветственное сообщение от игры}
3
Загаданное число больше
51
Поздравляю! Вы угадали
Хотите начать сначала? (1 - ДА )

Пример 2

Консоль
{Приветственное сообщение от игры}
3
Загаданное число больше
5
Загаданное число больше
99
Загаданное число меньше
87
Загаданное число больше
90
Вы проиграли. Было загадано: 98
Хотите начать сначала? (1 - ДА )

 

16. Хобби

Задача без теста

С++ и Python

Ваш друг, чиновник Сигизмунд, любитель коллекционировать билеты. Друзья Сигизмунда, зная о его хобби, часто пополняют коллекцию друга билетами банка России. Однажды Сигизмунд узнал, что ему принесли билеты принадлежащие начальнику управления экономической безопасности и противодействия коррупции, полковнику полиции Суслику.
Чтобы Суслик не отобрал всю коллекцию Сигизмунда, напишите программу, которая выберет из списка билетов Сигизмунда все принадлежащее Суслику, если известно, что:

Номера найденных билетов Суслика выведите на экран.

Формат ввода
В первой строке ввода записано целое число . Во второй строке, через пробел записано номеров билетов Сигизмунда.

Формат вывода
В одной строке через пробел выведите номера билетов соответствующих шаблону: a???55661, если ? означает 1 любой символ. Если таких не окажется выведите -1. При проверке задания шаблон изменяться НЕ будет.

Пример 1

ВводВывод
2
bc3355661 ac2155661
ac2155661

Пример 2

ВводВывод
2
bc3355661 ac2156661
-1

 

17. Казино

Задача без теста

С++ и Python

Ваш друг, гуманитарий Сигизмунд, большой любитель играть в рулетку в онлайн казино [TODO: добавить партнёрскую ссылку]. Как-то раз ему на глаза попалась книга по статистике и Сигизмунду пришла в голову гениальная идея - использовать теорию вероятности для предсказания выигрышного номера.
Т.к. вы ж программист, Сигизмунд просит вас написать программу, которая принимает на вход результаты игры в рулетку и показывает:

Сигизмунд вводит числа по одному и, после каждого введённого числа, хочет видеть результат работы программы. Количество игр заранее не известно. Как только на вход поступит отрицательное число программа должна завершиться.

Формат ввода
На вход поступают целые числа в диапазоне по одному за раз (после каждого введённого числа пользователь нажимает Enter). Чисел может быть любое количество. Ввод завершается отрицательным числом.

Формат вывода
В первой строке выведите список номеров выпадающих чаще всего через пробел в порядке возрастания. Во второй строке выведите список номеров НЕ выпавших за последние игр через пробел в порядке возрастания. В третьей строке выведите два числа через пробел, первое - количество выпавших красных, второе - количество выпавших чёрных за последние игр. Четвёртая строка пустая.

Пример

Консоль
1
1
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
1 0

26
1 26
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36
1 1

1
1
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36
2 1

-1

 

18. Евротур

Задача без теста

С++ и Python

Ваш друг, библиофил Сигизмунд, совершает тур по Европе. Будучи в Германии он решил заглянуть в клуб любителей аудиокниг "Vanderbooxxx". В клубе существует правило, начав прослушивать аудиокнигу, посетителю продолжают её читать до тех пор, пока он не произнесёт стоп-слово, которое записывают на листе бумаги и отдают посетителю. Начав прослушивать книгу Сигизмунд вспомнил, что не умеет читать по немецки и из немецкого языка знает только несколько слов (могут быть изменены при проверке): hallo, klempner, das, ist, fantastisch, fluggegecheimen.
Сигизмунд пытается подобрать стоп-слово произнося случайные звуки (далее буквы) из знакомых ему слов. Известно, что:

Вычислите и выведите на экран вероятность того, что слово, которое произнесёт Сигизмунд окажется стоп-словом.

Формат ввода
В единственной строке вводится стоп-слово, которое состоит из строчных латинских символов без умляутов и лигатур.

Формат вывода
Одно вещественное число.

Пример

ВводВывод
help1.755829903978052e-05

 

19. Медвежья память

Задача без теста

С++ и Python

Ваш друг, медвежатник Сигизмунд, частенько забывает пароль от сейфа. Сигизмунду известна длина пароля и символы входящие в его состав, но не известен порядок. Он просит вас помочь с этой проблемой и написать программу, которая на вход принимает - количество символов в пароле и строку состоящую из символов.
Сигизмунду также известно, что:

По этим данным нужно сгенерировать и вывести на экран все возможные комбинации пароля по символов БЕЗ повторов.

Формат ввода
В первой строке входных данных передаётся целое положительное число . Во второй строке передаётся последовательность из строчных латинских букв .

Формат вывода
Строки длиной символов через пробел.

Пример 1

ВводВывод
3
ab
aba aab baa abb bab bba

Пример 2

ВводВывод
3
abc
abc acb bac bca cab cba

 

20. Истина в вине

Задача без теста

С++ и Python

Ваш друг, алкоголик Сигизмунд, просит вас помочь с проблемой. Как истинный ценитель спиртного Сигизмунд хочет выпить его как можно больше, но он не знает, как эффективнее распорядиться своим капиталом.
Напишите программу, которая позволяет максимизировать объём спиртного выпитого Сигизмундом, если известно, что:

В качестве результата выведите на экран названия спиртных напитков и количество бутылок которые нужно купить, а так же общий объём спиртного и остаток денежных средств.

Формат ввода
В первой строке входных данных указывается целое положительное число - деньги. Во второй строке указывается целое положительное число - кол-во разновидностей напитков. В последующих строках, для каждого напитка указывается: - строка состоящая из латинских символов , - целое положительное число из интервала и - целое положительное число из интервала . Данные разделены пробелом.

Формат вывода
В отдельной строке выведите: строку - название напитка, пробел, число - количество бутылок данного напитка. Повторить вывод для каждого напитка, который нужно купить.
Далее, в новой строке, выведите суммарный объём получившегося спиртного. В последней строке выведите сумму, которая останется у Сигизмунда после совершения покупки.
Если решение больше одного, выведите любое.
Если у Сигизмунда не достаточно средств на покупку выведите -1.

Пример 1

ВводВывод
100
3
Vodka 40 1
Pivo 30 2
Spirt 80 1
Pivo 3
6
10

Пример 2

ВводВывод
39
2
Vodka 40 1
Spirt 80 1
-1

 

21. Индекс массы тела

Задача без теста

В 19 веке была предложена несложная мера "относительной упитанности" тела человека. Она вычисляется на основании только роста и веса, и называется Индекс Массы Тела (Body Mass Index = BMI). Определяется она как вес делённый на рост в квадрате:

Здесь вес берется в килограммах, а рост в метрах.

На основании этого показателя выделяют четыре категории:

Например, при весе 80 кг и росте 173 см можно вычислить:

т.е. присутствует избыточный вес.

С++: Реализуйте две функции соответствующие прототипам:

Python: Реализуйте две функции реализующие слудующий интерфейс:

Формат ввода
В одной строке, через пробел указан вес в килограммах и рост в сантиметрах. Все значения гарантированно положительные и больше нуля.

Формат вывода
Ответ должен содержать одно из слов: Underweight, Normal, Overweight, Obesity.

Пример 1

ВводВывод
80 173Overweight

Пример 2

ВводВывод
55 158Normal

 

22. Поиск всех выходов из лабиринта

Задача без теста

Дана карта лабиринта в виде набора строк. Реализуйте функцию определяющую все выходы из лабиринта доступные игроку из заданной позиции. Игрок может перемещаться только вверх, вниз, вправо, влево.

С++:

Python:

Символом # отмечена стена лабиринта. Игрок не может перейти на клетку со стеной. Символами от A до Z обозначены выходы из лабиринта. Пробельный символ — пустое пространство, игрок может свободно перемещаться. Внешняя граница лабиринта может быть либо стеной, либо выходом.
Делайте как Ник [ видео ]

Формат ввода
В единственной строке входных данных указаны координаты игрока двумя целыми числами разделённые пробелом. Первое число — индекс столбца (индекс столбца начинается от нуля и увеличивается слева направо), второе число — индекс строки (индекс строки начинается от нуля и увеличивается сверху вниз).

Формат вывода
В одной строке вывести список доступных игроку выходов через пробел. Если нет ни одного выхода, вывести сообщение: «Выхода нет». Если координаты указаны за пределами лабиринта или совпадают со стеной, вывести сообщение: «Не верные координаты».

Пример 1

ВводВывод
0 0Не верные координаты

Пример 2

ВводВывод
1 14A B E D F