Avatar billede thomassoerensen Nybegynder
03. juni 2002 - 16:14 Der er 7 kommentarer og
1 løsning

Borland C++ Builder 5: Hvordan laves simpelt beregningsprogram?

Hej Eksperter
Jeg vil gerne vide hvordan jeg skal lave et lille program der udførere en beregning af to formler samtidig. Jeg vil derne have en form der har 5 input felter - vil hver sin variabel i min formel, derefter skal resultatet - to resultater - vises uden at input parametrene resettes.

Det må være noget med fen edit felter hvor værdierne løber gennem mine foprmler og så vises på en label eller er jeg helt ude i skoven?

Tak på fophånd
Thomas
Avatar billede kamikaze Nybegynder
03. juni 2002 - 16:30 #1
Det lyder ret simpelt. Men det er umuligt uden at kende formlerne og variablerne :-) Skriv lidt mere om hvad det er du vil have regnet ud (altså input og forventet output)
Avatar billede thomassoerensen Nybegynder
03. juni 2002 - 16:42 #2
Det er en formel til at beregne fordelingen at vægt i en bil der bremser eller accellererer - der er 5 variabler
G = bilens vægt i kilo,
h = højde på tyngdepunkt målt i cm,
B = bremsekraft målt i kg,
d = andel af vægten der er på forhjulene
w = længde mellem for og baghjul

Formlerne ser således ud:
Lf(vægt på forhjulene) = d*G + B*h/w
Lr(vægt på baghjulene) = (1-d)*G - B*h/w

Resultaterne (Lf og Lr) er et udtryk for hvor mange kilo henholdsvis for- og baghjul belastes med når der bremses med en bestemt kraft.

Jeg vil gerne kunne lægge mine variabler ind i fem input bokse -> klikke på en "Beregn" knap -> se resultatet i to bokse.

Jeg ved det ikke er svært - jeg har bare ikke lært en pind om GUI programmering endnu - og det er lidt irriterende at lægge alle variabler ind i dos programmet hver gang jeg vil lave en ny beregning.

Tak på forhånd
Thomas
Avatar billede kamikaze Nybegynder
03. juni 2002 - 22:52 #3
Hmmm... Skal det være i Borland C++ Builder??? Har du ikke Micorsoft Visual C++ ???
Avatar billede kamikaze Nybegynder
03. juni 2002 - 22:53 #4
(Jeg har ikke lige installeret C++ Builder så jeg kan ikke poste kode derfra -:)
Avatar billede thomassoerensen Nybegynder
03. juni 2002 - 22:58 #5
Hej igen.
Jeg foretrækker Borland idet jeg har hørt at den laver kode der er tættere på standarden end MS V C++ -men jeg har Visual C++ - den skal bare lige installeres :)

Thomas
Avatar billede bjk Nybegynder
07. juni 2002 - 23:07 #6
Jeg placerer 5 edits på formen, en for hver variabel. Desuden en "Beregn"-button, og 2 labels til at vise resultaterne i.

Jeg dobbeltklikker på "Beregn"-knappen, hvilket vil tilføje en handler til knappens "OnClick"-event. I denne skriver man så den kode som skal udføres når man trykker på knappen. Jeg skriver følgende kode i denne event-handler :

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int G = Edit1->Text.ToInt();
        int h = Edit2->Text.ToInt();
        int B = Edit3->Text.ToInt();
        int d = Edit4->Text.ToInt();
        int w = Edit5->Text.ToInt();
        int Lf = d * G + B * h/w;
        int Lr = (1 - d) * G - B * h/w;
        Label1->Caption = Lr;
        Label2->Caption = Lf;
}

Når runner programmet og  trykker på knappen bliver de to labels udfyldt med de beregnede værdier. Du skal dog være opmærksom på at Edit::Text::ToInt funktionen thrower en exception hvis der står noget andet end en integer-værdi i felterne. Så du kan enten lave en try/catch blok uden om funktionskaldene, og lave din fejl-behandlingskode her, eller du kan lave en event-handler for edit-kontrollernes OnChange-event, det kommer an på hvornår de vil have at felt-værdierne skal evalueres, om det skal ske når man indtaster noget eller om det først skal ske når man trykker beregn.

Hvad angår det med at Builder skulle lave kode der er tættere på standarden mener jeg at det er noget vrøvl. Du kan lave standard-kode både i Builder og Visual C++,hvis du skriver det hele i hånden og kun bruger standard-bibliotekerne. Eller du kan tage eksisterende C++-programmer skrevet i standard C++ og generelt umiddelbart kompilere dem i begge miljøer. Men lige så snart du bruger de medfølgende api'er, eller sætter dem til at genere noget kode, så er det allerede fyldt med ting der ligger uden for standarderne. Builder indeholder en hel del udvidelser i forhold til standarden, mange af dem for at gøre det kompatibelt med Object Pascal /Delphi. Der er f.eks. closures, properties, classid, declspec og published af udvidelser i Builder. Hvis du bruger Builder til at genere et simpelt gui-program som ovenstående, så er der allerede massere af "ikke-standard"-kode.
Avatar billede thomassoerensen Nybegynder
10. juni 2002 - 09:14 #7
Det prøver jeg i aften når jeg kommer hjem - det ser godt ud.

Thomas
Avatar billede thomassoerensen Nybegynder
10. juni 2002 - 16:11 #8
Det virker jo lige præcis som det jeg spurgte til.

Mange tak
bjk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester