SUCHE MIT Google
Web virtualuniversity.ch
HOME DIDAKTIK ECDL ELEKTRONIK GUIDES HR MANAGEMENT MATHEMATIK SOFTWARE TELEKOM
DIENSTE
Anmeldung
Newsletter abonnieren
Sag's einem Freund!
VirtualUniversity als Startseite
Zu den Favoriten hinzufügen
Feedback Formular
e-Learning für Lehrer
Spenden
Autoren login
KURSE SUCHEN
Kurse veröffentlichen

Suche nach Datum:

Suche mit Schlüsselwort:

Suche nach Land:

Suche nach Kategorie:
PARTNER
ausbildung24.ch - Ausbildungsportal, Seminare, Kursen... 

 
HTMLopen.de - Alles was ein Webmaster braucht

 
PCopen.de - PC LAN Netze und Netzwerke - alles was ein IT Profi und Systemtechnicker braucht

SOFTWARE
FormZeichen
BuchstabenA B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k 1 m n o p q r s t u v w x y z
Ziffern0 1 2 3 4 5 6 7 8 9
Unterstrich _
Sonderzeichen! " # % & ' ( ) * + , - . / : ; < = > ? [ \ ] ^ { | } ~

Neben den sichtbaren Zeichen verfügt C noch über weitere Zeichen:

ZeichenBedeutung
LeertasteSpace, Leerzeichen
WarnungBEL, Klingel, Signalton
BackspaceBS, Rückschritt
FormfeedFF, Sprung zum nächsten Seitenanfang
NewlineNL, Zeilenende, "Line Feed", Zeilenvorschub
ReturnCR, "Carriage Return", Sprung zum Anfang der aktuellen Zeile
TabHT, Horizontaler Tabulator

Sie sehen, daß die nationalen Sonderzeichen, wie z. B. Umlaute, nicht zum Zeichensatz von C gehören. Diese können jedoch in Literalen (Strings) auftauchen. Die oben vorgestellten weiteren Zeichen des Zeichensatzes in C werden durch Escape-Sequenzen realisiert. Diese Technik wird weiter unten vorgestellt.

Namen bestehen in C aus Buchstaben, Ziffern und dem Unterstrich. Sie dürfen nicht mit einer Ziffer beginnen.

Trennzeichen

Das Leerzeichen, Zeilenende, die Tabulatoren, Seitenvorschub und Kommentare sind Trennzeichen. Sie trennen die Grundelemente der Sprache. Mehrere dieser Trennzeichen hintereinander werden als ein Trennzeichen angesehen. Folgt einem Backslash (\) ein Zeilenendezeichen, dann wird eine logische Zeile gebildet:
                                       Das \
                                       ist eine logische Zeile
                                       

Formatfreiheit

Der Programmtext wird in C ohne Zeilennummern und formatfrei eingegeben. Trotz dieser Formatfreiheit sollten Sie Ihre Programme so gestalten, daß sie von Menschen gelesen und verstanden werden können. Aus den vorgestellten Programmen ist eine gewisse, vom Autor frei gewählte, Konvention erkennbar. Andere Autoren haben vergleichbare Gewohnheiten, entscheiden Sie sich für eine.

Kommentare

Die Informationen zur Programmdokumentation werden in einem Kommentar untergebracht. Dieser wird mit /* eingeleitet und mit */ beendet. Ein Kommentar kann über mehrere Zeilen gehen.
Diese Möglichkeit ist nicht nur zum Kommentieren wichtig, sondern auch zum Einkreisen von Fehlern. Verdächtiger Kode mit /* und */ eingekreist und der Fehler möglicherweise umzingelt.
Kommentare dürfen nicht geschachtelt werden. Diese Einschränkung ist dann unangenehm, wenn Sie Programmtext "auskommentieren", d. h. außer Kraft setzen wollen. Sie müssen dann nämlich darauf achten, daß Sie nicht zufällig Kommentare mit einschließen. Daher lassen manche Compilerhersteller auch verschachtelte Kommentare zu.
Es gibt Compiler, die // als Kommentarbeginn zulassen, Kommentarende ist dann das Ende der Zeile.

Compilerdirektive #include

Durch diese Anweisung an den Compiler werden weitere Dateien in den Quelltext eingebunden. Es handelt sich in der Regel um sogenannte "Headerdateien" (siehe unten). Beispiel:
                                       #include <stdio.h>
                                       
Durch diese Compilerdirektive wird der Inhalt der Datei stdio.h dem Quelltext hinzugefügt. Die Lage der Headerdateien im Dateisystem des Rechners ist über Compiler-Voreinstellungen festgelegt. Meist heißt das Verzeichnis auch "include". Eine Weitere Form der include-Anweisung ist:
                                       #include "myfile.h"
                                       
Hier wird normalerweise in aktuellen Verzeichnis gesucht. Man kann bei der Headerdatei auch einen Dateipfad angeben.

Headerdateien

Die Datei stdio.h ist durch die Endung ".h" als Headerdatei erkennbar. Headerdateien werden am Kopf (englisch head = Kopf) des Quelltextes eingefügt. Die Headerdatei mit dem Namen stdio.h wird somit vom Compiler eingelesen. Hier stehen wichtige Informationen über den Aufbau von Funktionen, die im Programmlauf aufgerufen werden. Diese Headerdateien sind reine Textdateien, Sie können den Inhalt mit einem Editor untersuchen.
In den Headerdateien findet der Compiler Prototypen, Präprozessor-Makros und symbolische Konstanten. Prototypen sind Muster für die Verwendung von Funktionen. Der Präprozessor wird vor dem eigentlichen Compilationsvorgang gestartet, er ersetzt Makros im Text durch einen anderen Text. Weiterhin werden häufig verwendete Konstanten, wie z. B. EOF, definiert. Die Kodierung für die angesprochenen Funktionen befindet sich in Bibliotheken, die beim Linken dem compilierten Programm hinzugebunden werden. Durch die Headerdateien wird der Compiler beruhigt: Es fehlt nichts, die weiteren Informationen folgen beim Linken (= Zusammenbinden mehrerer binärer Objektdateien zu einem Programm).

Das Semikolon

In C muß jede Anweisung mit einem Semikolon (;) abgeschlossen werden. In Pascal, zum Vergleich, trennt das Semikolon zwei Anweisungen.

Funktionen

Es gibt in C kein besonderes Hauptprogramm (wie in Pascal oder anderen Sprachen). Für jedes C-Programm ist main() die Hauptfunktion. Hier beginnt der prozedurale Teil. Da main() eine Funktion ist, können Argumente übergeben werden. Weiterhin kann dem aufrufenden Programm ein Ergebnis geliefert werden. In diesem Fall wird nichts übergeben und nichts zurückgeliefert. Das Nichts kann in C auch void genannt werden. Innerhalb der Funktion main() befindet sich der Anweisungsblock, der mit "{" eingeleitet und mit "}" beendet wird. Das ist ein allgemeines Prinzip:

Anweisungsblöcke werden durch geschweifte Klammern zusammengefaßt.

main() wird auch im Programm nur definiert, aber nicht aufgerufen. Sie werden niemals einen Befehl main(); in einem C-Programm finden. main() hat eine Sonderstellung: Es handelt sich um die Funktion, die beim Programmstart auf jeden Fall ausgeführt wird.

Die Funktion main() liefert bei einem erfolgreichen Programmlauf den Wert Null als Ergebnis. Manche Compiler verlangen, daß am Ende von main() ausdrücklich ein Rückgabewert angegeben wird. Ergänzen Sie dann das Programm nach der letzten Anweisung, also vor der letzten geschweiften Klammer, um die Anweisung:

return (0)

oder

return 0

Mit dieser Angabe kann das Betriebssystem, das das Programm gestartet hat, überprüfen, ob das aufgerufene Programm ordnungsgemäß beendet worden ist. Im Fehlerfall wird ein Wert ungleich Null zurückgegeben.

Standardbibliotheken

Die Standardfunktionen werden von Standardbibliotheken zur Verfügung gestellt. Die folgenden Headerdateien stellen die Verbindung zu den Standardbibliotheken her, wobei die folgende Tabelle nur ein Auszug aus allen verfügbaren Headerdateien ist:

BibliothekAufgabenbereiche
assert.hÜberprüfung von Bedingungen
ctype.hTypkonvertierungen und Typtests
errno.hBehandlung von Systemfehlern
float.hFließkomma-Bibliothek
limits.hGrenzen für Datentypen
locale.hVerwaltung der lokalen Struktur
math.hmathematische Funktionen
signal.hProzeßsteuerung
stddef.hStandardkonstanten
stdio.hStandardeingabe und -ausgabe
stdlib.hStandardbibliotheksfunktionen
string.hFunktionen zur Stringverarbeitung
time.h Zeitmanagement

Beim Programmieren in C verwenden Sie entweder die oben angebotenen Standardfunktionen oder selbstdefinierte Funktionen oder Sie beziehen vollständige Funktionsbibliotheken für alle nur denkbaren Anwendungsgebiete. Damit ist C so leistungsfähig, daß sowohl Betriebssysteme als auch beliebige Anwendungen programmiert werden können.

Schlüsselwörter

Die Schlüsselwörter einer Programmiersprache haben eine vordefinierte Bedeutung, diese kann nicht geändert werden. Hier eine _bersicht:

autodoubleintstruct
breakelselongswitch
caseenumregistertypedef
charexternreturnunion
constfloatshortunsigned
continueforsignedvoid
defaultgotosizeofvolatile
doifstaticwhile

Für C ist der Unterschied zwischen Groß- und Kleinschreibung wichtig.

Die Schlüsselwörter müssen also genauso geschrieben werden, wie sie vorgestellt worden sind. Diese Schlüsselwörter bilden den Kern der Programmiersprache C.

Bezeichner und Namen

In C (nicht in C++) ist ein Objekt ein Speicherbereich, der aus einer zusammenhängenden Folge von einem oder mehreren Bytes bestehen muß. Mit Bezeichnern werden Objekte identifiziert. Dabei gelten die folgenden Regeln:
  • Ein Bezeichner besteht aus einer Folge von Buchstaben, Ziffern oder dem Unterstrich (_), das erste Zeichen darf keine Ziffer sein.
  • Ein Bezeichner darf beliebig lang sein, es ist jedoch nur eine bestimmte Länge signifikant.
  • Schlüsselwörter dürfen nicht als Bezeichner genommen werden.
Auch hier gilt, daß zwischen Groß- und Kleinschreibung unterschieden wird. Namen sind Bezeichner von Variablen, Funktionen und Marken.

Escape-Sequenzen

In der Zeile

printf("Hello World!\n");

finden Sie die Escape-Sequenz \n, die den Cursor zum Anfang der nächsten Zeile bewegt (bzw. auf dem Drucker eine neue Zeile beginnt). Nichtdruckbare Zeichen werden über solche Escape-Sequenzen, eingeleitet durch "\" in den Programmtext eingefügt (meist, für die Ein- und Ausgabe oder in Strings). Hier eine Übersicht über einige Escape-Sequenzen:

ZeichenEscape-SequenzBedeutung
"\"Anführungszeichen
'\'Apostroph
?\?Fragezeichen
\\\Backslash
BEL\aBell
BS\bBackspace
FF\fFormfeed
NL\nNewline
CR\rCarriage Return
HT\tHorizontal-Tabulator
VT\vVertical-Tabulator

Einführendes Beispiel

Dies ist wohl eines der bekanntesten C-Programme:
                                       #include <stdio.h>      /* header file  '... .h' */
                                       int main(void)                /* Hauptprogramm 'main()' */
                                         {                           /* Beginn ... */
                                         printf("Hello world!\n");   /* schreibt "..." auf stdout */
                                       
                                          return 0;                  /* alles okay ... */
                                         }                           /* ... Ende Block */
                                       
Anmerkungen:
  • C unterscheidet zwischen Groß- und Kleinbuchstaben (case sensitev);
  • Kommentare (bzw. allg. Zeichen, die der Compiler ignorieren soll) werden in /* */ eingeschlossen; dies kann auch über Zeilen hinweg geschehen.
    Vorsicht: Kommentare dürfen nicht geschachtelt werden!
  • Programm besteht aus Ausdrücken, die durch ';' terminiert sind (sog. "Statements" oder "Anweisungen");

                                       #include <stdio.h>
                                       
                                       int main(void)
                                         {
                                         int n, m;                             /* Deklaration der Variablen
                                                                                'n' und 'm' als integer */
                                         printf("2 ganze Zahlen eingeben: ");
                                         scanf("%d%d", &n, &m);        /* Werte einlesen von stdin */
                                         printf("\nSumme von %d und %d: %d\n", 
                                                                   n, m, n+m); /*Ergebnis*/
                                         return 0;
                                         }
                                       
Anmerkungen:
  • Das Hauptprogramm heißt immer main(); formal ist das eine Funktion, deshalb int main(void) oder int main(int argc, char **argv);
  • main() sollte immer einen Wert zurückgeben;
  • Am Beginn eines Blockes (Block: spezifiziert durch '{' und '}') müssen die hierin verwendeten Variablen deklariert werden (soweit dies nicht schon außerhalb geschehen ist); dies geschieht jeweils durch Angabe des Datentyps, gefolgt vom Namen der Variablen.
  • Es ist üblich, Klammerebenen durch Einrücken zu verdeutlichen.
  • Die Funktion printf dient der Ausgabe von Text und Inhalten von Variablen auf den Bildschirm (stdout); dazu ist die Angabe des gewünschten Formats nötig; die Formatangabe hat die Form %format.
  • Zum Einlesen von Werten wird die Funktion scanf verwendet; die obigen Formatangaben sind im Wesentlichen die gleichen wie bei printf. Außerdem muß dem Variablennamen in der Parameterliste von scanf ein '&' voranstehen (tatsächlich werden nämlich die Adressen der Variablen übergeben).

Damit haben Sie auch schon eine wichtige Kontrollstruktur kennengelernt. Als Block wird bezeichnet, was in einem Klammerpaar { } eingeschlossen ist. Ein solcher Block faßt die in ihm enthaltenen Statements zu einem sog. "Compound-Statement" zusammen; dies ist syntaktisch äquivalent zu einem einzelnen Statement. Blöcke verfügen über bemerkenswerte Eigenständigkeit: innerhalb jedes Blockes können lokale Variablen deklariert werden. Beispiel:

                                       int i=3;
                                         {  
                                         int i=4;
                                         printf("%d", i);      /* output: 4 */
                                         }
                                       printf("%d", i);        /* output: 3 */
                                       
