Variablen (Programmierung)

Moin Liebe Comnunity

Beim erlernen von Java bin ich auf das Wort "Variable gestoßen.
Aber was ist das genau bei der Programmierung.
Wikipedia hat mir auch nicht weitergeholfen mit der "Bahnhofsprache"
Wieso schreibt Wikipedia die Themen immer so kompliziert :(
 
http://codenlernen.blogspot.de/2013/01/variablen-und-daten.html

Variablen sind benannte Speicherbereiche im RAM, in denen Daten gespeichert werden können. Man spricht auch davon, dass Variablen Daten (manchmal auch Werte genannt) enthalten und dass man Daten (oder Werte) in ihnen ablegt. Der Datentyp und die gespeicherte Datenmenge definieren die Grösse des Speicherbereichs, der im Arbeitsspeicher belegt wird.
 
Man könnte eine Variable mit einem Blatt Papier vergleichen, auf das du z.B. Text (String, Char) oder Zahlen (Integer, Float, ...) schreiben kannst. Das Blatt mit der Zahl kannst du dann weiter benutzen, z.B. kopieren, auslesen oder den Inhalt wieder 'wegradieren' und das Blatt neu beschrieben. Ein Blatt hat immer eine bestimmte Größe, d.h. du kannst nicht unendlich viel Text drauf schreiben. Gleichzeitig kannst du nur das auf das Blatt schreiben, wofür das Blatt auch geeignet ist.

Code:
int zahl1 = 5;

Das bedeutet also, dass du die Zahl 5 auf das Zahlen-Blatt mit dem Namen "zahl1" schreibst. Du kannst jetzt das Blatt mit dem Namen "zahl1" einfach benutzen, um z.B. etwas zu berechnen:

Code:
int zahl2 = zahl1 + 10;

Das bedeutet, dass du das Blatt "zahl1" erst ausliesst (=5) und dann 10 addierst. Das Ergebnis (15) schreibst du dann auf das Blatt mit dem Namen "zahl2".

Analog kennst du den Begriff "Variable" vielleicht aus der Mathematik. Dort wird eine Variable dazu benutzt, um Zahlen darin zu speichern und von der eigentlichen Berechnung zu abstrahieren. Z.B. gibt es die Gleichung c^2 = a^2 + b^2, um die Hypotenuse (die lange Seite) eines Dreiecks aus den beiden Katheten (die beiden kurzen Seiten) zu berechnen. Das gilt sowohl für kleine Dreiecke, als auch für große, weswegen man von den eigentlichen Zahlen und Längen der Seiten "abstrahiert" und dadurch eine allgemeine Form gewonnen hat, die man für beliebige Dreiecke einsetzen kann, um die Seitenlängen zu berechnen.
 
Zuletzt bearbeitet:
Man könnte eine Variable mit einem Blatt Papier vergleichen, auf das du z.B. Text (String, Char) oder Zahlen (Integer, Float, ...) schreiben kannst. Das Blatt mit der Zahl kannst du dann weiter benutzen, z.B. kopieren, auslesen oder den Inhalt wieder 'wegradieren' und das Blatt neu beschrieben. Ein Blatt hat immer eine bestimmte Größe, d.h. du kannst nicht unendlich viel Text drauf schreiben. Gleichzeitig kannst du nur das auf das Blatt schreiben, wofür das Blatt auch geeignet ist.

Code:
int zahl1 = 5;

Das bedeutet also, dass du die Zahl 5 auf das Zahlen-Blatt mit dem Namen "zahl1" schreibst. Du kannst jetzt das Blatt mit dem Namen "zahl1" einfach benutzen, um z.B. etwas zu berechnen:

Code:
int zahl2 = zahl1 + 10;

Das bedeutet, dass du das Blatt "zahl1" erst ausliesst (=5) und dann 10 addierst. Das Ergebnis (15) schreibst du dann auf das Blatt mit dem Namen "zahl2".


Das Beispiel hab ich verstanden, aber der obere Teil nicht :(
 
blatt_papier.jpg


Stell dir eine Variable einfach wie ein Blatt Papier vor, auf das du unterschiedliche Dinge (Text, Zahlen) schreiben kannst. Mit dem Blatt selbst kannst du dann wieder unterschiedliche Dinge machen:
- Du kannst es lesen.
- Du kannst es beschreiben.
- Du kannst deine Werte wegradieren.
- Du kannst es weglegen und später wieder zur Hand nehmen und das, was du darin gespeichert hast, wieder lesen.
 
Es ist einfach eine Umschreibung dafür wie man Variablen nutzt bzw. was man mit ihnen tun kann. :rolleyes:

Ich hab aber langsam das Gefühl, dass du nicht gerade zum Programmierer geschaffen bist. Das ist einfach nicht für jeden was. Etwas abstraktes Vorstellungsvermögen sollte man da schon mitbringen und das hat naturgemäß nicht jeder.
 
Es ist einfach eine Umschreibung dafür wie man Variablen nutzt bzw. was man mit ihnen tun kann. :rolleyes:

Ich hab aber langsam das Gefühl, dass du nicht gerade zum Programmierer geschaffen bist. Das ist einfach nicht für jeden was. Etwas abstraktes Vorstellungsvermögen sollte man da schon mitbringen und das hat naturgemäß nicht jeder.

Das schaff ich schon :D
 
Anschauliche (aber nicht wirklich korrekte) Beispiele für Variablen:

  • besagtes Blatt Papier. Es ist ein Behälter für Information.
  • Die Lautstärke deines Fernsehers. Du kannst ihren Wert erhöhen, erniedrigen oder auf Null setzen.
  • Die Gangschaltung deines Autos ist eine Variable mit dem Wertebereich {-1,0,1,2,3,4,5}. Ihr Wert ist der aktuelle Gang.
  • Ein Glas enthält eine gewisse Menge Wasser. Du kannst auch Kekse hineintun, aber wenn jemand den Inhalt des Glases als Wasser interpretiert geschehen merkwürdige Sachen.
Das sind alles Analogien, die nur unvollständig sagen was eine Variable ist. Eine Variable ist eigentlich ein mathematisches Objekt, das in der Realität die man beobachten kann, keine 1:1-Entsprechung hat.

In der Mathematik sind Variablen "Platzhalter" für beliebige Werte. So ist in f(x) = x+2 die Variable x jede beliebige Zahl. Den Bereich kann man einschränken, indem man z.B sagt, dass x reel sein muss. Dann kann man für jeden Wert von x einen Wert der Gleichung bestimmen, was dann so aussieht.

Variablen im Computer sind jedoch im Gegensatz zu mathematischen Variablen endlich und nehmen nur ganzzahlige Werte an (mit denen man dann andere Sachen emulieren kann, wie Fließkommazahlen und Strings). In deinem Programm musst du nun in die Platzhalter tatsächliche Werte reinstecken:

Code:
int x; //Variable ohne definierten Wert

int Murks = 0; //Variable mit dem Wert Null
Murks = x+2; //undefiniert, du hast x nicht spezifiziert

x = 2;

int Ergebnis = x + 2; //jetzt ist Ergebnis 4, da ihm der Wert der Addition von 2+2 zugewiesen wird.

//ÜBUNG: Welchen Wert hat x jetzt?
 
anschauliche (aber nicht wirklich korrekte) beispiele für variablen:

  • besagtes blatt papier. Es ist ein behälter für information.
  • die lautstärke deines fernsehers. Du kannst ihren wert erhöhen, erniedrigen oder auf null setzen.
  • die gangschaltung deines autos ist eine variable mit dem wertebereich {-1,0,1,2,3,4,5}. Ihr wert ist der aktuelle gang.
  • ein glas enthält eine gewisse menge wasser. Du kannst auch kekse hineintun, aber wenn jemand den inhalt des glases als wasser interpretiert geschehen merkwürdige sachen.
das sind alles analogien, die nur unvollständig sagen was eine variable ist. Eine variable ist eigentlich ein mathematisches objekt, das in der realität die man beobachten kann, keine 1:1-entsprechung hat.

In der mathematik sind variablen "platzhalter" für beliebige werte. So ist in f(x) = x+2 die variable x jede beliebige zahl. Den bereich kann man einschränken, indem man z.b sagt, dass x reel sein muss. Dann kann man für jeden wert von x einen wert der gleichung bestimmen, was dann so aussieht.

Variablen im computer sind jedoch im gegensatz zu mathematischen variablen endlich und nehmen nur ganzzahlige werte an (mit denen man dann andere sachen emulieren kann, wie fließkommazahlen und strings). In deinem programm musst du nun in die platzhalter tatsächliche werte reinstecken:

Code:
int x; //variable ohne definierten wert

int murks = 0; //variable mit dem wert null
murks = x+2; //undefiniert, du hast x nicht spezifiziert

x = 2;

int ergebnis = x + 2; //jetzt ist ergebnis 4, da ihm der wert der addition von 2+2 zugewiesen wird.

//übung: Welchen wert hat x jetzt?

4 ? :)
 
Und was hat das mit der Programmierung zutun?

Programmieren bedeutet nichts anderes, als die Welt um dich herum zu beschreiben und nachzuzeichnen. Das kannst du natürlich auch umdrehen, in dem du mit Hilfe der Welt um dich herum dein Programm und deine Hilfsmittel zur Erstellung des Programms beschreibst, um sie dir selbst klarer zu machen. Beide Betrachtungsweisen sind essentiell für Programmierer.
 
MEEEEP, falsch. Es ist 2. 2+2 ändert ja nicht den Wert der Zwei. Die Zuweiseung schaufelt den Wert von 2+2 erst rüber. Was konkret passiert:

Code:
Ergebnis = x + 2 //hole Wert von x
Ergebnis = 2 + 2 //berechne
Ergebnis = 4     //weise zu
Ergebnis ←  4    //4 steht da jetzt drin
 
mir wurde das ganze damals mit schuhkartons erklärt. :)

Unser Dozent kam in den Unterricht und brachte Schuhkartons mit, packte etwas hineien und begann zu erzählen. Gab jemanden den Karton und machte einen übergang zu den getter und setter ...

Aber den Vorworten und Beschreibungen hier im Thread gibt es nichts hinzuzufügen ...

Ist ja auch nur das ablegen einer information zu einem Wertebreich ...
 
Die Frage ist wohl eher ob die Erklärungen Devil_Inside geholfen haben oder ob noch Fragen ( welche? ) offen sind ;)
 
Wenn dir Theorie nicht so liegt, versuche es einfach mit der Praxis. In Chrome z.B. gibt es eine "REPL-Console", die man per F12 öffnen kann (für Firefox kann man sich Firebug nachinstallieren). Da kann man dann schnell und einfach Variablen Werte zuweisen und man sieht sofort Ergebnisse:


attachment.php
 
Zurück
Oben