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

  Юрий  | 

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

 25616

 ǀ   39 

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

Easy: Задание №1

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

Medium: Задание №2


Остров Манхэттен был приобретен поселенцами за $24 в 1826 г. Каково было бы в настоящее время состояние их счета, если бы эти 24 доллара были помещены тогда в банк под 6% годового дохода?

Hard: Задание №3

Возьмите любое слово, например, «корова». Используя генерацию рандомных чисел, переставьте буквы этого слова в рандомном порядке. Делайте это до тех пор, пока полученное слово не совпадет с начальным словом. Используя массив, укажите при перестановке букв их индексы. Программа должна корректно работать с любым словом.

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

Введите слово: корова
[0] 435021 воакро       [1] 430215 вокроа      [2] 521340 ароовк
[3] 025134 краоов       [4] 104532 окваор      [5] 024531 крваоо
[6] 214305 ровока       [7] 152034 оарков      [8] 130542 оокавр
[9] 031524 кооарв      [10] 503421 аковро     [11] 310425 ооквра
[12] 412035 воркоа     [13] 140532 овкаор     [14] 402513 вкраоо
[15] 124530 орваок     [16] 452130 вароок     [17] 423105 вроока
[18] 134520 ооварк     [19] 104352 оквоар     [20] 302415 окрвоа
[21] 203541 ркоаво     [22] 231504 рооакв     [23] 023541 кроаво
[24] 504132 аквоор     [25] 423015 врокоа     [26] 514320 аоворк
[27] 012345 корова


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

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

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

  1. Finchi:

    Задание №3:

  2. Dmitry:

    Задание №3.

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

  3. Руслан:

    Задание 3

  4. Антон:

    Это решение задания 1. Судя по тестированию получилось

  5. WAR:

    Задание №2:

  6. WAR:

    Задание №1:

  7. Rock:

    Задание 1:

    Задание 2:

    тут 2 варианта ибо многие пишут 1 вариант который берет процент от начального числа и прибавляет его к числу но после берет процент у прибавленного числа но депозит не так работает правильнее 2 вариант от начального вклада мы получаем каждый год процент не смотря на полученное от депозита (есть формулы увеличения депозита но тут в условии нету такого).

    разница расчетов колоссальна

    Задача 3:

    1. Александр:

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

      Тебе не казалось что считать в годовых процентах довольно не удобно. Проще было бы в месяцах или в неделях. Но проблема в том что чем чаще производить выплаты с  учетом процента тем больше получит денег вкладчик. Поэтому выплата происходит раз в год, а если б было реже то это была бы вообще наглость.

  8. Максим:

    Задание 1

  9. Аноним:

    Третье задание этой части зацепило, решил поделиться своим вариантом исполнения.

  10. Дмитрий:

    Задание 3:

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

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

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

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

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

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

  14. Марат:

    Задание №3

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

      Это решение мне более менее близко,по крайней мере, раскрыта суть идеи Shom, что проверяем, использовали ли уже сгенерированный случайный индекс.
      И мне понравилась идея хранить индексы не в каком-нибудь массиве или векторе, а тоже в качестве строки.

  15. Shom:

    Задание №3

    1. Марат:

      Ваш вариант мне понравился!

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

      А мне это решение показалось сложным.
      В частности, в функции mixing() не хватило комментария, что же всё-таки проверяет key. И следующий вложенный цикл тоже я не поняла:

      почему jjj ограничен iii и зачем сравнивать индексы?

      1. Shom:

        key становится true если данную букву мы уже раньше переставили (буквы проверяются по индексу — местоположению в слове, так как в слове может встречаться несколько одинаковых букв), key == true прерывает текущую итерацию и не даёт счётчику букв (iii) увеличиться на единицу, то-есть, следующая итерация будет подбирать букву для того-же индекса (местоположения в слове).
        jjj ограничен iii так как iii представляет собой длину уже набранной части "перемешанного слова", а цикл с jjj проверяет совпадение только-что сгенерированного числа (ограниченного длиной заданного слова) с использованными индексами букв заданного слова.

  16. Shom:

    Задание №2.

  17. Shom:

  18. Владимир:

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

      Владимир, в Вашей программе есть один существенный недочёт:

      Во-первых, индексы могут и не совпадать, главное чтобы совпадали буквы! В том же слове "корова" начальные индексы 012345 не совпадут с 032145, но слово совпадёт.
      Во-вторых, зачем считать количество несовпадений индексов, когда важен сам факт, есть они или нет. То есть выходить из цикла можно при первом же несовпадении.

      Ну, и ещё один момент. У вас целый ряд одинаковых циклов for, почему бы и не использовать для каждого одну и ту же переменную i, ведь она создаётся и живёт только в одном цикле, не влияя на другие, можно было не придумывать все эти j, k, q, t…

  19. Алена:

    Задача 2.

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

      Тогда уж нужно просить ввести текущий год. Или в предыстории писать, что программа вычисляет состояние счёта на заданный год, а не на настоящий момент.
      sumAayment — странноватое название переменной.

  20. Алена:

    Задача 1.

  21. Владимир:

    Задание №2

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

      По ряду причин не рекомендуется использовать #define для констант, в частности:
      1) при этом не учитывается тип константы, что может привести к ошибкам сужения типов, например.
      2) такие константы не отслеживаются при отладке.

  22. Владимир:

    Задание №1

  23. Юлия:

    №3

    1. Юлия:

      Извините, не дочитала 3-е задание до конца. Вместо индексов у меня выводит перемешанное слово.

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

      Зачем писать свою функцию get_s (), да ещё и такую вычурную, с непонятными переменными-символами, если есть прекрасная std::getline(std::cin, строковая переменная), которая для этого и существует?

  24. Юлия:

    №2

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

      слишком много магических чисел. И почему у Вас 364 дня в году?

  25. Юлия:

    №1

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

      Сама функция подсчёта символов в строке — простая и понятная, ей бы и можно было ограничено, что это за действия в get_s — большой вопрос… Зачем так сложно?

  26. Илья:

    Задание 2:

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

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