Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi if ... or ... else - Anwendungen (https://www.delphipraxis.net/14063-if-else-anwendungen.html)

Niels 1. Jan 2004 18:20

Re: if ... or ... else - Anwendungen
 
Hier haben wir nochmal den Object Pascal Style Guide von Borland, wo die Standard (und IMHO beste) Strukturierung von Pascal Quellcodes erklärt wird.

PS: Durch Verwendung des Arithmetischen Operators + lässt sich bei dir bestimmt noch einiges vereinfachen

MfG Niels

de_arg 1. Jan 2004 18:37

Re: if ... or ... else - Anwendungen
 
*lach*

der quellcode sieht so aus:

Delphi-Quellcode:
procedure irgendwas;
begin
  if (a = 10) or (b = 20) or
(c = 30) then
    begin
      ....
    end;
end;

weil ich jede if abfrage in eine Zeile geschrieben habe (if (a = 10) or (b = 20) or (c = 30) then) und weil eine if abfrage so lang ist bracht er zb 4 zeilen oder mehr (je nach auflösung).


Das kann man sich eigentlich denken, oder?

Niels 1. Jan 2004 18:46

Re: if ... or ... else - Anwendungen
 
Es war nur ein Beispiel....
Das was stört ist z.B. das else was immer irgendwo mitten in der Zeile Hängt und begin, sowie end gehören auf die selbe Höhe wie if und werden nicht eigerückt. :wink:

PS: Du kannst doch trotzdem der Übersicht halber jedes 'or (....)' in eine einzelne Zeile packen. Nicht nur wegen dem Forum sondern wegen deiner Übersicht im Delphi!

MfG Niels

de_arg 1. Jan 2004 19:26

Re: if ... or ... else - Anwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Niels
Es war nur ein Beispiel....
Das was stört ist z.B. das else was immer irgendwo mitten in der Zeile Hängt und begin, sowie end gehören auf die selbe Höhe wie if und werden nicht eigerückt. :wink:

PS: Du kannst doch trotzdem der Übersicht halber jedes 'or (....)' in eine einzelne Zeile packen. Nicht nur wegen dem Forum sondern wegen deiner Übersicht im Delphi!

MfG Niels


Oh Vorsicht...


Es ist nicht gut 'or' in eine neue zeile zu packen, denn wenn das programm zb die erste zeile 'if ...' den bedingungen nicht erfüllt, aber die zweite schon 'or...' dann überprüft das Programm nicht mehr die zweite Zeile und überprüft dann 'else ...'


und die end's haben den gleichen abstand wie die begin's, was übersichtlicher ist.

Hier habe ich ein Bild von meinem Quelltext

Niels 1. Jan 2004 20:14

Re: if ... or ... else - Anwendungen
 
Moin!

Natürlich wird alles überprüft...das war auch nur meine Meinung dazu, dass man den QT etwas anders strukturieren sollte als du es gemacht hast (es war nicht nur meine Meinung) :wink:

Naja mach wie du denkst

PS: Das hat eigentlich nix mehr mit deinem Thema zu tun. Um mal wieder drauf rückzukommen: Ich kenn die zu erfüllenden Anforderungen an allgemein bildenen Schulen nicht, wenn du die mal plz posten würdest könnte ich dir vieleicht helfen das ganze zu vereinfachen.

MfG Niels

Christian S. 1. Jan 2004 20:27

Re: if ... or ... else - Anwendungen
 
Zitat:

Es ist nicht gut 'or' in eine neue zeile zu packen, denn wenn das programm zb die erste zeile 'if ...' den bedingungen nicht erfüllt, aber die zweite schon 'or...' dann überprüft das Programm nicht mehr die zweite Zeile und überprüft dann 'else ...'
Das ist nicht richtig. Delphi ist es völlig egal, ob Du Befehle in eine oder in mehrere Zeilen schreibst.

Was Du jedoch wahrscheinlich mal gelesen und dann dann nicht mehr richtig erinnert hast: Delphi wertet einen Bool'schen Ausdurck nur soweit aus, bis das Ergebnis fest steht. Wenn Du also ausdruck1 OR ausdruck2 OR ausdruck3 hast und ausdruck1 schon wahr ist, dann schaut sich Delphi den Rest gar nicht mehr weiter an. Deshalb sollte man, wenn ein Bool'scher Ausdruck aus Funktionen besteht, die Funktionen, welche schneller sind, an den Anfang stellen.

Pseudemys Nelsoni 1. Jan 2004 21:17

Re: if ... or ... else - Anwendungen
 
hi,

Delphi-Quellcode:
Es ist nicht gut 'or' in eine neue zeile zu packen, denn wenn das programm zb die erste zeile 'if ...' den bedingungen nicht erfüllt, aber die zweite schon 'or...' dann überprüft das Programm nicht mehr die zweite Zeile und überprüft dann 'else ...'
wie du sicher (nicht) weisst, ignoriert delphi leerzeilen/freiräume, also ist das egal wo das steht.
Theoretisch könntest du deinen ganzen code den du da hast in einer zeile schreiben.


btw: auf deinem bild, da ist dein else in der mitte ziemlich komisch...man sieht kaum auf welches if sichd as bezieht

de_arg 1. Jan 2004 22:30

Re: if ... or ... else - Anwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Abend!

Ich hab das jetzt so gemacht wie es MathiasSimmack vorgeschlagen hat, aber der Fehler ist immer Noch da.



@ Peter Lustig
Aber wenn ausdruck1 nicht wahr ist hat er ausdruck2 nicht mehr überprüft und ist dann auf end. gesprungen.



@ Niels

..._k heißt Kurs
..._n heißt Note

Im anhang ist einmal 'noten', da stehen die Noten und Kurse die Man haben muss und 'Muster', da ist Berechnungsbogen für den Realschulabschluss (ein Muster).


Hier noch ein Link (einmal in doc und pdf) zu den Gesetzen für den Abschluss:

http://realschule.bildung.hessen.de/...gange_2003.doc
http://www.hessisches-amtsblatt.de/d...er/04_2003.pdf

Da wird es ab 'Vierter Teil' interresant (§54-64)

de_arg 1. Jan 2004 22:34

Re: if ... or ... else - Anwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
und hier der Quellcode vom Prog und im Anhang das Programm.

[edit=MrSpock]Langen Quelltext wie gewünscht entfernt. Mfg, MrSpock[/edit]

MathiasSimmack 2. Jan 2004 09:04

Zum Thema "Einrückung, und Wie bekomme ich es hin, dass die Zeile nicht zu lang wird", verweise ich noch mal auf meinen Beitrag:
Zitat:

Zitat von MathiasSimmack
Delphi-Quellcode:
if(((deutsch_k='e') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='g') and (englisch_k='a') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='b') and (mathematik_k='a')) or
   ((deutsch_k='e') and (englisch_k='a') and (mathematik_k='b'))) then

Du solltest nach Möglichkeit nämlich auch nicht den Rand rechts im Delphi-Editor überschreiten. Zum einen sprengst du damit den Rahmen diverser Foren, wie du mit einem letzten Beitrag unter Beweis gestellt hast (jetzt muss ich nach rechts scrollen :(), zum anderen ist es für einen evtl. Ausdruck besser, weil der Rand standardmäßig bei 80 Zeichen steht.


@de_arg: Wenn du das Programm anhängst, warum postest du den Quellcode der Unit dann noch mal? Bitte nimm den Sch*** mal raus, damit der Beitrag wieder eine akzeptable Breite hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz