На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Калькулятор
    Прошу прощения, т.к. вопрос, вроде бы, простой. Однако уже 2 дня у меня ничего не идет.
    Вопрос:
    есть строка, которую нужно высчитать, т.е. нужен калькулятор. Строка может быть простая: 5, а может и : -(5/8-6)*4552,1-(45-7*5)+2,1/(1-2)*1,5+8
    Уже выкачал несколько исходников: но...
    1) от DN - большой, разбираться как-то, не очень.
    2) второй очень маленький. Все считал. Однако заткнулся на (1-2)*(4+5) - двойных выражениях.
    3) в третьем (93 стр.) - самом маленьком я ничего не разобрался. умнО написано.
    4) ....
    Киньте, если не в тяжесть, мне небольшие исходники на goby@mail.ru. Или хоть URL
      а этот смотрел ?
      /delphi/delphi_convert_string_to_math.shtml
      Если смотрел, то извини.
        Есть исходник крутого калка, правда на С.
        (Точнее на Yacc'е, lex'е ктотрые генерируют Сишный код калькулятора)
        но работает с переменными и со скобками любой вложенности, а так-же может обрабатывать файлы с выражениями внутри.
          есть три исходника
          1) на паскале, через строки. то есть выделяем внутренние скобки, высчитываем их, заменяем текст в строке, который им сответствовал на их значение. (переконверченное в текст) потом также для всех операций умножения и деления. потом оствашуюся строку из цисел и знаков +- просто считаем.
          глючно что результат промежуточных выражений записываем обратно в строку.
          2)на с++, функциями рекурсивными. самы стандартный и распространенный вариант. работает даже с переменными.
          3) на с++. конвертим строку с вегерскую запись (например 1+2->1 2 +) используя стек высчитываем эту строку. наверное самый быстрый.
          тебе какой слать.
            А это смотрел:
            http://pascal.sources.ru/parsing/swexpr.htm
            http://pascal.sources.ru/parsing/calc_s.htm
            http://pascal.sources.ru/parsing/bpc-sec.htm
            http://pascal.sources.ru/parsing/2x2_12.htm
            http://pascal.sources.ru/parsing/eval.htm
            http://pascal.sources.ru/parsing/mcal.htm
            http://pascal.sources.ru/parsing/calc.htm
            http://pascal.sources.ru/parsing/calc_my.htm
            http://pascal.sources.ru/parsing/2x2_13.htm
            http://pascal.sources.ru/parsing/calk.htm
            http://pascal.sources.ru/parsing/pars.htm
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0351 ]   [ 16 queries used ]   [ Generated: 11.12.24, 00:24 GMT ]