aboutsummaryrefslogtreecommitdiff
path: root/Info/9/3/Planet/algorithmik/for/variablen.md
blob: 30099161192ac7845ba3fc3ee09e53016c07e193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
---
section: Wiederholung mit fester Anzahl
title: Variablen
---
:::{.terminal}
Unser Rover hat nicht unbegrenzt Stauraum und er darf auch nicht zu schwer werden, sonst schafft er es nicht wieder zurück zur Basis.
Der Rover muss sich merken können wie viele Steine er bereits aufgehoben hat.  
[_]{.blink}
:::

Zum Speichern von Werten kann man Variablen verwenden.
Eine Variable kann man sich wie eine [**Kiste**]{.gap} vorstellen, in der Werte abgelegt werden können.
Jede Kiste hat einen eindeutigen [**Datentyp**]{.gap}.
Das heißt, zum Speichern von Zahlen muss man andere Kisten (bzw. einen anderen Datentyp) verwenden als zum Speichern von Texten.

:::{.tipp}
Das Erzeugen einer Variable geschieht in zwei Schritten:

##### 1. [Deklaration]{.gap}

Als erstes muss man den **Datentyp** und den **Namen** der Variable festlegen.

::: {.columns}
:::: {.column width=50%}
**Kistenmodell**
::::
:::: {.column width=50%}
**Java**
::::
:::
::: {.columns style="align-items: center;"}
:::: {.column width=50%}
![](img/kiste-dekl.png){.center style="max-width:min(100%, 15rem);"}
::::

:::: {.column width=50%}
```java
int zaehler;
```
::::
:::

:::{.tipp}
**Wichtig:** Der Datentyp wird nur einmal bei der "*Erstellung*" der Variable genannt, danach nie wieder!
:::

##### 2. [Initialisierung]{.gap}

Nun muss man einen Anfangswert festlegen, den sogenannten **Initialwert**.

::: {.columns}
:::: {.column width=50%}
**Kistenmodell**
::::
:::: {.column width=50%}
**Java**
::::
:::
::: {.columns style="align-items: center;"}
:::: {.column width=50%}
![](img/kiste-init.png){.center style="max-width:min(100%, 15rem);"}
::::

:::: {.column width=50%}
```java
zaehler = 0;
```
::::
:::
:::

Nachdem eine Variable deklariert und initialisiert wurde, kann man sie verwenden.
Z. B. zum Zählen von Gesteinen auf dem Weg zur Marke.
Der Rover soll zählen, wie viele Gesteine auf dem Weg bis zur Marke liegen. 

![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"}

Wenn der Rover auf einem Gestein ist, soll der Zähler um 1 erhöht werden.
Zum Erhöhen eines Wertes kann wird der aktuelle Variablenwert genommen und mit 1 addiert und schließlich der Variable wieder zugewiesen.

:::{style="text-align: center;"}
**Zuweisung**: `zaehler ← zaehler + 1`
:::

Erhöhe durch eine Zuweisung den Zähler um 1, wenn er auf einem Gestein steht:

![](img/rover-count1.png){.center style="max-width: min(100%, 900px);"}

:::{style="text-align: center;"}
`zaehler ← 0 + 1`
:::

![](img/rover-count2.png){.center style="max-width: min(100%, 900px);"}

:::{style="text-align: center;"}
`zaehler ← 1 + 1`
:::

![](img/rover-count3.png){.center style="max-width: min(100%, 900px);"}

:::{style="text-align: center;"}
`zaehler ← 2 + 1`
:::

![](img/rover-count4.png){.center style="max-width: min(100%, 900px);"}

:::{style="text-align: center;"}
`zaehler ← 3 + 1`
:::

:::{.tipp}
**Hinweis:** In Java gibt es keinen Pfeil, daher verwendet man ein `=`-Zeichen:

`zaehler = zaheler + 1`{.java}
:::

:::{.merke data-class="Merke: Variablen"}
Eine Variable **speichert** einen Werte.

Eine Variable muss:

1. mit **Datentyp** und **Namen** **deklariert** werden

----------------------------------------
Allgmein              Java
--------------------  ------------------
`<Datentyp> <Name>;`  `int zahl;`{.java}
----------------------------------------

2. mit einem **Startwert** **initialisiert** werden

---------------------------------------
Allgmein             Java
-------------------  ------------------
`<Name> = <Wert>;`   `zahl = 5;`{.java}
---------------------------------------
:::

:::{.aufgabe data-class="Aufgabe 6.1.1"}
Der Rover soll bis Zur Marke fahren und auf dem Weg alle Gesteine zählen.
Schreibe dazu die Methode `zaehleGestein()`, die am Ende die Anzahl der Steine auf dem Weg *zurückgibt*.  
**Hinweis:** Überlege dir, ob es eine verändernde oder zurückgebende Methode ist?

![](img/rover-count0.png){.center style="max-width: min(100%, 900px);"}
:::

:::{.erledigt}
:::

:::{.no-print}
<< Zurück zu TODO: %section%
:::