Technische Probleme lösen mit C/C++

Von der Analyse bis zur Dokumentation
 
 
Hanser (Verlag)
  • 3. Auflage
  • |
  • erschienen am 8. August 2016
  • |
  • 359 Seiten
 
E-Book | ePUB mit Wasserzeichen-DRM | Systemvoraussetzungen
E-Book | PDF mit Wasserzeichen-DRM | Systemvoraussetzungen
978-3-446-44905-3 (ISBN)
 
Programmieren lernen mit Beispielen aus der Technik

Anhand von konkreten Beispielen aus dem technisch-wissenschaftlichen und mathematischen Bereich vermittelt dieses Lehrbuch Programmier- und Dokumentationstechniken. Es eignet sich ideal für Fachschüler und Bachelor-Studierende.

Aufbauend auf einer gut verständlichen und fundierten Einführung in die Arbeit mit C/C++ geht es Schritt für Schritt zur professionellen Softwareentwicklung. Vorkenntnisse sind nicht erforderlich.

Sie lösen unter anderem Probleme wie die Umrechnung von Temperatursystemen oder die Programmierung eines eigenen Funktionsplotters. Die Probleme sind nach steigendem Schwierigkeitsgrad geordnet ? von einfachen Anwendungen wie der Reihung von Widerständen bis hin zu komplexen Fragestellungen aus der Schaltalgebra. Die Beispiele werden mit Microsoft Visual C++ umgesetzt, das kostenlos verfügbar ist.

Die 3. Auflage wird umfassend aktualisiert und um Beispiele zur objektorientierten Programmierung erweitert.

Die gut verständliche Einführung und die vielen technischen Beispiele machen dieses Lehrbuch zum idealen Begleiter für Fachschüler und Bachelor-Studierende.
3., neu bearbeitete Auflage
  • Deutsch
  • München
  • |
  • Deutschland
  • 248
  • |
  • 248 s/w Abbildungen
  • 9,16 MB
