Die Variablentypen
Variablentyp, Beinhaltet und Größe in Byte
Wenn eine Variable definiert und gleich danach initialisiert, d.h. ein Wert zugewiesen wird,...
Eine Zuweisung alleine würde folgendermaßen aussehen:
Es gibt zusätzlich auch noch die Deklaration von Variablen.
- int
- Pos. und neg. Ganzzahl
- 2/4 Byte
- float
- Gleitkommazahl
- 4 Byte
- double
- genauere Gleitkommazahl
- 8 Byte
- char
- Buschstabe
- 1 Byte
- bool
- "enthält" den Wert true oder false.
- 1 Byte
- unsigned char
- Werte von 0 bis 255
- 1 Byte
- unsigned int
- Ganzzahlen 0 bis 65535
- 2/4 Byte
z.B. int i_zahl;... dann "sagt" man dem Compiler: "Hallo Compiler! Ich will, dass du Speicherplatz für eine Integer-Variable mit dem Namen i_zahl reservierst".
Wenn eine Variable definiert und gleich danach initialisiert, d.h. ein Wert zugewiesen wird,...
int i_zahl = 7;...dann teilt man dem Compiler mit: "Ich will, dass diese Variable mit Namen i_zahl vom Typ int (bis hierher ist eine Definition) mit dem Wert 7 vorbelegt werden soll".
Eine Zuweisung alleine würde folgendermaßen aussehen:
i_zahl = 7;Jetzt "weiß" der Compiler, dass der bereits definierten (aber möglicherweise noch nicht initialisierten) Variablen i_zahl der Wert 7 zugewiesen werden soll.
Es gibt zusätzlich auch noch die Deklaration von Variablen.
extern int i_zahl;Mit dieser verdeutlicht man: "Es gibt irgendwo eine Variable mit Namen i_zahl vom Typ int. Aber wo, verrate ich dir noch nicht". Hier wird kein Speicher angelegt, sondern nur lediglich bekannt gegeben, dass es diese Variable gibt. Mittels extern kann man eine Variable nur deklarieren, denn ohne extern wäre es ja eine Definition. Wo das Sinn macht, erfahren Sie noch später.
Anmerkung
Um einer char Variablen einen Buchstaben zuzuweisen darf man nicht
Denn "a" ist ein String (Zeichenkette) und 'a' ein Zeichen.
char c_zeichen = "a";schreiben, sondern man muss
char c_zeichen = 'a';schreiben.
Denn "a" ist ein String (Zeichenkette) und 'a' ein Zeichen.
Aufgaben
- Überlegen Sie sich, wie man die Variablendefinition und die -initialisierung mit einer Lagerkiste in einem Hochregallager (z.B. bei Ikea) vergleichen kann!
- Bitte kreuzen sie an, ob die folgende Aussage wahr oder falsch ist:
- Mit i_zahl = 7; wird eine Integer-Variable mit dem Namen i_zahl angelegt und mit dem Wert 7 initialisiert.
- float f_fliesskommazahl; reserviert 4 Byte im Arbeitsspeicher.
- In bool b_richtig = 1; steht bool b_richtig für die Definition und = 1 für die Initialisierung der Variablen.
- char c_zeichen = "B"; definiert eine Character-Variable mit dem Namem c_zeichen und dem Wert/Zeichen B.
- unsigned int i_zahl = -1; definiert eine Integer-Variable mit dem Namen i_zahl und dem Wert -5.
- Jede Variable muss bei der Definition einen Typ und einen Namen besitzen.
- Erstellen Sie gemeinsam mit ihrem Banknachbarn einen Merksatz, was eine Variablendefinition ist!
- (Unter einer Variablendefinition versteht man, ...)
- Welche Variablen benötigt man, um für zwei Kandidaten die Stimmen zu zählen, alle abgegebenen Stimmen zu ermitteln und daraus die prozentuale Stimmverteilung zu berechnen? Bitte überlegen Sie sich auch eine sinnvolle Benennung für diese Variablen!
- Beschreiben Sie kurz den Unterschied zwischen einer Variablendefinition und Variablendeklaration!
- Erstellen Sie einen eigenen "Wahlomat" welcher die Stimmen für zwei Kandidaten einliest und das prozentuale Stimmverhältnis ausgibt!
- Bitte berechnen sie die Werte der Integer-Variablen i_zahl1 und i_zahl2. Rechnen sie dabei jeweils mit den Werten der vorangegangenen Zeile weiter.
- Operator = (Zuweisung)
- i_zahl1 = 7; i_zahl2 = 8;
- Operator + (Addition)
- i_zahl1 = i_zahl2 + 3;
- Operator - (Subtraktion)
- i_zahl2 = i_zahl1 - 3;
- Operator * (Multiplikation)
- i_zahl2 = i_zahl2 * 3;
- Operator / (Division)
- i_zahl2 = i_zahl1 / 3;
- Operator % (Modulo, Rest einer Division)
- i_zahl1 = i_zahl2 % 3;
Merke:
Bei einer Zuweisung steht die Variable, der ein Wert zugewiesen werden soll, immer auf der linken Seite vom "="!
Lösungen
1. Überlegen Sie sich, wie man die Variablendefinition und die -initialisierung mit einer Lagerkiste in einem Hochregallager (z.B. bei Ikea) vergleichen kann!
- Lösung noch nicht verfügbar
2. Bitte kreuzen sie an, ob die folgende Aussage wahr oder falsch ist:
- Mit i_zahl = 7; wird eine Integer-Variable mit dem Namen i_zahl angelegt und mit dem Wert 7 initialisiert.
- Falsch. Die Variable ist nicht angelegt.
- float f_fliesskommazahl; reserviert 4 Byte im Arbeitsspeicher.
- Wahr.
- In bool b_richtig = 1; steht bool b_richtig für die Definition und = 1 für die Initialisierung der Variablen.
- Wahr.
- char c_zeichen = "B"; definiert eine Character-Variable mit dem Namem c_zeichen und dem Wert/Zeichen B.
- Falsch. "B" ist ein String. Das Zeichen ist 'B'.
- unsigned int i_zahl = -1; definiert eine Integer-Variable mit dem Namen i_zahl und dem Wert -5.
- Falsch. Die Variable wurde als unsigned definiert.
- Jede Variable muss bei der Definition einen Typ und einen Namen besitzen.
- Wahr.
3. Erstellen Sie gemeinsam mit ihrem Banknachbarn einen Merksatz, was eine Variablendefinition ist!
- Unter einer Variablendefinition versteht man, dass einer Variablen ein Speicherbereich zugeteilt wird.
4. Welche Variablen benötigt man, um für zwei Kandidaten die Stimmen zu zählen, alle abgegebenen Stimmen zu ermitteln und daraus die prozentuale Stimmverteilung zu berechnen? Bitte überlegen Sie sich auch eine sinnvolle Benennung für diese Variablen!
- int i_stimme_1; // Um die Stimmen von Kandidat 1 zu zählen.
- int i_stimme_2; // Um die Stimmen von Kandidat 2 zu zählen.
- float f_verteilung_1; // Um die prozentuale Stimmverteilung von Kandidat 1 zu berechnen.
- float f_verteilung_2; // Um die prozentuale Stimmverteilung von Kandidat 2 zu berechnen.
5. Beschreiben Sie kurz den Unterschied zwischen einer Variablendefinition und Variablendeklaration!
- Mit der Deklaration bennenen wir eine Variable und machen diese dem Compiler bekannt.
- Der Definition ist die Reservierung des Speicherbereich für die Variable.
6. Erstellen Sie einen eigenen "Wahlomat" welcher die Stimmen für zwei Kandidaten einliest und das prozentuale Stimmverhältnis ausgibt!
#include <iostream>
using namespace std;
int main() {
/*
* VARIABLES
*/
int i_stimmen_1, i_stimmen_2;
float f_verteilung_1, f_verteilung_2;
/*
* INPUT
*/
cout << "Bitte geben Sie die Stimmenzahl fuer Kandidat 1: ";
cin >> i_stimmen_1;
cout << "Bitte geben Sie die Stimmenzahl fuer Kandidat 2: ";
cin >> i_stimmen_2;
/*
* LOGIC
*/
// Integer * 1.0 = Float
f_verteilung_1 = i_stimmen_1 * 1.0 / (i_stimmen_1 + i_stimmen_2) * 100.0;
f_verteilung_2 = i_stimmen_2 * 1.0 / (i_stimmen_1 + i_stimmen_2) * 100.0;
/*
* OUTPUT
*/
cout << endl;
cout << "Prozentuale Stimmverteilung." << endl;
cout << "Kandidat 1: " << f_verteilung_1 << "%" << endl;
cout << "Kandidat 2: " << f_verteilung_2 << "%" << endl;
/*
* END OF PROGRAM
*/
getchar();
getchar();
return (0);
}
7. Bitte berechnen sie die Werte der Integer-Variablen i_zahl1 und i_zahl2. Rechnen sie dabei jeweils mit den Werten der vorangegangenen Zeile weiter.
- i_zahl1 = 7; i_zahl1 = 8;
- i_zahl1 enthalt 7
- i_zahl2 enthalt 8
- i_zahl1 = i_zahl2 + 3;
- i_zahl1 enthalt 11
- i_zahl2 enthalt 8
- i_zahl2 = i_zahl1 - 3;
- i_zahl1 enthalt 11
- i_zahl2 enthalt 8
- i_zahl2 = i_zahl2 * 3;
- i_zahl1 enthalt 11
- i_zahl2 enthalt 24
- i_zahl2 = i_zahl1 / 3;
- i_zahl1 enthalt 11
- i_zahl2 enthalt 3
- i_zahl1 = i_zahl2 % 3;
- i_zahl1 enthalt 0
- i_zahl2 enthalt 3
No hay comentarios:
Publicar un comentario