Einführung in die Programmiersprache C von Christoph Bach Dieser Kurs behandelt die elementaren Programmiertechniken in C. Da C als portable (übertragbare) Sprache konzipiert ist, wird kein spezieller Compiler vorausgesetzt. Die in diesem Kurs erworbenen Kenntnisse können auch auf C-Compiler für MS-DOS (z.B.TURBO-C) übertragen werden. Auf Unterschiede wird jeweils hingewiesen. Anmerkung: In den Beispielbefehlen steht für das Zeichen SEMIKOLON ! Der Schrägstrich / im Text steht für den Schrägstrich, den man mit der Tas- tenkombination "SHIFT +" erhält. Das Minimalprogramm: main() $( $) Dieses Programm tut nichts. Es besteht aus dem Hauptprogramm main(). Die öffnende und schließende geschweifte Klammer sind auf dem ATARI nicht darstellbar, weshalb sie durch $( und $) ersetzt wurden. Diese Klammern umschließen einen Block von Anwei- sungen, die dadurch wie eine Anweisung behandelt werden. Kommentare werden in C durch /* und */ begrenzt. Wer einmal versucht hat ein eigenes, unkommentier- tes Programm nach einem Jahr zu ver- stehen, der weiß, wie wichtig Kommen- tare sind. Man sollte wenigstens jedes Unterprogramm kommentieren mit Eingabe: Verarbeitung: Ausgabe: So ist ein Programm auch nach langer Zeit noch verständlich. /* Dieses Programm sagt Hallo. */ main() $( printf("Hallo/n") $) Dieses Programm schreibt Hallo auf den Bildschirm. Bei MS-DOS-Compilern muß man noch ein #include davorsetzen, damit der Compiler die Funktion printf() findet. printf() gehört nicht zum Sprachkern von C. Man nennt solche Funktionen auch Biblio- theksfunktionen, da sie in Bibliotheken zusammengefasst sind, die man bei Bedarf einbinden kann (mit #include). Die Funktion printf endet, wie jede Funktion in C, mit einem Semikolon. Die Parameter die man einer Funktion über- gibt stehen in den Klammern. In unserem Beispiel ist das "Hallo/n". Die An- führungszeichen besagen, daß jetzt ein Text kommt (bis zum nächsten Anführ- ungszeichen). Das /n ist eine Spezia- lität von printf. printf druckt nähm- lich nicht wie PRINT in Basic einfach aus, sondern formatiert (deshalb das f nach print) den Ausdruck. Es gibt noch mehr von diesen Formatierungszeichen: /n Zeilenvorschub /r Carriage Return /t Tabulator // Backslash /b Backspace /f Seitenvorschub /" Anführungszeichen /0 ASCII Null /Zahl ASCII-Zeichen in Oktalforamt Mit printf kann man auch Zahlen ausgeben. Dazu muß man das %-Zeichen und das gewünschte Zahlenformat angeben: c ASCII Caracter d dezimale Ganzzahl e Fließkommazahl in Exponentendarstellung f Fließkommazahl ausgeschrieben g kürzeste Darstellung: e oder f o oktal Zahl s Zeichenkette (String) u vorzeichenlose dezimale Ganzzahl x hex Zahl % %-Zeichen Nach dem %-Zeichen kann noch eine Zahl angegeben werden. Dabei gilt: - linksbündig vor dem Punkt: Breite der gesamten Ausgabe nach dem Punkt: Breite der formatierten Ausgabe Wenn x den Wert 12345 hat, dann gibt printf(">%-10.3d<",x) >123 < aus. Will man mehrere Zahlen nebeneinander ausdrucken, so werden sie in der Rei- henfolge dem Formatierungsstring zuge- ordnet: printf("%d%f%c",a,b,c) Dabei wird a als Ganzzahl, b als Fließkommazahl und c als ASCII-Zeichen ausgedruckt. Besonderheiten bei den ATARI Compilern: %e %g %o fehlen. /d Cursor down (runter) /e ESCape /f löscht den Bildschirm /g der übliche Quietscher /l Cursor links /n RETURN (statt /r) /r Cursor rechts /u Cursor up (hoch) Alle andern /-Kommandos außer /n, /t und /b fehlen. Damit dieser Kurs nicht bei printf() stehenbleibt wollen wir noch die Schleifen besprechen. Es gibt deren drei in C: Die for-Schleife for(Init Bedingung Schritt) Mit Init wird die Variable initiali- siert (mit einem Startwert besetzt). Solange die Bedingung erfüllt ist, wird die Schleife durchlaufen. In Schritt steht die Anweisung für die Schritt- weite. Wenn man die Variable x von 1 bis 8 durchzählen will, so schreibt man: for(x=1 x<9 x=x+1) printf("for-Schleife Nr. %d/n",x) Der direkt der for-Schleife folgende Befehl wird jetzt acht mal ausgeführt. Will man mehrere Befehle ausführen lassen, so muß man sie in geschweifte Klammern $( $) setzen. die while-Schleife while(Bedingung) Der direkt der while-Schleife folgende Befehl wird ausgeführt, solange die Bedingung erfüllt ist. Jede for-Schlei- fe kann durch eine while-Schleife er- setzt werden: x=1 while(x<9) $( printf("while-Schleife Nr. %d/n",x) x=x+1 $) Die for-Schleife ist übersichtlicher als die while-Schleife, da alle Schlei- fenparameter in einer Zeile zusammen- gefasst sind. die do-Schleife Bei der do-Schleife erfolgt die Abfrage der Bedingung am Ende der Schleife, so daß sie immer mindestens einmal durchlaufen wird: x=1 do $( printf("do-Schleife Nr. %d/n",x) x=x+1 while(x<9) Die in diesen Beispielen angegebene Variable muß vor der Benutzung deklariert werden. Das kann mit int x main() $( Programmbeispiele $) erfolgen. Mehr zu den Variablen und den Verzweigungen in C im nächsten Kursteil. In der nächsten Ausgabe werden wir auch einige Bücher vorstellen, die die Pro- grammiersprache "C" weiter erläutern und als sinnvolle Ergänzung zu diesem Kursus herangezogen werden können.