C-Programmieren in 10 Tagen
eBook - ePub

C-Programmieren in 10 Tagen

Eine Einführung für Naturwissenschaftler und Ingenieure

  1. 244 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

C-Programmieren in 10 Tagen

Eine Einführung für Naturwissenschaftler und Ingenieure

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Dieses Buch basiert auf den Erfahrungen und Erkenntnissen, die während und durch den C-Kurs des SKT an der DHBW Stuttgart gesammelt wurden. Ausgehend von einigen Algorithmen, die in den Natur- und Ingenieurswissenschaften, aber auch in der reinen Informatik Verwendung finden, wird der grundlegende Ablauf eines Programms dargestellt, was dann in der Programmiersprache C eine konkrete Umsetzung findet. Die wesentliche Syntax und Semantik wird anhand der Entwicklung von Beispielprogrammen eingeführt und vertieft, sowie durch das eigenständige Bearbeiten von Aufgaben zu verschiedenen Themen gefestigt. Lösungen zu jeder im Buch gestellten Aufgabe finden sich im Anhang. Die Programme werden schrittweise mit neuen Funktionen versehen und erreichen am Ende schon eine größere Komplexität. Auch auf die Projektführung (Strukturierung, Kommentierung, Programmierstil) wird von Anfang an Wert gelegt, sodass der Leser auch größere Programme sicher entwickeln kann.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu C-Programmieren in 10 Tagen von Jan Peter Gehrke, Patrick Köberle, Christoph Tenten, Michael Baum im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Technik & Maschinenbau & Elektrotechnik & Telekommunikation. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

1 Algorithmen und mathematische Grundlagen

Um ausschließlich C zu lernen, bedarf es nur weniger mathematischer Grundlagen. Diese erschöpfen sich darin, dass man sich mit Logik sowie verschiedenen Zahlensystemen auskennt: Wir sind im Alltag das Dezimalsystem gewohnt, eine CPU verarbeitet aber binäre Zahlen, und Speicheradressen werden üblicherweise hexadezimal angegeben. Daher werden wir zunächst einen Überblick über diese Zahlensysteme geben. Aber auch in Hinblick auf Anwendungen soll der Leser in diesem Kapitel ein wenig Mathematik an die Hand bekommen, um beispielsweise Problemstellungen aus den Ingenieurswissenschaften mit Hilfe kleiner C-Programme zu lösen. Herleitungen und Beweise sind nicht Bestandteil dieses Buches, und wir formulieren die Lösungsverfahren daher mit dem Schwerpunkt auf Algorithmen.

1.1 Zahlensysteme

1.1.1 Zahlendarstellungen und der Euklid’sche Algorithmus

Wir wollen uns hier kurz mit der Darstellung von Zahlen auseinandersetzen und uns anschauen, wie wir aus dem Dezimalsystem in ein beliebiges anderes Zahlensystem wechseln können. Hierbei hilft uns der Euklid’sche Algorithmus weiter. Zuerst einmal sollten wir uns klar machen, dass wir in der Regel mit Stellenwertsystemen arbeiten. Das bedeutet, dass die Wertigkeit einer Ziffer von ihrer Position innerhalb einer Zahl abhängt. Es existieren natürlich auch Darstellungen von Zahlen, wo dies nicht so ist, z.B. bei den römischen Zahlen, dies ist aber nur eine Erwähnung am Rande. Wenn wir also beispielsweise die Zahl 123 in unserem gewohnten Zehnersystem (Basis 10) niederschreiben, dann meinen wir eigentlich
(1.1) 123=(123)10=1100+210+31=1102+2101+3100.
Nun rechnen wir wohl bedingt durch die Anzahl unserer Finger eben gerne mit der Basis 10. Der Computer bevorzugt aber das Binärsystem (Basis 2) oder das Hexadezimalsystem (Basis 16). Wie wechseln wir in diese (oder auch beliebige andere) Zahlensysteme, d.h. wie sieht die Darstellung unserer Zahl (hier 123) eben bezüglich der neuen Basen aus? Hier hilft uns der Euklid’sche Algorithmus weiter, den wir beispielhaft für ein paar Zahlen demonstrieren wollen. Es handelt sich eigentlich nur um eine fortgesetzte Division mit Rest. Tätigen wir vorab ein paar Überlegungen, die uns gleich weiterhelfen werden. Nehmen wir die Zahl 123 und teilen sie durch 10, dann erhalten wir 123 = 12 · 10 + 3, also die für uns nicht sehr überraschende Erkenntnis, dass die 10 zwölfmal in die 123 passt und 3 als Rest übrig bleibt, also Rest R1 = 3. Nehmen wir nun die 12 und dividieren diese durch 10, dann folgt 12 = 1 · 10 + 2, womit wir R2 = 2 erhalten. Letztendlich stellen wir fest, dass 1 = 0 · 10 + 1 ist, also R3 = 1 gilt. Betrachten wir die Reste, so erkennen wir, dass (R3R2R1) = 123 ist, womit wir in den Resten unsere Ziffern für die einzelnen Stellen der Zahl finden. Diese Erkenntnis lässt sich auf beliebige Zahlen übertragen, was bedeutet, dass wir nur den Divisor (hier war es die Zahl 10) auszutauschen haben und durch die neue Basis (z.B. 2 oder 16 oder ...) ersetzen. Beginnen wir mit der Basis b = 2, wandeln also unsere 123 aus der Darstellung im Zehnersystem in eine im Binärsystem um. Es folgt:
123 : 2 = 61 R1 = 1
61 : 2 = 30 R2 = 1
30 : 2 = 15 R3 = 0
15 : 2 = 7 R4 = 1
7 : 2 = 3 R5 = 1
3 : 2 = 1 R6 = 1
1 : 2 = 0 R7 = 1
Der Algorithmus terminiert, wenn die Basis nicht mehr in die zuletzt zu teilende Zahl (Dividend) passt. Aus der Rechnung schließen wir, dass (123)10 = (1111011)2 gilt, wobei wir die Reste, wie bereits demonstriert, von unten nach oben zu lesen haben. Die an der Stelle mit der höchsten Wertigkeit stehende Ziffer hält sich bei der Division am längsten. Auch bei der Basis b = 16 klappt unser Spielchen.
123 : 16 = 7 R1 = 11
7 : 16 = 0 R2 = 7
Hier kommen wir im Vergleich zur Basis 2 sehr schnell zu einem Ende und stellen fest, dass (123)10 = (7(11))16 gilt. Die doppelte 1 bietet sich aber nicht sonderlich gut als Symbol für eine Ziffer an. Umfasst unser sogenannter Ziffernvorrat bei der Basis 2 nur die Ziffern 0 und 1, so haben wir bei der Basis 10 die Ziffern 0 bis 9 zur Verwendung freigegeben. Bei der Basis 16 müssen es daher 16 Ziffern sein, nämlich 0 bis 9 und noch sechs weitere, die die möglichen Reste (10) bis (15) bei der Division abdecken. Hierfür wählt man die Buchstaben A, B, C, D, E und F. Dadurch erhalten wir (123)10 = (7B)16. Wir können leicht nachrechnen, dass
(7B)16=7161+B160=716+111=112+11=123,
wobei die 123 dann wieder im Zehnersystem zu verstehen ist. Durch die nahe Verwandtschaft der Basen 2 und 16 (24 = 16) lassen sich Zahlen aus der einen Darstellung auch recht schnell blockweise in die andere überführen, ohne den Euklid im Zehner- oder einem anderen Zahlensystem bemühen zu müssen. Man stellt leicht die Zusammenhänge in der Tabelle 1.1 fest. Damit lässt sich z.B. aus (123)10 = (1111011)2 durch das Ergänzen einer führenden 0, die nichts am Wert ändert, die Hexadezimaldarstellung aus der Tabelle ablesen. Es ist
(123)10=(1111011)2=(01111011)2=((0111)(1011))2=(7B)16.
Tab. 1.1:Die ersten 16 Zahlen, dargestellt...

Inhaltsverzeichnis

  1. Title Page
  2. Copyright
  3. Contents
  4. Vorwort
  5. 1 Algorithmen und mathematische Grundlagen
  6. 2 Einführung in die Programmierung
  7. 3 Variablen und Datentypen
  8. 4 Ausdrücke und Operatoren
  9. 5 Programmverzweigungen und Schleifen
  10. 6 Funktionen, Teil 1
  11. 7 Felder und Speicherverwaltung
  12. 8 Interaktion: Tastatur, Bildschirm und Dateien
  13. 9 Strukturen
  14. 10 Funktionen, Teil 2
  15. Lösungen der Übungsaufgaben
  16. Stichwortverzeichnis