Автор Тема: Delphi. Нужно помочь ввести одну формулу.  (Прочитано 2827 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн privatnebank

  • Пользователь
  • **
  • Сообщений: 24
    • Просмотр профиля
есть такой фрагмент
procedure TfrmMain.CalcAdvData;
var
  Frn,Ftn,Frv,Ftv:extended;
  Sn,Sv:extended;
  kriteriu:extended;
  wn,wp:extended;
  Ft1:extended;
  Fr1:Extended;
  Dr,Dt,Lambda:extended;
begin
  try
    psiN:=ArcCos(R0/(RotorParams.Rro{/2.5}));
    psiV:=ArcCos(R0/(RotorParams.Rri{/2.5}));
    edtPsiN.Text:=FloatToStrF(psiN*180/pi,ffFixed,7,3);
    edtPsiV.Text:=FloatToStrF(psiV*180/pi,ffFixed,7,3);

    Ctb:=C*sin(psiV);
    Ctn:=C*sin(psiN);
    Crb:=C*cos(psiV);
    Crn:=C*cos(psiN);

    Sn:=((RotorParams.Rro{/2.5})*En)/1000/1000;
    Sv:=((RotorParams.Rri{/2.5})*Ev)/1000/1000;
    edtSn.Text:=FloatToStrF(Sn*1000,ffFixed,7,4);
    edtSv.Text:=FloatToStrF(Sv*1000,ffFixed,7,4);
    Frn:=Crn*Sqr(Vn)*pi*(RotorParams.Rro{/2.5}/1000)*Sn;
    Ftn:=Ctn*Sqr(Vn)*pi*(RotorParams.Rro{/2.5}/1000)*Sn;
    Frv:=Crb*Sqr(Vv)*pi*(RotorParams.Rri{/2.5}/1000)*Sv;
    Ftv:=Ctb*Sqr(Vv)*pi*(RotorParams.Rri{/2.5}/1000)*Sv;
    nc:=f/P;
    wn:=2*pi*nc;
    wp:=(2*pi*nr)/60;
    C:=Round( (( (wn-wp)/Ro )*Hp{/1000}));
    speC.Value:=c;
    edtNc.Text:=FloatToStrF((60*Wn)/(2*pi),ffFixed,16,0);
    Ft1:=Ctn*Sqr(Vn)*(En/1000)*pi*sqr((RotorParams.Rro/1000))-Ctb*sqr(Vv)*(Ev/1000)*pi*sqr((RotorParams.Rri/1000));
    Fr1:=Crn*Sqr(Vn)*(En/1000)*pi*sqr((RotorParams.Rro/1000))-Crb*sqr(Vv)*(Ev/1000)*pi*sqr((RotorParams.Rri/1000));
   edtFt.Text:=FloatToStrF(Ft1,ffFixed,16,3);
   edtFr.Text:=FloatToStrF(Fr1,ffFixed,16,3);
 
   try
      Dr:=(Fr1/(e/1000));
      Dt:=(Ft1/(e/1000));
      a:=(Dr/(m/1000));
      b:=Dt/(m/1000);

   except
      a:=0;
      b:=0;

   end;
    edtAlpha.Text:=FloatToStrF(a,ffFixed,16,3);
    edtBeta.Text:=FloatToStrF(b,ffFixed,16,3);
    pnlError.Visible:=false;
  except
    pnlError.Visible:=true;
  end;
 
  end;


Помогите сюда дописать следующую формулу:
kriteriu:=(Dt*sqrt(m))/(LaMBdA*sqrt(Dr));
edtKrit.Text:=FloatToStrF(kriteriu,ffFixed,16,3);
У меня при попітке дописать віскакивает постоянно ошибка:
[Warning] uMain.pas(805): Variable 'Dt' might not have been initialized
[Warning] uMain.pas(805): Variable 'Dr' might not have been initialized

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Delphi. Нужно помочь ввести одну формулу.
« Ответ #1 : 27 Мая 2010, 20:21:28 »
Это не ошибка а предупреждение, а том, что ваши переменные имеют никакого начального значения. После begin в обработчик впишите
Dt:=0;
Dr:=0;
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн privatnebank

  • Пользователь
  • **
  • Сообщений: 24
    • Просмотр профиля
Re: Delphi. Нужно помочь ввести одну формулу.
« Ответ #2 : 27 Мая 2010, 20:28:41 »
После добавления:
...
begin
  try
  Dr:=0;
  Dt:=0;
....
....
....
try
      Dr:=(Fr1/(e/1000));
      Dt:=(Ft1/(e/1000));
      a:=(Dr/(m/1000));
      b:=Dt/(m/1000);
      kriteriu:=(Dt*sqrt(m))/(LaMBdA*sqrt(Dr));
   except
      a:=0;
      b:=0;
      kriteriu:=0;
   end;
    edtAlpha.Text:=FloatToStrF(a,ffFixed,16,3);
    edtBeta.Text:=FloatToStrF(b,ffFixed,16,3);
    edit2.Text:=FloatToStrF(kriteriu,ffFixed,16,3);
    pnlError.Visible:=false;
  except
    pnlError.Visible:=true;
  end;

В поля формы edtAlpha.Text, edtBeta.Text, edit2.Text выводятся одни нули. Даже в тех случаях, когда деления на ноль нет

Оффлайн privatnebank

  • Пользователь
  • **
  • Сообщений: 24
    • Просмотр профиля
Re: Delphi. Нужно помочь ввести одну формулу.
« Ответ #3 : 27 Мая 2010, 20:53:07 »
хммм.... Если в формулу добавлять по одной переменной и после компилить, то все номрально и без предупреждений.  ???

 

как написать уравнение на С++..?? помогите..срочно нужно.!!))

Автор Julenka

Ответов: 0
Просмотров: 1572
Последний ответ 26 Сентября 2011, 15:54:17
от Julenka
Информатика, нужно найти сумму чисел

Автор J-Den

Ответов: 1
Просмотров: 2872
Последний ответ 19 Декабря 2011, 00:37:01
от Selyd
помогите, плиз...очень нужно(((

Автор bifshtex

Ответов: 11
Просмотров: 4642
Последний ответ 22 Октября 2010, 17:49:53
от v1rus
Нужно написать программы на c++

Автор Жанна Бес

Ответов: 3
Просмотров: 9038
Последний ответ 22 Июня 2011, 20:45:23
от PROSTDJ
Нужно написать программу на С++

Автор Виктор199486

Ответов: 0
Просмотров: 4714
Последний ответ 25 Марта 2014, 18:52:06
от Виктор199486