Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Hilfe schleifen Ende (https://www.delphipraxis.net/131028-hilfe-schleifen-ende.html)

justloosit 17. Mär 2009 18:19


Hilfe schleifen Ende
 
ich hab ma ne frage ich möchte eine schleife beenden aber er schreibt :Oparator ist auf diesen Operandentyp nicht anwend bar würde mich freuhen wenn ihr mir helfen könntet eine lösung zu finden :
Delphi-Quellcode:
procedure TForm1.BerechnenButtonClick(Sender: TObject);
var SeiteA, SeiteB, SeiteC, s, Flaeche, Umfang :Real;

begin
SeiteA:=StrToFloat(SeiteAEdit.Text);
SeiteB:=StrToFloat(SeiteBEdit.Text);
SeiteC:=StrToFloat(SeiteCEdit.Text);
Umfang:=SeiteA + SeiteB + SeiteC;
s:=Umfang/2;
if SeiteA+SeiteB<SeiteC then
  write1.caption:=('Berechnung nicht Möglich')
  else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  end
  and if SeiteA+SeiteC<SeiteB then
    write1.caption:=('Berechnung nicht Möglich')
  else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  end
and if SeiteB+SeiteC<SeiteA then
  write1.caption:=('Berechnung nicht Möglich')
  else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  end
end;
end.
ps. der fehler muss i-wo am ende sein vielen dank für die antworten im vorraus

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]

mkinzler 17. Mär 2009 18:21

Re: Hilfe schleifen Ende
 
Welche Schleife?

_frank_ 17. Mär 2009 18:23

Re: Hilfe schleifen Ende
 
Zitat:

Zitat von justloosit
ps. der fehler muss i-wo am ende sein vielen dank für die antworten im vorraus

glaskugel auspackt...mhm, wo ist sie denn...ahhh :glaskugel:

der delphi-debugger sagt dir sicher ne Zeile, würde mich wundern, wenn nicht.

ansonsten tipp ich mal blind auf die beiden Zeilen:
Delphi-Quellcode:
  and if SeiteA+SeiteC<SeiteB then
...
  and if SeiteB+SeiteC<SeiteA then
//edit
Zitat:

Zitat von mkinzler
Welche Schleife?

kennst du nicht die If-Schleife? *g*


HTH Frank

justloosit 17. Mär 2009 18:24

Re: Hilfe schleifen Ende
 
wie meinst du das sry ich bin noch son noob xD na ich weiß einfach nich wie ich das ende mache damit ich das compilieren kann

_frank_ 17. Mär 2009 18:27

Re: Hilfe schleifen Ende
 
es kommt drauf an, was du machen willst...

"and" verknüpft 2 Bedingen/Werte logisch,

willst du einfach nur eine neue If-Abfrage anfangen muss das letzte mit nem Semikolon abgeschlossen werden (also end;). steht aber in jedem Tutorial :)

HTH Frank

justloosit 17. Mär 2009 18:31

Re: Hilfe schleifen Ende
 
na er sagt:Oparator ist auf diesen Operandentyp nicht anwendbar

und zeigt auf diese zeile:
end
end;<----
end.
na ich will eig das sich die alle auf eine prozedur beziehen und dann funzt das ja nicht mehr oder?

_frank_ 17. Mär 2009 18:33

Re: Hilfe schleifen Ende
 
mal davon abgesehen, dass bei dem end davor auch das Semikolon fehlt, hast du scheinbar das "and" noch drin

Gruß Frank

divBy0 17. Mär 2009 18:39

Re: Hilfe schleifen Ende
 
Ich glaube du willst so etwas:

Delphi-Quellcode:
if (SeiteA+SeiteB<SeiteC) or (SeiteA+SeiteC<SeiteB) or (SeiteB+SeiteC<SeiteA) then
  write1.caption:=('Berechnung nicht Möglich')
  else
  begin
    Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
    FlaecheEdit.Text:=FloatToStr(Flaeche);
    UmfangEdit.Text:=FloatToStr(Umfang);
  end;

