Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Kleines Rechnungsprogramm (https://www.delphipraxis.net/54654-kleines-rechnungsprogramm.html)

Final 9. Okt 2005 00:04


Kleines Rechnungsprogramm
 
Is zwar sicher einfach bin aber aufgeschmissen:
Ich soll ein Programm schrieben wo ich 3 Beträge eingeben kann, diese addiert werden, falls diese dann unter 100 euro liegen 7,50 porto dazukommen, dann noch die mwst und zu guter letzt der gesamtbetrag ausgegeben wird.

war unsere erste stunde mit delphi und unsere lehrerin hat das aufgegeben ohne uns zu erklärn wie wir das machen solln und ich weis z.B. net was strtoint is weil sie gemeint hat "schreibs da hin" aber nich erklärt hat wasses is es

in dem sinne bin ich aufgeschmissen ich weis das irgendwas mit if then else is und das ich 3 edit felder und 9 labels brauch aber das wars au schon ^^ ich habs jetzt mal mit ner delphi faq versucht aber so richtig geholfen hat die mir net es scheiterte schon daran die eingabe ausm edit feld ner variablen zuzuweisen

bin für jede hilfe dankbar

mfg

[edit] sorry falsche rubrik [/edit]

Daniel G 9. Okt 2005 00:12

Re: Kleines Rechnungsprogramm
 
:dp: Willkommen in der DP :dp:

Zitat:

Zitat von Final
z.B. net was strtoint is weil sie gemeint hat "schreibs da hin" aber nich erklärt hat wasses is es

Mach es so, wie deine Lehrerin gesagt hat:

Schreib's hin!

Allerdings hätte sie dir dann auch noch sagen müssen:

Schreib den Begriff (z.B.: "StrToInt") hin, markiere ihn und drücke "F1". Damit rufst du die Delphi - Hilfe auf, die sich wunderbar für solche Zwecke eignet.

//Edit: Na ja, Lehrer halt....

Eichhoernchen 9. Okt 2005 00:22

Re: Kleines Rechnungsprogramm
 
hmm, erstmal Willkommen hier ;)

Naja komischen Lehrer haste da... naja

Also Delphi...

erstmal Delphi unterscheidet zwischen verschiedenen Datentypen wie z.B. integer(ganze Zahlen[-1,2,..]) oder strings (wortketten['hallo'])

Deine Rechnung benötigt aber denke ich mal Fließkommazahlen(d.h. 2,3122) daher müsstest du einen Typ wie double nehmen.

Ich hoffe du weißt wie du Variablen deklarierst..

naja sagen wir mal du hast 1ne variable vom typ double:

Delphi-Quellcode:
var erg : double;  <--- Variable erg vom typ double
so nun hast du etwas in deinen Edit[text]Feldern.
Wie der Name schon sagt ist das ein Text d.h. ein string, da du aber in Delphi nicht mit strings rechnen kannst, müssen diese umgeformt werden, dies geschieht mit Befehlen wie StrToInt('13') oder StrToFloat('2.131')

Um den Text aus dem Feld zu bekommen musst du FELDNAME.Text schreiben, standartmäßig heißt das 1. Feld Edit1 also:
Edit1.text
usw..

Soo nun möchtest du 3 Felder addieren Bsp.:
Delphi-Quellcode:
var erg : double;
Begin
 erg := StrToFloat(Edit1.text) + StrToFloat(Edit2.text) + StrToFloat(Edit3.text);
end;
jetzt steht in der variablen erg die summe der 3 Felder!

Und wenn diese Summe über 100 geht soll etwas passieren:
Delphi-Quellcode:
var erg : double;
Begin
 erg := StrToFloat(Edit1.text) + StrToFloat(Edit2.text) + StrToFloat(Edit3.text);
if erg > 100
  then //was passieren soll wenn es über 100 ist
  else //was passieren soll wenn es nicht über 100 ist
end;
Und um eine Zahl wieder in einen String zu konvertieren kannst du IntToStr(123) oder FloatToStr(2.3123) verwenden!

zecke 9. Okt 2005 00:27

Re: Kleines Rechnungsprogramm
 
Zitat:

var erg : double;
Begin
erg := StrTioFloat(Edit1.text) + StrToFloat(Edit2.text) + StrToFloat(Edit3.text);
if erg > 100
then //was passieren soll wenn es über 100 ist
else //was passieren soll wenn es nicht über 100 ist
end;
StrToFloat natürlich, Tippföööhler :stupid: - aber das wirst du selber gemerkt haben beim ausprobieren.

