Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Programmieren<br />
Titel<br />
drückt schön aus, dass Programmieren<br />
eine Kunstform<br />
ist, die man kultivieren kann<br />
<strong>und</strong> in der man sich durch regelmäßiges<br />
Üben verbessert<br />
<strong>und</strong> zum Meister wird.<br />
Doch zunächst geht es an die<br />
Gr<strong>und</strong>lagen: Was bedeutet<br />
Programmieren eigentlich? Die<br />
Kernidee ist, dass ein Programm<br />
dem Computer sagt,<br />
was er tun soll. Als Programmierer<br />
legen Sie das selbst fest.<br />
Dabei können Sie sich <strong>Programme</strong><br />
wie Kochrezepte oder<br />
auch die aus <strong>EasyLinux</strong> bekannten<br />
Schritt-für-Schritt-Anleitungen<br />
vorstellen: In der einfachsten<br />
Form eines Programms legen Sie nur eine<br />
Reihenfolge fest, in welcher der Computer<br />
bestimmte Schritte bearbeiten soll. Etwas<br />
komplizierter wird es, wenn Sie noch so<br />
genannte Schleifen („tu dies solange, bis<br />
ein bestimmtes Ziel erreicht ist“) <strong>und</strong> Fallunterscheidungen<br />
(„wenn der Wert kleiner<br />
als 100 ist, dann verdopple ihn – andernfalls<br />
setze ihn auf 1“) einbauen: Damit<br />
kann das Programm auf unterschiedliche<br />
Situationen geeignet reagieren.<br />
Die Prinzipien, die für das Programmieren<br />
gelten, sind nicht sonderlich schwer zu<br />
verstehen. Dass sich nicht jeder PC-Besitzer<br />
damit beschäftigt, liegt unter anderem<br />
daran, dass es zahlreiche komplett unterschiedliche<br />
Programmiersprachen gibt: So<br />
wie Sie Englisch <strong>und</strong> Französisch erst lernen<br />
müssen, um mit einem Engländer<br />
oder Franzosen zu sprechen, so müssen<br />
Sie sich auch zunächst in den „Wortschatz“<br />
<strong>und</strong> die „Grammatik“ einer Programmiersprache<br />
einarbeiten, damit der<br />
Computer versteht, was Sie von ihm wollen.<br />
Bei ersten Versuchen zeigt sich dann<br />
die recht begrenzte Intelligenz der Technik:<br />
Schon leichte Fehler bei der Wortwahl<br />
bemängelt das System als „Syntaxfehler“<br />
<strong>und</strong> verweigert die Zusammenarbeit.<br />
Es braucht also für die ersten Schritte<br />
etwas mehr Sorgfalt als beim Englischoder<br />
Französischsprechen, wo Ihr Gesprächspartner<br />
mit Nachsicht reagiert,<br />
wenn Sie ein unregelmäßiges Verb falsch<br />
verwenden.<br />
Abb. 1: Ein Programm auf dem C64 gibt fünfmal „HALLO EASY-<br />
LINUX“ aus – das ist schon komplexer als das erste Beispiel.<br />
Programmier-Gr<strong>und</strong>lagen<br />
Alle Programmiersprachen verwenden<br />
spezielle Befehle, mit denen Sie festlegen,<br />
was passieren soll. Im Beispiel am Anfang<br />
des Artikels tauchten z. B. die BASIC-Befehle<br />
PRINT <strong>und</strong> GOTO auf: Der PRINT-<br />
Befehl sorgt dafür, dass der Rechner Text<br />
ausgibt, <strong>und</strong> der GOTO-Befehl fordert<br />
dazu auf, die Programmausführung an einer<br />
anderen Stelle fortzusetzen – das ist<br />
vergleichbar mit einer Aussage wie „Kehren<br />
Sie zurück zu Schritt 3“ in einer längeren<br />
Schritt-für-Schritt-Anleitung, bei der<br />
einige Aufgabenteile mehrfach zu erledigen<br />
sind.<br />
Wenn Sie mehrere Befehle zu einem Programm<br />
zusammensetzen, werden diese<br />
später in derselben Reihenfolge ausgeführt,<br />
in der sie im Programm erscheinen. Schreiben<br />
Sie z. B.<br />
PRINT "HALLO"<br />
PRINT "WELT"<br />
dann erzeugen Sie damit die Ausgabe<br />
„HALLO WELT“ (<strong>und</strong> nicht etwa „WELT<br />
HALLO“). Programmierer nennen so etwas<br />
eine Sequenz (Abfolge, Reihenfolge).<br />
Viele Shell-<strong>Skripte</strong> unter Linux<br />
bestehen aus solchen<br />
(einfachen) Sequenzen. Sie<br />
bündeln also mehrere Befehle<br />
in einem Skript <strong>und</strong><br />
ersparen dem Anwender<br />
damit, die enthaltenen<br />
Kommandos einzeln (nacheinander)<br />
einzugeben.<br />
Fallunterscheidung<br />
Doch allein mit Sequenzen<br />
ist nicht viel Land zu gewinnen.<br />
Damit <strong>Programme</strong><br />
wirklich nützlich sind,<br />
kommen weitere Elemente<br />
ins Spiel, darunter die Fallunterscheidung<br />
(Abbildung<br />
3) <strong>und</strong> die Schleife.<br />
Der folgende BASIC-ähnliche<br />
Beispielcode sorgt dafür,<br />
dass ein interaktives Programm<br />
erst das Alter des Anwenders<br />
abfragt <strong>und</strong> dann entscheidet,<br />
ob es duzt oder siezt:<br />
PRINT "Bitte Alter eingeben:"<br />
INPUT alter<br />
IF alter < 18 THEN<br />
PRINT "Wie heißt Du?"<br />
ELSE<br />
PRINT "Wie heißen Sie?"<br />
END IF<br />
INPUT name<br />
PRINT "Hallo ", name<br />
Hier sind alter <strong>und</strong> name so<br />
genannte Variablen: Das Wort<br />
kommt von „variabel“ (veränderlich),<br />
<strong>und</strong> Sie können solche Variablen in <strong>Programme</strong>n<br />
benutzen, wenn Sie flexibel<br />
mit unterschiedlichen Werten umgehen<br />
wollen. Im Beispiel liest das Kommando<br />
INPUT einen Wert über die Tastatur ein<br />
<strong>und</strong> legt ihn dann in der angegebenen<br />
Variable ab. Später greifen Sie durch<br />
Nennen des Variablennamens erneut auf<br />
den Inhalt zu.<br />
Der Schlüssel zum Erfolg liegt hier in den<br />
Befehlen IF (wenn, falls), THEN (dann)<br />
<strong>und</strong> ELSE (andernfalls): Wenn das obige<br />
Programm läuft <strong>und</strong> der Anwender die<br />
Frage nach dem Alter mit einer Zahl beantwortet,<br />
die kleiner als 18 ist, dann ist<br />
der Test alter < 18 wahr, <strong>und</strong> das Programm<br />
führt die Befehle aus, die zwischen<br />
THEN <strong>und</strong> ELSE stehen. Wird hingegen<br />
ein Wert eingegeben, der größer<br />
oder gleich 18 ist, kommt stattdessen der<br />
Block zwischen ELSE <strong>und</strong> END IF an die<br />
Abb. 2: „The Art of Computer Programming“ ist ein<br />
mehrbändiger Wälzer, den Donald E. Knuth als Lehrbuch<br />
für Informatikstudenten geschrieben hat.<br />
<strong>EasyLinux</strong><br />
03/2013<br />
www.easylinux.de<br />
39