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

Ü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

Ja, du kannst dein Abo jederzeit über den Tab Abo in deinen Kontoeinstellungen auf der Perlego-Website kündigen. Dein Abo bleibt bis zum Ende deines aktuellen Abrechnungszeitraums aktiv. Erfahre, wie du dein Abo kündigen kannst.
Nein, Bücher können nicht als externe Dateien, z. B. PDFs, zur Verwendung außerhalb von Perlego heruntergeladen werden. Du kannst jedoch Bücher in der Perlego-App herunterladen, um sie offline auf deinem Smartphone oder Tablet zu lesen. Weitere Informationen hier.
Perlego bietet zwei Abopläne an: Elementar und Erweitert
  • Elementar ist ideal für Lernende und Profis, die sich mit einer Vielzahl von Themen beschäftigen möchten. Erhalte Zugang zur Basic-Bibliothek mit über 800.000 vertrauenswürdigen Titeln und Bestsellern in den Bereichen Wirtschaft, persönliche Weiterentwicklung und Geisteswissenschaften. Enthält unbegrenzte Lesezeit und die Standardstimme für die Funktion „Vorlesen“.
  • Pro: Perfekt für fortgeschrittene Lernende und Forscher, die einen vollständigen, uneingeschränkten Zugang benötigen. Schalte über 1,4 Millionen Bücher zu Hunderten von Themen frei, darunter akademische und hochspezialisierte Titel. Das Pro-Abo umfasst auch erweiterte Funktionen wie Premium-Vorlesen und den Recherche-Assistenten.
Beide Abopläne sind mit monatlichen, halbjährlichen oder jährlichen Abrechnungszyklen verfügbar.
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 bei 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 kannst die Perlego-App sowohl auf iOS- als auch auf Android-Geräten nutzen, damit du jederzeit und überall lesen kannst – sogar offline. Perfekt für den Weg zur Arbeit oder wenn du unterwegs bist.
Bitte beachte, dass wir Geräte, auf denen die Betriebssysteme iOS 13 und Android 7 oder noch ältere Versionen ausgeführt werden, nicht unterstützen können. Mehr über die Verwendung der App erfahren.
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 & Programmierung. 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