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

  Юрий  | 

  Обновл. 16 Сен 2021  | 

 10347

 ǀ   29 

Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!

Easy: Задание №1

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

Пример результата выполнения программы:

Введите строку: Привет! Меня зовут Андрей. Я обожаю петь.
Результат: ПриветМенязовутАндрейЯобожаюпеть

Medium: Задание №2


Пользователь вводит целое число N. Создайте массив из N целых чисел (числа генерируются рандомно). Определите индекс наибольшего элемента массива.

Hard: Задание №3

Напишите программу проверки знания таблицы умножения. Программа должна вывести 10 примеров и выставить оценку: за 10 правильных ответов — «отлично», за 8 или 9 правильных ответов — «хорошо», за 6 или 7 правильных ответов — «удовлетворительно», остальные варианты — «плохо».


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (10 оценок, среднее: 5,00 из 5)
Загрузка...

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

  1. WAR:

    Задание №3:

  2. WAR:

    Задание №1:

  3. WAR:

    Задание №2:

  4. Rock:

    Задание 1:

    Задание 2:

    Задание 3:

  5. Максим:

    Задание 3

  6. Kir:

    Задание 3

    main.cpp

    Random.h

    Random.cpp

    UserInput.h

  7. Анастасия:

    Моё решение задания №3 (добавила таймер на ответ для азарта):

  8. Анастасия:

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

  9. Анастасия:

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

  10. Shom:

    Задание №3.

  11. Shom:

    Задание №2.

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

      Мне понравилась Ваша идея генерить в том числе случайные отрицательные числа, присваивая элементам массива rand() — rand().
      И ещё понравилось, что обошлось без временной переменной для максимального элемента, хотя в этом Вы не были первым, кто-то ниже тоже так делал.

  12. Shom:

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

    Вспомнил о существовании switch-case'ов когда увидел решение этой задачи от Алёны. И, заодно, опечатку исправил из прошлого своего варианта решения.

  13. Shom:

    Задание №1.

  14. Владимир:

    Задание №3:

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

      Владимир, мне понравилась Ваша идея проверять пример на повтор. Можно было бы доработать и проверять в обе стороны., меняя A и B местами.
      Не понравилось название переменных для количества правильных и неправильных ответов. Количество неправильных ответов можно было бы и не считать (если нужно выводить количество неправильных ответов, выводите 10-a)
      И булева переменная flag просто лишняя. Если её убрать, ничего не изменится.

  15. Владимир:

  16. Владимир:

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

      ispunct() — это гениально, не знала, что такое есть. Я захотела проверить, будет ли это работать с кириллицей, и у меня не получилось. Если ввести строку на кириллице, возникает run-time ошибка. Очень жаль. С латиницей нормально работает.
      Поэтому, я считаю, строчка

      не нужна. Я думала, это магия, которая позволит работать с кириллицей. Но нет.

  17. Алена:

    Задача 2.

  18. Алена:

    Задача 1.

  19. Илья:

    Задание 3:

  20. Илья:

    Задание 2:

    1. Владимир:

      Илья, запрашиваете у пользователя длину массива, а присваиваете значения фиксированно 10 элементам массива, независимо от ввода пользователя. В конце кода забыли освободить выделенную память под динам. массив

  21. Илья:

    Задание 1:

    1. Kris:

      У вас string.erase() работает за O(n), т.е. долго, ибо в памяти хранится как C-style строка. Удалять в цикле таким образом слишком дорого. Лучше записывайте в отдельный массив и потом скопируйте обратно, это будет в разы быстрее. Ваше решение работает за O(n^2), с записью в доп. массив будет работать за O(n), на порядок быстрее.

  22. Пётр:

    Вторая задача:

    1. Cola:

      Хотя бы комментарии сделали что-ли..

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

      Пётр, если Вы меня читаете: на будущее давайте переменным более говорящие названия, тогда другим Ваш код будет читать не столь мучительно.
      И у Вашего решения есть ещё один недочёт: Вы заводите массив х длиной 1000, что потянет не каждый стэк. А самое обидное, что Вы всё равно используете только то количество элементов, которое вводит пользователь. А ведь он может ввести и большее количество! И вообще, если уж даёте такую ответственность пользователю, то было бы неплохо 1) указать ему, что именно он должен ввести 2) проверить его ввод на ошибки.

Добавить комментарий

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