Россия и Беларусь начали и продолжают войну против народа Украины. #Буча #Мариуполь #Краматорск #Кременчуг

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

  Юрий  | 

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

 15010

 ǀ   30 

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

Easy: Задание №1

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

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

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

Medium: Задание №2


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

Hard: Задание №3

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


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

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

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

  1. Mixa:

    3 задача

  2. WAR:

    Задание №3:

  3. WAR:

    Задание №1:

  4. WAR:

    Задание №2:

  5. Rock:

    Задание 1:

    Задание 2:

    Задание 3:

  6. Максим:

    Задание 3

  7. Kir:

    Задание 3

    main.cpp

    Random.h

    Random.cpp

    UserInput.h

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

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

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

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

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

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

  11. Shom:

    Задание №3.

  12. Shom:

    Задание №2.

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

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

  13. Shom:

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

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

  14. Shom:

    Задание №1.

  15. Владимир:

    Задание №3:

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

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

  16. Владимир:

  17. Владимир:

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

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

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

  18. Алена:

    Задача 2.

  19. Алена:

    Задача 1.

  20. Илья:

    Задание 3:

  21. Илья:

    Задание 2:

    1. Владимир:

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

  22. Илья:

    Задание 1:

    1. Kris:

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

  23. Пётр:

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

    1. Cola:

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

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

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

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

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