Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C Grundkurs

Arithmetische Operationen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sie lernen in diesem Video die arithmetischen Operatoren (Rechenoperatoren) von C ebenso kennen, wie die Bedeutung der Ganzzahldivision und Modulo sowie Rundungsprobleme in C bei Division von Gleitkommazahlen.
07:01

Transkript

In diesem Video wollen wir uns mit den sogenannten arithmetischen Operatoren beschäftigen. Das kann man auch vereinfacht als Rechenoperatoren bezeichnen. Rechenoperatoren sind im Wesentlichen die Zeichen, die Sie aus der Schulmathematik kennen. Und auch die Operationen sind, zumindestens ein Paar davon, so wie man es aus der Schulmathematik erwarten sollte. Wenn Sie sich jetzt hier dieses Beispiel ansehen, wir haben hier drei Variablen a, b, c und zwei davon bekommen einen Wert zugewiesen, 5 und 6, und die dritte wird berechnet. Die Zeichen, die Sie hier zur Verknüpfung benutzen, das sind die arithmetischen Operatoren. Beispielsweise das + Zeichen für Addition, das - Zeichen für die Subtraktion und der * für die Multiplikation. Und wenn wir das jetzt mal ausführen, dürfte niemand überrascht sein, dass hier 30 rauskommt. Bisschen mehr überrascht könnten Sie sein, wenn ich die Division durchführe. Die Devision ist dieser slash (/). Auch das vom Zeichen her dürfte möglicherweise bekannt sein, aber was kommt raus? 5 geteilt durch 6. Was gibt das? Wir lassen es mal laufen. Erwarten Sie 0? Bin nicht sicher. Möglicherweise erwarten Sie eher sowas um 0,8 rum. Nun, es gibt jetzt mehrere Faktoren, die bei der Division eine Rolle spielen, und da ist zum einen die Ausgabe hier. Das heißt bei printf habe ich hier ein Prozent d stehen, das heißt ich gebe nur ganze Zahlen aus. Kann ja sein, dass da das Problem liegt. Wenn wir hier auf Prozent f gehen, dann sehen Sie, was wirklich berechnet wurde, denn der Wert von c wird durch dieses Prozent d nicht richtig ausgegeben, nicht vollständig ausgegeben. Nachkommateil wird abgeschnitten. Aber Sie werden möglicherweise überrascht sein, denn es kommt immer noch 0 raus. Allerdings jetzt 0,0. Nichtsdestotrotz haben wir immer noch die 0. 5 geteilt durch 6 is offensichtlich 0 für die Programmierung in diesem Fall. Das Problem, oder eigentlich ist es kein Problem, es ist eine Tatsache. Es ist ein Phänomen, was sogar sehr sinnvoll ist, aber was am Anfang Einsteiger verwirrt. Das Problem ist der Datentyp, also die Datentypen mit denen wir hier arbeiten. Ich habe hier int, ganze Zahlen. Und was ich hier durchführe ist die sogenannte Ganzzahldivision. Die Ganzzahldivision wird immer so lauten, dass man guckt wie oft geht hier dieser Wert in diesen Wert rein. Und den Rest schneidet man ab. Wenn ich hier beispielsweise auf double wechsel, dann haben wir so irgendwas mit 0,8. Wenn ich sage irgendwas mit, dann deutet das an, dass es, was sogenannte Gleitkomma Arithmetik angeht, es gewaltige Probleme mit Rundungen geben kann. Sie sollten immer sehr, sehr vorsichtig sein, wenn Sie Gleitkommazahlen, also floating point Zahlen, durcheinander teilen, weil es wird sehr oft etwas seltsam gerundet. Und insbesondere in C ist die Abhängigkeit von der Plattform vom C Standard und diversen anderen Sachen gegeben. Seien Sie bitte ganz vorsichtig solche Divisonen durchzuführen. Man führt in der Regel besser Ganzzahldivisionen durch und wenn Sie wirklich den Wert haben wollen, dann spricht nichts dagegen so etwas zu machen und hinterher nochmal durch 100 zu teilen. Und im Ergebnis haben Sie dann einen double. Das heißt man behilft sich so mit Tricks, mit mathematischen Tricks, um diese Division in den Griff zu kriegen. Es ist übrigens so, dass nicht beide Operanten Gleitkomma Typen sein müssen bei so einer Operation, sondern es würde auch funktionieren, wenn nur einer der Operanten zum Beispiel ein double ist. Das Ergebnis muss dann natürlich auch double sein. Aber wenn Sie hier so etwas machen und lassen das laufen, kriegen Sie wieder diesen Komma Wert, beziehungsweise floating point Wert hier. Sie können sich als Regel merken: bei arithmetischen Operationen frisst ein Gleitkommatyp den Ganzzahltyp. Das ist eine ganz einfache Regel. Also das heißt wenn man 2 Ganzzahltypen miteinander verbindet, kommt auch als Ergebnis eine ganze Zahl raus. Wenn Sie einen der Operanten als double oder auch float definieren, double ist etwas einfacher zu merken, dann kommt als Ergebnis auch ein Gleitkomma Typ raus. Das, wie gesagt, macht die ganze Geschichte im Umgang mit diesen arithmetischen Operationen nicht so trivial bei der Division. Bei der Multiplikation, Addition, Subtraktion ist das relativ harmlos. Jetzt hatte ich allerdings noch einen weiteren Operator erwähnt. Modulo. Rest. Modulo schauen wir uns an mit neuen Variablen. Das a können wir nehmen, aber ich führe jetzt nochmal ein int d, e ein. Ich gebe d auch einen Wert. Sagen wir mal 2. Und e berechne ich als a Modulo. Das ist dieses Prozentzeichen d und dann gebe ich e aus. Das ist der sogenannte Restwert. Was bedeutet das? Lassen wir es laufen. Ich habe hier eine eins. Was bedeutet denn die eins? Was ist 5 Modulo 2? 1 sagt zu mindestens jetzt gerade hier das Programm. Das bedeutet man nimmt den zweiten Operanten, den Wert des zweiten Operanten, die 2 schaut wie oft geht das in den ersten Operanten rein und was bleibt dann noch übrig? Also ich kriege hier 2*2 rein, dann habe ich 4, 4 ziehe ich von der 5 ab. Was bleibt übrig? 1. Wenn a jetzt den Wert 11 hätte geht die 2 fünfmal rein, also habe ich 10, ziehe die 10 ab. Was bleibt übrig? 1. Und so kann man mit Modulo den Restwert berechnen. Modulo ist sehr wichtig, auch wenn Ihnen das jetzt möglicherweise suspekt erscheint, bei allen periodischen Vorgängen, also alles was mit Datum, Uhrzeit zu tun hat, was sich wiederholt, arbeitet man sehr oft mit dem Modulo Operator. Wir haben also in diesem Video jetzt die arithmetischen Operatoren kennengelernt und insbesondere sollten Sie sich merken, dass Gleitkomma Operationen in Verbindung mit Divisionsprozessen ein extrem heikles Thema sind und man sollte sie vermeiden, wenn immer es geht.

C Grundkurs

Lernen Sie das Syntaxkonzept von C von Grund auf kennen vor und sehen Sie, wie mit einer geeigneten Entwicklungsumgebung Programme Schritt für Schritt entstehen.

4 Std. 36 min (70 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!