URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2468
[ Назад ]

Исходное сообщение
"math library development"

Отправлено ChiP , 17-Янв-04 01:12 
Доброго времени суток, сообщество!

В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу. Приложение в кавычках, потому что это не полноценное приложение, а скорее набор функций для расчета термодинамических свойств веществ, причем в нем очень активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).

Использование глобальных переменных связано с большим количеством расчитываемых параметров, приблизительно 7-мь характиристик для одного вещества (а веществ как минимум 3-и). Другими словами без них бы функция принимала уйму переменных.

Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки  (на Си) возникает вопрос - а как разобраться с такой кучей параметров ?!

Безусловно, у меня есть идеи, но хотелось бы услышать вашу точку зрения на этот вопрос.


Содержание

Сообщения в этом обсуждении
"math library development"
Отправлено SnaiL , 17-Янв-04 03:57 
Не мучай голову, реализуй так:

/**
*    Basic termo dynamic object
*/
class TermoDynamicObject
{ public:
    ...

    // а тут набор твоих методов, работающих со свойствами

  protected:
    SvoistvoType svoistvo1, svoistvo2, ... ;
};

или в си так:

struct termo_dynamic_object
{
    SvoistvoType svoistvo1, svoistvo2, ... ;
};

/* и тут список твоих методов */

ret_type method1(termo_dynamic_object *tmo, ...)
{
    ...
}


"math library development"
Отправлено ChiP , 19-Янв-04 01:36 
>struct termo_dynamic_object
>{
> SvoistvoType svoistvo1, svoistvo2, ... ;
>};
>
>/* и тут список твоих методов */
>
>ret_type method1(termo_dynamic_object *tmo, ...)
>{
> ...
>}

приблизительно я так и собирался :) с variadic функциями и структурами.

Спасибо!


"math library development"
Отправлено anonim , 17-Янв-04 17:57 
>Доброго времени суток, сообщество!
>
>В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу.
>Приложение в кавычках, потому что это не полноценное приложение, а скорее
>набор функций для расчета термодинамических свойств веществ, причем в нем очень
>активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).
>
>Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки  (на
>Си) возникает вопрос - а как разобраться с такой кучей параметров
>?!

Это скорее будет не перенос, а полное переписывание. А что бы разобраться прийдется понять всю математику, по другому написаный таким способом код не поймешь. Разбираться в чужих прогах написаных с применением глобальных переменных удовольствие ниже среднего и занимает много времени.
Если прога большая и уже работает, то намного проще будет найти бейсик под линукс, а если нужно будет "расширить " возможности то написать прогу которая будет забускайть старую прогу, передавать ей данные  и читай ее вывод.


"math library development"
Отправлено ChiP , 19-Янв-04 01:39 

>Это скорее будет не перенос, а полное переписывание. А что бы разобраться
>прийдется понять всю математику, по другому написаный таким способом код не
>поймешь.

безусловно.

> Разбираться в чужих прогах написаных с применением глобальных переменных удовольствие
>ниже среднего и занимает много времени.
>Если прога большая и уже работает, то намного проще будет найти бейсик
>под линукс, а если нужно будет "расширить " возможности то написать
>прогу которая будет забускайть старую прогу, передавать ей данные  и
>читай ее вывод.

к сожалению данный вариант не примлем. Мне дальше ее сопровождать и расширять :) Лучше уж я один раз вникну во всю эту байду, чем каждый раз буду проклинать себя, что не принял правильного решения несколько месяцев/лет назад :)

Но тем не менее спасибо, за вариант решения.


"math library development"
Отправлено sas , 17-Янв-04 18:59 
>Доброго времени суток, сообщество!
>
>В ближайшее время планируется перенос "приложения", написанного на QBasic'e, на *nix платформу.
>Приложение в кавычках, потому что это не полноценное приложение, а скорее
>набор функций для расчета термодинамических свойств веществ, причем в нем очень
>активно используются глобальные переменные (т.е. фактически даже не полноценные функции :).
>
>
>Использование глобальных переменных связано с большим количеством расчитываемых параметров, приблизительно 7-мь характиристик
>для одного вещества (а веществ как минимум 3-и). Другими словами без
>них бы функция принимала уйму переменных.
>
>Т.к. я планирую реализовать это в качестве отдельной "красивой" библиотеки  (на
>Си) возникает вопрос - а как разобраться с такой кучей параметров
>?!
>
>Безусловно, у меня есть идеи, но хотелось бы услышать вашу точку зрения
>на этот вопрос.

Есть такая штука, правда я ее не пробовал... Может быть поможет
http://linux.maruhn.com/sec/qb2c.html

Успехов
--- sas


"math library development"
Отправлено ChiP , 19-Янв-04 01:41 
>Есть такая штука, правда я ее не пробовал... Может быть поможет
>http://linux.maruhn.com/sec/qb2c.html
>
>Успехов
>--- sas

спасибо.

Однако, применять не буду :) А то корявость программы повысится в 2-а раза ;-) и больше в ней точно никто не разберется.

ps: тема закрыта - решение struct's & variadic функции.