Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Bedingung von Variablen


der_häuptling - Sa 23.04.05 17:05
Titel: Bedingung von Variablen
Hallo alle,

mein 3. Tag mit Delphi und ich bin gerade dabei, ein Programm zu schreiben, in dem Man die lange Seite eingibt und die kurze errechnet bekommt durch die Formeln des Goldschnitt- Verfahrens.

Ich habe die Variablengleichung c = a+b und will sagen, dass b<a ist. Wie mache ich das? ( if (...) thjen Verfahren und Boolean gehen nicht)

Danke im Vorraus

der_häuptling


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Sa 23.04.2005 um 17:22


Heiko - Sa 23.04.05 17:20

Was hat das für Zweck? Wenn du c=a+b (oder meintest du sogar c²=a²+b²) hast, ist es doch egal ob a oder b kleiner ist.

Aber zum sagen welche Variable die kleiner ist:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
if a=b then
 begin
  ShowMessage('Beide gleich groß')
 end;
if a=min(a, b) then
 begin
  ShowMessage('a ist kleiner')
 end
else
 begin
  ShowMessage('b ist kleiner')
 end


PS: Kannst du vielleich dein Titel ein kleines bischen ändern, da der Titel sonst 2x existiert (siehe "Die letzten 10" Beitröge) :wink: ?


Heiko - Sa 23.04.05 17:23

Noch mal ne Frage, warum hast du 2x den gleichen Titel [http://www.delphi-forum.de/viewtopic.php?p=244686#244686], und weshalb ist der 2. gesperrt? Du hättest ruhig das selbe nochmal schreiben können, damit deine Frage klar ist.


delfiphan - Sa 23.04.05 19:11

user profile iconder_häuptling hat folgendes geschrieben:
Ich habe die Variablengleichung c = a+b und will sagen, dass b<a ist. Wie mache ich das? ( if (...) thjen Verfahren und Boolean gehen nicht)

Du willst "sagen, dass b < a" ist?
Du willst überprüfen, ob das der Fall ist? Du willst dem User eine Message anzeigen lassen, wo das drauf steht?

Ausserdem ist anfänglich nur eine der beiden Seiten gegeben (du willst ja die längere Seite einlesen und daraus die kürzere berechnen). Was ist dann überhaupt a und b?

Deine Frage ist mir auf jeden Fall völlig unklar. Bitte drück dich in Zukunft klarer aus.

PS:

Delphi-Quelltext
1:
2:
3:
// Gemäss Goldener Schnitt:
a := (sqrt(5)-1)/2*b; // aus längerer Seite b kürzere Seite a berechnen
b := (sqrt(5)+1)/2*a; // aus kürzerer Seite a längere Seite b berechnen


Heiko - Sa 23.04.05 19:36

Für dich Häuptling hier noch die Definition vom goldenen Schnitt von meinem WPU-Unterricht (ich bin momentan in der 10. Klasse :wink: ): Der Punkt S mit S Elemt AB teilt die Strecke AB im goldenen Schnitt, wenn sich die größere durch S entstehenden Teilstrecke zur kleineren so verhält, wie die Gesamtstrecke zur größeren Teilstrecke.
--> AB/SA=SA/SB //SA>SB

wenn man diese Gleichung weiß, bekommt man alles raus (durch Umformungen) was man haben will. Das einzige ist wirklich nur, dass man wissen muss, welche Seite die größere ist :wink: . Zur einfacheren Berechnung hilft es, wenn du Phi weißt.
Phi=(sqrt(5)-1)/2


der_häuptling - So 24.04.05 16:22
Titel: -
Hi,

und Sorry, das ich erst so spät zurück schreibe, hatte gestern noch Abschlussball :wink: !! :!: !!
Zu der Frage, warum der 2. Titel gesperrt ist: Da hatte ich drei Fragen auf einmal drin und der Chriastian hats dann gesperrt, weil das sonst zu ein großes Durcheinander gegeben hätte.... :shock:
Also, beim Goldschnittverfahren hat man doch eine Strecke mit den Punkten A und B, und vor B einen Punt E. Die Strecke AE ist Länger als EB. Deshalb AB = AE+EB EB<AE
( c = a+b b<a)
Ich probiers jetzt noch mal mit dem if (...) then Verfahren..

Danke
der_häuptling


Heiko - So 01.05.05 12:12

Ist die Frage inzwischen beatwortet? Wenn ja dann mackiere den Thread bitte dem entsprechend. Wenn nicht dann melde dich hier mal wieder, wo du noch ein Problem hast.