
Kapitel 3 - Fortsetzung
Ein paar arithmetische Grundlagen
Wann immer man denn Computer rechnen lassen will, muss man sich der arithmetischen Grundlagen bewusst sein, um nicht die falschen Ergebnisse zu erzeugen. Am Besten ist immer, man versucht einfach anhand von einfachen Aufgaben den Rechenweg zu verfolgen. So gilt z.B. bei der Rechnung a + b * c die Rechenregel Punkt vor Strich, d.h. wenn man:
setzt, dann rechnet der PC wie folgt:
a + b * c = 10 + (5 *2 ) = 10 + 10 = 20;
und nicht
a + b * c = (10 + 5) * 2 = 15 * 2 = 30;
Wenn Sie bei a + b * c wollen, dass a + b zuerst gerechnet wird, dann muss a + b in Klammer gesetzt werden:
(a + b) * c
Und was nun wenn man folgendes angibt:
a / b * c
Dann wird der Reihe nach gerechnet:
10 / 5 * 2 = 4 ( zuerst 10/5 = 2 dann mal 2 = 4)
Sie sollten nur darauf achten wenn Sie Ganzzahlen (int) wählen und beim Ergebnis (oder auch Zwischenergebnis!) eine Dezimalzahl herauskommt (float). Denn bei int und %i besteht der PC auf eine Ganzzahl und ingnoriert alles nach dem Komma. Nehmen wir z.B.:
int a;
int b;
a = 25
b = 2
und rechnen:
a / b * b
dann gilt
25 / 2 * 2
Der Computer rechnet gemäß der Arithmetik 25/2 = 12.5 * 2. Das müsste 25 ergeben, das Ergebnis wird aber 24 sein (versuchen Sie es!), denn mit 12.5 kann er nichts anfangen, da Sie ihm mitgeteilt haben, die Rechnung beinhalte nur Ganzzahlen. Die Folge: er streicht die .5 einfach und rechnet 12 mal 2.
Ein anderes Beispiel:
3 + a / 2 * b
Hier wird wie folgt gerechnet:
Betrachten wir das Problem der Beschneidung von Zahlen in einem kleinen Beispiel:
Programm 3.1
-----------------------------------------------------------------------------------------------------------------
#import <stdio.h>
int main (int argc, char *argv[])
{
int summe;
summe = 50.12345 + 10.123;
printf ("Die Summe von 50.12345 plus 10.123 wurde zurechtgeschnitten auf %i", summe);
return 0;
}
-----------------------------------------------------------------------------------------------------------------
Programm 3.1 output
-----------------------------------------------------------------------------------------------------------------
Die Summe von 50.12345 plus 10.123 wurde zurechtgeschnitten auf 60
Programm3_1 has exited with status 0.
-----------------------------------------------------------------------------------------------------------------
Wann immer Sie einem Wert das Attribut Ganzzahl (int) zuweisen rechnet der Computer nur mit Ganzzahlen. Sie können zwar versuchen ihm Gleitkommazahlen zuzuweisen, doch wird er immer die Stellen nach dem Komma einfach beschneiden (z.B. 10.123 registriert er als 10). Umgekehrt können Sie aber einer float Anweisung eine Ganzzahl zuweisen (z.B. 150 wird als 150.0 registriert).
weiter ---- Objective-C Index ---- Startseite----zurück
EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR