Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » "Taschenrechner"

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.06.2008, 10:28 Uhr
~Splinter
Gast


Also, ich bin mit C++ noch ziemlich am Anfang (lerne mit einem Buch). Jetzt wollte ich einen Taschenrechner auf eigene Faust programmieren. Meine Oberfläche sieht so aus:

http://rapidshare.com/files/124638944/Vorlage.jpg.html

Und mein Programmiercode so:


//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float Zahl1, Zahl2, Ergebnis;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Ergebnis = Zahl1 + Zahl2;
Label4->Caption = String(Ergebnis);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
Ergebnis = Zahl1 - Zahl2;
Label4->Caption = String(Ergebnis);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Ergebnis = Zahl1 * Zahl2;
Label4->Caption = String(Ergebnis);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Ergebnis = Zahl1 / Zahl2;
Label4->Caption = String(Ergebnis);
}
//---------------------------------------------------------------------------




Nur wenn ich das Programm dann starte, gebe ich zwei Zahlen ein, und drücke auf ein Rechenzeichen, doch bei ALLEM kommt immer nur null raus..... Ich denke man muss noch so etwas in der Art dazumachen:

Ergebnis = StrToInt

ich weiß nur nicht ob das so stimmt, oder wohin es kommt. Bitte helft mir.


MfG Splinter
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.06.2008, 12:17 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Du musst erst mal die Inhalte der Eingabefelder in Zahl1/2 speichern (StrToInt), dann die Berechnung und Ausgabe wie gehabt. NB: Globale Variablen sind babba, setz die lieber lokal...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.06.2008, 12:53 Uhr
öni



Wäre doch schwachsinnig wenn er 4mal die 3 Variablen deklarieren müsste. Sowieso wenn man später mit dem Ergebnis weiterrechnen möchte tut man sich mit globalen Variablen leichter.

zu deinem Problem wie Leif schon gesagt hat.

Zahl1 = StrToInt(Edit1->Text);

geht dann aber nur für ganze Zahlen, für Kommazahlen StrToFloat benutzen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.06.2008, 16:31 Uhr
~Splinter
Gast


Ok, schonmal vielen Dank und vor allem für die Schnelligkeit. Hat mir sehr weitergeholfen. Nur bin ich mir noch nicht sicher: muss ich

Zahl1 = StrToFloat(Edit1->Text)

zu den Variablbestimmungen dazuschreiben, oder bei jedem Button neu schreiben?


PS: ich denk ich meld mich hier mal an^^
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
31.08.2008, 19:04 Uhr
Stratege993



Ja, du musst das bei jeden Knopf dazutun, also den Code bei jeden Knopf vor der entsprechenden Berechnung hinschreiben:

Code:
Zahl1 = StrToFloat(Edit1->Text)
Zahl2 = StrToFloat(Edit2->Text)



Ein kleiner Tipp, der nichts mit deiner Frage zu tun hat, aber man will ja was dazuleren. Nehme bei der Division mal statt:

Code:
Label4->Caption = String(Ergebnis);

diese Zeile:

C++:
Label4->Caption = FloatToStrF(Ergebnis,ffNumber,8,2);

Dadurch wird das ergebniss auf 2 Stellen nach dem Komme Gerundet (die letzte zahl, setzt die nachkommastellen fest).

Ich hoffe ich konnte dir helfen,
Stratege993
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: