Часть №9: Практические задания по С++

  Юрий  | 

  Обновл. 26 Окт 2020  | 

 6730

 ǀ   28 

Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому 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Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (11 оценок, среднее: 4,27 из 5)
Загрузка...

Комментариев: 28

  1. Аватар Владимир:

  2. Аватар Анастасия:

    Моё решение задания №3:

  3. Аватар Анастасия:

    Моё решение задания №2:

  4. Аватар Анастасия:

    Моё решение задания №1:

    Мне кажется, из-за разделения числа и строки уровень задания выше, чем Easy. Позже посмотрю, как решили другие. Неужели можно было проще?

    1. Аватар Анастасия:

      А, ну да, для определения високосности года совсем не обязательно было разбирать, какую там эру написал пользователь и написал ли он вообще про эру.

  5. Аватар Алена:

    Задача 2.

    1. Аватар Анастасия:

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

    2. Аватар Анастасия:

      А, похоже проверка ввода массива тоже есть. Я сначала не поняла, но потом дошло. Для меня только осталось непонятным, как peek() может считывать числа double, ведь, насколько мне известно, он считывает только один символ из потока.

  6. Аватар Алена:

    Задача 1.

  7. Аватар Shom:

    Задание №3

    1. Аватар Анастасия:

      Почему Вы решили ограничивать ввод чисел 2000? Ограничивать числа от пользователя — это, конечно, нормально, но странно, почему именно 2000. Все заданные наборы содержат числа не больше 10. Это раз.
      А два, раз уж Вы спрашиваете пользователя: "Хотите сыграть ещё раз? (д/н)" то было бы логично продолжать только в случае "д", а не во всех других случаях кроме "н".
      И ещё мне кажется лишним выводить "Вы ввели: " сразу после ввода чисел.
      Это не критика, просто решила поделиться тем, за что глаз зацепился при чтении Вашего кода.

      1. Аватар Shom:

        Ограничение в 2000 осталось с первой задачи, упустил этот момент.
        Насчёт [Да/Нет] — особо над этим не задумывался, но раз есть разница, значит в следующий раз сделаю по вашему рецепту. Ну а "Вы ввели …" — примерно так раньше в телешоу говорили ("Вы выбрали", "Вы назвали"), решил эту традицию не нарушать)

    2. Аватар Shom:

      Поправка.
      Строку №11 следует заменить на
      if (std::cin.fail() || val<0 || val>10 )

  8. Аватар Владимир:

    Задание №2

  9. Аватар Владимир:

    Задание №1

  10. Аватар Shom:

    Задание №2.

    1. Аватар Владимир:

      Shom, надо немного допилить программку, а то вот что она выдает:

      Введите числа в массив через пробел: -2
      Введите число для проверки или нажмите 'Esc' для выхода: 2
      Данное число присутствует в массиве.
      Введите число для проверки или нажмите 'Esc' для выхода: 2.3456
      Данное число присутствует в массиве.
      Введите число для проверки или нажмите 'Esc' для выхода: -2
      Данного числа нет в массиве.

      1. Аватар Shom:

        Владимир, спасибо, поправил.
        Только с дробным числом у меня нормально работало.

        Задание №2. Корректировка №1.

  11. Аватар Shom:

    Задание №1.

  12. Аватар Vlad:

    Задание 2
    Даже если номер находится в массиве, выдаёт обратное. Помогите.

    1. Аватар Shom:

      if (check == randul[i] ) { … } — проверяется равенство номера с элементом следующим за последним элементом массива. Как мне кажется, на равенство проверять нужно каждый элемент строки. Примерно так:

      1. Аватар Vlad:

        Спасибо, спустя пару недель уроков додумался сам. Проверку надо было делать во время цикла ввода значений

  13. Аватар Илья:

    Задание 3:

    1. Аватар Анастасия:

      В принципе, код довольно самодостаточный и даже красивый. Но Вы опять никак не проверяете пользовательский ввод.

  14. Аватар Максон-патиссон:

    Задание 3 (если все правильно понял)

    1. Аватар Анастасия:

      Похоже, из всех здесь отписавшихся, только Вы поняли эту задачу так, что пользователь должен выбрать один из заданных наборов. Но так, наверное, даже правильней. И интересней.
      Я не поняла, как работает this->kit_data[] в классе, где kit_data не описано. И зачем в этом классе нужна ещё одна переменная kit_data[3] я тоже не поняла.

  15. Аватар Илья:

    Задание 2:

  16. Аватар Илья:

    Задание 1:

Добавить комментарий для Владимир Отменить ответ

Ваш E-mail не будет опубликован. Обязательные поля помечены *