Grundlagen der Informatik 2. Typen

Konstanten, Variablen Speicher, Speicherbedarf Ein-/Ausgabe

Grundlagen der Informatik (Alex Rempel)

1

2. Typen Wiederholung // root calculation #include #include using namespace std; void main() { const double precision = 1.0e-3; double x,a; // input cout > a; // plausibility check if ( a precision ); // loop end // result cout 3*16^2 + 1*16^1 + 10*16^0 = 794(10)



binär 1100011010(2) => 1*2^9 + ... 0*2^0 = 794(10)

2-er Systeme: binär, oktal, hex, aber nicht dezimal ●

binär: 1100011010



oktal: 1 100 011 010 => 1432



hex:

11 0001 1010 => 31A Grundlagen der Informatik (Alex Rempel)

8

2. Typen Konstanten, Variablen ●



Typen: Gleitkommazahlen Typ

Bits

Min

Max

float

32

3.4*10^-38

3.4*10^38

double

64

1.7*10^-308

1.7*10^308

long double

80

1.2*10^-4932

1.2*10^4932

Gleitkommazahl? ●

Beispiel Begrenzung: 3 Ziffern hinter dem Komma



(Mensch:

0.12*0.12

= 0.0144)



Fixkomma:

0.120*0.120

= 0.014



Gleitkomma:

1.2e-1*1.2e-1 = 1.44e-2 Grundlagen der Informatik (Alex Rempel)

9

2. Typen Konstanten, Variablen ●

Typen: Wahrheitswerte (bool) ●

Logischer Wert 'true' oder 'false'



Echter Wert 'true = !0' und 'false=0' –



Typen: leerer Typ (void) ●



3, 9A, -44 sind also alles 'true' Werte

wenn keine Typangabe möglich

Typen: Character (char) ●

Steht für eine Zahl (Byte) –

Zahl ist gleichzeitig ein Zeichen aus der ASCII Tabelle Grundlagen der Informatik (Alex Rempel)

10

2. Typen Konstanten, Variablen

Grundlagen der Informatik (Alex Rempel)

11

2. Typen Konstanten, Variablen

Grundlagen der Informatik (Alex Rempel)

12

2. Typen Konstanten, Variablen ●

Typen: Zeichenkette (string) ●

Voraussetzung: '#include '



Speichert und modifiziert ganze Zeichenketten –



"lolcat" "EIT" "qwerty1234" "@.-" etc.

Typen: Aufzählung (enum) ●

Eigendefinierte ganzzahlige Aufzählungen, z.B: –

'enum grades {one,two,three,four,five,six};' ●



Deutung: 'one' ist Ganzzahl 0, 'six' ist Ganzzahl 5

Dient u.a. zur besseren Lesbarkeit von Code Grundlagen der Informatik (Alex Rempel)

13

2. Typen Konstanten, Variablen Typ

Bits

Min (signed)

Max (signed)

Min (unsigned)

Max (unsigned)

bool

8

-

-

(0) false

(1..255) true

char

8

-128

127

0

255

short int

16

-32.768

32.767

0

65535

int

32

-2.147.483.648

2.147.483.647

0

4.294.967.295

long int

32

-2.147.483.648

2.147.483.647

0

4.294.967.295

Typ

Bits

Min

Max

float

32

3.4*10^-38

3.4*10^38

double

64

1.7*10^-308

1.7*10^308

long double

80

1.2*10^-4932

1.2*10^4932

Die Angaben sind implementierungsabhängig (siehe limits.h und float.h)

Grundlagen der Informatik (Alex Rempel)

14

2. Typen Konstanten, Variablen ●

Namensgebung ●

Regeln –

muss mit Unterstrich oder Buchstaben anfangen



besteht aus Unterstrichen, Buchstaben und Ziffern ●

– ●

Groß- und Kleinschreibung ist relevant

C++ Schlüsselwörter sind verboten

Empfehlung –

Unterstrich am Beginn vermeiden



aussagekräftige, beschreibende Namen verwenden ●

'counter' statt 'cnt', 'zinsSatz' statt 'zins' u.s.w. Grundlagen der Informatik (Alex Rempel)

15

2. Typen Konstanten, Variablen ●

Deklaration und Zuweisung ●

Genauigkeit: Gleitkomma-Zahl, konstant (0.001) –







Konstante: modifier 'const' vor dem Typ ●

const double precision = 1.0e-3;



const double precision = 0.001;

Eingangszahl: ganze positive Zahl, variabel ●

unsigned int input = 0;



unsigned int input (0);

Zwischenergebnisse: Gleitkomma-Zahl(!), variabel ●

double x = 0;



double x = input;

Resultat: Gleitkomma-Zahl, variabel ●

double result = 0; Grundlagen der Informatik (Alex Rempel)

16

2. Typen Konstanten, Variablen ●

Literalen (Literale in 'int x = 4;' ist die '4') ●

Numerisch

0 (int) -043(int, oktal) 0xA4 (int, hex) 0.3 (double) -1.8e5 (double) 11.4f (float)



Zeichen:

'0' (char) '\23' (char, oktal) '\n' (char, newline)



Zeichenketten:

"here be dragons!"



Wahrheitswerte:

true false



u.w. (probiert verschiedene mit einfacher Ausgabe aus)

Grundlagen der Informatik (Alex Rempel)

17

2. Typen Speicher, Speicherbedarf Speicher komplett

Grundlagen der Informatik (Alex Rempel)

18

2. Typen Speicher, Speicherbedarf Speicher komplett

Speicher Prozess

Grundlagen der Informatik (Alex Rempel)

19

2. Typen Speicher, Speicherbedarf Adresse Wert

0

1 00

2 FF

3 45

... A2

Speicher Prozess ●

Kleinster Wert ist ein Byte



Adresse 32b oder 64b ●



Adressraum begrenzt

Anfangswerte sind zufällig ●

Deswegen bei Deklaration immer zuweisen! Grundlagen der Informatik (Alex Rempel)

20

2. Typen Speicher, Speicherbedarf ●

Deklaration: Variable bekommt automatisch freien Speicher zugewiesen ●

Adresse ist in der Variable enthalten



Zuweisung: Speicher unter der Adresse der Variable wird beschrieben



Beispiel: Variable 'c', Größe ein Byte ●

unsigned char c;

Adresse: 2 Inhalt: 0x45 (69 'E')



c = '0';

Adresse: 2 Inhalt: 0x30 (48 '0')

Grundlagen der Informatik (Alex Rempel)

21

2. Typen Speicher, Speicherbedarf ●

Deklaration: Variable bekommt automatisch freien Speicher zugewiesen ●

Adresse ist in der Variable enthalten



Zuweisung: Speicher unter der Adresse der Variable wird beschrieben



Beispiel: Variable 'c', Größe ein Byte ●

unsigned char c;

Adresse: 2 Inhalt: 0x45 (69 'E')



c = '0';

Adresse: 2 Inhalt: 0x30 (48 '0')



c = c + 1;

Adresse: 2 Inhalt: 0x31 (49 '1')



c = c + 250;

Adresse: ? Inhalt: ? Grundlagen der Informatik (Alex Rempel)

22

2. Typen Speicher, Speicherbedarf ●

Deklaration: Variable bekommt automatisch freien Speicher zugewiesen ●

Adresse ist in der Variable enthalten



Zuweisung: Speicher unter der Adresse der Variable wird beschrieben



Beispiel: Variable 'c', Größe ein Byte ●

unsigned char c;

Adresse: 2

Inhalt: 0x45 (69 'E')



c = '0';

Adresse: 2

Inhalt: 0x30 (48 '0')



c = c + 1;

Adresse: 2

Inhalt: 0x31 (49 '1')



c = c + 250;

Adresse: 2

Inhalt: 0x2B (43 '+')



Überschreitung des Wertebereichs Grundlagen der Informatik (Alex Rempel)

23

2. Typen Speicher, Speicherbedarf ●

Deklaration: Variable bekommt automatisch freien Speicher zugewiesen ●

Adresse ist in der Variable enthalten



Zuweisung: Speicher unter der Adresse der Variable wird beschrieben



Beispiel: Variable 'n', Größe vier Bytes ●

unsigned int n;

Adresse: 1

Inhalt: 0xA3000348



Adresse 1: zeigt auf das erste Byte, reserviert aber 3 dazu



'n' belegt also Adressen 1..4

Grundlagen der Informatik (Alex Rempel)

24

2. Typen Ein-/Ausgabe ●



C: 'stdio.h' Funktionen ●

veraltet, nicht komfortabel, fehleranfällig



immer noch in vielen Programmen vorhanden

C++: 'iostream' stream-basiert ●



'cout > dSomething >> iLolcats;' (Eingabe: 89.97 42) Grundlagen der Informatik (Alex Rempel)

25

2. Typen Ein-/Ausgabe ●

Shift-Ketten ('...