Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
Für manche Programmierumgebungen gibt es sogenannte Debugger-Programme, mit denen man<br />
sich auf <strong>die</strong> Fehlersuche begeben kann. Man kann damit z.B. das Programm schrittweise durchlaufen<br />
<strong>und</strong> sich <strong>die</strong> Inhalte von Variablen <strong>und</strong> Speicher ansehen <strong>und</strong> auch modifizieren. In den Übungen<br />
zu <strong>die</strong>sem Kurs werden Sie e<strong>in</strong>e solche Umgebung kennen lernen.<br />
Die Programmierfehler können auch mit der pr<strong>in</strong>tf()-Anweisung lokalisiert werden, <strong>in</strong>dem<br />
man <strong>in</strong>nerhalb des Programms ständig den Inhalt von <strong>in</strong>teressanten Variablen, <strong>und</strong> den aktuellen<br />
Ort im Code ausgibt, so kann der Programmablauf auch verfolgt, resp. rekonstruiert werden. Die<br />
Funktion pr<strong>in</strong>tf() wird später noch vorgestellt. Den Kreislauf - Editieren - Kompilieren - L<strong>in</strong>ken<br />
- Ausführen - Fehlersuche müssen Sie solange durchlaufen, bis das Programm fehlerfrei <strong>die</strong><br />
gestellte Aufgabe erfüllt. Mit e<strong>in</strong>er guten Analyse <strong>und</strong> e<strong>in</strong>em guten Entwurf kann der Kreislauf beträchtlich<br />
verkürzt werden, da viele Denkfehler so bereits früh elim<strong>in</strong>iert werden.<br />
2.3 Übersicht über <strong>die</strong> Sprache C<br />
E<strong>in</strong> C-Programm besteht aus e<strong>in</strong>zelnen "Bauste<strong>in</strong>en", den Funktionen, <strong>die</strong> sich gegenseitig aufrufen.<br />
Jede Funktion löst e<strong>in</strong>e bestimmte Aufgabe. <strong>E<strong>in</strong>e</strong> Funktion ist entweder selbsterstellt oder e<strong>in</strong>e fertige<br />
Rout<strong>in</strong>e aus der Standardbibliothek oder e<strong>in</strong>er fremden Bibliothek. Die Funktion ma<strong>in</strong>() hat<br />
e<strong>in</strong>e besondere Rolle: Sie bildet das steuernde Hauptprogramm. Jede andere Funktion ist direkt oder<br />
<strong>in</strong>direkt e<strong>in</strong> Unterprogramm von ma<strong>in</strong>(). Die Form von ma<strong>in</strong>() (Argumente, Rückgabewert)<br />
ist vorgeschrieben.<br />
Die Anweisungen, aus denen <strong>die</strong> Funktion(en) besteht(en), bilden zusammen mit den notwendigen<br />
Deklarationen <strong>und</strong> Präprozessor-Direktiven den Quelltext e<strong>in</strong>es C-Programms. Dieser wird bei kle<strong>in</strong>eren<br />
Programmen <strong>in</strong> e<strong>in</strong>e Quelldatei, bei grösseren <strong>in</strong> mehrere Quelldateien geschrieben. Quelldateien<br />
haben <strong>die</strong> Endung .c, Headerdateien (Schnittstellenbeschreibung der Module) <strong>die</strong> Endung .h.<br />
2.3.1 Beispiele für e<strong>in</strong>fache C-Programme<br />
Hier das wohl berühmteste Programm der Welt (Hello World) <strong>in</strong> e<strong>in</strong>er Variante für C:<br />
/*****************************************************************************/<br />
/* Module : HelloWorld Version 1.0 */<br />
/*****************************************************************************/<br />
/* */<br />
/* Function : E<strong>in</strong>faches E<strong>in</strong>fuehrungsbeispiel <strong>in</strong> <strong>die</strong> <strong>Programmiersprache</strong> C */<br />
/* Gibt den Text 'Hello World' auf den Bildschirm aus */<br />
/* */<br />
/* Procedures : ma<strong>in</strong> */<br />
/* */<br />
/* Author : I. Oesch (IO) */<br />
/* */<br />
/* History : 13.03.2000 IO Created */<br />
/* */<br />
/* File : Hello.c */<br />
/* */<br />
/*****************************************************************************/<br />
#<strong>in</strong>clude /* Anweisung an den Praeprozessor <strong>die</strong> Datei mit den<br />
Infos ueber Funktionen zur E<strong>in</strong>-/Ausgabe e<strong>in</strong>zub<strong>in</strong>den */<br />
<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[]) /* Die Funktion ma<strong>in</strong> (das Hauptprogramm) */<br />
/* beg<strong>in</strong>nt hier. */<br />
{<br />
/* ma<strong>in</strong> ruft <strong>die</strong> Bibliotheksfunktion pr<strong>in</strong>tf auf, um <strong>die</strong><br />
Zeichenfolge zu drucken */<br />
pr<strong>in</strong>tf("Hello, world\n");<br />
return 0; /* Fehlerfreie Ausfuehrung anzeigen */<br />
} /*Hier endet das Programm (<strong>die</strong> Funktion ma<strong>in</strong>() ) */<br />
Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 9/147