Programmieren
 
 
 
 
 
C-Grundkurs
 
 
 
 
 
.. Begriffe, Regeln, Kommentare
 
 

 
 
 
 
 
Die Unterprogramme von C

Ein Programm der Programmiersprache C besteht ausschließlich aus Unterprogrammen, also solchen Programmteilen, die wiederum aus anderen Programmteilen heraus aufgerufen werden und nach dem Durchlauf zu dem sie aufrufenden Programm zurückkehren. Wegen einiger Besonderheiten der C-Unterprogramme nennt man diese Unterprogramme bei C, .. Funktionen.

Eine C-Funktion ist also ein Unterprogramm, das aus anderen Unterprogrammen heraus aufgerufen werden, und seinerseits weitere Unterprogramme aufrufen kann. Dies kann beliebig oft geschehen.
Das Unterprogramm oder besser die Funktion, die von dem Betriebssystem als erste aufgerufen wird, muss in einem C-Programm den Namen .. main() .. besitzen. Die anderen Funktionen können beliebige Namen besitzen. Die Funktion main() ist die Startfunktion eines C-Anwender-Programms.

Beispiel:
 
 
// tunix
// -----
// vollständiger C-Quelltext einer Funktion main(), die zu einer
// lauffähigen .exe-Datei übersetzt werden kann, nur leider nix
// tut.

   void main(void)
   {
   }

// Dieser Quelltext wird vom Compiler der IDE (der integrierten
// Entwicklungsumgebung in ein Maschinenprogramm übersetzt, das
// dann den Namen tunix.exe besitzt. exe – von execute
// (ausführbares Programm)
 
 
 
 
 
Funktionen (also Unterprogramme) werden in der Regel dazu benutzt, um Zahlen und Zahlenfolgen (kurz Daten) zu bearbeiten. Die Daten müssen dabei im Hauptspeicher des Rechners abgelegt sein und die Speicherzellen in denen sie abgelegt sind sollten einen Namen besitzen über den sie eindeutig angesprochen werden können. Da die abgelegten Daten normalerweise veränderbar (variabel) sind, spricht man bei ihnen von Programmvariablen, oder wenn sie einem Unterprogramm als Hilfsgrößen dienen, z.B. als Positionsangaben für die Ausgabestelle auf dem Bildschirm, dann kann man sie als Parameter bezeichnen.
 
 
 
 
 
Regeln für die Schreibweise von Variablen und Funktionen

1. Groß- und Kleinschreibung
In der Programmiersprache C wird zwischen Groß- und Kleinschreibung unterschieden. So stellt der Funktionsname main() eine andere Funktion dar, als Main() oder MAIN() usw.. Es ist deswegen bei allen Beispielen zwingend auf die Schreibweise der Funktionen und Variablen zu achten .. und main() muss main() geschrieben werden.

2. Gültige Länge von Namen
Variablen- oder Funktionsnamen sind bis auf 31 Stellen signifikant, werden also bis zum 31. Buchstaben vom Compiler auf Unterschiede untersucht. Sind sie bis zu dieser Stelle gleich, erkennt das Übersetzerprogramm, der Compiler, keine Unterschiede und behandelt vom Namen her unterschiedliche Objekte gleich. Er wird also den Quelltext falsch übersetzen.

3. Gültige Zeichen für Namen
Variablen- oder Funktionsnamen müssen mit einem Buchstaben oder dem Sonderzeichen Unterstrich '_' beginnen. Sie dürfen dann Buchstaben oder Ziffern enthalten. Das einzige zugelassene Sonderzeichen ist das Zeichen Unterstrich '_'.
Andere Sonderzeichen dürfen nicht vorkommen, die Umlaute ä,ü,ö,Ä,Ü,Ö,ß sind verboten.
Die Hersteller von Compilern, können die oben genannten Regeln 2 und 3 außer Acht lassen. Es entstehen aber erhebliche Probleme wenn ein zweiter Compiler auf dem ein Programm übersetzt werden soll, dies nicht tut. Dann ist eine unnötige Fehlersuche angesagt.
 
 
 
 
 
Die grundlegenden Elemente beim Programmieren...

Die Speicherzelleninhalte der Bytes eines RAM oder ROM Speichers, die letzterdings nur aus Zahlen mit Werten zwischen 0 und 255 bestehen, unterteilen sich aus der Sicht eines Programmierers in Daten und Programme. Hiervon sollen die Programme, die Daten wunschgemäß verändern.

Zur Erstellung eines Programms benötigt der Programmierer Befehlsworte. Diese lassen sich für wiederkehrende Aufgaben zu Programmblöcken zusammenfassen. Man nennt diese Programmblöcke dann ein Unterprogramm oder wie in C, eine Funktion. Die Unterprogramme können sich gegenseitig, in beliebiger Abfolge und Durchmischung, aktivieren (aufrufen). Ihre wesentliche Eigenschaft ist, dass sie, nachdem sie durchlaufen wurden, immer wieder zu der vorhergehenden Aufrufstelle zurückkehren. Genau genommen zu dem, nach der Aufrufstelle folgenden Befehl. Die obige main()-Funktion wird also zum Betriebssystem zurückkehren, nachdem ihr Ende erreicht wurde, womit das (Unter)Programm tunix.exe beendet ist.

Die Befehlsworte aus denen die Unterprogramme zusammengesetzt wurden, sollen folgend besprochen werden. Allerdings gibt es programmiertechnische Problemstellungen, die tief in die schaltungstechnische Funktion eines Computers reichen. So ist es ein Segen, dass bereits wissende Programmierer eine Vielzahl von Funktionen zusammengestellt haben, die man ohne die Kenntnis der konkreten Lösungsansätze dieser Problemstellungen benutzen kann. Allerdings muss man nun die 'Gebrauchsanweisung' dieser Funktionen lesen. Diese Funktionen sind in der statischen Bibliothek zu finden.
 
 
 
 

 

1.

Daten

Zahlen, Zeichen, Zeiger .. als Konstante oder in Variablen, die durch ein Programm bearbeitet werden sollen

 

 

2.

Programme

Sie bestehen im Zustand eines Quelltextes aus ..

 

 

2.1

Befehlsworten

(Schlüsselworten), also Zeichen oder Literalen für Grundrechenarten, Vergleiche, Schleifenkonstrukte, return, goto .. Befehle usw.

 

 

2.2

Funktionen()

Unterprogrammen, das sind Programmblöcke, die bei C .. Funktionen genannt werden, und die aus den Befehlsworten gebildet werden.

 

 
 
 
 
Die statische Bibliothek 'Library.lib'
Zum Sprachumfang der Sprache C gehört eine Bibliothek, das ist eine Programmsammlung, die bereits eine Vielzahl von Funktionen (Unterprogrammen) enthält. Aus diesen Unterprogrammen, sowie den Befehlsworten können eigene Funktionen geschrieben werden, die ihrerseits wiederum zur Erstellung neuer Funktionen genutzt werden können. Eine kleine Sammlung von Gebrauchsanweisungen zu diesen Funktionen ist hier zu finden.


Deklaration, Definition und Initialisation
Eigene Funktionen oder solche aus der statischen Bibliothek, sowie Daten die in einem Programm-Quelltext benutzt werden, müssen vor ihrer Benutzung 'deklariert' werden. Das meint, der Compiler muss vor ihrem ersten Auftreten, Kenntnis von ihnen erhalten haben. Sie müssen ihm 'erklärt=deklariert' worden sein, damit er den benötigten Speicherplatz beim Betriebssystem anfordern kann. Geschieht dies nicht, so erhält der Programmierer eine Vielzahl von Fehlermeldungen. Achten Sie bei den Kapiteln über 'Zahlen, Variablen und Konstanten' sowie bei den 'Funktionen' unbedingt auf die Darstellung der Syntaxregeln für die ..
 
 
 
 

 

Deklaration ..