Noch ein Beispiel: Vorstellung einfacher Datentypen und ihrer Ausgabe mit printf(); Verwendung der Zuweisung und der arithmetischen Operatoren +, -, *, / und %.
                                       #include <stdio.h>
                                       #include <stdlib.h>
                                       
                                       int main(void)
                                       {
                                         /* Beachten Sie: Innerhalb eines Paares geschweifter Klammern  */
                                         /* immer zuerst alle benoetigten lokalen Variablen deklarieren */
                                         /* und dann die Anweisungen schreiben.                         */
                                       
                                         /* Deklaration der (lokalen) Variablen */
                                         int         i,ii;  /* printf-Format: %d  */
                                         short int   h,hh;  /* printf-Format: %hd */
                                         long int    l,ll;  /* printf-Format: %ld */
                                         char        c,cc;  /* printf-Format: %c  */
                                         float       f,ff;  /* printf-Format: %f  | %e  | %g  */
                                         double      d,dd;  /* printf-Format: %lf | %le | %lg */
                                         long double q,qq;  /* printf-Format: %Lf | %Le | %Lg */
                                       
                                         /* Addition zweier int-Zahlen */
                                         i=1;
                                         ii=-2;
                                         printf("int: i=%d, ii=%d, i+ii=%d\n",i,ii,i+ii);
                                       
                                         /* Ganzzahl-Division zweier short-int-Zahlen */
                                         h=7;
                                         hh=2;
                                         printf("short: h=%hd, hh=%hd, h/hh=%hd\n",h,hh,h/hh);
                                       
                                         /* Divisionsrest zweier long-int-Zahlen */
                                         l=7l;
                                         ll=2l;
                                         /* Achtung beim Prozent: Zur Ausgabe doppelt schreiben */
                                         printf("long: l=%ld, ll=%ld, l%%ll=%ld\n",l,ll,l%ll);
                                       
                                         /* Ausgabe zweier Zeichen */
                                         c='A';
                                         cc='B';
                                         printf("char: c=%c, cc=%c\n",c,cc);
                                         /* Probieren Sie auch die Zeichen '\n', '\t', '\b' aus */
                                       
                                         /* Multiplikation zweier float-Zahlen */
                                         f=1.3E4f;
                                         ff=-5.7E3f;
                                         printf("float: f=%f, ff=%f, f*ff=%f\n",f,ff,f*ff);
                                       
                                         /* Division zweier double-Zahlen (Gleitkomma-Division) */
                                         d=1.3E4;
                                         dd=-5.7E3;
                                         printf("double: d=%lf, dd=%lf, d/dd=%lf\n",d,dd,d/dd);
                                       
                                         /* Subtraktion zweier long-double-Zahlen */
                                         q=1.3E4l;
                                         qq=1.299999999E4l;
                                         printf("long double: q=%Lf, qq=%Lf, q-qq=%Lf\n",q,qq,q-qq);
                                       
                                         /* Ergebnis eines Vergleichs ist 0 oder 1 als int-Zahl */
                                         c='A';
                                         cc='B';
                                         printf("Vergleich von %c und %c ergibt %d.\n",c,cc,c==cc);
                                       
                                         /* Mehrere Zuweisungen in einem Ausdruck ausführen */
                                         c=cc='X';
                                         printf("Zwei Ixe: %c%c\n",c,cc);
                                       
                                         /* Man kann Gleitkommazahlen in verschiedenen Formaten
                                         ausgeben. Die 20 hinter dem % füllt links mit Leerzeichen
                                         auf 20 Zeichen auf. */
                                         dd=4E0/3.0;
                                         printf("Gleit- > %20lf %20le %20lg\n",dd,dd,dd);
                                         dd=4E9/3.0;
                                         printf("komma- > %20lf %20le %20lg\n",dd,dd,dd);
                                         dd=4E20/3.0;
                                         printf("formate> %20lf %20le %20lg\n",dd,dd,dd);
                                       
                                         /* Funktion main() und damit Programm beenden */
                                         return(0);
                                         }
                                       

DIPLOMARBEITEN UND BÜCHER

Diplomarbeiten zum Runterladen:

Suche im Katalog:
Architektur / Raumplanung
Betriebswirtschaft - Funktional
Erziehungswissenschaften
Geowissenschaften
Geschichtswissenschaften
Informatik
Kulturwissenschaften
Medien- und Kommunikationswissenschaften
Medizin
Psychologie
Physik
Rechtswissenschaft
Soziale Arbeit
Sozialwissenschaften


JOBS
HOME | E-LEARNING | SITEMAP | LOGIN AUTOREN | SUPPORT | FAQ | KONTAKT | IMPRESSUM
Virtual University in: Italiano - Français - English - Español
VirtualUniversity, WEB-SET Interactive GmbH, www.web-set.com, 6301 Zug

Partner:   Seminare7.de - PCopen.de - HTMLopen.de - WEB-SET.com - YesMMS.com - Ausbildung24.ch - Manager24.ch - Job und Karriere