Die wirkliche Herausforderung beim Programmieren ist nicht die Syntax der jeweiligen Sprache, sondern die Fähigkeit, auf kreative Art Probleme zu lösen. In diesem einzigartigen Buch beschreibt der Autor Anton Spraul genau die Fähigkeiten, die normale Lehrbücher eher ignorieren: Wie ein Programmierer zu denken und Aufgaben zu lösen. Jedes Kapitel widmet er einem anderen Programmierkonzept wie Klassen und Zeiger und fordert den Leser mit offenen Übungen heraus, das Gelernte anzuwenden. Die Beispiele im Buch sind in C++ und zeigen konkrete Lösungsmöglichkeiten für C++-Aufgaben.
Die Inhaltsangabe kann sich auf eine andere Ausgabe dieses Titels beziehen.
Die wirkliche Herausforderung beim Programmieren ist nicht die Syntax der jeweiligen Sprache, sondern die Fähigkeit, auf kreative Art Probleme zu lösen. In diesem einzigartigen Buch beschreibt der Autor Anton Spraul genau die Fähigkeiten, die normale Lehrbücher eher ignorieren: Wie ein Programmierer zu denken und Aufgaben zu lösen. Jedes Kapitel widmet er einem anderen Programmierkonzept wie Klassen und Zeiger und fordert den Leser mit offenen Übungen heraus, das Gelernte anzuwenden. Die Beispiele im Buch sind in C++ und zeigen konkrete Lösungsmöglichkeiten für C++-Aufgaben.
„Über diesen Titel“ kann sich auf eine andere Ausgabe dieses Titels beziehen.
EUR 3,50 für den Versand innerhalb von/der Deutschland
Versandziele, Kosten & DauerAnbieter: Gebrauchtbücherlogistik H.J. Lauterbach, Gummersbach, NRW, Deutschland
Broschiert. Zustand: Sehr gut. 1. Aufl. 24 cm Erste Auflage, 296 S. : Ill., graph. Darst. Broschiert. Zustand: Sehr Gut; eher ungelesen (Innen); * Die Photos sind original von uns erstellt worden, u.a. erkennbar an einem kleinen weißen Stück Papier im oberen Schnitt. Ab und an verwenden Suchmaschinen Verlagsphotos, bei den Portalen selbst, werden aber nur unsere Originalphotos gezeigt. Bestandsnummer des Verkäufers 285657
Anzahl: 1 verfügbar
Anbieter: Versandantiquariat Ottomar Köhler, Hanau, Deutschland
1. Aufl. kart., 296 S. : Ill., graph. Darst. ; 24 cm; guter / sehr guter Zustand Von der Aufgabe zur Lösung so gehen Sie vor Probleme analysieren und schrittweise bearbeiten Systematisches Vorgehen lernen und anwenden Die Herausforderung beim Programmieren besteht nicht im Erlernen der Syntax einer bestimmten Sprache, sondern in der Fähigkeit, auf kreative Art Probleme zu lösen. In diesem einzigartigen Buch widmet sich der Autor V. Anton Spraul genau jenen Fähigkeiten, die in normalen Lehrbüchern eher nicht behandelt werden: die Fähigkeit, wie ein Programmierer zu denken und Aufgaben zu lösen.In den einzelnen Kapiteln behandelt er jeweils verschiedene Programmierkonzepte wie beispielsweise Klassen, Zeiger und Rekursion, und fordert den Leser mit erweiterbaren Übungen zur praktischen Anwendung des Gelernten auf. Aus dem Inhalt: Strategien zur Problemlösung Eingabeverarbeitung Statusverfolgung Arrays Zeiger und dynamische Speicherverwaltung Klassen Rekursion Wiederverwendung von Code Rekursive und iterative Programmierung Denken wie ein Programmierer (Detailinfo) // Inhaltsverzeichnis Danksagungen 11 Einfuhrung 13 Über dieses Buch 15 Voraussetzungen 16 Ausgewählte Themen 16 Programmierstil 16 Übungen 17 Warum C++? 17 1 Strategien zur Problemlösung 19 1.1 Klassische Rätsel 20 1.1.1 Fuchs, Gans und Getreidesack 21 Aufgabe: Wie kann der Fluss überquert werden? 21 1.1.2 Schiebepuzzles 25 Aufgabe: Verschieben der 8 26 Aufgabe: Verschieben der 5 27 1.1.3 Sudoku 30 Aufgabe: Vervollständigen eines Sudoku-Quadrats 31 1.1.4 Das Quarrasi-Schloss 33 Aufgabe: Öffnen des außerirdischen Schlosses 33 1.2 Gängige Verfahren zur Problemlösung 36 1.2.1 Niemals ohne Plan 37 1. 2 . 2 Umformulieren der Aufgabenstellung 38 1.2.3 Zerlegung in Teilaufgaben 39 1. 2 . 4 Bekanntem anfangen 40 1.2.5 Reduktion der Problemstellung 41 1. 2 . 6 Analogien suchen 42 1.2.7 Experimentieren 43 1. 2 . 8 Nicht entmutigen lassen 44 1.3 Übungen 45 2 Wahre Rätsel 47 2.1 Verwendete C++-Syntax 47 2 . 2 Ausgabe von Mustern 48 Aufgabe: Halbiertes Quadrat. . . . 48 Aufgabe: Quadrat (Halbiertes Quadrat, Reduktion) 48 Aufgabe: Zeile (Halbiertes Quadrat, weitere Reduktion) 49 Aufgabe: Herunterzählen durch Hochzählen 50 Aufgabe: Hochkant stehendes Dreieck 51 2 . 3 Eingabeverarbeitung 54 Aufgabe: Test einer Luhn-Prüfsumme 54 2.3.1 Zerlegung der Aufgabenstellung 56 Aufgabe: Ziffer in Ganzzahl konvertieren 58 Aufgabe: Test einer Luhn-Prüfsumme fester Länge 60 Aufgabe: Test einer einfachen Prüfsumme fester Länge . . . 60 Aufgabe: Positiv oder negativ 63 2 . 3 . 2 Zusammenstellen der Teillösungen 64 2 . 4 Statusverfolgung 6 6 Aufgabe: Entschlüsseln einer Botschaft 66 Aufgabe: Einlesen einer Zahl mit drei oder vier Z i f f e r n . . . . 71 Aufgabe: Einlesen einer Zahl mit drei oder vier Ziffern, weiter vereinfacht 72 2 . 5 Fazit 8 1 2 . 6 Übungen 8 1 3 Arrays 85 3.1 Array-Grundlagen 8 6 3.1.1 Speichern 8 6 3.1.2 Kopieren 87 3.1.3 Zugriff und Suche 8 8 3.1.4 Sortieren 89 3.1.5 Statistische Werte 92 3 . 2 Aufgabenstellungen mit Arrays 9 3 Aufgabe: Modalwert berechnen 93 3.2.1 Refactoring 97 3.3 Arrays mit fest vorgegebenen Daten 100 3 . 4 Nicht-skalare Arrays 102 3.5 Mehrdimensionale Arrays 104 3 . 6 Wann werden Arrays verwendet? 108 3 . 7 Übungen 1 1 3 4 Zeiger und dynamische Speicherverwaltung 115 4.1 Zeiger-Grundlagen 115 Inhaltsverzeichnis 4 . 2 Vorteile von Zeigern 117 4.2.1 Festlegung der Größe von Datenstrukturen zur Laufzeit. 117 4 . 2 . 2 Größenänderung von Datenstrukturen 117 4 . 2 . 3 Gemeinsame Speichernutzung 118 4.3 Wann werden Zeiger verwendet? 119 4 . 4 Speicherverwaltung 120 4.4.1 Stack und Heap 120 4 . 4 . 2 Arbeitsspeicher 124 4 . 4 . 3 Lebensdauer 125 4.5 Aufgabenstellungen mit Zeigern 126 4.5.1 Zeichenketten variabler Länge 127 Aufgabe: Bearbeitung von Zeichenketten variabler Länge 127 4 . 5 . 2 Verkettete Listen 139 Aufgabe: Nachverfolgen einer unbekannten Zahl von Schülerdatensätzen 139 4 . 6 Fazit und Ausblick 148 4 . 7 Übungen 149 5 Klassen 151 5.1 Klassen-Grundlagen 151 5.2 Ziele bei der Verwendung von Klassen 153 5.2.1 Verkapselung 154 5 . 2 . 2 Wiederverwendung von Code 155 5.2.3 Zerlegung in Teilaufgaben 155 5 . 2 . 4 Information Hiding 156 5.2.5 Verständlichkeit 158 5 . 2 . 6 Ausdrucksfähigkeit 159 5.3 Eine einfache Klasse 159 Aufgabe: Notenliste 160 5.3.1 Grundgerüst einer Klasse 160 5.3.2 Unterstützende Methoden 165 5.4 Klassen mit dynamischen Daten 169 Aufgabe: Nachverfolgen einer unbekannten Zahl von Schülerdatensätzen 169 5.4.1 Hinzufügen eines Knotens 172 5 . 4 . 2 Umorganisieren einer Liste 175 5.4.3 Destruktor 179 5 . 4 . 4 Tiefe Kopien (Deep Copy) 180 5.4.5 Klassen mit dynamischen Daten im Überblick 185 Inhaltsverzeichnis 5.5 Fehlervermeidung 186 5.5.1 Fingierte Klassen 187 5.5.2 Monotalente 188 5 . 6 Übungen 1 8 8 6 Rekursion 191 6.1 Grundlagen der Rekursion 191 6 . 2 Start-und Endrekursion 192 Aufgabe: Wie viele Papageien? 192 6.2.1 Lösungsweg 1 193 6 . 2 . 2 Lösungsweg 2 194 Aufgabe: Wer ist unser bester Kunde? 196 6 . 2 . 3 Lösungsweg 1 198 6 . 2 . 4 Lösungsweg 2 199 6 . 3 Das Hauptkonzept der Rekursion 201 Aufgabe: Berechnung der Summe eines Arrays von Ganzzahlen 202 6 . 4 Häufige Fehler 204 6.4.1 Zu viele Parameter 205 6 . 4 . 2 Globale Variablen 206 6 . 5 Rekursion bei dynamischen Datenstrukturen 208 6.5.1 Rekursion und verkettete Listen 208 Aufgabe: Negative Zahlen in einer einfach verketteten Liste zählen 210 6 . 5 . 2 Rekursion und Binärbäume 211 Aufgabe: Suche nach dem größten Wert in einem Binärbaum 213 6.6 Wrapper-Funktionen 214 Aufgabe: Anzahl der Blätter eines Binärbaums 214 6 . 7 Wann wird Rekursion verwendet? 217 6.7.1 Rekursion: Gegenargumente 218 Aufgabe: Ausgabe einer verketteten Liste 220 Aufgabe: Ausgabe einer verketteten Liste in umgekehrter Reihenfolge 220 6.8 Übungen 222 7 Wiederverwendung von Code 225 7.1 Sinnvolle und nicht sinnvolle Wiederverwendung von Code 225 7 . 2 Komponenten 227 7.2.1 Code-Blöcke 227 Inhaltsverzeichnis 7 . 2 . 2 Algorithmen 227 7 . 2 . 3 Entwurfsmuster 228 7 . 2 . 4 Ab. Bestandsnummer des Verkäufers 43411
Anzahl: 1 verfügbar