Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии.
Easy: Задание №1
Напишите программу вычисления стоимости поездки на автомобиле на дачу (туда и обратно). Исходными данными являются:
расстояние до дачи (в км);
количество бензина, которое потребляет автомобиль на 100 км пробега;
цена одного литра бензина.
Пример результата выполнения программы:
Расстояние до дачи (км): 67
Расход бензина (литров на 100 км пробега): 8.5
Цена литра бензина (руб.): 6.5
Поездка на дачу и обратно обойдется в 74.04 руб.
Medium: Задание №2
Напишите программу вычисления стоимости покупки с учетом скидки. Скидка в 3% предоставляется, если сумма покупки больше 500 руб., в 5% — если сумма покупки больше 1000 руб.
Пример результата выполнения программы:
Введите сумму покупки: 640
Вам предоставляется скидка в 3%
Сумма с учетом скидки: 620.80 руб.
Hard: Задание №3
Напишите программу, реализующую игру «Угадай число». Компьютер загадывает число от 0
до 999
(используйте генерацию случайных чисел), а пользователь угадывает его. На каждом шаге угадывающий делает предположение, а задумавший число — сообщает, сколько цифр из числа угаданы и сколько из угаданных цифр занимают правильные позиции в числе. Например, если задумано число 725
и выдвинуто предположение, что задумано число 523
, то угаданы две цифры (5
и 2
), и одна из них занимает верную позицию. Например:
Компьютер загадал трехзначное число. Вы должны его отгадать. После очередного числа вам будет сообщено, сколько цифр угадано и сколько из них находится на своих местах.
Ваш вариант: 123
Угадано: 0. На своих местах: 0
Ваш вариант: 456
Угадано: 1. На своих местах: 0
Ваш вариант: 654
Угадано: 2. На своих местах: 2
Ваш вариант: 657
Угадано: 2. На своих местах: 2
Ваш вариант: 658
Угадано: 3. На своих местах: 3
***Вы угадали число 658!***
1 задание:
2 задание:
3 задание: ух и поело мне мозг оно
// 3е задание
Задание №1
Задание №2
№3:
Задание №3:
На мой взгляд — лучшее решение. По компактности и оптимальности.
Задание №2
Задание 3
Задание №3.
Третье задание. Вроде неплохо получилось!
Сделал игру "угадай число" через класс, так что в main есть минимум кода.
Ваша программа работает не правильно!
ИГРА УГАДАЙ ЧИСЛО
У вас 7 попыток угадать число
введите 3-x значное целое число: 553
На своих местах : 1 , угадано : 5
Не может такого быть, "угадано" не может быть больше 3.
На двух компиляторах проверил программу. Работает как задумано.
Задача 2.
Задача 1.
101
Компьютер загадал трёхзначное число. Вы должны его отгадать. После очередного числа вам будет сообщено, сколько цифр угадано и сколько из них находятся на своих местах.
введите число: 1
ваш варииант 1
на своих местах 2; угадано 3
введите число: 0
ваш варииант 0
на своих местах 1; угадано 3
введите число: 3
ваш варииант 3
на своих местах 1; угадано 2
введите число: 2
ваш варииант 2
на своих местах 1; угадано 2
введите число: 0
ваш варииант 0
на своих местах 1; угадано 3
введите число: 10
ваш варииант 10
на своих местах 0; угадано 3
введите число: 11
ваш варииант 11
на своих местах 1; угадано 3
введите число: 101
ваш варииант 101
на своих местах 3; угадано 3
Задание #1:
Задание №2
Задание №1
Пример работы программы к третьему заданию — это пример работы плохой программы.
Ваш вариант: 456
Угадано: 1. На своих местах: 0
Ваш вариант: 654
Угадано: 2. На своих местах: 2
Цифры те же, но в первом случае (456) угадана 1, а во втором (654) — 2. Плохой пример.
К кому предназначен комментарий?
автору третьего задания, это из задания пример.
Моё решение задания №3:
Ваш вариант: 111
Угадано: 3. На своих местах: 2.
Ваш вариант: 110
Угадано: 3. На своих местах: 1.
Ваш вариант: 101
***Вы угадали число 101! ***
На числа 110 и 111, программа выдает результат: "Угадано: 3".
Вы абсолютно правы, Вам попался хороший пример, который я не учла. В функции compareWithNumber вместо
нужно сделать немного по=другому, чтобы учесть тот случай, когда цифра на своём месте уже была засчитана по совпадению с цифрой на другом месте:
Моё решение задания №2 (решила сделать чуть сложнее):
1. Discounts.h:
2. Discount_Price.cpp:
Моё решение задания №1:
// Задание №3
Владимир, настал и Ваш звёздный час. Если про pow (кстати, комментарий к #include<cmath> пишет о row) и раскладывание с его помощью на цифры Вы придумали сами — большой респект! Ваш код мне понравился, хоть и традиционно не запустился на моём стареньком компиляторе. Но goto… это плохой знак, ещё лет 15 назад меня учили, что использовать его — дурной стиль. Я думаю, Вы вполне способны справляться и без него.
Задание №3.
Не совсем уверен что правильно понял как программа должна реагировать на числа с повторяющимися цифрами.
Из минусов программы вижу только один: если загаданное число будет с повторяющейся цифрой, то программа будет работать некорректно, а именно выводить неправильное число угаданных чисел. Проверь это, если не веришь. Сам долго маялся с этой проблемой, но все же решил.
Ниже пример работы программы с загаданным числом 121. Программа себя ведёт как и было запланировано. А Вы считаете какие ответы она должна выводить?
Ваш вариант: 1
Угадано: 2. На своих местах: 1.
Ваш вариант: 101
Угадано: 2. На своих местах: 2.
Ваш вариант: 10
Угадано: 2. На своих местах: 0.
Ваш вариант: 212
Угадано: 3. На своих местах: 0.
Ваш вариант: 12
Угадано: 3. На своих местах: 0.
Ваш вариант: 21
Угадано: 3. На своих местах: 2.
Ваш вариант: 233
Угадано: 1. На своих местах: 0.
Ваш вариант: 121
Угадано: 3. На своих местах: 3.
***Вы угадали число 121!***
1) В глаза бросается обилие магических чисел — 32767, 1000, 3, 100, 10, -1, -2. Используйте поясняющие смысл этих чисел константы.
2) Как работает тип size_t из <cstdlib>?
3) Раскладывая число на цифры, прописывая каждую цифру в ячейку массива, указывая её номер от 0 до 2 в main (!), это конечно, дичь. И потом практически то же вы делаете с числом от пользователя… Здесь тот самый случай, когда нужно всё это дело выносить в отдельную функцию, как минимум. Насчёт различать отсутствие разрядов разными отрицательными цифрами — идея неплоха, но можно ещё лучше, например, чтобы это каждый раз разное число генерировал или рассчитывал компьютер. Подумайте над этим или посмотрите, как это у меня ; )
4) Само сравнение по цифрам и местам тоже можно было бы в отдельной функции разместить. Здесь это прям просится.
5) Логика подсчёта совпадений — довольно топорная. И, конечно, если загаданное число, скажем 321, а пользователь вводит 111, то если программа покажет 3 совпадения — это будет неправильно. Недоработка
6) "До новых встречь" — убило)) (здесь не должно быть мягкого знака)
1) Категорически не согласен. Считаю, что запись этих чисел в константы является действием избыточного характера, которое, к тому-же, усложнит читаемость кода.
2) size_t — беззнаковое целое число, в <cstdlib> не входит, насколько мне известно.
«std::size_t обычно используется для индексации массивов и счетчиков циклов. Программы, которые используют другие типы, например unsigned int, для индексации массивов, могут неправильно работать на, например, 64-битных системах, когда индекс превзойдет UINT_MAX или если он полагается на возможность переполнения 32-битного числа.»
4) Возможно. Дело вкуса.
5) Работа программы с загаданным числом 321:
Ваш вариант: 111
Угадано: 1. На своих местах: 1.
Ваш вариант: 333
Угадано: 1. На своих местах: 1.
Ваш вариант: 222
Угадано: 1. На своих местах: 1.
Ваш вариант: 321
Угадано: 3. На своих местах: 3.
***Вы угадали число 321!***
6) : ь
Задание №3. Корректировка №1.