Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому 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 корова
Задание №3:
Задание №3.
Все работает с строкой на латинице, если ввожу кириллицу, после перебора выводит абра-кадабру.
Подскажите с чем может быть связано?
Задание 3
Это решение задания 1. Судя по тестированию получилось
Задание №2:
Задание №1:
Задание 1:
Задание 2:
тут 2 варианта ибо многие пишут 1 вариант который берет процент от начального числа и прибавляет его к числу но после берет процент у прибавленного числа но депозит не так работает правильнее 2 вариант от начального вклада мы получаем каждый год процент не смотря на полученное от депозита (есть формулы увеличения депозита но тут в условии нету такого).
разница расчетов колоссальна
Задача 3:
Задание 1
Третье задание этой части зацепило, решил поделиться своим вариантом исполнения.
Задание 3:
Моё решение задания №3:
Моё решение задания №2:
Моё решение задания №1:
Задание №3
Это решение мне более менее близко,по крайней мере, раскрыта суть идеи Shom, что проверяем, использовали ли уже сгенерированный случайный индекс.
И мне понравилась идея хранить индексы не в каком-нибудь массиве или векторе, а тоже в качестве строки.
Задание №3
Ваш вариант мне понравился!
Спасибо!
А мне это решение показалось сложным.
В частности, в функции mixing() не хватило комментария, что же всё-таки проверяет key. И следующий вложенный цикл тоже я не поняла:
почему jjj ограничен iii и зачем сравнивать индексы?
key становится true если данную букву мы уже раньше переставили (буквы проверяются по индексу — местоположению в слове, так как в слове может встречаться несколько одинаковых букв), key == true прерывает текущую итерацию и не даёт счётчику букв (iii) увеличиться на единицу, то-есть, следующая итерация будет подбирать букву для того-же индекса (местоположения в слове).
jjj ограничен iii так как iii представляет собой длину уже набранной части "перемешанного слова", а цикл с jjj проверяет совпадение только-что сгенерированного числа (ограниченного длиной заданного слова) с использованными индексами букв заданного слова.
Задание №2.
Владимир, в Вашей программе есть один существенный недочёт:
Во-первых, индексы могут и не совпадать, главное чтобы совпадали буквы! В том же слове "корова" начальные индексы 012345 не совпадут с 032145, но слово совпадёт.
Во-вторых, зачем считать количество несовпадений индексов, когда важен сам факт, есть они или нет. То есть выходить из цикла можно при первом же несовпадении.
Ну, и ещё один момент. У вас целый ряд одинаковых циклов for, почему бы и не использовать для каждого одну и ту же переменную i, ведь она создаётся и живёт только в одном цикле, не влияя на другие, можно было не придумывать все эти j, k, q, t…
Задача 2.
Тогда уж нужно просить ввести текущий год. Или в предыстории писать, что программа вычисляет состояние счёта на заданный год, а не на настоящий момент.
sumAayment — странноватое название переменной.
Задача 1.
Задание №2
По ряду причин не рекомендуется использовать #define для констант, в частности:
1) при этом не учитывается тип константы, что может привести к ошибкам сужения типов, например.
2) такие константы не отслеживаются при отладке.
Задание №1
№3
Извините, не дочитала 3-е задание до конца. Вместо индексов у меня выводит перемешанное слово.
Зачем писать свою функцию get_s (), да ещё и такую вычурную, с непонятными переменными-символами, если есть прекрасная std::getline(std::cin, строковая переменная), которая для этого и существует?
№2
слишком много магических чисел. И почему у Вас 364 дня в году?
№1
Сама функция подсчёта символов в строке — простая и понятная, ей бы и можно было ограничено, что это за действия в get_s — большой вопрос… Зачем так сложно?
Задание 2: