Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!
Easy: Задание №1
Напишите программу, которая проверяет, является ли год високосным (кратным 4) в пределах от 2000 года до н.э. и до 2000 года нашей эры.
Пример результата выполнения программы:
Введите год и эру: 656 год нашей эры
Этот год является високосным
Medium: Задание №2
Напишите программу, которая проверяет, находится ли введенное с клавиатуры число в массиве. Массив предварительно вводит пользователь в начале выполнения программы.
Hard: Задание №3
Сыграйте с компьютером в игру, используя следующие 5 вариантов наборов чисел:
Набор №1: 6, 7, 8
Набор №2: 7, 8, 9
Набор №3: 6, 9, 10
Набор №4: 6, 9, 8
Набор №5: 7, 6, 10
Введите с клавиатуры свой вариант набора чисел (из вышеприведенных) и сравните с набором чисел компьютера, который выбирается рандомно из 5 вышеприведенных наборов. Если сумма цифр вашего набора чисел больше суммы цифр набора чисел компьютера, то вы выиграли (и наоборот). В случае одинаковых сумм цифр — ничья.
В задаче №1 не правильное определение високосного года.
Високосный год — который кратный 400, или не кратный 100, но кратный 4. То есть 1800 год не високосный.
Правильное условие для определения високосного года:
Задание №1
Исправил не большие ошибки
Задание №3
3 Задача
Задание №3:
Задание №2:
Задание №1:
Задание №3
Задание 1:
Задание 2:
Задание 3: странная игра но какое уж тз….
Ваш вариант выглядит довольно хорошо читаемым и компактным. Пожалуй сделаю примерно также, только через классы и добавлю инициализацию через список инициализаторов.
Моё решение задания №3:
Моё решение задания №2:
Моё решение задания №1:
Мне кажется, из-за разделения числа и строки уровень задания выше, чем Easy. Позже посмотрю, как решили другие. Неужели можно было проще?
А, ну да, для определения високосности года совсем не обязательно было разбирать, какую там эру написал пользователь и написал ли он вообще про эру.
Задача 2.
Алёна, у Вас тут упущена проверка пользовательского ввода массива чисел. Так тоже можно, но без этой проверки задача сильно легче.
А, похоже проверка ввода массива тоже есть. Я сначала не поняла, но потом дошло. Для меня только осталось непонятным, как peek() может считывать числа double, ведь, насколько мне известно, он считывает только один символ из потока.
Задача 1.
Задание №3
Почему Вы решили ограничивать ввод чисел 2000? Ограничивать числа от пользователя — это, конечно, нормально, но странно, почему именно 2000. Все заданные наборы содержат числа не больше 10. Это раз.
А два, раз уж Вы спрашиваете пользователя: "Хотите сыграть ещё раз? (д/н)" то было бы логично продолжать только в случае "д", а не во всех других случаях кроме "н".
И ещё мне кажется лишним выводить "Вы ввели: " сразу после ввода чисел.
Это не критика, просто решила поделиться тем, за что глаз зацепился при чтении Вашего кода.
Ограничение в 2000 осталось с первой задачи, упустил этот момент.
Насчёт [Да/Нет] — особо над этим не задумывался, но раз есть разница, значит в следующий раз сделаю по вашему рецепту. Ну а "Вы ввели …" — примерно так раньше в телешоу говорили ("Вы выбрали", "Вы назвали"), решил эту традицию не нарушать)
Поправка.
Строку №11 следует заменить на
if (std::cin.fail() || val<0 || val>10 )
Задание №2
Задание №1
Задание №2.
Shom, надо немного допилить программку, а то вот что она выдает:
Введите числа в массив через пробел: -2
Введите число для проверки или нажмите 'Esc' для выхода: 2
Данное число присутствует в массиве.
Введите число для проверки или нажмите 'Esc' для выхода: 2.3456
Данное число присутствует в массиве.
Введите число для проверки или нажмите 'Esc' для выхода: -2
Данного числа нет в массиве.
Владимир, спасибо, поправил.
Только с дробным числом у меня нормально работало.
Задание №2. Корректировка №1.
Задание №1.
Задание 2
Даже если номер находится в массиве, выдаёт обратное. Помогите.
if (check == randul[i] ) { … } — проверяется равенство номера с элементом следующим за последним элементом массива. Как мне кажется, на равенство проверять нужно каждый элемент строки. Примерно так:
Спасибо, спустя пару недель уроков додумался сам. Проверку надо было делать во время цикла ввода значений
Задание 3:
В принципе, код довольно самодостаточный и даже красивый. Но Вы опять никак не проверяете пользовательский ввод.
Задание 3 (если все правильно понял)
Похоже, из всех здесь отписавшихся, только Вы поняли эту задачу так, что пользователь должен выбрать один из заданных наборов. Но так, наверное, даже правильней. И интересней.
Я не поняла, как работает this->kit_data[] в классе, где kit_data не описано. И зачем в этом классе нужна ещё одна переменная kit_data[3] я тоже не поняла.
Задание 2: