Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung © Institut für Computational Science, ETH Zürich, 2005 Alle Rechte vorbehalten. Internetadresse: www.pup.ethz.ch 2 Einführung in die Programmierung 3 Einleitung Die Arbeit mit dem E.Tutorial 1 soll Ihnen die Möglichkeit zum schnellen Einstieg ins Programmieren mit Turbo Pascal (TP) ermöglichen und Sie im Umgang mit den nötigen Hilfsmitteln (Software-Tools) vertraut machen. Um TP-Programme zu schreiben und laufen zu lassen, muss zunächst Quellcode geschrieben und anschliessend mit einem Kompiler in Maschinensprache übersetzt werden. Turbo Pascal nutzt, wie jede Programmiersprache, Variablen zum Ablegen von Daten. Eine Variable ist ein reservierter Speicherbereich und belegt eine feste Anzahl von Bytes im Arbeitsspeicher. Alle Variablen haben einen Typ. Beispiele für Datentypen sind Ganzzahlen (Integer), Fliesskommazahlen (Real) und Buchstaben (Char). Verzweigungen dienen dazu, dass das Programm auf bestimmte Gegebenheiten reagieren kann. Bestimmte Programmteile werden dabei nur beim Eintreten vorgegebener Bedingungen durchlaufen, die erst zur Laufzeit (der Zeitpunkt, wenn das Programm ausgeführt wird) bekannt werden. Weg der Programm-Entwicklung in Turbo Pascal Bei den meisten Programmiersprachen erfolgt der Weg der Programm-Entwicklung vom Verfassen des Programmcodes zu der für den Computer verständlichen Maschinensprache in zwei Schritten (Abb. 1): 1. Mit einem Editor einen Quellcode schreiben und als Text-Datei speichern. 2. Den Quellcode mit einem Kompiler in Maschinensprache übersetzen ("kompilieren"). n Abb. 1: Programmentwicklung in Turbo Pascal (TP). In einem Texteditor n wird Quellcode für TP geschrieben, welcher die Dateiendung .pas trägt. Durch den Befehl tpc in der Befehlszeile (p) übersetzt der Kompiler o den Quellcode in ausführbaren Code und speichert diesen in eine zweite Datei mit der Dateiendung .exe. Diese Datei kann direkt auf jedem Windows-Computer in der Konsole durch Eingabe des Dateinamens ausgeführt werden. Einführung in die Programmierung 4 Was ein Programm typischerweise tut… Ein Programm ist eine Sammlung von Anweisungen an einen Computer. Typischerweise umfasst es Anweisungen wie: • Einlesen von Zahlen oder Buchstaben • Durchführung von Berechnungen • Ausgabe von Zahlen oder Buchstaben Programmieren bedeutet, jene Anweisungen auszuwählen, die eine gewünschte Aufgabe ausführen und diese in der richtigen Reihenfolge anzuordnen. In Abbildung 2 sehen Sie ein einfaches TP-Programm. Dies mag für Sie zu diesem Zeitpunkt vielleicht noch etwas kompliziert aussehen, aber am Ende dieses E.Tutorials 1 werden Sie in der Lage sein, es zu lesen und zu verstehen. Zahlenraten Eingabe: ganzzahlige Zahl Ausgabe: Die eingegebene Zahl und die Antwort, ob Sie eine vom Programm vorgegebene Zahl richtig erraten haben oder nicht. Abb. 2: Zahlenraten: Ein einfaches TP-Programm als Beispiel für Dateneingabe und Bedingungsprüfung. Einführung in die Programmierung 5 Vervollständigen Sie die folgende Tabelle nach dem Durcharbeiten des E.Tutorial 1: Ihre Beschreibung der Programmteile von Abb.2 "Zahlenraten" 1 2 3 4 5 6 7 Abb. 3: Eingabeaufforderung zur Kompilierung (1) und Ausführung (2) des Programms aus Abb.1. Einführung in die Programmierung 6 Was brauche ich, damit ich TurboPascal Programme schreiben kann? Dazu brauchen Sie zwei Dinge: einen Windows basierten Computer und einen TurboPascal Kompiler. Den Kompiler finden Sie auf dem USB-Speicherstick. Sobald Sie das Programm kompiliert haben, können Sie dieses auf jedem beliebigen Windows-PC ausführen, ohne dass dort der Turbo Pascal Kompiler installiert sein muss. Inhalt von E.Tutorial 1: Im E.Tutorial 1 lernen Sie… • wie Sie ein Turbo Pascal Programm schreiben. • wie Sie die verschiedenen Software-Tools zur Entwicklung eines TP-Programms benutzen (Editor, Kompiler, Konsole). • wie die Struktur eines einfachen TP-Programms aussieht. • wie Speicherplatz von vier Variablentypen zur Verfügung gestellt werden. • wie Sie einfache Berechnungen durchführen. • wie Sie Bedingungsprüfungen durchführen. • wie Sie Benutzereingaben in Ihr Programm übernehmen. Abgabebedingungen: Fünf lauffähige Programme (Param, Rechteck, Schloss und die beiden Chiffrierprogramme). Drucken Sie die Programme für die Abgabe aus, damit Sie den Code mit Kommentaren versehen können. Sie sollten die Begriffe und Sprachelemente mit einfachen Worten erklären können. Demonstrieren Sie den Assistierenden anhand ausgewählter Programme deren Lauffähigkeit und Funktionsumfang. Selbstverständlich können Sie die Programme beliebig erweitern. Die Tabelle zur Abbildung 2 muss ausgefüllt und den Assistierenden erklärt werden können. Nebenbei: In jedem E.Tutorial werden Sie Programme schreiben, ausdrucken und mit persönlichen Notizen versehen. Bis zum Ende der Lehrveranstaltung entsteht so eine persönliche Programm-Sammlung, in welcher Sie später einzelne Themen nachschlagen können. Einführung in die Programmierung 7 Neue Programmierelemente: Programmierelement Bedeutung Beispiel writeln( ) Gibt eine Zeichenkette auf den Bildschirm aus. Diese wird zwischen Hochkommata gesetzt. Variablen werden durch Komma getrennt. writeln('Hallo!') writeln(ausgabe) readln( ) Liest während der Programmausführung eine Benutzereingabe ein und speichert sie in der Variable eingabe. readln(eingabe); paramstr() Liefert den Wert eines Parameters mit dem Typ String. eingabe := ParamStr(1) val(string, integer, error) Wandelt eine Zeichenkette (String) in eine Ganzzahl (Integer) um. Die error Variable muss vom Typ Integer deklariert werden. val(eingabe, zahl, error) ord(Char) Liefert die ASCII-Ordnungszahl eines Buchstabens. ord('C') chr(Integer) Umkehrfunktion zu ord(). Liefert den entsprechenden Buchstaben. chr(56) ' Zeichen (String und Char) sind von Hochkommata umschlossen. 'Das ist ein String' Integer Speicherplatz vom Typ Integer (Ganzzahl). 8 Real Speicherplatz vom Typ Real (Gleitkommazahl). 8.65 Char Speicherplatz vom Typ Character (Zeichen). 'B' String Speicherplatz vom Typ String (Zeichenkette). 'Das ist ein String' variable: Integer; Deklarieren einer Variable vom Typ Integer. := Zuweisung a := 3 = Vergleich IF (a = b) + - * / Operatoren a := b+2; ' IF (Bedingung) THEN Anweisung ELSE Anweisung; Variablen sind kursiv geschrieben.