Kapitel 1. Grundlagen



Ähnliche Dokumente
C++ - Lernen und professionell anwenden

Grundlagen. Kapitel 1

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Übungen zu C++ Kapitel 1

Beispiel(unten ist der Spielfeldrand):

Arbeiten mit UMLed und Delphi

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

1 Vom Problem zum Programm

Informationen zur Verwendung von Visual Studio und cmake

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Installation OMNIKEY 3121 USB

Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Erstellen von x-y-diagrammen in OpenOffice.calc

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Bereich METIS (Texte im Internet) Zählmarkenrecherche

Erstellen der Barcode-Etiketten:

1 topologisches Sortieren

Dokumentation IBIS Monitor

Zählen von Objekten einer bestimmten Klasse

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

104 WebUntis -Dokumentation

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Einführung in die C-Programmierung

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

1. Melden Sie sich als Administrator an und wechseln Sie zum Desktop

Installation und Inbetriebnahme von Microsoft Visual C Express

Modellbildungssysteme: Pädagogische und didaktische Ziele

Zwischenablage (Bilder, Texte,...)

Wie Sie mit Mastern arbeiten

Präventionsforum+ Erfahrungsaustausch. HANDOUT GRUPPEN-ADMINISTRATOREN Anlage zum Endnutzer-Handbuch. Stand: Änderungen vorbehalten

Speicher in der Cloud

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Anleitung über den Umgang mit Schildern

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Software- und Druckerzuweisung Selbstlernmaterialien

Die Programmiersprache C

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Einführung in. Logische Schaltungen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Aufklappelemente anlegen

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Professionelle Seminare im Bereich MS-Office

Anleitung zur Verwendung der VVW-Word-Vorlagen

Allgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Barcodedatei importieren

Professionelle Seminare im Bereich MS-Office

Kompilieren und Linken

Objektorientiertes Programmieren mit Suse Linux

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

Wie halte ich Ordnung auf meiner Festplatte?

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Info-Veranstaltung zur Erstellung von Zertifikaten

Was meinen die Leute eigentlich mit: Grexit?

25 kann ohne Rest durch 5 geteilt werden! ist wahr

Österreichische Trachtenjugend

Wie kann ich in der Backstage-Ansicht eigene Dokumentationen einbinden?

Technische Dokumentation SilentStatistikTool

Medea3 Print-Client (m3_print)

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

FRILO-Aktuell Ausgabe 2/2013

1 Mathematische Grundlagen

Anwender-Dokumentation. Update ATOSS WINDOWS. Versionswechsel innerhalb der V2.5

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

TESTEN SIE IHR KÖNNEN UND GEWINNEN SIE!

Mediator 9 - Lernprogramm

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Primzahlen und RSA-Verschlüsselung

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Grafikbausatz Overlays Profi. für iphone/pocket Visu & PC Visualisierungen

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Dokumentenverwaltung im Internet

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Gambio GX2 FAQ. Inhaltsverzeichnis

Kapitel 3 Frames Seite 1

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Installation kitako. Wir nehmen uns gerne Zeit für Sie! Systemanforderungen. Demoversion. Kontakt

Artikel Schnittstelle über CSV

Anzeige von eingescannten Rechnungen

Version 0.3. Installation von MinGW und Eclipse CDT

Informationsblatt Induktionsbeweis

Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999

Wir machen neue Politik für Baden-Württemberg

Bkvadmin2000 Peter Kirischitz

Tutorial: Wie erstelle ich mit dem Brennprogramm Roxio Toast VideoCDs mit einem Dateien-Zusatzordner

Serienbrief mit Works 7.0

Gruppenrichtlinien und Softwareverteilung

Wie man eigene Programme erstellt

Anleitung: Ändern von Seiteninhalten und anlegen eines News Beitrags auf der Homepage des DAV Zorneding

4.4 AnonymeMärkteunddasGleichgewichtder"vollständigen Konkurrenz"

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Hilfedatei der Oden$-Börse Stand Juni 2014

Transkript:

Grundlagen Dieses Kapitel beschreibt die nötigen Schritte zur Erstellung eines lauffähigen C- Programms. Diese Schritte können Sie auf Ihrem System anhand von einführenden Beispielen nachvollziehen. Die Beispiele dienen auch dazu, die grundlegende Struktur von C-Programmen darzustellen. 17

C Lernen und professionell anwenden Entwicklung und Eigenschaften von C Charakteristische Eigenschaften universell C maschinennah portabel 18

Grundlagen Historisches Die Programmiersprache C wurde 1972 von Dennis M. Ritchie in den Bell-Laboratorien (Murray Hill, USA ) entwickelt, um das Betriebssystem Unix auf einer PDP-11 zu implementieren. Die typenfreien System-Programmiersprachen B und BCPL (Basic Combined Programming Language) können als Vorgänger von C bezeichnet werden. C entstand aus dem Wunsch, mit einer höheren Programmiersprache ein nützliches Werkzeug in der Hand zu haben, das die Vorteile einer strukturierten Sprache und zugleich die Möglichkeiten eines Assembler ausnutzen kann. In der Tat ist C so leistungsfähig, dass es nicht nur für die Systemprogrammierung, sondern als universell verwendbare Hochsprache eingesetzt wird: Datenbanken, Kalkulationsprogramme, Grafik-Applikationen wurden unter anderem in C geschrieben. C ist an der Architektur der heutigen Rechner orientiert, was sich in elementaren Datenobjekten und Operatoren widerspiegelt. Der eigentliche Kern von C ist relativ klein. Zum Sprachumfang gehören weder Anweisungen für die Ein-/ Ausgabe noch Dateizugriffe oder Speicherverwaltungstechniken. Für diese Aufgaben stehen standardisierte Funktionen in einer umfangreichen Bibliothek zur Verfügung. Vorteile In der Praxis ergeben sich daraus wesentliche Vorteile: C-Compiler sind kompakt, besonders leicht auf neue Systeme zu übertragen, und erzeugen einen effizienten Maschinencode. Die hardwareabhängigen Bestandteile der Sprache C sind auf ein Minimum reduziert. C ist damit eine in höchstem Maße portable Sprache. Mit einer gewissen Sorgfalt ist es möglich, C-Programme zu schreiben, die unverändert auf verschiedenen Rechnern, vom PC bis zum Supercomputer, laufen. Die Portabilität ist mit ein Grund für den rasanten Siegeszug der Sprache. C besitzt wenig restriktive Regeln. Die daraus resultierende Flexibilität fordert jedoch auch ihren Preis: Der Programmierer benötigt detaillierte Sprachkenntnisse und größte Disziplin. Der Lohn seiner Mühen sind kompakte und schnelle Programme, die bestechend einfach und elegant formulierbar sind. 19

C Lernen und professionell anwenden Erstellung und Übersetzung eines C-Programms Übersetzung eines C-Programms 20

Grundlagen Zur Erstellung und Übersetzung eines C-Programms sind folgende drei Schritte notwendig: 1. Das C-Programm wird mit einem Texteditor in eine Datei mit der Endung.c eingegeben. Anders ausgedrückt: Der Quellcode wird in einer Quelldatei abgelegt. Bei größeren Projekten ist es üblich, modular zu programmieren. Dabei wird der Quellcode auf mehrere Quelldateien verteilt, die getrennt bearbeitet und übersetzt werden können. 2. Die Quelldatei wird dem Compiler zur Übersetzung gegeben. Geht alles gut, so erhält man eine Objektdatei, die den Maschinencode enthält. Eine Objektdatei wird auch Modul genannt. Je nach Einstellung des Compilers wird zusätzlich ein Assembler-Listing des Programms erstellt. 3. Schließlich bindet der Linker die Objektdatei mit anderen Modulen zu einer ausführbaren Datei. Die Module bestehen aus Funktionen der Standardbibliothek oder selbst erstellten, schon früher übersetzten Programmteilen. Bibliotheken und Entwicklungsumgebung In C heißen Unterprogramme Funktionen. Die Standardbibliothek enthält fertige Funktionen, die standardisiert sind und die jeder Compiler zur Verfügung stellt. Zu jeder Compiler-Software gehört ein Bibliotheks-Manager. Das ist ein Dienstprogramm, mit dem verschiedene Module übersichtlich in einer eigenen Bibliothek verwaltet werden können. Möchte man eine Funktion aus einem Modul der Bibliothek in einem C-Programm verwenden, so genügt es, die entsprechende Bibliothek beim Linken anzugeben. Die Standardbibliothek braucht nicht angegeben zu werden, da sie automatisch gesucht wird. Moderne Compiler bieten eine integrierte Entwicklungsumgebung, die die obigen drei Schritte zusammenfasst. Innerhalb einer gemeinsamen Benutzeroberfläche wird das Programm editiert, compiliert, gelinkt und ausgeführt. Außerdem können weitere Tools, wie z.b. ein Debugger, gestartet werden. Fehlermeldungen und Warnungen Enthält die Quelldatei auch nur einen Syntaxfehler, so zeigt dies der Compiler mit einer Fehlermeldung an. Darüber hinaus können weitere Fehlermeldungen ausgegeben werden, die darauf beruhen, dass der Compiler versucht, trotz des Fehlers weiter zu übersetzen. Beginnen Sie also immer mit der Korrektur des ersten Fehlers in einem Programm. Neben den eigentlichen Fehlermeldungen gibt der Compiler auch Warnungen aus. Eine Warnung zeigt keinen Syntaxfehler an, sondern ist lediglich ein Hinweis auf einen möglichen logischen Fehler, wie beispielsweise eine nicht initialisierte Variable oder die Verwendung einer veralteten Bibliotheksfunktion. 21

C Lernen und professionell anwenden Struktur von C-Programmen Ein erstes C-Programm #include <stdio.h> int main() printf("viel Spass mit C!\n"); Bildschirmausgabe Viel Spass mit C! Die Struktur der Funktion main() Typ Funktionsname int main() Beginn der Funktion Was das Programm macht Funktionsblock (Anweisungen) Ende der Funktion 22

Grundlagen Ein C-Programm besteht aus»bausteinen«, den Funktionen, die sich gegenseitig aufrufen. Jede Funktion löst eine bestimmte Aufgabe. Sie ist entweder selbst erstellt oder eine fertige Routine aus der Standardbibliothek. Die Funktion main() hat eine besondere Rolle: Sie bildet das Hauptprogramm. Jede andere Funktion entspricht einem Unterprogramm. Anhand des nebenstehenden kurzen Programmbeispiels lassen sich bereits die wichtigsten Elemente eines C-Programms darstellen. Das Programm enthält nur die Funktion main() und gibt eine Meldung auf dem Bildschirm aus. Präprozessor Die erste Zeile beginnt mit einem Doppelkreuz # und ist daher für den Präprozessor bestimmt. Der Präprozessor ist Teil der ersten Übersetzungsphase, bei der noch kein Objektcode erzeugt wird. Mit der #include-direktive #include <dateiname> kopiert der Präprozessor die genannte Datei an diese Stelle in den Quellcode. Dadurch stehen dem Programm alle Informationen zur Verfügung, die in der Datei enthalten sind. Die Datei stdio.h enthält Vereinbarungen für die Ein-/Ausgabe mit Standardfunktionen. Sie ist eine von mehreren sogenannten Header-Dateien, die standardmäßig zu jeder Compiler-Software gehören. Im Anhang»Funktionen der Standardbibliothek«ist für jede Standardfunktion angegeben, welche Header- Datei zu includieren ist. Die Funktion main() Die Programmausführung beginnt mit der ersten Anweisung in der Funktion main(), die daher in jedem C-Programm vorhanden sein muss. Nebenstehend ist die Struktur der Funktion dargestellt. Sie unterscheidet sich - abgesehen vom feststehenden Namen - nicht von der Struktur anderer Funktionen. In unserem Beispiel enthält die main-funktion zwei Anweisungen. Mit printf("viel Spass mit C!\n"); wird die Standardfunktion printf() aufgerufen, die den angegebenen Text auf dem Bildschirm ausgibt. Neben druckbaren Zeichen wird auch das Steuerzeichen \n ausgegeben, was einen Zeilenvorschub auslöst. Die zweite Anweisung beendet die Funktion main() und damit das Programm. Dabei wird der Wert 0 dem aufrufendem Programm als Exit-Code zurückgegeben. Es ist üblich, den Exit-Code 0 zu verwenden, wenn das Programm korrekt abgelaufen ist. In C endet jede Anweisung mit einem Semikolon. Die kürzeste Anweisung besteht übrigens nur aus einem Semikolon und bewirkt nichts. 23

C Lernen und professionell anwenden Struktur von C-Programmen (Fortsetzung) Ein Beispielprogramm mit mehreren Funktionen /* Ein C-Programm mit drei Funktionen: main(), draw_line(), message() ------------------------------------------------------ */ #include <stdio.h> void draw_line(void), message(void); // Prototypen int main() printf("hallo! Das Programm startet in main().\n"); draw_line(); message(); draw_line(); printf("jetzt am Ende von main().\n\n"); void draw_line() // Eine Linie ausgeben printf("-----------------------------------------\n"); void message() // Eine Meldung ausgeben printf("in der Funktion message().\n"); Bildschirmausgabe: Hallo! Das Programm startet in main(). -------------------------------------- In der Funktion message(). -------------------------------------- Jetzt am Ende von main(). 24

Grundlagen Das nebenstehende Beispiel zeigt, wie ein C-Programm strukturiert ist, das aus mehreren Funktionen besteht. Die Reihenfolge, in der die Funktionen definiert werden, ist in C nicht vorgeschrieben. Zum Beispiel könnte auch zuerst die Funktion message(), dann draw_line() und schließlich die main-funktion geschrieben werden. In C wird üblicherweise die main-funktion zuerst angegeben, da sie den Programmablauf steuert. Es werden also Funktionen aufgerufen, die erst später definiert werden. Dies ist möglich, da der Compiler mit dem Prototyp einer Funktion die notwendigen Informationen erhält. Auf Prototypen wird in späteren Kapiteln eingegangen. Kommentare Neu in diesem Beispiel sind die Kommentare. Jede Zeichenfolge, die durch /* */ eingeschlossen ist oder mit // beginnt, ist ein Kommentar und wird vom Compiler ignoriert. Beispiele: /* Ich darf mehrere Zeilen lang sein */ // Ich bin ein Einzeilen-Kommmentar Beim Einzeilen-Kommentar ignoriert der Compiler ab den Zeichen // alle Zeichen bis zum Zeilenende. Kommentare sollten großzügig zur Dokumentation in einem Programm genutzt werden. Kommentare, die sich über mehrere Zeilen erstrecken, sind auch bei der Fehlersuche nützlich, um ganze Programmteile»auszublenden«. Solche Programmteile dürfen auch Einzeilen-Kommentare enthalten. Mehrzeilen-Kommentare dürfen jedoch nicht geschachtelt werden. Layout der Quelldatei Der Compiler bearbeitet jede Quelldatei sequenziell und zerlegt den Inhalt in Token (kleinste Bestandteile), wie z.b. Funktionsnamen und Operatoren. Token können durch beliebig viele Zwischenraumzeichen getrennt werden, also durch Leer-, Tabulator- oder Newline-Zeichen. Es kommt daher nur auf die Reihenfolge des Quellcodes an, nicht jedoch auf ein bestimmtes Layout, wie etwa die Aufteilung in Zeilen und Spalten. Beispielsweise ist void message ( ) printf ( "In der Funktion message()\n" ) ; zwar eine schlecht lesbare, aber korrekte Definition der Funktion message(). Eine Ausnahme bzgl. des Layouts bilden die Präprozessor-Direktiven, die stets eine eigene Zeile einnehmen. Dem Doppelkreuz # zu Beginn der Zeile dürfen nur Leer- oder Tabulator-Zeichen vorangehen. Zur besseren Lesbarkeit ist es von Vorteil, einen einheitlichen Stil der Darstellung beizubehalten. Dabei sollten gemäß der Programmstruktur Einrückungen und Leerzeilen großzügig eingefügt werden. 25

C Lernen und professionell anwenden Übungen Programm-Listing zur 3. Aufgabe: #include <stdio.h> void pause(void); /* Prototyp */ int main() printf("\nlieber Leser,\ngoennen Sie"); printf(" sich jetzt eine"); pause(); printf("!\n"); void pause() printf(" PAUSE"); 26

Grundlagen 1. Aufgabe: Erstellen Sie ein C-Programm, das den folgenden Text auf dem Bildschirm ausgibt: Moegen taeten wir schon wollen, aber Koennen haben wir uns nicht getraut! Verwenden Sie das Newline-Zeichen \n an den entsprechenden Stellen. 2. Aufgabe: Das folgende Programm enthält lauter Fehler: */ Hier sollte man die Brille nicht vergessen /* # include <stdio> int main printf("wenn dieser Text); printf(" auf Ihrem Bildschirm"); printf(" erscheint,"\n) printf(" koennen Sie sich auf die Schulter klopfen!\n"). ) Korrigieren Sie die Fehler und testen Sie die Lauffähigkeit des Programms. 3. Aufgabe: Was gibt das nebenstehende C-Programm auf dem Bildschirm aus? Eine Anleitung zur Installation und Verwendung der Compiler auf der DVD zum Buch finden Sie in der Liesmich-Datei auf der DVD. 27

C Lernen und professionell anwenden Lösungen zur 1. Aufgabe: /* Trauen Sie sich etwas zu! */ #include <stdio.h> int main() printf("moegen\ntaeten wir schon wollen,\n"); printf("aber Koennen\nhaben wir uns nicht getraut!\n"); zur 2. Aufgabe: Die korrigierten Stellen sind unterstrichen. /* Hier sollte man die Brille nicht vergessen */ # include <stdio.h> int main() printf("wenn dieser Text"); printf(" auf Ihrem Bildschirm"); printf(" erscheint,\n"); printf("koennen Sie sich auf die Schulter klopfen!\n"); zur 3. Aufgabe: Die Bildschirmausgabe des Programms beginnt in einer neuen Zeile: Lieber Leser, goennen Sie sich jetzt eine PAUSE! 28