nixp.ru v3.0

24 мая 2017,
среда,
22:39:42 MSK

DevOps с компанией «Флант»
BeyBa написал 1 мая 2006 года в 16:50 (314 просмотра) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 1 комментарий на сайте.

буду рада , если поможите найти ошибку

Program sposob_II;

uses crt,graph;

const

s=2;

var

  L1:array[0..4] of real;

  alfa: array[0..10] of real;

  q: array[0..s] of real;

  k_eps,eps,eps1,eps_max,b1,b2,x,xu,y,y1,y2,u,u1,up,delta,q1,q2,q3,z1,z2,tau:extended;

  t,t_kon,u0,v,k,k1,k2,ku,yu,x1,d_alfa,epsmax,aalfa,r1,y3: extended;

  sch,i,m,j,g: integer;

  r:integer;

  st: string;

  gd,gm,n:integer;

  mx,my:integer;

  p:longint;

begin

clrscr;

t_kon:=100;

d_alfa:=0.5;

m:=10;

alfa[0]:=2;

ku:=1;

x1:=1;

u0:=1000000000;

L1[0]:=-20;

delta:=1/(sqr(10)*sqr(10)*sqr(10));

tau:=s*delta;

 for j:=0 to m do

     begin

          alfa[j]:=alfa[0]+j*d_alfa;

          aalfa:=sqr(alfa[j])*sqr(alfa[j]);

          k1:=(15-L1[0]-10/L1[0]);

          K2:=6/sqr(alfa[j])-1/10*aalfa+sqr(L1[0])-4*L1[0]/alfa[j]+15/(L1[0]*10*aalfa)-4/(L1[0]*alfa[j]*alfa[j]*alfa[j]);

          k:=k1/k2;

          k_eps:=k/ku;

          r1:=k/(10*aalfa);

          b1:=4/alfa[j]-L1[0]-1/k;

          b2:=4/(L1[0]*sqr(alfa[j])*alfa[j])-15/(L1[0]*10*aalfa)-10/(L1[0]*k);

           for i:=0 to s do

               begin

                    q:=0;

               end;

               sch:=0;q1:=0;q2:=0;q3:=0;x:=0;xu:=0;y:=0;yu:=0;

               z1:=0;z2:=0;eps1:=0;u:=0;up:=0;y2:=0;y1:=0;y3:=0;

               eps:=0;t:=0;g:=-1 ;v:=0; aa:=1; eps_max:=0;

          while t

                 begin

                   up:=u;

                   u1:=u-up)/delta;

                   x:=1;

                   eps1:=(x-y-b1*y1-b2*y2);

                  u:=(u+delta*(k_eps*eps1-u)/(r1));

                   y:=y+delta*y1;

                   y1:=y1+delta*y2;

                   y2:=y2+(delta*(u-y1-15*y2+(L1[0])*u1))/10;

                     eps:=x-y;

                   eps_max:=eps_max+x1*(abs(1-y)*delta);

                   t:=t+delta;

                   g:=g+1;

                 end;

     end;

плюется вот этим — Floting point overlow

rgo

ну как бы так сказать… Скорее всего беда в делении на слишком близкое к нулю значение (собственно, вроде как кандидатов и не наблюдается). Надеюсь речь про nix, а не про DOS+TurboPascal? Надо просто запустить программу под gdb, дождаться SIGFPE, сказать list и, таким образом, узнать в каком месте происходит беда. А дальше, зная о чём речь идёт в программе, можно будет сообразить, почему так происходит.

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

BeyBa

Речь как раз идет про DOS+TurboPascal….

переменных столько т.к. у меня там еще куча графиков ниже должна быть. Просто сюда я все это запихивать не стала.

За совет спасибо)

Genie
Речь как раз идет про DOS+TurboPascal….

<font color=«grey»>нетопично несколько.. тематике форума</font>

если я не обшибаюсь, там есть воможность пошагового исполнения.

да и отладка тоже есть. директива компилятора ${D+}, вроде бы..

myst

Да блин в TurboPascal визуальный отладчик, который автоматом вылетит на нужной строке. В чём проблема?

Genie
который автоматом вылетит на нужной строке. В чём проблема?

в том, что надо его разрешить включаться..

директивой компилятора..

myst

По умолчанию он включается, если ты запускаешь прямо из IDE.