Heiderich / Meyer | Technische Probleme lösen mit C/C++ | E-Book | sack.de
E-Book

E-Book, Deutsch, 362 Seiten

Heiderich / Meyer Technische Probleme lösen mit C/C++

Von der Analyse bis zur Dokumentation

E-Book, Deutsch, 362 Seiten

ISBN: 978-3-446-44905-3
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)



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.
Heiderich / Meyer Technische Probleme lösen mit C/C++ jetzt bestellen!

Weitere Infos & Material


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


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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.