Problem beim Programmieren


  • Olli001
  • 701 Aufrufe 2 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Problem beim Programmieren

    Hallo @ all!

    Also, erstmal im voraus! ICH BIN EIN NOOB!!!

    Wir arbeiten gerade in Informatik mit dem Program Delphi und sollen jetzt einen Taschenrechner programmieren!

    An einer Stelle komme ich nicht weiter, weil Delphi mit nem Fehler kommt, den ich nicht beheben kann!

    Deswegen bräuchte ich jetzt eure Hilfe!

    Hier die paar Zeilen vom Editor und die Fehlermeldung!


    procedure TTaschenrechner.btgleichClick(Sender: TObject);
    begin
    IF plus = true
    then eddisplay.text := Floattostr((zahl1)+StrtoFloat(eddisplay.text));
    plus := false
    else if minus = true
    then eddisplay.text := Floattostr((zahl1)-StrtoFloat(eddisplay.text));
    minus := false
    else if multi = true
    then eddisplay.text := Floattostr((zahl1)*StrtoFloat(eddisplay.text));
    multi := false;
    else if teilen = true
    then eddisplay.text := Floattostr((zahl1)/StrtoFloat(eddisplay.text));
    teilen := false
    end;


    Fehlermeldungen:

    Erzeugen
    [Fehler] mTaschenrechner.pas(216): 'END' erwartet, aber 'ELSE' gefunden
    [Fehler] mTaschenrechner.pas(225): '.' erwartet, aber ';' gefunden
    [Fataler Fehler] pTaschenrechner.dpr(5): Verwendete Unit 'mTaschenrechner.pas' kann nicht compiliert werden


    So, könnt ihr mir sagen, warum der Fehler kommt bzw. wie ich es richtig machen kann!

    Denkt aber bitte daran, das ich ein absoluter Anfänger bin!bitte nicht irgendwelche komplexen schleifen erwähnen..........
    (lool)

    Danke im voraus!

    MFG

    Olli001
  • Hi,

    mal vorneweg egal wieviel Ahnung du vom Programmieren hast, gewöhn dir ne strukturierte schreibweiße an, kann sein dass die beim reinkopieren verloren ging ;)

    Sobald du mehr als eine Anweisung verwendest, mußt du zwingend begin... end benutzen, ähnlich der { } in C, ein Fehler ist vermutlich schon oberhalb dieser Prozedur, da dein Code zumindest syntaktisch stimmt, allerdings, nicht das macht was er machen soll, wegen fehlender Klammerung.

    Ist übrigens kein schöner Programmierstil, für solche Verschachtelungen, benutzt man eine case Anweisung!!
    Delphi hat eine sehr schöne Hilfe, die eigentlich völlig ausreicht um Fehler zu finden, probiers mal mit F1 ;)

    Greets Manastir

    Quellcode

    1. if plus = true then [b]begin[/b]
    2. eddisplay.text := Floattostr((zahl1)+StrtoFloat(eddisplay.text));
    3. plus := false;
    4. [b]end[/b]
    5. else [b]begin[/b]
    6. if minus = true then [b]begin[/b]
    7. eddisplay.text := Floattostr((zahl1)-StrtoFloat(eddisplay.text));
    8. minus := false;
    9. [b]end[/b]
    10. else [b]begin[/b]
    11. if multi = true then [b]begin[/b]
    12. eddisplay.text := Floattostr((zahl1)*StrtoFloat(eddisplay.text));
    13. multi := false;
    14. [b]end[/b]
    15. else [b]begin[/b]
    16. if teilen = true then [b]begin[/b]
    17. eddisplay.text := Floattostr((zahl1)/StrtoFloat(eddisplay.text));
    18. teilen := false;
    19. [b]end[/b];
    20. [b]end[/b];
    21. [b]end[/b];
    22. [b]end[/b];
    Alles anzeigen
  • SO, vielen Dank erst einmal für deine Hilfe!

    Hat geklappt! THX

    SO, zur Strukturierung:

    Ich benutze eine, ist halt nur beim kopieren verloren gegangen......

    Zur Case Methode:

    Die kenne ich leider noch nicht!kommt noch..... ;)

    Zur Hilfe:

    Wenn ich F1 drücke sagt Delphi, dass diese nicht gefunden werden kann, weil sie nicht installiert ist!

    (wüsste aber auch nicht, dass ich sie überhaupt installieren könnte) wahrscheinlich nicht dabei........


    Ja, das wäre es dann......

    Danke nochmal!noch ein schönes Wochenende und auf wiedersehen!


    MFG

    Olli001