|
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 7
|
|
Программа, которая заменяет в программе на С++ операторы switch на if. else if28.01.2016, 22:01. Показов 2805. Ответов 36
Метки нет (Все метки)
Доброго времени суток!
Задали курсовую работу - сделать задачу, суть которой находится в заголовке(Чтобы в программе заменялось switch на if... else if). Если честно, то вообще не понимаю как подобное действие осуществить. Были мысли о том, что нужно какое-то условие в программе, при выполнении которого будет выполняться замена. Быть может некий поиск оператора? Допустим, если в задаче находится оператор switch, то его заменяет программа на if. Но я не знаю как такое выполнить в виде кода. Помогите, пожалуйста, кто имел с подобными "Преобразованиями" дела. Или же, если кто натыкался уже на готовую задачу, указать где можно оную раздобыть. Несколько дней убил на поиск информации о данной теме. Ничего полезного не смог отыскать. Премного благодарен за помощь и советы!
0
|
|
| 28.01.2016, 22:01 | |
|
Ответы с готовыми решениями:
36
Программа которая заменяет повторяющиеся слова |
|
|
||
| 29.01.2016, 12:45 | ||
|
Не по теме: А это вообще законно? За такое сажать нужно, как Володя Цепеш сажал! Тогда нужно находить кейсы во вложенных блоках, которые не принажлежат вложенным свичам, превращать их в метки и прыгать в них через goto. Но ведь в таком случае поведение брейков относится к циклам и нас, в общем, не интересует. А ведь ещё есть маза, что нужно сохранять состояние объекта только на момент входа в switch, то есть запоминать значение в локальную переменную и сравнивать только его. И, вообще, вы всё слишком усложнаете, даже то, что я описал, тянет на зачёт, а если все ваши правки учесть, то это треть диплома получается.
0
|
||
|
|
|
| 29.01.2016, 12:49 | |
|
Добавлено через 1 минуту
0
|
|
|
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
|
||
| 29.01.2016, 12:54 | ||
|
ТС, ты уточни у препода что он в итоге хочет видеть? Если полностью автоматизированный процесс то это не реально (если бы было возможно, тога не нужны били программисты). Если же частично автоматизированный, то я бы думал так: 1) сканируем текстовый файл и находим все свичи 2) меняем все что знаем как правильно поменять дабы не сломать все к чертям 3) все что осталось не обработано отдаем пользователю, на ручное исправление n) Если хотим выпиндрится можно придумать еще некий справочник шаблонов куда будет заносится то что обработано пользователем.
0
|
||
|
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 7
|
||
| 29.01.2016, 13:10 [ТС] | ||
|
Спасибо всем за советы! Но признаться честно, все равно проще с этим не стало. Даже наоборот. Видимо, препод погорячился, когда доверил такую задачу тому, кто раньше ничего сложнее калькулятора не делал
0
|
||
| 29.01.2016, 13:15 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 7
|
||
| 29.01.2016, 13:22 [ТС] | ||
|
0
|
||
|
|
|||
| 29.01.2016, 13:27 | |||
|
Не по теме:
0
|
|||
|
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 7
|
||
| 29.01.2016, 13:33 [ТС] | ||
|
0
|
||
| 29.01.2016, 16:38 | |||
|
Не по теме:
Не по теме:
0
|
|||
| 29.01.2016, 17:07 | |
|
0
|
|
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|
| 29.01.2016, 17:49 | |
|
Ganxs, берись - кажется сложно.
не решишь на следующую курсовую перенесешь. в нормальных вузах компиляторы в качестве курсовых пишут и ничего. PCRE2 библиотека под обычную Visual Studio Community. регулярками легко получать '#switch(.*?){#' но, одними регулярками не обойтись, тк вложенные конструкции не пройдешь регулярками, хотя жадным квантификатором можно... надо пробовать, "крутить", да и посмотреть как компиляторы пишутся. имхо интересно - я б за такое взялся, если б препод дал. switch найти легко, дальше, по-любому, (выражение), потом '{' , потом case конст_знач: - от case до ':' тоже понятно чего и так пошел что от case до ':' минус пробелы выражение для сравнения с тем, что получил в switch, что после case: либо case, либо операторы их тоже в стек можно, а потом выталкивай из стека и в if оборачивай. сначала анализатор может быть попробовать, чтобы посчитать вложенность и под эту вложенность создать структуру - ничего прям ахового нет - нормальное задание. тем более, думается мне, препод скорее всего даже вложенные структуры и не попросит рассматривать.
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 29.01.2016, 18:11 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 29.01.2016, 19:06 | |||
|
именно после препроцессенга имеем единый файл единицы трансляции в котором уже нет никаких #include, макросов, и тп. действуем по принципу 80 за 20. то бишь, забиваем болт на все сложности. никаких нафиг препроцессоров, инклюдов и мутных свитч-кейсов. исходим из предположения, что свитч-кейс будет тупой как валенок. далее: http://www.cplusplus.com/reference/regex/ за пару часов с большими перекурами можно осилить. 2. если осталось время: качаем/ставим cmake. и долбим форумы: как сварганить сценарий сборки так, что бы компилятор не компилировал исходник, а только отпрепроцессировал. есть у компиляторов такие ключи. дальше пишем код запуска cmake из нутрях вашей программки. натравливая его на исходники исследуемого кода. получаем портянки без препроцессора. дальше см пункт 1. 3. если после пункта 2 осталось время, пишем юнит-тесты для парсинга замороченных свитч-кейсов. но это уже маловероятно. ----------------------------- цемес в том, что бы при самом неудачном раскладе было хоть что-то, что можно показать. и скорее всего парсинг простых свитч-кейсов уже потянет если не на зачет, то хотя бы на разрешение доработать продукт.
0
|
|||
|
261 / 209 / 99
Регистрация: 13.12.2015
Сообщений: 1,098
|
|
| 29.01.2016, 19:12 | |
|
0
|
|
|
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
|
|
| 29.01.2016, 19:14 | |
|
0
|
|
| 29.01.2016, 20:23 | |
|
Не по теме: hoggy, клиент, видимо, из категории "я слишком ленивый, чтобы делать самостоятельно, но слишком бедный, чтобы заказать у старшекурсников". Я буду рад ошибиться, но у меня нет на это причин.
0
|
|
| 29.01.2016, 20:23 | |
|
Составить программу, запрашивающую ваш рост и вес, которая далее рассчитывает индекс массы тела (операторы SWITCH-CASE) Программа, которая ищет по файлам и заменяет там текст Программа которая заменяет первую букву слова с гласной на прописную Программа, которая заменяет все буквы «е» во введенном тексте на букву «u» Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|