The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
math library development, !*! ChiP, 17-Янв-04, 01:12  [смотреть все]
Доброго времени суток, сообщество!

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

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

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

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

  • math library development, !*! SnaiL, 03:57 , 17-Янв-04 (1)
    Не мучай голову, реализуй так:

    /**
    *    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, 01:36 , 19-Янв-04 (4)
      >struct termo_dynamic_object
      >{
      > SvoistvoType svoistvo1, svoistvo2, ... ;
      >};
      >
      >/* и тут список твоих методов */
      >
      >ret_type method1(termo_dynamic_object *tmo, ...)
      >{
      > ...
      >}

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

      Спасибо!

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

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

    • math library development, !*! ChiP, 01:39 , 19-Янв-04 (5)

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

      безусловно.

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

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

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

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

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

    Успехов
    --- sas

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

      спасибо.

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру