|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.09.2014, 19:22 | #1 |
Новичок
Джуниор
Регистрация: 27.11.2008
Сообщений: 1
|
парсер мат строк
Добрый день
возник следующий вопрос, в программировании не сильно большой гуру пошел на собеседование , дали тестовое задание парсер мат выражений, написал все работает , в фидбеке написали что код ужасный могли бы подсказать где ужастность? main.cpp Код:
Parser.h Код:
Код:
|
04.09.2014, 21:33 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
А вообще лично мне не понравилась бы make_poland(). Но только потому что выглядит сложно - т.е. если ты начнешь проект, потом вдруг уволишься, а твои коды придется кому-то дорабатывать, бедный доработчик может моск сломать в условиях кратчайших сроков, поставленных заказчиком.
I'm learning to live...
|
|
04.09.2014, 21:37 | #3 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Абстракция и реализация слабая Где-то на форуме я видел крутую реализацию парсера: то ли тут, то ли на киберфоруме. Проблемы кода:
1. размер стека 20. Фиксированный размер это неудачное архитектурное решение. Должен быть построен конечный автомат. А если там буде 5+5+.. + 5 миллион раз с миллионом пар скобок, ваш стек сразу сломается? 2.фиксированная длина строки ввода это неправильно. При разборе выражения, нужно строить дерево синтаксического разбора и использовать восходящий или нисходящий разбор - в вашей программе не построено дерево разбора..
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
Последний раз редактировалось challengerr; 04.09.2014 в 21:48. |
04.09.2014, 22:08 | #4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
I'm learning to live...
|
||
04.09.2014, 22:22 | #5 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
Как это делается правильно , код в теме http://www.cyberforum.ru/cpp-beginne...ead671878.html , сообщение от 16.10.2012 21:40
Код:
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
05.09.2014, 00:04 | #6 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
|
|
05.09.2014, 05:45 | #7 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
challengerr
Ты бы на сайбер не ссылался. ИМХО это не только мне глаз режет. Ну можешь попробовать на сайбере ссылку на программерзфорум оставить. Пару раз попробуешь, потом бан получишь (я получил). Тем более код там тоже не очень приятный. ТС, лично мне не нравится твой стек. Не понятно зачем это велосипед, когда стек есть в стандартной библиотеке. Тем более твой велосипед снаружи выглядит как велосипед, а внутри у него самокат (стек не должен ломаться при добавлении 21 элемента, поэтому он обычно как динамический список строится, а у тебя внутри массив из 20 элементов). Если уж ты сделал свой стек, да он у тебя шаблонный, то он должен работать нормально и с любыми типами. Я беру вот этот кусок только: Код:
Я особо не вчитывался, но вцелом вроде бы сам парсер выглядит симпатично. |
05.09.2014, 06:05 | #8 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,603
|
В 2013 я там потерял эккаунт, и после регистрации нового эккаунта получил бан. Ссылки на другие форумы они вырезали.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
05.09.2014, 10:18 | #9 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Цитата:
А тут все ссылки активные и без nofollow/noindex. Жирно сильно сайберу, я считаю. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мат плата | aman777 | Компьютерное железо | 0 | 06.05.2014 14:18 |
Для матрицы из 3 столбцов и 7 строк отпечатать номера тех строк, в которых третий элемент больше суммы двух других элементов строк | abramov | Помощь студентам | 2 | 03.12.2013 10:15 |
МАТ. ЛИНГВИСТИКА!!! | ...Ou... | Фриланс | 0 | 24.04.2012 19:44 |
МАТ. ЛИНГВИСТИКА!!! | ...Ou... | Помощь студентам | 1 | 18.04.2012 09:57 |
Мат програмка с росдела мат логики. | Sheva777 | Помощь студентам | 4 | 23.03.2012 23:48 |