978-3-446-44905-3 (9783446449053)
http://dx.doi.org/10.3139/9783446449053
weitere Ausgaben werden ermittelt
Dipl.-Math. Norbert Heiderich arbeitet als Lehrer u.a. für Programmierung am Berufskolleg des Kreises Kleve in Kleve.
Dipl.-Ing. Dipl.-Ing. Wolfgang Meyer war Leiter des Heinz-Nixdorf-Berufskollegs. Er unterrichtete Datenverarbeitungstechnik und Programmieren.
1 - Inhalt [Seite 8]
2 - Einleitung [Seite 14]
3 - 1 Systematik der Problemlösung [Seite 18]
3.1 - 1.1 Phasen der Programmentwicklung [Seite 18]
3.2 - 1.2 Software-Lebenszyklus [Seite 20]
3.3 - 1.3 Software-Entwicklungsverfahren [Seite 22]
4 - 2 Erste Gehversuche mit C/C++ [Seite 27]
4.1 - 2.1 Warum gerade C/C++? [Seite 27]
4.2 - 2.2 Compiler und Interpreter [Seite 29]
4.3 - 2.3 Übersetzen eines C/C++-Programms [Seite 31]
4.4 - 2.4 Programmstart [Seite 32]
5 - 3 Die Entwicklungsumgebung Visual C++ [Seite 33]
5.1 - 3.1 Installation von VC++ [Seite 33]
5.2 - 3.2 Starten von VC++ [Seite 35]
5.3 - 3.3 Erstellen eines neuen Projektes [Seite 37]
5.3.1 - 3.3.1 Win32-Projekte [Seite 38]
5.3.1.1 - 3.3.1.1 Variante 1 - VC++ leistet Vorarbeit [Seite 39]
5.3.1.2 - 3.3.1.2 Variante 2 - leeres Projekt [Seite 40]
5.3.2 - 3.3.2 CLR-Projekte [Seite 43]
5.4 - 3.4 Übersetzen eines eigenen Programms [Seite 45]
5.5 - 3.5 Ausführen eines eigenen Programms [Seite 48]
5.6 - 3.6 Paradigmen der Projektorganisation [Seite 48]
6 - 4 Grundlegende Sprach- und Steuerungselemente [Seite 51]
6.1 - 4.2 Datentypen und Variablen [Seite 52]
6.1.1 - 4.2.1 Variablennamen [Seite 53]
6.1.2 - 4.2.2 Ganzzahlige Variablen [Seite 53]
6.1.3 - 4.2.3 Fließkommazahlen [Seite 55]
6.1.4 - 4.2.4 Zeichen [Seite 56]
6.1.5 - 4.2.5 Felder [Seite 57]
6.1.5.1 - 4.2.5.1 Eindimensionale Felder [Seite 57]
6.1.5.2 - 4.2.5.2 Mehrdimensionale Felder [Seite 58]
6.1.5.3 - 4.2.5.3 Zugriff auf die Elemente eines Feldes [Seite 60]
6.1.5.4 - 4.2.5.4 Startwertzuweisung für ein- und mehrdimensionale Arrays [Seite 62]
6.1.6 - 4.2.6 Zeichenketten [Seite 64]
6.2 - 4.3 Konstanten [Seite 65]
6.3 - 4.4 Operatoren [Seite 66]
6.3.1 - 4.4.1 Vorzeichenoperatoren [Seite 66]
6.3.2 - 4.4.2 Arithmetische Operatoren [Seite 66]
6.3.2.1 - 4.4.2.1 Addition + [Seite 66]
6.3.2.2 - 4.4.2.2 Subtraktion ? [Seite 66]
6.3.2.3 - 4.4.2.3 Multiplikation * [Seite 67]
6.3.2.4 - 4.4.2.4 Division / [Seite 67]
6.3.2.5 - 4.4.2.5 Modulo % [Seite 67]
6.3.2.6 - 4.4.2.6 Zuweisung = [Seite 67]
6.3.2.7 - 4.4.2.7 Kombinierte Zuweisungen [Seite 68]
6.3.2.8 - 4.4.2.8 Inkrementierung ++ [Seite 68]
6.3.2.9 - 4.4.2.9 Dekrementierung -- [Seite 69]
6.3.3 - 4.4.3 Vergleichsoperatoren [Seite 69]
6.3.3.1 - 4.4.3.1 Gleichheit == [Seite 69]
6.3.3.2 - 4.4.3.2 Ungleichheit != [Seite 69]
6.3.3.3 - 4.4.3.3 Kleiner < [Seite 70]
6.3.3.4 - 4.4.3.4 Größer > [Seite 70]
6.3.3.5 - 4.4.3.5 Kleiner gleich <= [Seite 70]
6.3.3.6 - 4.4.3.6 Größer gleich >= [Seite 71]
6.3.4 - 4.4.4 Logische Operatoren [Seite 71]
6.3.4.1 - 4.4.4.1 Logisches NICHT ! [Seite 71]
6.3.4.2 - 4.4.4.2 Logisches UND && [Seite 71]
6.3.4.3 - 4.4.4.3 Logisches ODER || [Seite 71]
6.3.5 - 4.4.5 Typumwandlungsoperator [Seite 72]
6.3.6 - 4.4.6 Speicherberechnungsoperator [Seite 72]
6.3.7 - 4.4.7 Bedingungsoperator [Seite 73]
6.3.8 - 4.4.8 Indizierungsoperator [Seite 74]
6.3.9 - 4.4.9 Klammerungsoperator [Seite 74]
6.4 - 4.5 Anweisungen und Blöcke [Seite 76]
6.5 - 4.6 Alternationen [Seite 76]
6.5.1 - 4.6.1 Einfache Abfragen (if - else) [Seite 76]
6.5.2 - 4.6.2 Mehrfachabfragen (else - if) [Seite 77]
6.5.3 - 4.6.3 Die switch-case-Anweisung [Seite 78]
6.6 - 4.7 Iterationen [Seite 80]
6.6.1 - 4.7.1 Zählergesteuerte Schleifen (for) [Seite 80]
6.6.2 - 4.7.2 Kopfgesteuerte Schleifen (while) [Seite 84]
6.6.3 - 4.7.3 Fußgesteuerte Schleifen (do - while) [Seite 85]
6.6.4 - 4.7.4 Schleifenabbruch (continue) [Seite 86]
6.6.5 - 4.7.5 Schleifenabbruch (break) [Seite 87]
6.6.6 - 4.7.6 Schleifenumwandlungen [Seite 89]
6.7 - 4.8 Funktionen [Seite 89]
6.7.1 - 4.8.1 Formaler Aufbau einer Funktion [Seite 90]
6.7.1.1 - 4.8.1.1 Der Funktionskopf [Seite 91]
6.7.1.2 - 4.8.1.2 Der Funktionsrumpf [Seite 92]
6.7.2 - 4.8.2 Datentyp und Deklaration einer Funktion - Prototyping [Seite 93]
6.7.3 - 4.8.3 Das Prinzip der Parameterübergabe [Seite 98]
6.7.3.1 - 4.8.3.1 Aufrufverfahren call by value [Seite 98]
6.7.3.2 - 4.8.3.2 Aufrufverfahren call by reference [Seite 100]
6.7.3.3 - 4.8.3.3 Adressoperator, Zeiger und Dereferenzierung [Seite 103]
6.7.4 - 4.8.4 Regeln für ein erfolgreiches Prototyping [Seite 104]
6.7.5 - 4.8.5 Die exit()-Funktion [Seite 105]
6.7.6 - 4.8.6 Rekursive Funktionen [Seite 105]
6.8 - 4.9 Ein- und Ausgabe [Seite 108]
6.8.1 - 4.9.1 Formatierte Eingabe mit scanf() [Seite 108]
6.8.2 - 4.9.2 Formatierte Ausgabe mit printf() [Seite 109]
6.8.3 - 4.9.3 Arbeiten mit Dateien [Seite 110]
6.8.3.1 - 4.9.3.1 Öffnen der Datei [Seite 111]
6.8.3.2 - 4.9.3.2 Verarbeiten der Datensätze [Seite 111]
6.8.3.3 - 4.9.3.3 Schließen der Datei [Seite 112]
6.8.3.4 - 4.9.3.4 stdio.h [Seite 112]
6.8.3.5 - 4.9.3.5 fflush() und stdin [Seite 114]
7 - 5 Strukturierte Programmierung [Seite 115]
7.1 - 5.1 Problemstellung [Seite 116]
7.2 - 5.2 Problemanalyse [Seite 117]
7.3 - 5.3 Struktogramm nach Nassi-Shneiderman [Seite 120]
7.3.1 - 5.3.1 Sequenz [Seite 122]
7.3.2 - 5.3.2 Alternation [Seite 124]
7.3.3 - 5.3.3 Verschachtelung [Seite 125]
7.3.4 - 5.3.4 Verzweigung [Seite 126]
7.3.5 - 5.3.5 Schleifen [Seite 128]
7.3.5.1 - 5.3.5.1 Zählergesteuerte Schleife [Seite 128]
7.3.5.2 - 5.3.5.2 Kopfgesteuerte Schleife [Seite 132]
7.3.5.3 - 5.3.5.3 Fußgesteuerte Schleifen [Seite 134]
7.3.5.4 - 5.3.5.4 Endlosschleifen [Seite 135]
7.3.5.5 - 5.3.5.5 Kriterien zur Schleifenauswahl [Seite 135]
7.3.6 - 5.3.6 Programm- oder Funktionsaufruf [Seite 135]
7.3.7 - 5.3.7 Aussprung [Seite 136]
7.3.8 - 5.3.8 Rechnergestützte Erstellung von Struktogrammen [Seite 137]
7.3.8.1 - 5.3.8.1 StruktEd [Seite 137]
7.3.8.2 - 5.3.8.2 hus-Struktogrammer [Seite 144]
7.4 - 5.4 Flussdiagramm nach DIN 66001 [Seite 152]
7.5 - 5.5 Programmerstellung [Seite 154]
7.6 - 5.6 Programmtest [Seite 154]
7.7 - 5.7 Programmlauf [Seite 155]
7.8 - 5.8 Dokumentation nach DIN 66230 [Seite 156]
7.8.1 - 5.8.1 Funktion und Aufbau des Programms [Seite 156]
7.8.2 - 5.8.2 Programmkenndaten [Seite 157]
7.8.3 - 5.8.3 Betrieb des Programms [Seite 158]
7.8.4 - 5.8.4 Ergänzungen [Seite 158]
7.9 - 5.9 Aspekte des Qualitätsmanagements EN-ISO 9000 [Seite 159]
7.10 - 5.10 Algorithmus - was ist das? [Seite 160]
7.11 - 5.11 EVA-Prinzip [Seite 166]
7.12 - 5.12 Programmierung von Formelwerken [Seite 167]
8 - 6 Lösung einfacher Probleme [Seite 172]
8.1 - 6.1 Umrechnung von Temperatursystemen [Seite 172]
8.2 - 6.2 Flächenberechnung geradlinig begrenzter Flächen (Polygone) [Seite 178]
8.2.1 - 6.2.1 Erste Problemvariation: Berechnung der Schwerpunktkoordinaten S(xS [Seite 185]
8.2.2 - 6.2.2 Zweite Problemvariation: Suche nach einem "günstigen" Treffpunkt [Seite 186]
8.3 - 6.3 Berechnung einer Brückenkonstruktion [Seite 187]
8.4 - 6.4 Schaltjahrüberprüfung [Seite 191]
8.5 - 6.5 Ein Problem aus der Energiewirtschaft [Seite 197]
8.6 - 6.6 Logarithmische Achsenteilung [Seite 207]
9 - 7 Objektorientierte Programmierung (OOP) [Seite 215]
9.1 - 7.1 Modellbildung mittels Abstraktion [Seite 215]
9.2 - 7.2 Klassen und Objekte [Seite 216]
9.3 - 7.3 Attribute und Methoden einer Klasse [Seite 219]
9.4 - 7.4 Bruchrechnung mit OOP [Seite 220]
9.5 - 7.5 Vererbung [Seite 229]
9.6 - 7.6 Strings [Seite 236]
9.7 - 7.7 Typumwandlungen [Seite 237]
9.8 - 7.8 Strukturierte Programmierung vs. OOP [Seite 241]
10 - 8 Lösung fortgeschrittener Probleme [Seite 242]
10.1 - 8.1 Grafische Darstellung funktionaler Abhängigkeiten [Seite 242]
10.1.1 - 8.1.1 Welt- und Screenkoordinaten [Seite 244]
10.1.2 - 8.1.2 Koordinatentransformationen [Seite 246]
10.1.3 - 8.1.3 Darstellung der Sinusfunktion [Seite 252]
10.1.4 - 8.1.4 Darstellung quadratischer Parabeln [Seite 256]
10.1.5 - 8.1.5 Spannungsteilerkennlinien [Seite 259]
10.2 - 8.2 Lösung technisch-wissenschaftlicher Probleme [Seite 261]
10.2.1 - 8.2.1 Widerstandsreihen E6 bis E96 [Seite 261]
10.2.2 - 8.2.2 Farbcodierung von Widerständen nach DIN 41429 [Seite 264]
10.2.3 - 8.2.3 Fourier-Synthese periodischer empirischer Funktionen [Seite 267]
10.2.4 - 8.2.4 Fourier-Analyse empirischer Funktionen [Seite 275]
10.3 - 8.3 Nullstellenbestimmung von Funktionen [Seite 280]
10.3.1 - 8.3.1 Inkrementverfahren und Intervallhalbierung [Seite 280]
10.3.2 - 8.3.2 Die regula falsi [Seite 285]
10.3.3 - 8.3.3 Das Newton-Verfahren [Seite 287]
10.4 - 8.4 Numerische Integration [Seite 290]
10.4.1 - 8.4.1 Riemannsche Unter- und Obersummen [Seite 290]
10.4.2 - 8.4.2 Trapezregel [Seite 294]
10.4.3 - 8.4.3 Simpsonsche Regel [Seite 299]
10.4.4 - 8.4.4 Effektivwertberechnungen [Seite 304]
10.5 - 8.5 Einbindung eigener Klassen [Seite 306]
10.5.1 - 8.5.1 Das "Platinenproblem" als objektorientierte Konsolenanwendung [Seite 306]
10.5.2 - 8.5.2 Das "Platinenproblem" in der Erweiterung mit grafischer Benutzeroberfläche [Seite 311]
11 - 9 Lösung komplexer Probleme [Seite 315]
11.1 - 9.1 Kurvendiskussion und Funktionsplotter am Beispiel ganzrationaler Funktionen bis 3. Ordnung [Seite 315]
11.2 - 9.2 Ausgleichsrechnung - Bestimmung der "besten" Geraden in einer Messreihe [Seite 318]
11.3 - 9.3 Digitaltechnik [Seite 328]
12 - 10 Tabellen und Übersichten [Seite 342]
12.1 - 10.1 Datentypen und ihre Wertebereiche [Seite 342]
12.2 - 10.2 Vergleich der Symbole nach DIN 66 001 und der Nassi-Shneiderman-Darstellung [Seite 343]
12.3 - 10.3 Schlüsselwörter ANSI C [Seite 344]
12.4 - 10.4 Erweiterte Schlüsselwörter C++ [Seite 346]
12.5 - 10.5 ASCII-Tabelle [Seite 349]
12.6 - 10.6 Standardfunktionen und ihre Zuordnung zu den Header-Dateien (Include) [Seite 351]
13 - Literatur [Seite 355]
14 - Index [Seite 356]

Dateiformat: ePUB
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie eine Lese-Software, die das Dateiformat EPUB verarbeiten kann: z.B. Adobe Digital Editions oder FBReader - beide kostenlos (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet - also für "fließenden" Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Dateiformat: PDF
Kopierschutz: Wasserzeichen-DRM (Digital Rights Management)

Systemvoraussetzungen:

Computer (Windows; MacOS X; Linux): Verwenden Sie zum Lesen die kostenlose Software Adobe Reader, Adobe Digital Editions oder einen anderen PDF-Viewer Ihrer Wahl (siehe E-Book Hilfe).

Tablet/Smartphone (Android; iOS): Installieren Sie die kostenlose App Adobe Digital Editions oder eine andere Lese-App für E-Books (siehe E-Book Hilfe).

E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nur bedingt: Kindle)

Das Dateiformat PDF zeigt auf jeder Hardware eine Buchseite stets identisch an. Daher ist eine PDF auch für ein komplexes Layout geeignet, wie es bei Lehr- und Fachbüchern verwendet wird (Bilder, Tabellen, Spalten, Fußnoten). Bei kleinen Displays von E-Readern oder Smartphones sind PDF leider eher nervig, weil zu viel Scrollen notwendig ist. Mit Wasserzeichen-DRM wird hier ein "weicher" Kopierschutz verwendet. Daher ist technisch zwar alles möglich - sogar eine unzulässige Weitergabe. Aber an sichtbaren und unsichtbaren Stellen wird der Käufer des E-Books als Wasserzeichen hinterlegt, sodass im Falle eines Missbrauchs die Spur zurückverfolgt werden kann.

Weitere Informationen finden Sie in unserer E-Book Hilfe.


Download (sofort verfügbar)

26,99 €
inkl. 7% MwSt.
Download / Einzel-Lizenz
ePUB mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
PDF mit Wasserzeichen-DRM
siehe Systemvoraussetzungen
Hinweis: Die Auswahl des von Ihnen gewünschten Dateiformats und des Kopierschutzes erfolgt erst im System des E-Book Anbieters
E-Book bestellen