- Gerade Zahlen
- Der IF-Befehl
- Bedingungen
- Beispiel: Positive Zahlen
- Beispiel: Teilbarkeit durch beliebige Zahl
- Struktogramme
- Beispiel: Betragsfunktion
- Beispiel: Lösung der quadratischen Gleichung
- a)
- Flussdiagramm:
- b)
- PASCAL-Programm:
program even;
uses crt;
var i: integer;
begin
write( 'Bitte Zahl eingeben:' );
readln( i );
if i mod 2 = 0 then begin
writeln( 'Die Zahl ist gerade' );
end else begin
writeln( 'Die Zahl ist ungerade' );
end;
readln;
end.
Immer, wenn im Flussdiagramm eine Verzweigung anhand einer Bedingung notwendig ist, dann kann in PASCAL der IF-Befehl eingesetzt werden:
if <Bedingung> then begin
<Ja-Anweisung 1>
<Ja-Anweisung 2>
end[ else begin
<Nein-Anweisung 1>
<Nein-Anweisung 2>
end];
Die Teile in eckigen Klammern kann man auch weglassen (einseitige Anweisung).
Für eine Auswahl muss immer eine Bedingung getestet werden. Hier sind einige Beispiele, wie Bedingungen für Zahlen geschrieben werden können:
Relation |
Zeichen |
Beispiel |
"gleich" |
= |
if a = 4 then ... |
"ungleich" |
<> |
if a <> 4 then ... |
"größer" |
> |
if a > 4 then ... |
"kleiner" |
< |
if a < 4 then ... |
"größer gleich" |
>= |
if a >= 4 then ... |
"kleiner gleich" |
<= |
if a <= 4 then ... |
In diesem Programm muss nur getestet werden, ob eine Zahl größer oder gleich Null ist. Entsprechend wird dann ausgegeben, ob sie positiv oder negativ ist.
program positiv;
uses crt;
var i: integer;
begin
write( 'Bitte Zahl eingeben:' );
readln( i );
if i >= 0 then begin
writeln( 'Die Zahl ist positiv' );
end else begin
writeln( 'Die Zahl ist negativ' );
end;
readln;
end.
Hierbei handelt es sich um das gleiche Programm, wie unter (1), nur dass statt der 2 eine beliebige Zahl eingegeben werden kann:
program divisibility;
uses crt;
var i, t: integer;
begin
write( 'Bitte Zahl eingeben:' );
readln( i );
write( 'Bitte den Teiler eingeben:' );
readln( t );
if i mod t = 0 then begin
writeln( 'Die Zahl ist durch ', t, ' teilbar.' );
end else begin
writeln( 'Die Zahl ist nicht durch ', t, ' teilbar.' );
end;
readln;
end.
Der Algorithmus zur Entscheidung, ob eine Zahl gerade ist, kann auch so aufgezeichnet werden:

- Der Algorithmus verläuft von oben nach unten.
- Anweisungen werden durch aneinanderhängende Rechtecke dargestellt.
- Verzweigungen werden durch Dreiecke mit der Spitze nach unten dargestellt; der Kontrollfluss teilt sich auf.
Vergleiche dieses Diagramm und das Flussdiagramm mit dem Quelltext aus (1). Was fällt dir auf?
Zur "Kodierung" eines Algorithmus in PASCAL ist ein Struktogramm besser geeignet als ein Flussdiagramm.
Der Betrag einer Zahl ist dessen Abstand zum Nullpunkt. Eine positive Zahl entspricht deshalb ihrem Betrag, während man bei einer negativen Zahl ihre "Gegenzahl" nehmen muss.
Teste also, ob eine Zahl kleiner als Null ist, und bilde in diesem Fall ihre Gegenzahl:

program betrag;
uses crt;
var x: real;
begin
write( 'Bitte Zahl eingeben:' );
readln( x );
if x < 0 then begin
x := -x;
end;
writeln( 'Der Betrag ist ', x );
readln;
end.
Bei der Lösung der quadratischen Gleichung:
ax² + bx + c = 0
Gibt es drei Fälle zu unterscheiden.
- Diskriminante > 0: Es gibt zwei Lösungen
- Diskriminante = 0: Es gibt eine Lösung
- Diskriminante < 0: Es gibt keine Lösungen
Hier das entsprechende Struktogramm:
br>