Eichhoernchen 9. Okt 2005 00:33

Re: Kleines Rechnungsprogramm
 
hab ich nicht ausprobiert^^ naja ich hatte es selbst gesehen und geändert abgesendet und dann kam aber das schon ein Beitrag in der zwischenzeit geschrieben wurde, scheint mir das das nicht übernommen wurde dann^^
änder ich dann mal fix

DP-Maintenance 9. Okt 2005 06:59

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Fragen / Anregungen zur DP" nach "Sonstige Fragen zu Delphi" verschoben.
In der Sparte "Fragen und Anregungen" bitte nur Fragen zum Forum posten und nicht zum programmieren. Danke.

Final 9. Okt 2005 08:39

Re: Kleines Rechnungsprogramm
 
Moin moin!

Erstmal Danke für die Hilfe, ich hab jetzt mal dran rumgebastelt.
Aber folgendes: ich kann als Beträge keine KOmmazahlen einsetzen und so wie ichs jetzt hab läufts net weil er anstatt else end erwartet wieso auch immer. und wenn ich sowohl <100 als auch >=100 mit zwei getrennten if´s deklarier dann verdreht er wann er mwst versand dazurechnen muss und wann net.
schauts euch einfach mal an:

Delphi-Quellcode:
var erg : real;
    erg2 : real;
    erg3 : real;

Begin
erg := strtofloat(Edit1.text) + strtofloat(Edit2.text) + strtofloat(Edit3.text);

if erg < 100
  then
  label7.Caption := FloatToStr(7.50);
  erg2 := (erg + 7.50) * 0.16;
  label8.caption := FloatToStr(erg2);
  erg3 := (erg + 7.50) * 1.16;
  label9.caption := FloatToStr(erg3)
else
  label7.Caption := FloatToStr(0);
  erg2 := erg * 0.16;
  label8.caption := FloatToStr(erg2);
  erg3 := erg * 1.16;
  label9.caption := FloatToStr(erg3);

end;

end.

tigerman33 9. Okt 2005 09:00

Re: Kleines Rechnungsprogramm
 
Nach then und else erwartet der Compiler nur jeweils eine einzige Anweisung. Wenn du mehrere Anweisungen haben willst, musst du die mit begin und end einschließen:
Delphi-Quellcode:
if <Bedingung> then begin
  Anweisung1
  Anweisung2
  ...
end else begin
  Anweisung1
  Anweisung2
  ...
end;

Sharky 9. Okt 2005 09:27

Re: Kleines Rechnungsprogramm
 
Hai Final,

deinen Code kannst Du wesentlich verkürzen und damit mögliche Fehler vermeiden. In der Berechnung ist ja nur das Porto der verändernde Faktor. Also reicht es aus wenn Du dir in einer Variable den Betrag für das Porto speicherst und in den Berechnungen dann diese Variable verwendest:
Delphi-Quellcode:
procedure TForm1.btn_TestenClick(Sender: TObject);
var
  netto : Extended;
  mwst : Extended;
  brutto : Extended;
  porto : Extended;
Begin
  porto := 0;
  netto := strtofloat(edt_Betrag1.text)
          + strtofloat(edt_Betrag2.text)
          + strtofloat(edt_Betrag3.text);
  if netto < 100  then
  begin
   porto := 7.5;
  end;
  lbl_Porto.Caption := FloatToStr(porto);
  mwst := (netto + porto) * 0.16;
  lbl_Summe1.caption := FloatToStr(mwst);
  brutto := (netto + porto) * 1.16;
  lbl_Summe2.caption := FloatToStr(brutto)
end;
Natürlich sollte verhindert werden das in den Editfeldern etwas anderes als gültige Zahlen stehen. Sonst würde bei der Umwandlung mit StrToFloat ein Fehler auftreten.

Immer eines Berücksichtigen:
Im Quellcode ist der Dezimalseperator ein "." ist (3.56 oder 2.78 ). Bei der Umwandlung mit StrToFloat wird aber der in Windows eingestellte Delphi-Referenz durchsuchenDezimalSeperator verwendet. In Deutschland als 3,56 oder 2,78.

Final 9. Okt 2005 10:37

Re: Kleines Rechnungsprogramm
 
kk danke leute ich hab zwar meinen fehler wegen der portoberechnung noch nich gerrafft aber immerhin läufts jetzt und ich verstehs ;)

mfg und thx final

[edit] einen hab ich noch: wie bring ich denn delphi dazu das es auf 2 nachkommastellen rundet, und nich auf 4 so wie in meinem prog?

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz