AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Taschenrechner Ausgabe

Ein Thema von safak67 · begonnen am 5. Jun 2009 · letzter Beitrag vom 8. Jun 2009
Thema geschlossen
Seite 2 von 8     12 34     Letzte »    
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#11

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:21
Delphi-Quellcode:
function TFormTR.BerechneTerm(Formular: string): Double;

  var Seg1,Seg2 :double;
      index : integer;
      Op : string;
begin
  Formular := LabelAnzeige.Caption;
  for index := 0 to 3 do
  begin
    case index of
    0: Op := '*';
    1: Op := '/';
    2: Op := '+';
    3: Op := '-';
    end;
    if pos(Op,Formular) > 1 then
    begin
      Seg1 := BerechneTerm(copy(Formular,1,pos(Op,Formular) - 1));
      Seg2 := BerechneTerm(copy(Formular,pos(Op,Formular) + 1,length(Formular)));
      case index of
        0: Result := Seg1 + Seg2;
        1: Result := Seg1 - Seg2;
        2: Result := Seg1 * Seg2;
        3: Result := Seg1 / Seg2;
     end;
  end;
end;
   Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption));

end;
also wie ich das ergebnis ausgebe weiß ich auch noch nicht..
 
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:44
Ich kenne jetzt nicht den ganzen Code, aber was möglicherweise falsch läuft

Irgendwo im Code wird BerechneTerm zum ersten mal aufgerufen, da könnte folgendes stehen
Delphi-Quellcode:
// Aufruf der rekursiven Methode
BerechneTerm(LabelAnzeige.Caption);
// Danach Anzeige des Ergebnis
LabelAnzeige.Caption := FloatToStr(Result);
innerhalb der function BerechneTerm läuft was falsch
Delphi-Quellcode:
function TFormTR.BerechneTerm(Formular: string): Double;
[...]
// Das muss weg, macht keinen Sinn
//Formular := LabelAnzeige.Caption;

[...]
// Das muss innerhalb wohl auch weg
//Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption));

Zitat von safak67:
Ich bin halt noch ein Noob und ich will das auch lernen aber leider geht das nicht in zwei tagen.
Hier läuft im Forum etwas schief. Das es Leute gibt, die von Delphi/Pascal so wenig Ahnung haben, das auch offensichtliche Lösungsvorschläge nicht verstanden werden, wird nicht akzeptiert. Lebe einfach mir der Art der Antworten, das wird erst besser, wenn Du besser in Delphi wirst
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#13

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 08:57
Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption)); wenn ich diese weg mache, wo kommt dann die Ausgabe hin, ok das was da oben steht ist fehlerhaft aber muss die Ausgabe in die finction rein oder muss sie wo anders geschrieben werden..
 
Benutzerbild von nimmersattXD
nimmersattXD

Registriert seit: 1. Jun 2009
Ort: Sangerhausen
65 Beiträge
 
Delphi 7 Personal
 
#14

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:06
also erstmal result is der rueckgabewert der funktion, nicht gleichzusetzen mit einer ausgabe!

eine ausgabe kannst du zb mit einem label oder panel realisieren, wenns nur das ergebnis ist was du ausgeben moechtest, also einfach ein panel oder ein label auf deine form schieben und dann inder onclick routine vom button "=" oder "berechne" (weiss ja nich wie du den genannt hast):

Delphi-Quellcode:

label1.caption:=floattostr(berechne(labelanzeige.caption))
Sorry an alle fuer die es schwerfaellt meine texte zu lesen! ich bin im moment in england und hab nur eine englische tastatur, also leider keine umlaute usw.!

http://nimmersatt-xd.mybrute.com
 
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:14
Du scheinst nicht zu wissen wie du mit funktionen umzugehen hast, schau dir im Crashkurs mal die funktionen an dann wird dir das klarer.
Funktionen
Blackheart
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#16

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:27
Ich soll aber kein neues label machen, sondern es soll alles auf LabelAnzeige angezeigt werden.
Soll die Ausgabe in der Funktion drin sein, oder soll die woanders drin stehen?
 
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.356 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:29
Zitat von safak67:
Ich soll aber kein neues label machen, sondern es soll alles auf LabelAnzeige angezeigt werden.
Soll die Ausgabe in der Funktion drin sein, oder soll die woanders drin stehen?
Den Quelltext dafür hat dir Satty67 bereits gepostet...
http://www.delphipraxis.net/internal...044968#1044968

Sinnvoll wäre es wie dort gezeigt die Funktion aufzurufen und danach außerhalb den Label mit dem Rückgabewert zu beschriften.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
Benutzerbild von nimmersattXD
nimmersattXD

Registriert seit: 1. Jun 2009
Ort: Sangerhausen
65 Beiträge
 
Delphi 7 Personal
 
#18

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:31
sie sollte unter deine fertige berechnung, also wuerde ich sie in die onclick routine deines buttons machen den du drueckst um die berechnung zu starten!

dann nimm als ausgabe doch einfach das label!! also:

Delphi-Quellcode:

labelanzeige.caption:=floattostr(berechne(labelanzeige.caption));
Sorry an alle fuer die es schwerfaellt meine texte zu lesen! ich bin im moment in england und hab nur eine englische tastatur, also leider keine umlaute usw.!

http://nimmersatt-xd.mybrute.com
 
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:41
Zitat von jaenicke:
Sinnvoll wäre es wie dort gezeigt die Funktion aufzurufen und danach außerhalb den Label mit dem Rückgabewert zu beschriften.
Ja, Ich hab es leider wieder unglücklich "zerstückelt", was ihn wohl leider etwas überforderte, mangels Verständnis

Außerhalb steht (im ButtonClick von "=" möglicherweise)
LabelAnzeige.Caption := FloatToStr(BerechneTerm(LabelAnzeige.Caption)); Man muss klar sagen, das die Aufgabe für den aktuellen Wissensstand zu hoch gegriffen wurde. Ob das ein Fehler des Lehrers war oder ob safak67 davor zulange im Unterricht gepennt hat kann man nur raten. An safak67 nur den Rat, den Lehrer über den Umstand aufklären oder wenn es eigene Schuld ist, die Grundlagen (Links wurden genug aufgeführt) dringend nachholen.
 
safak67

Registriert seit: 22. Mär 2009
87 Beiträge
 
#20

Re: Taschenrechner Ausgabe

  Alt 5. Jun 2009, 09:49
Also meine Schuld ist es nicht das kann ich euch garantieren. Ich muss ein Praktikum machen und die Aufgbe wurde mir gestellt, und je schlechter ich das mache desto schlechtere Noten kriege ich. Wir hatten noch nicht mal Delphi als Programmiersprache nur c++ aber sogar da sind wir nicht soweit..

Das doofe ist ja das ich ein Rechenparse schreiben muss und das Programm was ich jetzt habe nicht ganz korekt ist..
ich habe es ein bisschen geändert aber meine berechnungen funktioieren iwi nicht

Delphi-Quellcode:
procedure TFormTR.spResultClick(Sender: TObject);
begin
  LabelAnzeige.Caption := FloatToStr(BerechneTerm(LabelAnzeige.Caption));
end;

function TFormTR.BerechneTerm(Formular: string): Double;

  var Seg1,Seg2 : double;
      index : integer;
      Op : string;
begin
  for index := 0 to 3 do
  begin
    case index of
    0: Op := '*';
    1: Op := '/';
    2: Op := '+';
    3: Op := '-';
    end;
    if pos(Op,Formular) > 1 then
    begin
      Seg1 := BerechneTerm(copy(Formular,1,pos(Op,Formular) - 1));
      Seg2 := BerechneTerm(copy(Formular,pos(Op,Formular) + 1,length(Formular)));
      case index of
        0: Result := Seg1 + Seg2;
        1: Result := Seg1 - Seg2;
        2: Result := Seg1 * Seg2;
        3: Result := Seg1 / Seg2;
     end;
  end;
end;
    //LabelAnzeige.Caption := FloatToStr(Result);
    //Result := FloatToStr(BerechneTerm(LabelAnzeige.Caption));

end;
 
Thema geschlossen
Seite 2 von 8     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz