Informatik für Ingenieure

Ähnliche Dokumente
C als erste Programmiersprache

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

C-Programmierung unter TOS ATARI ST

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Programmierung mit C Zeiger

Die Programmiersprache C

2. Programmierung in C

C++ für Ingenieure. Einführung in die objektorientierte Programmierung. Seite Programmverzeichnis VII HARALD NAHRSTEDT

Tutorium Rechnerorganisation

Einführung in die C-Programmierung

4.Grundsätzliche Programmentwicklungsmethoden

Grundlagen der Informatik I (Studiengang Medieninformatik)

Deklarationen in C. Prof. Dr. Margarita Esponda

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Kurze Einführung in die Programmiersprache C++ und in Root

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Die Programmiersprache C Eine Einführung

Einführung in die Programmierung

PIC-Microcontroller. Oldenbourg Verlag Munchen

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

11. Übung Informatik II - Operatorfunktionen

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Grundlagen, Vorgehensweisen, Aufgaben, Beispiele

Entwurf von Algorithmen - Kontrollstrukturen

4 Kontrollfluss-Diagramme

Einstieg in das Programmieren mit MATLAB

Andre Willms. Spielend C++ lernen. oder wie man Käfern Beine macht. Galileo Press

Dr. Monika Meiler. Inhalt

Ein erstes Java-Programm

Roberto lerusalimschy. Programmieren mit Lua

3. Einführung in C Programmierung Einführung in C Programmierung

Zusammenfassung des Handzettels für Programmieren in C

Webbasierte Programmierung

Die Programmiersprache C99: Zusammenfassung

Programmiersprachen Einführung in C

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

Die Algorithmenbeschreibungssprache Jana

Inhaltsverzeichnis. Vorwort Kapitel 1 Einführung, I: Algebra Kapitel 2 Einführung, II: Gleichungen... 57

Mathematik für Wirtschaftswissenschaftler

Informatik für Ingenieure

Repetitorium Informatik (Java)

Einheit Lexikalische Grundlagen der Programmiersprache C Lexikalische Einheiten

1. Übung zu "Numerik partieller Differentialgleichungen"

VBA mit Office 97 lernen

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Angewandte Mathematik und Programmierung

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

26 Hierarchisch strukturierte Daten

Programmieren ++ Begleitende Übungen zu Veranstaltungen + Umsetzen des Algorithmus in ein lauffähiges Programm

Achtjähriges Gymnasium. Lehrplan Informatik. für die Einführungsphase der gymnasialen Oberstufe. Februar 2006

Objektorientierte Programmierung OOP Programmieren mit Java

Kapitel 3. Mein erstes C-Programm

Hello world. Sebastian Dyroff. 21. September 2009

Komplexität von Algorithmen

Einstieg in die Informatik mit Java

Algorithmik II. SS 2003 Prof. Dr. H. Stoyan Lehrstuhl für Informatik 8 ( Künstliche Intelligenz) stoyan@informatik.uni-erlangen.

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

1Schnelleinstieg 14. 2Wie aus einer einfachen Textdatei. 3 Wie man eigene Programme erstellt 30. Inhaltsverzeichnis. ein Programm wird 20

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7

Kapitel 11: Wiederholung und Zusammenfassung

5. Unterprogrammtechnik/Module

Teil IV. Grundlagen der Programmierung

2. Programmierung in C

<Trainingsinhalt> C# programmieren

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

10:Exkurs MATLAB / Octave

Primitive Datentypen

Programmierkurs II. C und Assembler

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Software-Entwicklung mit Delphi

Informationsverarbeitung im Bauwesen

II.1.1. Erste Schritte - 1 -

Algorithmen & Datenstrukturen

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

Abstrakte Algorithmen und Sprachkonzepte

C++-Entwicklung mit Linux

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

VBA-Programmierung: Zusammenfassung

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH. -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Programmieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff

C-Propädeutikum Höhere Datentypen

Informatik Repetitorium SS Volker Jaedicke

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Eine Einführung in C-Funktionen

Einführung in die Numerik mit VBA

Pass by Value Pass by Reference Defaults, Overloading, variable Parameteranzahl

Ingenieurinformatik. Einführung in die Programmiersprache C

Grundlagen der Programmierung

2. Algorithmen und Algorithmisierung Algorithmen und Algorithmisierung von Aufgaben

while ((c = getchar())!= EOF) putchar(c);

Transkript:

Informatik für Ingenieure Grundlagen und Programmierung in С von Prof. Dr. Axel Böttcher und Prof. Dr. Franz Kneißl Fachhochschule Regensburg Oldenbourg Verlag München Wien

Inhalt Vorwort 5 1 Grundbegriffe der Computertechnik 15 1.1 Einführung 15 1.2 Anwendungsprogramme 17 1.3 Betriebssysteme 19 1.4 Hardware 21 1.5 Prozessoren, Busse und Speicher 22 1.5.1 Das Bussystem 22 1.5.2 Der Prozessor 25 1.5.3 Der Speicher 25 1.5.4 Peripheriegeräte 27 1.6 Die Befehlsebene 28 1.7 Die Logikebene 33 2 Zahlendarstellung 37 2.1 Zahlensysteme für ganze Zahlen 37 2.2 Rechnen mit Potenzen 38 2.3 Umwandlung zwischen Zahlensystemen 39 2.3.1 Zielverfahren: Multiplikationsmethode 40 2.3.2 Quellverfahren: Divisionsmethode 40 2.4 Rechnen im Dualsystem 41 2.5 Rechnerinterne Darstellung von ganzen Zahlen 43 2.5.1 Das Eins-Komplement 44 2.5.2 Das Zwei-Komplement 46

8 Inhalt 2.6 Darstellung und Umwandlung gebrochener Zahlen 48 2.6.1 Zielverfahren: Divisionsmethode 49 2.6.2 Quellverfahren: Multiplikationsmethode 50 2.7 Rechnerinterne Darstellung gebrochener Zahlen 50 2.8 Fragen 51 2.9 Aufgaben 51 3 Zeichencodes 53 3.1 7 Bit ASCII 54 3.2 8 BitlSO 8859 56 3.3 16 Bit Unicode 57 3.4 Fragen 59 4 Einführung in das Programmieren in С 61 4.1 Syntaxdiagramme 65 4.2 Praxis des Programmierern 67 4.3 Aufgaben 69 5 Grundelemente, Variablen, Konstanten, Datentypen 71 5.1 Übersicht 71 5.2 Programmstruktur 72 5.3 Lexikalische Grundvoraussetzungen 73 5.3.1 Zeichensätze 73 5.3.2 Formatfreie Schreibweise 75 5.3.3 Bezeichner 76 5.3.4 Einschränkungen 77 5.4 Variablen und Konstanten 77 5.4.1 Variablen und Konstanten zur Compilezeit, Deklaration 77 5.4.2 Variablen und Konstanten zur Ladezeit 79 5.4.3 Variablen und Konstanten zur Laufzeit 79 5.4.4 Verschiedene Konstanten-Begriffe 80

Inhalt 9 5.5 Elementare Datentypen 81 5.5.1 Ganzzahlige Datentypen 82 5.5.2 Gleitpunkttypen 86 5.5.3 Beispielprogramm 88 5.5.4 Benutzerdefinierte Typen 90 5.6 Fragen 93 5.7 Aufgaben 94 6 Formatierte Ein- und Ausgabe 95 6.1 Formatierte Ausgabe 95 6.1.1 Die Formatelemente für formatierte Ausgabe 96 6.1.2 Beispiele 98 6.1.3 Fehlerquellen 99 6.2 Formatierte Eingabe 99 6.2.1 Beispiel zur formatierten Eingabe: 101 6.2.2 Besonderheiten und Fehlerquellen: 101 6.3 Aufgaben 102 7 Operatoren und Ausdrücke 103 7.1 Arithmetische Ausdrücke 106 7.2 Der Zuweisungsoperator 107 7.3 Zusammengesetzte Operatoren 108 7.4 Unitäre arithmetische Operatoren 108 7.5 Der Kommaoperator 109 7.6 Wahrheitswerte und logische Ausdrücke 109 7.7 Der konditionale Operator 111 7.8 Aufgaben 112 8 Logische und bitweise Operatoren 115 8.1 Logische Verknüpfungen 115 8.2 Bitweise Operatoren 116 8.3 Fragen 121 8.4 Aufgaben 121

10 Inhalt 9 Standardbibliothek 123 9.1 Ein/Ausgabe 124 9.2 Datei-Ein/Ausgabe 124 9.3 Grenzwerte 126 9.4 Mathematik 127 9.5 Zufallszahlen 128 9.6 Zeichenbehandlung 129 9.7 Zeichenketten 130 9.8 Konvertierung Intern-/Extern-Darstellung 130 9.9 Speicherverwaltung 131 9.10 Starten/Beenden 132 9.11 Nicht-Standardfunktionen 132 9.12 Aufgaben 133 10 Kontrollstrukturen 135 10.1 Bedingte Verzweigung 136 10.2 Auswahl (Fallunterscheidung) 139 10.3 Laufschleifen (Wiederholungsanweisungen) 140 10.3.1 Die while-anweisung 141 10.3.2 Die do-while-anweisung 143 10.3.3 Anwendung: Bestimmung von Nullstellen einer Funktion 144 10.3.4 Die for-anweisung 146 10.4 Sprunganweisungen 148 10.4.1 Die continue- und break-anweisungen 148 10.4.2 Die go to-anweisung 149 10.4.3 Die return-anweisung 149 10.5 Aufgaben 150 11 Präprozessor 151 11.1 Die ftinclude-direktive 151 11.2 Symbolische Konstanten 152 11.3 Vordefinierte Symbole 153

Inhalt 11 11.4 Makros 154 11.5 Bedingte Compilierung 156 11.6 Beispielprogramm: Testversion Newton-Raphson 158 12 Algorithmen: Reaktive Programme, Automaten 161 12.1 Endliche Automaten 163 12.2 Direkte Implementierung von Automaten..., 165 12.3 Beispielprogramm: Verkaufsautomat 166 12.4 Erkennende Automaten 168 12.5 Aktionen in Automaten-Programmen 170 12.6 Fragen 171 12.7 Aufgaben 172 12.7.1 DFÜ-Protokolle 172 12.7.2 Filter für Escape-Sequenzen in HTML Dateien 174 13 Vektoren 179 13.1 Abgeleitete Typen in C, Übersicht 179 13.2 Eindimensionale Vektoren 180 13.2.1 Deklarationssyntax 180 13.2.2 Zugriff auf Ganz- und Komponenten-Variable 181 13.3 Zur Deklarations-Syntax in С 183 13.4 Mehrdimensionale Vektoren 184 13.5 Fragen 187 13.6 Aufgaben 188 14 Algorithmen: Sortierverfahren, Zufallszahlen 191 14.1 Sortieren 191 14.1.1 Bubblesort 192 14.1.2 Sortieren durch Auswahl 192 14.1.3 Bucket Sort 193 14.2 Zufallszahlen 194 14.2.1 Ein Simulator 195 14.2.2 Zufallszahlen mit bestimmten Eigenschaften 197

12 Inhalt 14.3 Fragen 200 14.4 Aufgaben 201 15 Algorithmen: Lineare Gleichungssysteme 205 15.1 Die Gauß-Elimination 205 15.2 Algorithmus 207 15.3 Programm 207 15.4 Aufgaben 208 16 Pointer 209 16.1 Übersicht 209 16.2 Programmierung mit Pointern 209 16.2.1 Funktionsprinzip 209 16.2.2 Syntax 211 16.2.3 Zugriff auf Pointer oder Bezugsvariable 211 16.2.4 Pointer ohne Bezugsvariable, Nullpointer, void* 213 16.3 Pointerund Vektoren 214 16.3.1 Vektoren und Pointer-Arithmetik 214 16.3.2 Vektorzugriff in Pointerschreibweise 215 16.3.3 Vektoren von Pointern, Pointer auf Vektoren 216 16.4 Dynamische Variable mitmalloc und free 219 16.5 Auswahl-Sort durch Zeigervertauschung 222 16.6 Pointerund const 223 16.7 Fragen 224 16.8 Aufgaben 226 17 Unterprogramme 227 17.1 Syntax 228 17.2 Der Parametermechanismus 231 17.3 Referenzparameter 234 17.4 Lokale, globale und statische Variablen 237 17.5 Funktionsdeklarationen, Modularisierung und Headerdateien 241

Inhalt 13 17.6 Fragen 244 17.7 Aufgaben 245 18 Algorithmen: Grafikausgabe 247 18.1 Programmpaket für Grafikausgaben 247 18.2 Kurven zeichnen 250 18.3 Programmiertechniken: Funktion als Argument 251 18.4 Aufgabe - 252 18.5 Koordinatentransformationen 253 18.6 Aufgabe j 255 18.7 Professionelle Programmiertechniken am Beispiel Koordinatentransformation 255 18.7.1 Namensgebung und Bezeichner 256 18.7.2 Programmstruktur 258 18.7.3 Beispielprogramm: Koordinatentransformation 258 18.8 Aufgaben 260 19 Dateien 261 19.1 Der Datentyp FILE 262 19.2 Formatierte Ein-/Ausgabe 263 19.2.1 Formatierte Ausgabe mit fprintf () 263 19.2.2 Formatierte Eingabe mit fscanf () 264 19.2.3 Weitere Funktionen für das formatierte Einlesen von Datei: 265 19.3 Standarddateien 265 19.4 Binäre Ein-/Ausgabe 266 19.5 Aufgaben 268 20 Structs und komplexe Datenstrukturen 269 20.1 Strukturen mit struct 269 20.2 Zeiger auf Strukturen 272 20.3 Anwendungsbeispiel: Komplexe Zahlen 272 20.4 Listen 273 20.5 Exkurs: Rekursive Funktionen 277

20.6 Aufgaben 278 21 Algorithmen: Graphentheorie 279 21.1 Problemstellung 279 21.2 Darstellung von Graphen durch Matrizen 282 21.3 Der Algorithmus von Dijkstra 284 21.4 Fragen 289 21.5 Aufgaben 289 22 Algorithmen: Interpretative Implementierung von Automaten 291 22.1 Programmiertechniken: Pointerauf Funktionen 291 22.2 Schema zur Umsetzung in Programme 292 22.3 Beispielprogramm 295 22.4 Fragen 296 22.5 Aufgaben 297 22.5.1 Erzeugung eines Paritätsbits 297 22.5.2 Escape-Sequenz-Filter interpretativ 297 23 Fortgeschrittene Themen 299 23.1 Typumwandlungen 299 23.1.1 Anlässe von Typumwandlungen 299 23.1.2 Art der Typumwandlungen 301 23.2 Union-Typen 304 23.3 Argumente und Rückgabewert von main (...) 307 24 Literatur 311 25 Index 313