Здесь размещены задания по С++, которые вы можете выполнить. Готовых ответов не будет, поэтому welcome в комментарии.
Задание №1
Сэндвич с мороженым — это строка, образованная двумя одинаковыми концами и разной серединой. Например:
AABBBAA
3&&3
yyyyymmmmmmmmyyyyy
hhhhhhhhmhhhhhhhh
Обратите внимание, что левый и правый концы сэндвича идентичны как по длине, так и по повторяющимся символам. Середину составляет третий (отличный от первых двух) набор символов.
Следующее не является сэндвичем с мороженным:
BBBBB // вы не можете иметь только мороженное (без сэндвича)
AAACCCAA // вы не можете иметь неравные по длине окончания в сэндвиче
AACDCAA // вы не можете иметь начинку из разных символов
A // ваш сэндвич не может быть менее трех символов
Напишите программу, которая возвращает true
, если строка, введенная пользователем, является сэндвичем с мороженым, и false
— в противном случае.
Примеры:
isIcecreamSandwich ("CDC") ➞ true
isIcecreamSandwich ("AAABB") ➞ false
isIcecreamSandwich ("AA") ➞ false
Примечание: Сэндвич с мороженым должен иметь минимальную длину 3 символа, и как минимум 2 из этих символов должны быть различны.
Задание №2
Напишите программу, которая определяет минимальное число в последовательности положительных чисел, которую ввел пользователь. Если в последовательности есть отрицательные числа, то вы должны сообщить об этом пользователю и предложить повторить ввод еще раз.
Задание №3
Напишите программу, которая запрашивает у пользователя номер месяца и затем выводит соответствующее название времени года. В случае, если пользователь введет недопустимое число, программа должна вывести сообщение об ошибке.
Пример результата выполнения программы:
Введите номер месяца (число от 1 до 12): 12
Зима
Задача №2
Задание № 2
1 задание:
Первое задание:
Первое задание решила так:
Со вторым заданием не справилась.
Третье задание:
В задании, где нужно вывести сезон, в зависимости от номера месяца, при введении чисел 0 и отрицательных, у Вас будет отображаться «Winter»
Строку
нужно, как вариант, изменить на
Первое задание:
В первом задании у тебя, например, 1ФФролрлоропаравд1 является сэндвичем.
Т.е. ты сравниваешь нулевой и последний символы, а также 1-й и 2-й. И всё.
Ниже я привёл свой вариант решения.
Так я решил 1-е задание:
Так я решил 2-е задание:
Так я решил 3-е задание:
2:
Не совсем удачное использование «if» в 13-й строке. Если повторно ввести отрицательное значение, оно запишется в массив. Было бы неплохо заменить «if» на «while».
Легчайший вариант решения 3 задачи:
Задание №1 (только сама функция)
Или такой вариант:
Задание №1
Задание №2
Задание 2. Решить для любого количества чисел не смог, пока так. Для вывода минимального числа использовал костыль с многократным повтором min();
Моё решение первого задания:
Решение 1 задания
Задание №1
Прошу критики пожалуйста)
Используй string и встроенные функции, пример:
У Вас ошибка, символы справа не сравниваются на одинаковость, как символы слева. например у Вас выражение SSSSMSSMS будет считаться сендвичем.
задание 1 Сэндвич с мороженым
Задание №1
задание 1 Сэндвич с мороженым
у меня одного ощущение что основная масса решений неправильно отрабатывает условия задания —
— fffGGfff -ЭТО СЭНДВИЧ
DDFFGGGFFDD — ЭТО не сэндвич
Задача 1
Задание №1
Ваша программа не работает.
ABCBA возвращает true, а должно false (двойная начинка).
Задание 3:
Задание №2
1 задание. Только чесно, насколько оно мною усложнено? Увидел решение из реверсом строки и теперь чуствую себя ничтожеством
2) Задание
3) Задание
1) Задание
приятнее выглядит с тернарным
Задание №2
Задание 3:
Задание №3:
Задача 1
(Может я чего -то не поняла в постановке задачи……Но у меня все просто…..
Задание №2:
Задание №1:
первое задание:
Задание 1
У вас получается, что сендвич может бъть не только 3 слойний, но и много (нечетного количества). Допускается?
Первая задачка.
Первая задачка
Задача №1
Задачка №1
Игорь(клешниВверх), ты в своём коде запускал такой вариант сэндвича: cvcvc?
Задание №3
Задача 1:
Задача 2:
Задача 3:
Наверное, самое легкое решение первой задачи):
Задание №3
Задание №3
Первое.
Вроде работает =)
Задание №1
Задание №3
задание №1
Задание №1 — вариант реализации, использующий теорию формальных языков
Задание 3
Не разобрался только почему || — не работало (
Спасибо за использование switch 😀
1е Задание
Первое задание!
Сэндвич:
Мое решение Задания № 1.
Задача 3.
Задача 2.
Задача 1.
Мой вариант задания 3
Мое решение Задачи №2
Решение задачи №3:
Моё решение задания №3:
Моё решение задания №2:
На самом деле вектор тут совершенно не нужен, нам ведь не нужно хранить эту последовательность, а только проверять числа и сравнивать с минимумом.
Строки кода 6, 12 и 29 — лишние.
А зачем в конце цикла оператор continue, если его задача перенести выполнение программы в конец тела while, а он сам там находится?
да, пожалуй, он здесь лишний. Видимо у меня и после него сначала что-то было, а потом остался только он.
Моё решение задания №1:
Мне понравилась идея разбить проверку на три условия и во втором сравнивать количество разных символов с двумя. Но, наверное, это тоже избыточно, т.к. уже при третьем различном символе можно было бы делать вывод, что это не сэндвич.
Когда сравниваются концы, у Вас проверка идёт по всем символам строки, а это значит, что она по сути двойная, т.к. на самом деле достаточно проверить только до середины.
И ещё вот вам контрпример: AABBABBAA — концы одинаковые, символов всего два. Но начинка не однородна. Или мороженое не однородно, короче говоря, не сэндвич.
Аналогично. AABBABBAA — концы одинаковые, символов всего два. Но начинка не однородна. Или мороженое не однородно, короче говоря, насколько я поняла условие, эта строка не сэндвич, но у Вас она будет сэндвичем.
Задание №3
Задание №2
Не совсем понятно, как из
следует, что little получает значение первого положительного числа, ведь этот else противопоставляется условию, что число нулевое, то есть это присваивание little = number будет выполняться для каждого ненулевого числа, что неправильно. Код не запускала, вполне возможно, что я что-то не увидела и он работает корректно, в любом случае прошу пояснить.
Упс, точно Вы заметили.
Вот так, наверно будет правильно:
Задание №1
Аналогично. AABBABBAA — концы одинаковые, символов всего два. Но начинка не однородна. Или мороженое не однородно, короче говоря, насколько я поняла условие, эта строка не сэндвич, но у Вас она будет сэндвичем.
Анастасия, а Вы пробовали этот код запустить? Вот когда я проверяю на отладке Вашу тестовую строку AABBABBAA, то у меня программа выдает: "Ваше предложение не является сэндвичем"
Я попробовала запустить, но у меня компилятор ругается на все ваши size(sandwich), заменила на привычные sandwich.size(). Да, у Вас AABBABBAA не является сэндвичем, я поняла. Сбил с толку Ваш комментарий if (characters == 2) // если имеем два разных символа в сэндвиче
На самом деле Ваш идентификатор characters означает, что символы в строке менялись как минимум дважды. То есть для AAABBBCCC characters тоже будет 2. А для моей строки AABBABBAA characters = 4.
Задание №2.
может кто нибудь сказать, является ли такой способ правильным, и почему в первом if у меня не выводит текст "error" когда ввожу значения меньше нуля и больше 12
У тебя в условии первого if стоит & ("И") между условиями, а должно быть || ("ИЛИ"), так как номер месяца не может быть одновременно меньше 1 и больше 12.
У тебя в условии стоит мало того что 'И' (число одновременно должно быть и меньше 1 и больше 12),так он у тебя ещё и побитовый
Заданае 1,обновление программы,версия 1.1
Добавлена функция проверки смены символов checkSwitches(std::string &word)
Она бракует строки типа "ABABA"(многослойные сэндвичи)
Задание 1:
А зачем в перегрузке оператора прописывать friend, если тело метода находится внутри класса?
Владимир, это особенность перегрузки этих операторов, они именно через дружественную функцию перегружаются, а уже где её реализация — в классе или за его рамками, это уже вопрос вторичный.
Задание 2:
2 экземпляра программы:
В первой мы просим ввести пользователя количество чисел,которое он впоследствии введёт.
Во второй мы динамически отслеживаем каждое введённое пользователем число,постоянно ища самое маленькое,программа завершается,если пользователь введёт '0':
Прорамма 1:
Программа 2:
Как-то так…
Во втором цикле у Вас в каждом условии повторяется строчка
это не наводит на мысли вытащить её за условия, в блок цикла? И в целом не очень здорово повторять почти одно и то же сначала для первого числа, а потом для остальных. Лучше сделать один код и проверять, каким по счёту вводится число. Это и по первой, и по второй версии.
Задание 3:
Евгений, очень классно сделали решение, прям получил удовольствие от прочтения. Возьму себе кое-что на заметку
Задание №3
Здравствуйте. У меня Ваш код не компилируется, ругается даже на универсальную инициализацию. Поясните, пожалуйста, как работает
и почему потом по номеру месяца season[month] показывает правильный сезон, ведь, например, 6-ому месяцу в Вашем мэппинге будет соответствовать {5,"Весна"}, если считать от нулевого {12,"Зима"} разве нет? А 12-ый месяц так и вовсе будет с ошибкой, так как он стоит на нулевом месте. Поясните, пожалуйста, где я ошибаюсь.
Задание №2
Код подозрительно похож на мой)
Немного похож). Проверка в потоке на '\n' — хорошая идея!
Спасибо 🙂
Задание №1
Задание 2:
О черт, забыл прописать cin.ignore(); в начале цикла
Вы используете какие-то незнакомые мне пока вещи;
inputData.clear(); — то есть если хоть одно число неправильное, чистим всё? Или как это работает?
answer = toupper(answer); — что за тупер?
cin.peek() — последний введённый символ?
Задание №1
Кирилл, у Вас оптимальная, на мой взгляд, получилась реализация, от меня респект