Здесь размещены задания по С++, которые вы можете выполнить. Каждое задание имеет свой уровень сложности. Готовых ответов не будет, поэтому welcome в комментарии!
Easy: Задание №1
Напишите программу, которая при вводе пользователем числа из диапазона от 1 до 99 выводит это число и добавляет к нему слово копейка
в правильной форме.
Пример результата выполнения программы:
Введите число из диапазона от 1 до 99: 25
25 копеек
Введите число из диапазона от 1 до 99: 4
4 копейки
Medium: Задание №2
Пользователь вводит натуральное четырехзначное число. Выясните, является ли оно палиндромом (читается одинаково как слева направо, так и справа налево).
Пример результата выполнения программы:
Введите число: 4884
4884 является палиндромом
Hard: Задание №3
Рейтинг бакалавра заочного отделения при поступлении в магистратуру определяется средним баллом диплома, умноженным на коэффициент стажа работы по специальности, который равен: нет стажа — 1, меньше 2 лет — 13, от 2 до 5 лет — 16. Напишите программу расчета рейтинга студента при заданном среднем балле диплома (от 3 до 5) и выведите сообщение о приеме в магистратуру (при проходном балле равном 45).
Задание 1
Задание 2
Задание 3
Задание №1.
Задание №1
2 задача
Задание №3:
Задание №2:
Второе
Задание №3
Задание №2
Задание 1:
Задание 2:
Задание 3:
Задача 1.
Задание №2:
Задание №3
Попробую выложить свой код ,задание №1 :
Не учтены исключения грамматики для значений 11-19 копеек.
Моё решение задания №3, корректировка, добавлен вывод рейтинга.
Моё решение задания №3:
Моё решение задания №2:
Решение задания №1:
Задача 2.
Код был бы раза в два короче, если бы Вы все условия проверки соединили в одной строчке.
Задача 1.
Алёна, можно же все условия ошибочного ввода написать через "или" (||) в одном условии, Вы ведь по сути одно и то же во всех случаях делаете, зачем же Вы так мучаетесь?
Задание #1:
довольно длинно получилось с расписыванием разных условий, можно было короче написать
Задание #2:
Ваше решение мне понравилось. Наверное потому, что я почти так же сделала.
Задание #3:
1) Вы предполагаете, что средний балл диплома — целое число, что весьма далеко от реальности. Это очень даже дробное число, где каждая десятая — на вес золота
2) Резануло, что если опыт работы по специальности — больше 5 лет, программа выдаст ошибку. Мне кажется, это существенно. Можно было бы сделать так, что больше 5 лет опыта учитывалось бы как 5.
3) Сама структура программы мне понравилась, и то, что за константами следите. Но не очень красиво, что константа проходного балла, которая фигурирует в функции проверки поступления, встречается в качестве литерала, когда Вы пишете о проходном балле. Если проходной балл изменят, придётся поправлять в двух местах вместо одного.
Задание №3
Весьма компактно получилось, даже очень. но расчёт рейтинга, проходной балл и решение о поступлении просится вынести из main, разве нет?
Задание №2
1) По условию число должно быть четырёхзначным
2) нет проверки на то, число ли ввёл пользователь. Но ответ нормальный, что не является числом-палиндромом. Ок.
3) Зачем переменная count и зачем её считать?
4) Введите натуральное число: 0220
0220 не является числом-палиндромом
5) название переменной flag в каждом втором Вашем коде можно было бы как-то менять в зависимости от целей задачи ; )
1) Можно было сделать проверку на длину строки, но не стал, чтоб расширить возможности программы, а замечание правильное, следует придерживаться условия задачи (думал никто не заметит)
2) Где-то я фигурные скобки потерял, вместо:
должно быть:
3) Переменная count на случай ввода: 0, 00, 0000, которые не являются действительными числами. С моей стороны неудачное имя переменной и комментарий к стейтменту, — не раскрывают сути кода
5) Не вижу смысла подбирать название булевой переменной “под его цели”, если его назначение быть ключем для “блокирования” выполнения части программы, ну можно назвать не flag, а key, возможно я не прав
Задание №1
Владимир, у меня при запуске Вашего кода и вводе букв возникает run-time error, связанная с тем, что переменная symbol используется без её инициализации, т.к. компилятор после строки 27 идёт на строку 56, где у этой проверяемой переменной мусорное значение. Обычно я не запускаю чужие коды, просто их читаю, чтобы тренировать понимание. Но Вы умудрились написать так, что я решила запустить, чтобы проверить логику.
Ещё запутывает то, что функция check, которая проверяет корректность ввода, почему-то вопреки ожиданиям возвращает true, если ввод был ошибочным.
И, наконец, по моему мнению, комментарий к строке 27:
не соответствует действительности, ведь continue наоборот осуществляет переход в начало цикла, игнорируя код цикла после этой строки.
1) Вы правы, symbol надо инициализировать
2) Если caller делает запрос: "Была ли ошибка ввода?" и если ошибка была функция возвращает true и caller выводит соответствующее сообщение, а если запрос: "Был ли ввод корректен?" и была ошибка, то возвращает false, все дело в оформлении запроса. (шутка)
3) Из урока №70: Оператор continue позволяет сразу перейти в конец тела цикла, пропуская весь код, который находится под ним. Это полезно в тех случаях, когда мы хотим завершить текущую итерацию раньше времени.
Задание №3
Краткость — сестра таланта. Респект. Но кириллица!
Мой тест:
┬тхфшЄх ёЁхфэшщ срыы фшяыюьр: 3.3
┬тхфшЄх ёЄрц ЁрсюЄ√ яю ёяхЎшры№эюёЄш: 1.9
╩рэфшфрЄ эх яЁшэ Є т ьрушёЄЁрЄєЁє
Спасибо. Польщён)
Задание №2
Хотела написать, что симпатичный код получился… пока не протестировала. На моё число 6556 я увидела "ты хЄё ярышэфЁюьюь". Даже и не знаю, палиндром это означает или наоборот? Кириллицу не забывайте подключать!
И пользователю тоже нужно сообщать, какое число от него ждут. Ведь Вы никак не извещаете его, что четырёхзначное, просто отвергаете ответ ошибкой ввода и всё…
Верно, забыл сообщить пользователю, что число должно быть четырёхзначным (.
Я в линуксе программирую, тут кириллицу отдельно подключать не требуется (видимо, она уже изначально подключена), если не производятся действий с символами (подсчёт, перестановка и т.д.).
И по первому заданию (там нет возможности ответить): строка 23
Да, про комментарий насчёт нуля я упустила этот Ваш ход конём, Вы правы.
Отдельное спасибо за std::to_string(number)! Это проще, чем через строковый поток преобразовывать, создавая отдельную функцию.
Задание №1.
Shom, вот потестил немного, результат:
Введите число из диапазона от 1 до 99: 11
11 копейка
Спасибо, поправил.
Задание №1. Корректировка 1.
1) т.к. кириллица не подключена на экране после запуска кода я вижу "0 — т√їюф шч яЁюуЁрьь√.
┬тхфшЄх ўшёыю шч фшрярчюэр юЄ 1 фю 99:"
Но оно и так понятно, что от меня хотят.
2) Т.к. в проверке ввода Вы не гнушаетесь нулём, то его я и ввела. Ввод нормальный же, да? А ввела я его, т.к. меня смутила проверка условия !number и break после него. То есть 0 коппек привёл к break и слово "копеек" мы так и не увидели. Мелочь, а всё-таки недочёт.
1) Условие предполагает ввод четырёхзначного числа. Вы, хоть и используете это при проверке числа на палиндромность, скрываете это требование от пользователя, просите его ввести некий num, который каждый может понять по-своему.
2) Я ввела буквы, программу заклинило, она напечатала 100500 строк "Try again! Smth entered wrong!". Самое обидное, что я так и не дождалась возможности ввести число. Так быть не должно.
3) Как итог, имеем даже вот такой результат:
Enter your num: 233332
Not polindrom
Задание №1:
Илья, я сильно подозреваю, что Вы — бот. Просто потому, что не мог нормальный человек настрочить столько кодов за один день…
А если серьёзно, то правила хорошего тона предполагают хотя бы минимальные комментарии к коду, если Вы его выкладываете в публичный доступ. К счастью, этот Ваш код довольно понятен. Но, как говорится, осадок всё равно остаётся. Второе замечание, опять же, обобщённое: необходимо проверять пользовательский ввод на корректность, ведь пользователи они не обычно люди (по себе людей не судят!) и могут ввести что-то не то. Вы почему-то это совсем игнорируете.
Задание 2:
Илья, у Вас можно было пользовательское число вводить в переменную string word и не создавать еще поток buff, т.к. проверки num все равно нет
Просто он игнорирует условие о том, что проверять нужно чётырёхзначное число, и проверяет по сути строку. На мой взгляд, можно было бы тогда и вовсе убрать все эти перепихивания из числа в поток, из потока в строку и брать просто строку.