| |
|
|
| KompilierenMarqueSéparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Datum: Schaltjahr bestimmen / testen
Ein PROFAN-Beispiel Quelltext von Achim Engelhardt
Profan-Vers.: 6.5 oder höher
Ermittelt, ob eine gew. Jahreszahl ein Schaltjahr ist
habe die Funktion aus irgend einer Vorlage, war aber ungenau
Declare J%
DEF IsLeap%(1) @if(@OR(@AND(@EQU(mod(val($(1)),4),0),@NOT(@EQU(mod(val($(1)),100),0))),@EQU(mod(val($(1)),400),0)),1,0)Schaltjahr?
=wenn Jahreszahl durch 4 teilbar, aber nicht durch 100, es sei denn durch 400
@If(N1,N2,N3)
N1 : Wert - Bedingung
N2 : Wert - Ergebnis bei erfüllter Bedingung
N3 : Wert - Ergebnis bei nicht erfüllter Bedingung
Ergebnis : Wert, abhängig von der Bedingung
In Anlehnung an C gibt es das IF auch als Funktion. Die Funktion @IF hat drei Argumente:
Das erste Argument ist die Bedingung; das zweite Argument ist der Wert, der zurückgegeben wird,
wenn die Bedingung erfüllt ist und das dritte Argument ist schließlich der Wert, der bei unerfüllter
Bedingung zurückgegeben wird.
WhileNot J%
LET J%=@VAL(@Input$(Jahr?,Bitte 4-stellige Jahreszahl eingeben!,))=Jahr, welches zu testen
Wend
if isleap%(J%) Schaltjahr?
Print J%,ist ein Schaltjahr.
else
Print J%,ist kein Schaltjahr.
endif
WaitInput
z = Mod(x,y) Modulo-Funktion
Der Wert x wird durch y geteilt und der REST der Division
wird in z gespeichert.
Mod(207,5) liefert 2
Kontrolle: Div&(207,5) = 41
und (41 * 5) = 205
dann ist 207 - 205 =s2>= 2
|
|
|
| |
|
|