Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

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:

  • a = 10
  • b = 5
  • c = 2

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:

  1. Hier wird a (10) zuerst durch zwei geteilt, denn das Geteilt-Zeichen hat höhere Priorität als das Plus-Zeichen. Also 10 / 2 = 5.
  2. Das Zwischenergebnis wird jetzt mal b genommen, da auch die Multiplikation höher steht als die Addition. Also gilt 5 * 5 = 25.
  3. Am Schluss wird dann zum Zwischenergebnis 25 noch 3 hinzugezählt, ergibt also 28; das Endergebnis.

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


Das Inhaltsverzeichnis

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

 

 

 

Links