Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кто такой DSystem? Проблема с прогой, подскажите! Листинг прилагается! 
:(
    Опции темы
LongInt
  Дата 10.5.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



Я паскаль вообще не изучал. Возникла необходимость использовать. Есть прога, но не компилится (пробовал в Турбо Паскаль 7). Подскажите в чем проблема!!! Плиз. 
Сначало была проблема с библиотеками. Нашел в инете. Но выдает ошибку на строке:
Код

z : DSystem;

что это???????

сам листинг:
Код

{$N+}
Uses Crt, Fmm, Graph, Graphics;

Var
   OutFile : Text;
   p2, x2 : Float;

Type Matrix22 = Array[1..2, 1..2] of Float;

Const
     p1 : Float = 1.0;
     p3 : Float = 20.0;
     p4 : Float = 10.0;
     p5 : Float = 0.6;
     p6 : Float = -5.0;
     x1 : Float = 0.0;
     LIMIT = 1E-8;

Function GetX1(pX2 : Float) : Float;
Begin
     GetX1 := (p1*pX2+p5*pX2-p5*p6) / (p1*p4)
End;

Function GetPrNum(M : Matrix22; var L1 : Float; var l2 : Float) : Boolean;
Var
   D : Float;
   b, c : Float;
Begin
     b := M[1][1]+M[2][2];
     c := M[1][1]*M[2][2]-M[1][2]*M[2][1];
     D := b*b - 4*c;
     if D<0 then begin GetPrNum := FALSE; exit; end;
     L1 := (-b+sqrt(D))/2;
     L2 := (-b-sqrt(D))/2;
     GetPrNum := TRUE;
end;

Function TestResult(M : Matrix22) : Boolean;
Var
   L1, l2, e : Float;
Begin
     TestResult := FALSE;
     e := exp(x2/(1+x2/p3));
     L1 := -p1*x1+p2*(1-x1)*e;
     L2 := -p1*x2+p2*p4*(1-x1)*e-p5*(x2-p6);
     if ( (abs(L1)<LIMIT) or (abs(L2)<LIMIT) ) then TestResult:=TRUE;
End;

Function GetP2(pX1, pX2 : Float; var Povorot : Boolean) : Float;
Var
   a, b, Temp, Temp1, L1, L2 : Float;
   M : Matrix22;
Begin
     Povorot := FALSE;
     a := exp(pX2/(1+pX2/p3));
     b := sqr(1/(1+pX2/p3));
     Temp1 := -(sqr(p1)+p1*p5) / (p1*a-p1*p4*(1-pX1)*a*b+p5*a);
     M[1][1] := -p1-Temp1*a;
     M[1][2] := (1-pX1)*a;
     M[2][1] := -Temp1*p4*a;
     M[2][2] := p4*(1-pX1)*a;
     GetPrNum(M, L1, L2);
     if ( (abs(L1)<LIMIT) or (abs(L2)<LIMIT) ) then Povorot := TRUE;
     GetP2 := Temp1;
End;

{$F+}
Function Zeroin1(Param : Float) : Float;
Var
   a, b, pX1, pP2 : Float;
   PType : Boolean;
Begin
     a := exp(Param/(1+Param/p3));
     pX1 := GetX1(Param);
     pP2 := GetP2(pX1, Param, PType);
     Zeroin1 := -p1*pX1+pP2*(1-pX1)*a
End;
{$F-}

Procedure MakeMatrix(var M : Matrix22; p21: Float);
Begin
     M[1][1] := -p1-p21*exp(x2/(1+x2/p3));
     M[1][2] := exp(x2/(1+x2/p3))*sqr(1/(1+x2/p3))*p21*(1-x1);
     M[2][1] := -p21*p4*exp(x2/(1+x2/p3));
     M[2][2] := -p1+p21*p4*(1-x1)*exp(x2/(1+x2/p3))*sqr(1/(1+x2/p3))-p5;
End;

Procedure WriteRes(a, b : ShortInt);
Var
   PType : Boolean;
   e, d, L1, L2 : Float;
   Matr : Matrix22;
Begin
     x2 := Zeroin(a, b, 1E-8, @Zeroin1);
     x1 := GetX1(x2);
     p2 := GetP2(x1, x2, PType);
     e := exp(x2/(1+x2/p3));
     d := sqr(1/(1+x2/p3));

     MakeMatrix(Matr, p2);

     Write(OutFile, p2:0:8, x1:15:8, x2:15:8);
     if TestResult(Matr) = TRUE then Write(OutFile, 'Ok':11)
              else Write(OutFile, '!FAILED!':11);
     if PType = TRUE then Write(OutFile, 'P':14)
              else Write(OutFile, 'V':14);

     MakeMatrix(Matr, p2+1E-8);
     GetPrNum(Matr, L1, L2);
     if ((L1>0) or (L2>0)) then Write(OutFile, 'N->':10)
        else Write(OutFile, 'U->':10);
     WriteLn(L1:0:4, L2:10:4);

     MakeMatrix(Matr, p2-1E-8);
     GetPrNum(Matr, L1, L2);
     if ((L1>0) or (L2>0)) then WriteLn(OutFile, 'N')
        else WriteLn(OutFile, 'U');
End;

Var
   z : DSystem;
   Gd, Gm : Integer;
   e1, e2, a1 : Float;
   ddd : Boolean;

Begin
     ClrScr;
     Assign(OutFile, 'Points.txt');
     Rewrite(OutFile);

     WriteLn(OutFile, '    p2      |      x1      |      x2      | Error control | Point type');
     WriteLn(OutFile);

     WriteRes(-1, 0);
     WriteRes(2, 3);

     gd := detect;
     InitGraph(gd, gm , '');
     z.SetDefault;
     z.bkcolor:=white;
     z.linecolor:=black;
     z.fontcolor:=black;
     z.graphiccolor:=black;
     z.Initcoords(0, 0, 640, 480, -2, 4, -3, 3);
     z.DrawCoords(True);
     x2 := -2;
     While x2<4 do begin
           a1 := exp(x2/(1+x2/p3));
           x1 := GetX1(x2);
           p2 := GetP2(x1, x2, ddd);

           e1 := -p1*x1+p2*(1-x1)*a1;
           e2 := -p1*x2+p2*p4*(1-x1)*a1-p5*(x2-p6);
           z.PutOnCoords(x2, e2, False);
           z.PutOnCoords(x2, e1, False);
           x2 := x2 + 0.001;
     end;
     ReadLn;
     Close(OutFile);
End.


Вообще суть программы в нахождении точек бифуркации по опр. мат. модели.
PM MAIL ICQ   Вверх
ama_kid
Дата 10.5.2007, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Цитата(LongInt @  10.5.2007,  10:23 Найти цитируемый пост)
что это???????
Самое очевидное - необъявленный объектный тип DSystem. Есть подозрение, что под 
Цитата(LongInt @  10.5.2007,  10:23 Найти цитируемый пост)
была проблема с библиотеками
подразумевалась проблема с модулем Fmm.pas (ибо единственный нештатный) и в том варианте, который ты
Цитата(LongInt @  10.5.2007,  10:23 Найти цитируемый пост)
Нашел в инете.
он не объявлен (а был объявлен в изначальном fmm.pas)
Решение - искать тот модуль, где этот тип объявлен, либо объявлять его самому...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
XupyprMV
Дата 10.5.2007, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 16.10.2006
Где: Сыктывкар, Россия

Репутация: нет
Всего: нет



Если мне не изменяет помять подключаемые библиотеки в паскале имеют расширение dcu и должны содержаться в папочке библиотек (там где другие dcu-файлы). 

Вопщем с твоей прогой должен быть ещё файлик ffm.dcu

Хотя если это библиотека пользователя...  smile 
PM MAIL WWW ICQ   Вверх
volvo877
Дата 10.5.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(XupyprMV @  10.5.2007,  12:21 Найти цитируемый пост)
Вопщем с твоей прогой должен быть ещё файлик ffm.dcu
При чем ЗДЕСЬ (в разделе Паскаль) файл с расширением DCU? Если уж на то пошло, то TPU...

Цитата(ama_kid @  10.5.2007,  11:29 Найти цитируемый пост)
подразумевалась проблема с модулем Fmm.pas (ибо единственный нештатный)
Graphics что, штатный? Тогда расскажи, в какой версии Паскаля... Когда уже научитесь смотреть на название раздела, прежде чем отвечать?


PM MAIL   Вверх
ama_kid
Дата 10.5.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Цитата(volvo877 @  10.5.2007,  15:00 Найти цитируемый пост)
Graphics что, штатный? Тогда расскажи, в какой версии Паскаля...
У меня BP7... прикрепляю исходный код этого модуля, лежащий у меня в архиве с этим паскалем в домашнем storage... Не знаю, штатный он или нет, входит ли он именно в BP7 или пакет Turbo Vision к нему, но то, что не я его писал - это я могу гарантировать... Еще остается вариант, что это какой-то сторонний модуль (возможно, я его когда-то закачивал и сохранил в тот же архив)...

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  graphics.pas 72,01 Kb


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
LongInt
Дата 10.5.2007, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



вообще у меня есть fmm.tpu и fmm.pas. Он спрашивал fmm.tpu. Я его нашел и кинул в bin. А fmm.pas ему тоже нужен??? Он где тогда должен лежать в bin или в той же папке где и сам проект? Хотя я и то и то пробовал - не помогает, а вот graphics.pas у меня небыло! Где эти *.pas по науке лежать должны?

Попробуйте кто-нибудь у себя запустить! Плиз. Может у меня еще чего-нибудь не хватает (кроме знаний smile )!!!!!!

PM MAIL ICQ   Вверх
ama_kid
Дата 11.5.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Цитата(LongInt @  10.5.2007,  17:51 Найти цитируемый пост)
 А fmm.pas ему тоже нужен???
Он нужен, если нет tpu... 
Цитата(LongInt @  10.5.2007,  17:51 Найти цитируемый пост)
Он где тогда должен лежать в bin или в той же папке где и сам проект?
Он может лежать в любой доступной компилятору папке (в т.ч. и в папке с проектом), но как правило, модули лежат в папке, описанной в Options->Directories->Units...
Цитата(LongInt @  10.5.2007,  17:51 Найти цитируемый пост)
Попробуйте кто-нибудь у себя запустить!
Как же нам запустить, если, к примеру, у меня нет твоего файла fmm.pas? Приаттачь целиком проект - посмотрим...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
LongInt
Дата 11.5.2007, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



Цитата(ama_kid @ 11.5.2007,  09:11)
Как же нам запустить, если, к примеру, у меня нет твоего файла fmm.pas? Приаттачь целиком проект - посмотрим...

вот

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  matmod_u.rar 84,65 Kb
PM MAIL ICQ   Вверх
ama_kid
Дата 11.5.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: нет
Всего: 95



Мда, здесь вряд ли что-то сделаешь, ибо описания типа DSystem отстутствует. Либо должен быть дополнительный модуль, либо описание в теле программы... Ни того, ни другого не наблюдается, следовательно надо писать свой объект-заменитель с аналогчными свойствами и методами исходя из логики программы...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
LongInt
Дата 11.5.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 14.11.2006

Репутация: нет
Всего: 1



блин....
судя по всему он графики рисует!?
не реально это написать не зная язык...
ладно буду думать.
Спасибо всем!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.