Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem Operator oder Semikolon fehlt
TotenHosen01 - Sa 22.09.12 17:39
Titel: Problem Operator oder Semikolon fehlt
Hey, bin neu beim programmieren und hab folgendes Problem,
bei diesem Ausschnitt
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| end else (D = 0) begin x1:= (b/(2*a)); lX1.Caption := FloatToStr(x1); end; end else (a = 0) begin if (b <> 0)[search] IN df then |
soll bei dem begin //b5 und bei dem begin //b6 ein Operator oder Semikolon fehlen,
da aber vor einem else kein Semikolon hin darf, weiß ich nicht was daran falsch ist.
Moderiert von
Martok: Quote- durch Delphi-Tags ersetzt
Mathematiker - Sa 22.09.12 17:56
Hallo,
in Deinem Quelltextausschnitt sind einige Fehler.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| else (D = 0) begin x1:= (b/(2*a)); lX1.Caption := FloatToStr(x1); end; end else (a = 0) begin if (b <> 0)[search] IN df then |
Nach dem else steht (D = 0). Ist es ein Kommentar dann //(D = 0), soll es ein Test sein, so geht dies nur mit einem erneuten if ... then ... else
Das Gleiche gilt für das zweite else (a = 0) und ebenso für das Konstrukt
Delphi-Quelltext
1:
| if (b <> 0)[search] IN df |
Unklar sind vor allem [search] und df. Ist df eine Menge?
Um genauere Aussagen, auch zur logischen Struktur, zu geben, wäre es besser, wenn Du die ganze Prozedur/Methode veröffentlichen würdest.
Beste Grüße
Mathematiker
TotenHosen01 - So 23.09.12 19:56
Delphi-Quelltext
1:
| if (b <> 0)[search] IN df |
sorry, aber das war bei mir garnicht angegeben. Also das ist garnicht in meinem Text vorhanden. Ich weiß nicht wie das dahinkam.
Prozedur:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| var a, b, c, D, x1, x2 : single; begin a := StrToFloat(eA.Text); b := StrToFloat(eB.Text); c := StrToFloat(eC.Text); lX1.Caption := '' ; lX2.Caption := '' ; lLoesungstext.Caption := '' ;
if (a <> 0) then begin D := sqr(b/(2*a)) - c/a; if (D <> 0) then begin if (D > 0) then begin x1 := -b/(2*a)+sqrt(D); x2 := -b/(2*a)-sqrt(D); lX1.Caption := FloatToStr(x1); lX2.Caption := FloatToStr(x2); end else begin lLoesungstext.Caption := 'Es gibt keine reellen Lösungen.'; end; end else (D = 0) begin x1:= (b/(2*a)); lX1.Caption := FloatToStr(x1); end; end else (a = 0) begin if (b <> 0) then begin x1 := -(c/b) ; lX1.Caption := FloatToStr(x1); end; if (c <> 0) then begin lLoesungstext.Caption := 'Es gibt keine reellen Lösungen.'; end else begin lLoesungstext.Caption := 'Es gelten alle reellen Zahlen.'; end; end;
end; end. |
Moderiert von
Martok: Quote- durch Delphi-Tags ersetzt
Mathematiker - So 23.09.12 20:18
Hallo,
Hinter Deinen "else" stehen immer noch ungültige Zeichen, z.B.
Delphi-Quelltext
1: 2: 3:
| else (D = 0) ... else (a = 0) |
Entfernst Du dies, kommt keine Fehlermeldung mehr mit irgendwelchen fehlenden begin bzw. end.
Für die Zukunft wäre es besser, wenn Du Deinen Text als Delphi-Code kennzeichnen würdest.
Beste Grüße
Mathematiker
bummi - So 23.09.12 20:21
meinst Du das?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59:
| var a, b, c, D, x1, x2: single; begin a := StrToFloat(eA.Text); b := StrToFloat(eB.Text); c := StrToFloat(eC.Text); lX1.Caption := ''; lX2.Caption := ''; lLoesungstext.Caption := '';
if (a <> 0) then begin D := sqr(b / (2 * a)) - c / a; if (D <> 0) then begin if (D > 0) then begin x1 := -b / (2 * a) + sqrt(D); x2 := -b / (2 * a) - sqrt(D); lX1.Caption := FloatToStr(x1); lX2.Caption := FloatToStr(x2); end else begin lLoesungstext.Caption := 'Es gibt keine reellen Lösungen.'; end; end else if (D = 0) then begin x1 := (b / (2 * a)); lX1.Caption := FloatToStr(x1); end; end else if (a = 0) then begin if (b <> 0) then begin x1 := -(c / b); lX1.Caption := FloatToStr(x1); end; if (c <> 0) then begin lLoesungstext.Caption := 'Es gibt keine reellen Lösungen.'; end else begin lLoesungstext.Caption := 'Es gelten alle reellen Zahlen.'; end; end; end; |
TotenHosen01 - So 23.09.12 20:23
okay, dankeschön (:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!