# Variablen können nicht benutzt werden



## Dj EKI (31. Jan 2012)

Hi,

Ich muss bis zu 100 Variablen untereinander auflisten. Das Problem ist, in einer Variable ist auch mal eine Rechnung vorhanden, die eine andere Variable abgreift.

zB.:
a = 12
b = 13
c = 14 + d //der funktioniert überhaubt nicht.
d = 15

Mir ist aufgefallen, das "d" vor der Rechnung sein muss, damit c funktioniert. Und das bekomm ich leider bei 100 Variablen nicht hin. Wieso fängt der immer von oben an zu lesen? Was kann ich dagegen machen?

mfg EKI


----------



## Gast2 (31. Jan 2012)

> Ich muss bis zu 100 Variablen untereinander auflisten.


Öhm... :noe:
Auf den Anwendungsfall bin ich mal gespannt...


```
c = 14 + d //der funktioniert überhaubt nicht.
```
Zu dem Zeitpunkt gibts d noch gar nicht. Was willst du da zu den 14 addieren?


----------



## Noctarius (31. Jan 2012)

Dj EKI hat gesagt.:


> Hi,
> 
> Ich muss bis zu 100 Variablen untereinander auflisten. Das Problem ist, in einer Variable ist auch mal eine Rechnung vorhanden, die eine andere Variable abgreift.
> 
> ...



Wo sollte er sonst anfangen zu lesen? Mitten drin? Was soll der Compiler dann bei sowas machen:

```
a = 1 + b;
b = a + 20;
```


----------



## Dj EKI (31. Jan 2012)

```
Buecher = 3 * parseFloat(Papier)
	Buecherregal = (3 * parseFloat(Buecher)) + (6 * parseFloat(Holzplanken))
	Holzplanken = 5.1
```

ein kleiner Ausschnitt. Ich wollte alles übersichtlich nach Buchstaben sortieren. Vllt erkennt das jemand, das ist für Minecraft ein Handelsrechner. Wenn mal ein Wert sich ändert, so muss ich nicht alles neu berechnen, daher wpollte ich den Rechenweg aufschreiben. Ich bin leider noch etwas Neu in der Java scriptsprache.

mfg EKI


----------



## HimBromBeere (31. Jan 2012)

> Neu in der Java scriptsprache.


Merkt man... JAVA ist keine Skriptsprache.
Nichtsdestoweniger frag ich mich gerade, was dein zuletzt geschickter Code mit dem vom Anfang zu tun hat. Da stellt sich mir kein Zusammenhang dar:noe:


----------



## Fab1 (31. Jan 2012)

Um Werte zu sortieren eignet sich zum Beispiel Collections (Java 2 Platform SE 5.0) 

Aber verstehen tu ich trotzdem nicht was du machen willst.


----------



## Gast2 (31. Jan 2012)

Java ist keine Scriptsprache sondern eine Programmiersprache.



> Ich wollte alles übersichtlich nach Buchstaben sortieren.


Das kannst du aber nicht machen. Alle Befehle werden sequentiell ausgeführt.



> Wenn mal ein Wert sich ändert, so muss ich nicht alles neu berechnen, daher wpollte ich den Rechenweg aufschreiben.


Was genau meinst du damit? Wenn sich hier bspw. 
	
	
	
	





```
Buecher = 3 * parseFloat(Papier)
```
 später mal der Wert Papier ändert, dann steht in Buecher immernoch der alte Wert drin, das ist dir klar oder? Das heißt wenn sich was ändern, dann musst du neu rechnen.


----------



## Illuvatar (31. Jan 2012)

Der Code, den du gepostet hast, sieht irgendwie... nicht mal wirklich nach Java aus. ???:L
(Außer da steht ein import static java.lang.Float.* und alle Variablen sind schon irgendwo deklariert.)

Aber was für eine Sprache das auch immer sein soll - ich denke, du überschätzt sie. Der Computer kann doch nichts anderes machen, als deinen Code Zeile für Zeile abzuarbeiten.
Warum es sinnvoll sein sollte, dass das da alphabetisch dasteht, kann ich nicht erkennen. Wenn du die Variablen dann noch irgendwo ausgibst, muss die Reihenfolge dort nichts mit der Reihenfolge hier im Code zu tun haben.


----------



## Network (31. Jan 2012)

Ich liebe Minecraft für seine Wirkung auf die Menschen und ihre Lebensziele...

Dein Problem ist also, dass deine Variablen durcheinander sind.
Damit hat wirklich jeder programmierer zu (kämpfen). Die Reihenfolge wie die Variablen initialisiert und gesetzt werden und das möglichst übersichtlich.

Es gibt keine Möglichkeit, dass in einer anderen Form umzusetzen, mit den von dir beschriebenen Voraussetzungen.

Du bist der Programmierer und hast solche Probleme für deine Anwender zu lösen.
Schreib doch ein Programm, mit dem du die Variablen später verändern kannst und das dir die einzelnen Rohstoffe sortiert anzeigt.


----------



## HimBromBeere (31. Jan 2012)

> Dein Problem ist also, dass deine Variablen durcheinander sind.
> Damit hat wirklich jeder programmierer zu (kämpfen). Die Reihenfolge wie die Variablen initialisiert und gesetzt werden und das möglichst übersichtlich.


Deine Variablen alphabetisch zu sortieren ist übrigens ziemlicher Blödsinn. Sinnvoller ist es, sie nach thematischer Zusammengehörigkeit zu sortieren (z.B. gehört zu einer Datei eine Dateigröße, eine Datei und diverse andere Dateiattribute). Und am besten die Variablen dort deklarieren, wo sie gebraucht werden...


----------



## Network (31. Jan 2012)

@HimBromBeere Offtopic: Warum müssen die Leute immer mich zitieren


----------



## HimBromBeere (31. Jan 2012)

Hab ich glaub noch nie gemacht... werd´s hinfort nicht mehr tun, wenn´s dir unangenehm ist:lol:


----------



## Dj EKI (31. Jan 2012)

Das ist der Komplette Script. Jetzt wollte ich zu /* ---Blöcke---*/ das mit dem Werten und Berechnungen eingeben. Der Rohstoff ist ein fester Wert. Wenn eine Spitzhacke gecraftet wird, dann addiert sich das aus dem Rohstoffen und somit muss ich nicht diesen Wert für die Spitzhacke festlegen.
Dort wo  
	
	
	
	





```
document.write("Buecherregal " + (Auswahl / 15 * Multi) + "<br/>");
```
steht, wird es später so aussehen

```
document.write("Buecherregal " + (Auswahl / Buecherregal * Multi) + "<br/>");
```

dann sollte das hier verwendet werden:

```
var Buecher = 3 * parseFloat(Papier)
   var Buecherregal = (3 * parseFloat(Buecher)) + (6 * parseFloat(Holzplanken))
   var Holzplanken = 5.1
```

Ich steh da sowieso noch bei einem 2. Problem. Aber das später. Wie könnte ich das Lösen?




```
<HTML>
<HEAD>
<TITLE>List Box Test</TITLE>
<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<SCRIPT LANGUAGE="JavaScript">

</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
function testSelect (form) {
	/* ---Blöcke---*/
	


	
	
	/* ---Item---*/
	
	/* kommen noch */
	
	var Item = form.liste.selectedIndex
    var Auswahl = form.liste.options[Item].value;
	var Multi = form.zahl.value;
	var NameErgebnis = form.liste.options[Item].text + " ";
	document.write("Du hast " + NameErgebnis + "ausgewaehlt." + "<br/>");
    document.write("Buecherregal " + (Auswahl / 15 * Multi) + "<br/>");
    document.write("Goldblock " + (Auswahl / 300 * Multi) + "<br/>");
	document.write("Silberblock " + (Auswahl / 200 * Multi) + "<br/>");
	document.write("Holz " + (Auswahl / 0.5 * Multi) + "<br/>");
	document.write("Sand " + (Auswahl / 0.2 * Multi) + "<br/>");
	document.write("Sand " + (Auswahl / 0.2 * Multi) + "<br/>");
	document.write("Sand " + (Auswahl / 0.2 * Multi) + "<br/>");
	document.write("Sand " + (Auswahl / 0.2 * Multi) + "<br/>");
	document.write("Sand " + (Auswahl / 0.2 * Multi) + "<br/>");
	
}
</script>
<FORM NAME="myform" ACTION="" METHOD="GET">
  <label for="zahlid"></label>
  <input type="text" name="zahl" id="zahlid">
  <SELECT NAME="liste" SIZE="1">
    <option value="15">Buecherregal
	<option value="300">Goldblock
    <option value="200">Silberblock
    <option value="0.5">Holz
    <option value="0.2">Sand
  </SELECT>
  <input type="button" name="button" value="Test" onClick="testSelect(this.form)">
</FORM>
```


----------



## HimBromBeere (31. Jan 2012)

AAAAAHA, du redest Javascript... dann ist das hier das falsche Forum. Lese er hier: http://www.java-forum.org/fuer-verirrte-fragen-javascript/15912-falschen-forum.html


----------



## FaxXer (31. Jan 2012)

Das ist nicht Java sondern höchstwahrscheinlich JavaScript !!!! Ist beides komlett unterschiedlich....


----------



## HimBromBeere (31. Jan 2012)

Ich versuche mal, trotz der VÖLLIG UNWESENTLICHEN Kleinigkeit, dass das hier das falsche Forum für dein Thema ist, mich nützlich zu machen...

Ich hab nur leider nicht verstanden, wie deine Ausgabe aussehen soll, wenn ich das bisher richtig durchgesehen hab, steht da nichts weiter als das hier:
ausgewählter Gegenstand

```
Bücherregal <Zahl aus der Inputbox>
Goldblock <Zahl aus der Inputbox>
Silberblock <Zahl aus der Inputbox>
Holz <Zahl aus der Inputbox>
Sand <Zahl aus der Inputbox>
Sand <Zahl aus der Inputbox>
Sand <Zahl aus der Inputbox>
Sand <Zahl aus der Inputbox>
Sand <Zahl aus der Inputbox>
```

wobei die Zahlen immer die gleichen sind, und zwar genau die Zahl, die der Nutzer in das Inputfeld "Zahl" eingegeben hat. Soll das echt so sein?
EDIT: Was sollen eigtl. die komischen values? Hätte´s nicht einfach [1...5] getan?

EDIT: Ui, während des Schreibens verschoben...


----------



## Dj EKI (31. Jan 2012)

ui, das tut mir leid, wusste nicht, das es da ein Unterschied gibt.

Als Beispiel gibt es den hier : Die Siedler Online ? Handelsrechner » nessio.de | Bennis Blog

Ich wollte das genauso aufbauen, nur selber scripten, da ich nix kopieren möchte, und ich sowieso andere Rechnungen verwende.

HimBromBeere:
Der Script funktioniert jetzt so einwandfrei, das was ich gepostet habe ab <HTML> kannst du dir gerne ausprobieren. Denn das was ausgewählt wird, wird durch ein Grundwert geteilt, somit erhält man, den Wert vom anderen Material. Ich hoffe ich habe das eben richtig geschrieben ^^
Also haben die Values wirklich ein Nutzen. Nur ist das halt mein 2. Problem. Ich würde gerne es gerne so schreiben: 

```
<SELECT NAME="liste" SIZE="1">
    <option value="Buecherregal">Buecherregal
```
Leider gibt es dann ein NaN. Buecherregal kann nicht als Variable anerkannt werden. Denn das ist wichtig, das was ich auswähle muss auch den Wert haben. Dann könnte ich den Script so schreiben:

```
document.write("Buecherregal " + (Auswahl / [TIPP]Buecherregal[/TIPP] * Multi) + "<br/>");
```

Aber mein Problem mit der Variable Liste bleibt leider auch noch. Ich dachte die werden alle in den Arbeitsspeicher geschmissen und können von dort aus gelesen werden. Aber es scheint so, als ob die nur von Oben nach unten gelesen werden kann.

mfg EKI


----------