SirThornberry 17. Mär 2009 18:39

Re: Hilfe schleifen Ende
 
Zitat:

Zitat von _frank_
es kommt drauf an, was du machen willst...

"and" verknüpft 2 Bedingen/Werte logisch...

Fast korrekt :-) and verknüpft 2 Werte nur logisch wenn es boolsche typen sind. Sind es ordinale Werte so werden sie bitweise verknüpft.

DP-Maintenance 17. Mär 2009 18:48

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Fragen / Anregungen zur DP" nach "Object-Pascal / Delphi-Language" verschoben.

justloosit 17. Mär 2009 18:55

Re: Hilfe schleifen Ende
 
oh danke dayBoy jetzt funzt es aber kannst du mir vllt noch helfen was ich machen muss damit es dann nicht weiter drin stehen bleibt in dem label wenn ich dann wirklich funktionnierende werte hab?

_frank_ 17. Mär 2009 19:40

Re: Hilfe schleifen Ende
 
Zitat:

Zitat von justloosit
oh danke dayBoy

schau nochmal genau hin wie dein Helfer heist :)
Zitat:

Zitat von justloosit
jetzt funzt es aber kannst du mir vllt noch helfen was ich machen muss damit es dann nicht weiter drin stehen bleibt in dem label wenn ich dann wirklich funktionnierende werte hab?

am Anfang oder in nem else-zweig die caption entsprechend setzen vielleicht?

Mitdenken erwünscht :roll:

Gruß Frank

justloosit 17. Mär 2009 19:57

Re: Hilfe schleifen Ende
 
ok sry divBoy0 ehm nya mein Probs wechseln das habsch jetz alles hingekriegt aber jetzt weiß ich nicht was ich machen soll ich hätte gerne das wenn:
Delphi-Quellcode:
 if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
 write1.caption:=('Berechnung nicht möglich!')
 else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  write1.Caption:=(' ')
  end
 end;
das ich noch mher nach then schreiben könnte also das mehreres geschieht wenn halt die bedingungen für if erfüllt erden z.b das er den umfang trotz dem berechnet sowie in das Flaeche editfenster einen - schreibt geht das denn?
ich dachte mirs so aber funzt nich:

Delphi-Quellcode:
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
 write1.caption:=('Berechnung nicht möglich!');
 UmfangEdit.Text:=FloatToStr(Umfang);
 FlaecheEdit.Text:=('-');

 else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  write1.Caption:=(' ')
  end
 end;
end.
[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]

mkinzler 17. Mär 2009 20:17

Re: Hilfe schleifen Ende
 
Mehrere Befehle (eine Sequenz) werden in Delphi mit begin..end umschlossen.

Sirlunchalot 18. Mär 2009 17:35

Re: Hilfe schleifen Ende
 
Delphi-Quellcode:
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
write1.caption:=('Berechnung nicht möglich!');
UmfangEdit.Text:=FloatToStr(Umfang);
FlaecheEdit.Text:=('-');

else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  write1.Caption:=(' ')
  end
end;
end.
Dieses von dir geschrieben müsste verändert werden, wie von mkinzler schon gesagt.
Du müsstest einfach :
Delphi-Quellcode:
if (SeiteA+SeiteB<SeiteC) or (SeiteB+SeiteC<SeiteA) or (SeiteA+SeiteC<SeiteB) then
begin
write1.caption:=('Berechnung nicht möglich!');
UmfangEdit.Text:=FloatToStr(Umfang);
FlaecheEdit.Text:=('-');
end

else
  begin
  Flaeche:=Sqrt(s*(s-SeiteA)*(s-SeiteB)*(s-SeiteC));
  FlaecheEdit.Text:=FloatToStr(Flaeche);
  UmfangEdit.Text:=FloatToStr(Umfang);
  write1.Caption:=(' ')
  end
end;
end.
schreiben...
(einfach nach der if Bedingung ein begin setzen und vor dem else ein end einfügen ;)

Gruß Max


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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