Skip to content

Commit f9bc524

Browse files
jenukfriedz
authored andcommitted
Variablen (#68)
* Neue Version * feedback tom * praxis teil hinzugefügt * kleinkram * zeilenumbrüche damit es in pdf passt * .cpp dateien aktualisert * wird nicht mehr verwendet
1 parent 7a6c2e3 commit f9bc524

4 files changed

Lines changed: 35 additions & 63 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ dir: files/*
3131
@cp files/fehler3.cpp vorkurs/lektion04/. > /dev/null
3232
@cp files/fehler4.cpp vorkurs/lektion04/. > /dev/null
3333
@cp files/fehler5.cpp vorkurs/lektion04/. > /dev/null
34-
@cp files/strings.cpp vorkurs/lektion05/. > /dev/null
34+
@cp files/variablen.cpp vorkurs/lektion05/. > /dev/null
3535
@cp files/arith1.cpp vorkurs/lektion07/. > /dev/null
3636
@cp files/arith2.cpp vorkurs/lektion07/. > /dev/null
3737
@cp files/arith3.cpp vorkurs/lektion07/. > /dev/null

basics/variablen.tex

Lines changed: 21 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,37 @@
11
\lesson{Variablen}
22

3-
Wir wollen uns jetzt Zeilen 7 bis 10 von \texttt{helloyou.cpp} anschauen:
4-
\cppsect{helloyou.cpp}{7}{10}
3+
Das Programm \texttt{variablen.cpp} erzählt von ihrem Tag.
4+
Compilier es und guck dir die Ausgabe an.
55

6-
Bisher haben wir uns nicht sehr darum gekümmert, wie genau dieser Teil
7-
funktioniert. Das wollen wir nun korrigieren. Beginnen wir mit Zeile 7.
6+
\inputcpp{variablen.cpp}
87

9-
Was hier passiert ist, dass eine Variable definiert wird. Eine Variable ist im
10-
Wesentlichen ein reservierter Bereich im \emph{Hauptspeicher}, in dem ihr Daten
11-
ablegen könnt und der einen bestimmten Namen (in diesem Fall \texttt{eingabe})
12-
hat. Damit der Computer weiß, wie dieser Speicherbereich zu interpretieren ist
13-
(wir erinnern uns: Der Computer kennt keine Buchstaben oder Zahlen, nur „an“
14-
und „aus“), hat jede Variable einen Typ (in diesen Fall \texttt{std::string},
15-
was einfach eine Folge von Buchstaben ist).
8+
Da immer wieder das gleiche Wort \glqq{}wundervoll\grqq{} benutzt wird, wurde es in eine sogenannte \emph{Variable} ausgelagert.
9+
Eine Variable ist ein Wert der mit einem Namen benannt wird.
10+
Dabei findet die Zuweisung durch ein \cppinline{=} statt, dem Namen auf der linken Seite des Gleichheitszeichen wird der Wert auf der rechten Seite zugewiesen.
11+
Im Programm selbst ist es dann so, als würde der Wert an der Stelle des Namens stehen.
1612

17-
Um einen string anzulegen gibt es noch eine andere Methode: So genannte
18-
\emph{String-literals}. Das ist z.B. das \verb|"Hallo "| in Zeile 10.
19-
Überall, wo ihr ein String-literal benutzen könnt, könnt ihr auch eine
20-
String-Variable benutzen (und umgekehrt)
13+
Der Wert einer Variable kann sich im Laufe des Programmes verändern.
14+
Durch Hinzufügen der Zeile \cppinline{beschreibung = "langweilig";} wird hinter dieser Zeile anstelle von \glqq{}wundervoll\grqq{} nun \glqq{}langweilig\grqq{} ausgegeben.
15+
Ähnlich kann wie in \texttt{helloyou.cpp} der Wert von Variablen durch \cppinline{std::cin >> beschreibung} die Benutzerin eingeben werden.
2116

22-
Um Zeile 10 in Gänze zu verstehen, stellt euch die Pfeile (\verb|<<|) am Besten
23-
als „Schiebeoperatoren“ vor, die das, was auf der Rechten Seite steht in das,
24-
was auf der linken Seite steht „Schieben“. \texttt{std::cout} ist selbst eine
25-
Variable, die bestimmte Dinge tut, wenn etwas „in sie hineingeschoben wird“,
26-
nämlich, es auf der Konsole auszugeben.
27-
28-
Wir schieben also zunächst den String \verb|"Hallo "| auf die Konsole,
29-
anschließend den String, der in der Variable \texttt{eingabe} gespeichert ist,
30-
anschließend ein \texttt{std::endl}, was ein (Betriebssystem abhängiger)
31-
Zeilenumbruch ist.
32-
33-
Was jetzt noch fehlt ist offensichtlich Zeile 8. Das ist, wo wir tatsächlich
34-
eine Usereingabe holen. Wieder stellen wir uns die Pfeile als Schiebeoperatoren
35-
vor, sie schieben jetzt etwas aus \texttt{std::cin} nach \texttt{eingabe}.
36-
Genauso, wie \texttt{std::cout} etwas formatiert auf die Konsole schiebt, zieht
37-
\texttt{std::cin} etwas formatiert aus der Konsole, je nachdem, wo man es
38-
hinschiebt. In diesen Fall schieben wir es in einen String, es wird also ein
39-
String (separiert durch Leerzeichen oder Zeilenumbrüche) gelesen und in die
40-
Variable eingabe geschoben.
41-
42-
Statt uns Strings aus der Konsole zu ziehen, können wir ihnen auch direkt
43-
String-Literals \emph{zuweisen}, wie es hier passiert:
44-
\inputcpp{strings.cpp}
17+
Variablen haben immer einen bestimmten \emph{Datentypen}.
18+
In unserem Beispiel handelt es sich um \cppinline{std::string}.
19+
Der Datentyp wird bei dem Erstellen -- also der ersten Zuweisung -- vor dem Namen angeben.
20+
Dieser wird benötigt, damit der Computer weiß, um was für eine Art Wert es sich handelt -- ein Text sollte anders behandelt werden als eine Zahl.
21+
Beispielsweise kann man zwei Zahlen miteinander multiplizieren, für Texte ergibt das allerdings keinen Sinn.
22+
In der Lektion Arithmetik lernen wir mehr über Zahlen und deren Eigenheiten.
4523

4624
\textbf{Praxis:}
4725
\begin{enumerate}
48-
\item Was passiert, wenn ihr nach Zeile 8 eine weitere Zuweisung an
49-
\texttt{hallo} macht?
50-
\item Definiert euch eine weiter \texttt{std::string} Variable und lest ein
51-
weiteres Wort darin ein (vielleicht ein Nachname?)
26+
\item Was passiert, wenn ihr \cppinline{beschreibung} in Zeile 5 ein anderes Wort zuweist?
27+
\item Definiert eine weitere Variable und schreibt einen weiteren Satz.
5228
\end{enumerate}
5329

5430
\textbf{Spiel:}
5531
\begin{enumerate}
5632
\item Was passiert, wenn ihr euch im Namen einer Variable „vertippt“?
57-
\item Definiert euch zwei \texttt{std::string} Variablen, weißt ihnen
58-
irgendwelche String-literals zu und versucht, die Summe von beiden
59-
Strings auszugeben.
60-
\item Was passiert, wenn ihr eine \texttt{std::string} Variable definiert,
33+
\item Definiert euch zwei \cppinline{std::string} Variablen, weist ihnen
34+
irgendwelchen Text zu, versucht, sie zu addieren und das Ergebnis auszugeben.
35+
\item Was passiert, wenn ihr eine \cppinline{std::string} Variable definiert,
6136
ihr aber nichts zuweist und dann versucht, sie auszugeben?
6237
\end{enumerate}

files/strings.cpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

files/variablen.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#include <iostream>
2+
#include <string>
3+
4+
int main(){
5+
std::string beschreibung = "wundervoll";
6+
7+
std::cout << "Hallo, mein Tag war " << beschreibung << std::endl;
8+
std::cout << "Ich habe " << beschreibung
9+
<< " aus einem Skript gelernt" << std::endl;
10+
std::cout << "Ich hoffe dir geht es genauso "
11+
<< beschreibung << std::endl;
12+
return 0;
13+
}

0 commit comments

Comments
 (0)