![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
klem4 |
![]()
Сообщение
#1
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Надоело заниматься всякой ерундой связанной с сессией, вот решил развеяться, недавняя задача про раскрытие скобок в выражении подтолкнула меня написать это
![]() В общем можно забивать любые правильные* арифметические выражения и получать результат их вычисления *правильные - т.е. выражение может состоять только из чисел, разделитель десятичной части - точка, скобок, и бинарных операций +-*/ унарный минус также приветствуется: выражение -3*(5/-2) = -3*(-2.5) = +7.5. вот 4 примера возможных выражений (приведены как тест): Цитата ex1 := '10*(5+2*(1-3))'; { +10 } ex2 := '(-1+(5/2)+3+4+5/2--1*5)'; { +16 } ex3 := '-2*(2+3)*4+(2*2+1+-5/2)*2+(2*(6/3))'; { -31 } ex4 := '1*10*100+((0*81))+0.5+(((0.5)))'; { +1001 } просьба сообщать о найденных багах. ps в выражение записывать нужно без пробелов. Правильность выражения и баланс скобок не проверяются (пока) {$N+} Сообщение отредактировано: klem4 - 30.11.2007 23:15 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
круто, там с синусами, может прикручу потом
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Malice |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 705 Пол: Мужской Репутация: ![]() ![]() ![]() |
круто, там с синусами, может прикручу потом ![]() Потестил, работает ! ![]() 2Volvo - накопленная база знаний - это конечно хорошо, помогает выполнять задачи быстро и все такое. Но такой подход отучает думать, сводит работу к copy&paste. Конечно, думать профессионалам каждый раз заново не надо, но для разминки или для студентов, которые как раз здесь и тусуются, не лишне было бы и поизобретать велосипед. Да и прога по ссылке писалась не по острой необходимости, а тоже ради себя. Так что я такой подход приветствую, сам иногда чего нибудь такое пишу ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 22:47 |