Aufbau eines Pascal Programms
Programmkopf —> Name des Programms
Vereinbarungsteil —> Variablen deklariert
Anweisungsteil —> das eigentliche Programm
Beispiel:
EVA
Eingabe,Verarbeitung, Ausgabe
write
writeln
write:
um einen Text auf dem Bilschirm auszugeben
der Text muss in runden Klammern und Hochkommata verpackt werden
Bsp: write(‘hello world’);
read
readln
read:
readln:
hält das Konsolenfenster offen
steht als letzter Befehl vor end
Variablen bestimmen
Zahlen: integer
lange Zahlen: Longint
Kommazahlen: real
Wörter: string
Buchstaben: char
Wertezuweisung
um einer Variablen einen Wert zuzuweisen
z.B Summe : = Zahl1+Zahl2
Bsp.:
a:=5;
a:=7;
b:=3;
b:=a; —> b=7
a:=a*a; —> a=49
a:=a+1; —> a=50
Rechenoperatoren
Summe: +
Differenz: -
Produkt: *
Quotient: /
es sind nur ganzzahlige Ergebnisse möglich, deswegen müssen wir den Rest angeben:
Zahl div Zahl gibt das Ergebniss an
Zahl mod Zahl gibt den Rest an
Kommazahlen
var : real;
Wenn die Zahl ausgegeben werden soll:
writeln(u:8:3)
—> 8: hält insgesamt 8 Stellen für die Zahl (u) platz
—> 3: die Zahl (u) kann 3 Nachkommastellen haben
Mit Brüchen rechnen
Algorithmen mit Entscheidungen: einseitige Entscheidung
keine lineare Struktur mehr
wir benötigen:
die Anweisung für eine einseitige Entscheidung:
IF-THEN-Anweisung
—> IF Bedingung THEN Anweisung
sollen mehrere Anweisung nur unter einer bestimmten Bedingung ausgeführ werden benötigen wir:
begin/end (die Anweisungsfolge einklammern)
—> IF Bedingung THEN begin
Anweisung 1;
Anweisung2;
…
end;
Man kann auch mehrere einseitige Wiederholungen nacheinander schreiben:
Algorithmen mit Entscheidungen: zweiseitige Entscheidungen
der Fall, dass die einseitige Entscheidung nicht erfüllt ist und ein alternativer Programmteil ausgeführt werden soll
IF Bedingung THEN Anweisung ELSE Alternative Anweisung
bei mehreren Anweisungen/Alternativanweisungen muss begin-end geklammert werden
Beachten: vor ELSE steht kein Semikolon
Wiederholanweisung
ein Programmteil (Sequenz) soll mehrfach wiederholt werden, bis eine Abbruchbedingung erfüllt ist
Wiederholanweisungen (gezählte Wiederholungen)
wenn zu Beginn an feststeht, wie oft ein Programmteil zu wiederholen ist
FOR-TO-Anweisung (mit der Variablen i)
—> for i := Anfangszahl to Endzahl do begin
Bei jedem Schleifendurchlauf wird (beginnend beim Anfangswert) i um 1 erhöht. Beim letzten Schleifendurchlauf hat i den Endwert, somit ist die Abbruchbedingung erfüllt
von den gezählten Wiederholungen zur repead Schleife
repead Schleifen
es steht nicht von Beginn an fest, wie oft ein Programmteil zu wiederholen ist
jedes mal wird geprüft, ob noch eine Wiederholung nötig ist
REPEAT Anweisung UNTIL Austrittsbedingung
wollen wir dem user die Möglichkeit geben mehrfach zu spielen:
so oft, bis er die Rückfrage mit nein beantwortet
REPEAT
….
write(‘noch mal? (j/n)’);
readln(Antwort);
until Antwort=’n’;
randomize
setzt den Zufallsgenerator in Gang
Zufallszahl:=random(100)+1
—> random(n) bestimmt eine ZZ zwischen 0 und n-1
Allgemeines
Der Programmtext gehört zwischen begin. und end.
jede Programmzeile (also jeder Befehl) muss mit einem Semikolon (;) abgeschlossen werden
>/</= kann man verwenden, wenn etwas größer, kleiner oder gleich sein soll
Wenn man wissen will, ob eine zahl durch etwas teilbar ist: if Zahl mod i = 0 then
NICHT VERGESSEN!!
Variablen initialisieren um Datenschrott zu vermeiden
—> Variable x :=0;
Beispiele aus dem Alltag
gezählte Wiederholungen:
Liegestütze —> mache 20 Liegestütze
repeat Schleife:
Wäschekorb —> wiederhole so lange, bis der Wäschekorb leer ist
Tore schießen —> wiederhole so lange, bis ein Tor geschossen wurde
Last changed2 years ago