von Christoph Bach Nachdem ich jetzt auch Draper-Pascal besitze, werde ich diesen Kurs vorerst weiterführen. Ich hoffe, daß bald viele in Pascal und C programmieren, und diese Kurse weiterführen. Ich würde gerne einen neuen Kurs eröffnen: Compilerbau. Aber momentan habe ich noch mit C und Pascal genug zu tun. WICHTIG: entspricht dem Semikolon (+ steht für eckige Klammer links )+ steht für eckige Klammer rechts Die Datentypen. Wie in C gibt es in Pascal verschiedene Datentypen für verschiedene Anwendun- gen. Ehe man eine Variable benutzen kann, muß sie deklariert worden sein. In Pascal schreibt man: VAR GANZ:INTEGER um eine Integervariable zu definieren. Man kann auch mehrere Variable gleichen Formats so definieren: VAR I1,I2,I3,I4:INTEGER Wie ihr sicher schon bemerkt habt, endet fast jede Zeile in Pascal mit einem Semikolon. Das reservierte Wort VAR teilt dem Compiler mit, daß ab jetzt Variablen deklariert werden. Es wirkt wie ein Schalter: solange kein BEGIN oder CONST kommt, werden Variab- lendeklarationen erwartet. CONST leitet die Deklaration von Konstanten ein: CONST PI=3.1415 Einer Konstanten kann natürlich kein Wert zugewiesen werden. Will man eine Konstante als Fließkommazahl haben, muß man einen Punkt einfügen (z.B. 10.0), sonst wird eine Integerzahl angenommen, und es kann zu Fehlermeldungen kommen. Die Real-Zahlen oder auch Fließkomma- zahlen kennt jeder von Basic. Ein einfaches Zeichen wird wie in C mit CHAR deklariert. Was es in Basic nicht gibt, sind die Wahrheitswerte (BOOLEAN). Sie können nur zwei Zustände annehmen: TRUE und FALSE (wahr und falsch). Intern wird das als Eins und Null gespeichert. Bytes Werte BOOLEAN 1 1/0 (TRUE/FALSE) CHAR 1 0-255 (Zeichen) INTEGER 2 -32768 bis 32767 REAL 6 +-9.99999999E97 Wie man sieht, benötigen die Fließ- kommazahlen (REAL) dreimal soviel Platz wie die Integerzahlen und sind noch langsamer. Man wird sie also nur ver- wenden, wenn der Wertebereich von In- tegerzahlen zu klein ist, oder bei Winkelfunktionen. Man kann von jeder der vier Grund- variablen ein Feld (ARRAY) anlegen. Will man z.B. für ein Schachprogramm das Spielfeld speichern, so legt man ein Feld aus Zeichen an: VAR BRETT:ARRAY (+7,7)+ OF CHAR Man kann auf jedes der 64 Felder zu- greifen, indem man die Zeile und Spalte (jeweils von 0 bis 7) angibt. Außer den zweidimensionalen Feldern sind nur noch eindimensionale Felder in Draper-Pascal möglich: VAR BRUECHE:ARRAY (+129)+ OF REAL Die Variable BRUECHE belegt 130*6Bytes, also 780 Bytes. Die Variable BRETT belegt 8*8*1Bytes also 64 Bytes. Wenn man Arrays unvorsichtig dimensioniert, ist der Speicher bald alle. Zeichenketten (STRING) kennt jeder aus Basic. In Pascal werden sie ähnlich benutzt. Bei der Deklaration muß man die Länge mit angeben: VAR TEXT:STRING(+555)+ Richtig! Mit der Deklaration VAR TEXT:ARRAY (+554)+ OF CHAR hätte man die gleiche Menge Speicher für Zeichen reservieren können. Tatsächlich ist die interne Verwaltung identisch. Nur manche Funktionen sehen das anders. Eine der besten Eigenschaften von Pascal gibt es in Draper-Pascal nicht: das TYPE. Damit kann man Benutzer- definierte Datentypen erstellen. Ohne TYPE und WITH ist auch die Deklaration eines RECORDs sinnlos. Wer den RECORD (Verbund) in Draper-Pascal sinnvoll verwenden kann, der melde sich bitte bei mir (in Turbo-Pascal habe ich damit keine Probleme). Die Zuweisung. Eine Variable ist sinnlos, wenn man ihr nicht an verschiedenen Programmstellen verschiedene Werte zuweisen kann. In Pascal geschieht das mit dem := GANZ:=12345 BRUECHE(1):=0.3 BRETT(0,5):='K' TEXT:='Dies ist ein Probetext.' Dabei werden zwei Dinge deutlich: Felder werden zwar mit einer eckigen Klammer deklariert, der Zugriff erfolgt aber mit einer runden Klammer. Im Gegensatz zu Basic werden Zeichen und Zeichenketten in ein einfaches Hoch- komma eingeschlossen. Das Berechnen von verschachtelten Ausdrücken funktioniert wie in Basic: GANZ:=(1+2)*(3*(4+5*6)) Welcher Wert hat GANZ? Auch in Pascal gilt "Punkt vor Strich", es sei denn es wird geklammert. GANZ wird also der Wert 306 zugewiesen. Im Beispielprogramm werden den Variablen, nachdem sie deklariert wurden, verschiedene Werte zugewiesen, und dann mit WRITELN ausgedruckt. Im nächsten Teil werde ich die Kontroll- struckturen von Pascal beschreiben. Für Anregungen bin ich immer dankbar. Bis dann.