Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Вниз

Как реализовать подгрузку формул из файла?   Найти похожие ветки 

 
Officeman   (2003-05-09 12:44) [0]

загадка формул

Пишу электронный каталог продукции.
Три колонки цен: первая - базовая. вторая и третья расчитываются под процент.
Три группы товаров: 1 группа, 2группа, 3 группа.
У каждой группы свои проценты на вторую и третью колонки.

Например:

номер---наименование------Группа---Баз.колонка1---колонка2-----колонка3
1-------Товар1--------------1------3 рубля------[3рубля+5%]---[3рубля+7%]
2-------Товар2--------------2------3 рубля------[3рубля+6%]---[3рубля+9%]
3-------Товар3--------------3------3 рубля------[3рубля+10%]---[3рубля+13%]
4-------Товар4--------------4------3 рубля------[3рубля+10%]---[3рубля+13%]

Соответственно при пересчете второй и третьей колонки. я закладываю сразу коэффициент процента(скидки).
Листинг:
x0:=0;x0:=(strtofloat(p_baz)); //---расчёт колонки1
x1:=0;x1:=(strtofloat(p_baz))/(5/100+1); //---расчёт колонки2
x2:=0;x2:=(strtofloat(p_baz))/(7/100+1); //---расчёт колонки3

А если формула будет менятся (а она часто меняется) что тогда. Опять заходить в дельфи,
менять формулу и процент и компилить заново?! охото реализовать:
загружать формулы из текстового файла. если у кого была такаяже задача.
подскажите алгоритм её реализации. какова концепция?

т.е. создаем текстовый файл. наверно лучше (algo.ini)
с таким содержанием

[группа1]
формула для колонки 1
формула для колонки 2
формула для колонки 3

[группа2]
формула для колонки 1
формула для колонки 2
формула для колонки 3

[группа3]
формула для колонки 1
формула для колонки 2
формула для колонки 3

Я с умею вывести эти форулы в переменные типа:string
А что потом? подскажите пожалуйста какого принципа держаться?

с Уважением, ОфисМен


 
Mikelson   (2003-05-09 12:47) [1]

Писать синтаксический анализатор. Можно найти готовый компонент.


 
Officeman   (2003-05-09 13:10) [2]

2Mikelson
Вам, случайно такой непопадался?
Вобщем буду искать "синтаксический анализатор"!

Очень надо! помогите исходником или компонентом.
сам я, похоже буду долко парится.

ВОПРОС:
как значение типа стринг выдать за переменную дельфи?
Например, читаем формулу из текстового файла
z=x+(y+(y*3/100)+1)

в переменную "frm1", получилось
frm1:="z=x+(y+(y*3/100)+1)";

читаем строку по символьно, "формируем(выстраиваем) формулу" со "своими значениями", расчитываем...

один из вариантов, возможно глупый.


 
NDeu   (2003-05-09 13:47) [3]

Кажется на Королевстве смотрел minicompilator
Так же загляни www.stikriz.narod.ru/art/Interp.htm#_Toc32830874


 
Mikelson   (2003-05-09 14:48) [4]

Писал я как-то давно "формульный калькулятор". Есть исходники на С++. Если надо, пиши мылом, пришлю.


 
Tolik1   (2003-05-09 16:56) [5]

Я бы тоже сделал типа своего калькулятора. Поищи в инете статьи, содерж. "обратную польскую запись". Алгоритм калькулятора довольно простой. Я использовал его, когда только начинал программировать. Наверное, самое сложное в нем - рекурсия (хотя, может кто и без этого обошелся).



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
7-70528
Delpher_Gray
2003-03-20 19:45
2003.05.22
Как послать нажатия клавишь другому приложению !?


3-70175
Aga
2003-05-03 12:06
2003.05.22
Траблы с базой!!


7-70545
ККВ
2003-03-25 09:12
2003.05.22
TryIcon


3-70108
Mic_2000
2003-04-30 10:09
2003.05.22
Помогите с запросом разобраться


1-70271
lukey
2003-05-12 12:42
2003.05.22
Проблема доступа из потока к данным MDI окна.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский