Пожалуйста, вот моя программка, как есть. Сорри, я не большой спец по С++
, но зато написано простенько, поймет даже школьник. Надо - выложу проект, чтобы все могли поправить-покомпилировать, если это интересно.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#include <stdio.h>
#pragma hdrstop
#include "U_Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TF_Main *F_Main;
//---------------------------------------------------------------------------
__fastcall TF_Main::TF_Main(TComponent* Owner)
: TForm(Owner)
{
DecimalSeparator='.';
Application->ShowHint=true;
for (int i=0;i<ControlCount;i++)
Controls[i]->ShowHint=true;
btnCalculate->Click();
}
//---------------------------------------------------------------------------
void __fastcall TF_Main::btnCalculateClick(TObject *Sender)
{
char str[256]={0};
// n
double n=sqrt(leRn->Text.ToDouble()/(leEfficiency->Text.ToDouble()*leRaa->Text.ToDouble
()));
sprintf(str,"%.4f",n);
lN->Caption=AnsiString(str);
double _n=1./n;
sprintf(str,"%.4f",_n);
l_N->Caption=AnsiString(str);
// W1 resistance
double r1=leRaa->Text.ToDouble()*(1.-leEfficiency->Text.ToDouble());
sprintf(str,"%.1f",r1);
lR1->Caption=AnsiString(str);
// core Q
double qc=15*lePout->Text.ToDouble()/leFn->Text.ToDouble();
sprintf(str,"%.2f",qc);
lQc->Caption=AnsiString(str);
// W1
double w1=(2.2*10000000.*sqrt(lePout->Text.ToDouble()*leRaa->Text.ToDouble()))/
(leFn->Text.ToDouble()*leSc->Text.ToDouble()*leKc->Text.ToDouble()*leBm->Text.
ToDouble());
sprintf(str,"%.2f",w1);
lW1->Caption=AnsiString(str);
// W2
double w2=w1*n;
sprintf(str,"%.2f",w2);
lW2->Caption=AnsiString(str);
// d1
double d1=15.*0.001*sqrt(leLm->Text.ToDouble()*w1/r1);
double _d1=0.022*sqrt(leIa0->Text.ToDouble());
if (_d1>d1)
sprintf(str,"%.2f",_d1);
else
sprintf(str,"%.2f",d1);
lD1->Caption=AnsiString(str);
// d2
double d2=d1/sqrt(n);
sprintf(str,"%.2f",d2);
lD2->Caption=AnsiString(str);
// L1
double L1=0.4*3.14*1000*w1*w1*leSc->Text.ToDouble()*0.00000001/leLm->Text.ToDouble();
sprintf(str,"%.2f",L1);
lL1->Caption=AnsiString(str);
}
//---------------------------------------------------------------------------
Цитата: Я закончил делать что-либо 10 лет назад и меня интересует только методика EaNot "из любви к искусству".
Немного смешно читать, прошу прощения, без обид
.