Erklärung an den Compiler, das es eine Variable oder Funktion gibt und welchen Variablentyp letztere benutzt. (Zweck Fehlerkontrolle. Bei den Bibliotheksfunktionen befinden sich die Deklarationen in den Headerdateien.h, eigene Funktionen muss man selber deklarieren.

 

 

Definition ..

Belegung von RAM-Speicher durch das Schreiben einer Funktion bzw. das Einrichten des Speichers für eine Variable. Bei den Bibliotheksfunktionen befinden sich die Definitionen in der statischen Library.lib, die Definition eigener Funktionen findet normalerweise im eigenen Programm statt.

 

 

Aufruf .. bei Funktionen

Benutzen einer definierten Funktion. Normalerweise im eigenen Programm

 

 

Initialisation .. bei Variablen

Die erste Wertzuweisung an die Speicherzellen einer Variablen. Normalerweise im eigenen Programm.

 

 

 

 

 
Zwei grundlegende Syntax-Vereinbarungen

Die Syntax ist die Vereinbarung darüber, wie ein Wort, Satz oder eine Programmierzeile zu schreiben ist. Lehrer sind schon streng, aber Compiler (Übersetzerprogramme) sind strenger. Wenn Sie einen Syntaxfehler erkennen, werden sie nicht weiterarbeiten, bis der Fehler behoben wurde. Die beiden unten genannten Syntaxregeln führen durch ihre Missachtung häufig zu Fehlermeldungen.
 
 
 
 
 
  • Das Trennzeichen zwischen Befehlen, das Semikolon ;
    In der Programmiersprache C gibt es für den Compiler nur ein Trennzeichen zwischen den Befehlszeilen. Es ist dies das Semikolon ';' Alle anderen Zeichen wie Carriage Return (Enter), Space (Freizeichen), Tab (Tabulator) ... dienen dem Programmierer zur lesbaren Aufbereitung des Programm-Quelltextes. Der Compiler seinerseits erkennt sie nicht als Trennzeichen. Er ignoriert sie. Die zuletzt genannten Zeichen werden deswegen als 'white spaces' (weisse Freizeichen) bezeichnet.
 
 
 
 
 
  • Das Kommentarzeichen in C, // oder /* text */
    Kommentare werden in C entweder durch zwei Schrägstriche // eingeleitet oder von der Zeichenfolge /* text */ eingekesselt. Im ersten Fall endet der Kommentar mit dem nächsten Carriage Return (Enter), im zweiten Fall gilt alles als Kommentar, was zwischen den beiden Zeichenfolgen /* .. */ steht.
    Kommentare sind ein äußerst nützliches Mittel für den Programmierer um auch nach längerer Zeit noch zu verstehen, was er programmiert hat (oder programmieren wollte). Sie können auch dazu dienen, um Befehlszeilen bei einem Programmtest lahmzulegen. In diesem Fall muss nur das Kommentarzeichen // vor die Zeile geschrieben werden. Alles was hinter diesem Zeichen folgt wird vom Compiler nicht beachtet. z.B.
          // printf(); // die Funktion schreibt zum Bildschirm
    diese Zeile ist in ihrer Gesamtheit ein Kommentar.
 
 
 
 
 
Fehler im Programm
Fehler die durch eine falsche Programmierung entstehen, können zu zwei verschiedenen Zeitpunkten auftreten.
 
 
 
 
 
  • Fehler während der Übersetzung
    Wenn Sie ihren Programm-Quelltext fertiggestellt haben, muss dieser in Maschinensprache übersetzt werden. Hierzu bemühen Sie ohne es normalerweise zu merken zwei Programmteile. Der eine Programmteil ist der Compiler (Übersetzer) der andere der Linker (Binder). Letzterer verbindet Unterprogramme aus der Bibliothek mit ihrem fertig übersetzten Programm.
    Beide Programmteile können Fehlermeldungen erzeugen, doch ist es meistens der Compiler, der über Ihre Programmierung 'mault'. Diese Fehlermeldungen müssen sie lesen und nach der Fehlerquelle in Ihrem Quelltext fahnden.
 
 
 
 
 
  • Fehler zur Laufzeit des Programms
    Leider findet der Compiler nur Syntaxfehler (Rechtschreibfehler). Fehler, die in der Logik Ihres Programms enthalten sind, bleiben von ihm unbemerkt. So kann das Programm nach seinem Start, also zur Laufzeit, 'spinnen' oder gar den Rechner zum Absturz bringen.
    Wenn das Programm noch unter der Entwicklungsumgebung, der IDE läuft, fängt diese in der Regel die schlimmsten Konsequenzen der Laufzeitfehler ab. Läuft ihr Programm selbständig, so kann ein Neustart des Rechners notwendig werden.
    In diesem Fall sollten Sie ihren Quellcode auf der Festplatte gesichert haben, denn er wäre unwiederbringlich verloren.
 
 
 
 
www..de