Visual J - Totaler Anfänger - IQ-Test

Todo89

Mitglied
Ein schönes Wochenende erstmal,

Ich arbeite mit dem Programm Visual J 2005 und versuche, einen IQ-Test zu erstellen.
Meine Gedanken dazu waren folgende:

Ich habe 10 Fragen in einem normalen Textfeld gestellt und daneben jeweils Eingabefelder zum Ausfüllen gemacht.
Nun wollte ich, wenn man auf einen Button ("Auswerten") klickt, dass der Rechner die Eingabe von dem ersten Eingabefeld mit der richtigen Lösung vergleicht (if-Schleife?). Hier weiß ich allerdings nicht, wo genau man diese if-Schleife hinmachen muss und inwiefern ich das mit dem Eingabefeld verknüpfe. An der Stelle kommt das zweite Problem. Ich würde eine Variable definieren, die einfach "Punkte" heißt. Sollte die Eingabe von oben richtig sein, sollte er diese Punktzahl um +1 erhöhen.
Nach dem Motto: if richtige Lösung, dann Punkte+1 .
Dieses Verfahren würde ich mit jeder Frage wiederholen.
Am Ende sollte der PC der erreichten Gesamtpunktzahl einen IQ-Wert zuordnen und ihn dann wieder ausgeben. An der Stelle die Frage: Muss ich den IQ-Wert in einem weiteren Ein-/Ausgabefeld ausgeben oder geht das auch anders.

Ist mein Konzept soweit logisch und mit dem Programm umsetzbar? Sollte es klappen, werde ich es in einem größeren Rahmen nochmal umsetzen. Ich bin leider nicht so vertraut mit Java, möchte es aber gerne lernen.

Gruß
Thorsten
 

XHelp

Top Contributor
if-schleife.de
Muss ich den IQ-Wert in einem weiteren Ein-/Ausgabefeld ausgeben oder geht das auch anders.
Naja, du kannst es ausdrucken, du kannst es mit einer Brieftaube verschicken, du kannst es per Internet mit einem Auftrag an einen Tätowierer schicken, was auch immer du machen willst...
Ist mein Konzept soweit logisch und mit dem Programm umsetzbar?
Naja, schwer zu sagen. Im Grunde steht da: "Fragen irgendwie eingeben, dann irgendwie auswerten und dann ist das Ergebnis eben da". Es kommt viel mehr darauf, wie du das ganze Aufbaust.
Probier es einfach mal aus, ohne Vorkentnisse wirst du ohnehin irgendwann mal in eine Sackgasse laufen. Aber das ist normal und so lernst du es.
Aber im Grund ja, irgendwo wirst du eine Schleife brauchen.
 

Todo89

Mitglied
Bin grad am Ausprobieren, nur leider finde ich die Stelle nicht, wo ich neue Variablen definieren kann. Bei BlueJ war das alles etwas einfacher.
Den Programmiertext muss ich dann unter dem Button unten eingeben, da das ganze Event ja über den Button läuft.

Werde weiter probieren und ggf. nochmal hier nachfragen.
 

andiv

Bekanntes Mitglied
Hinweis: Mit Visual Studio 2005 verwendest du höchstwahrscheinlich die Programmiersprache J# und nicht die Programmiersprache Java. Wenn du Java lernen willst, dann verwende auch dazu passende Werkzeuge wie Eclipse, Netbeans oder IntelliJ Idea.
 

Todo89

Mitglied
Der Grund, wieso wir das machen (Lehrgang), ist wahrscheinlich, weil man so einfacher ins Thema Programmieren einsteigen kann. Aber das wusste ich tatsächlich nicht.:noe:

Ist das eine funktionierende If-Abfrage?

Code:
private void button1_Click(Object sender, System.EventArgs e)
	{
		if (Double.parseDouble(textBox3.get_Text()) = "rennen"
		{ Punkte + 1 }
        }

Wir hatten die immer nur, wenn wir zwei Eingabefelder addiert haben usw., wie macht man das denn mit Variablen?
 
Zuletzt bearbeitet:

nrg

Top Contributor
nein. der Operator = ist erstmal eine Zuweißung. Um einen referenziellen Vergleich zu machen nimmt man ==. Ausserdem vergleichst du hier Äpfel mit Birnen. Du parst deine Textbox in einen Double und willst diesen dann mit einem String vergleichen? Im Body fehlt noch dazu die Zuweißung und die Methode get_Text() gibts nicht. Die Klammersetzung ist auch noch falsch.
Mit dem Unterschied von einer referenziellen und inhaltlichen Gleichheit will ich jetzt erstmal noch garnicht anfangen :D.
 
M

maki

Gast
Wie bereits erwähnt, wenn du Visual J Fragen hast, bist du hier falsch und sonst auch, du brauchst schon eine Zeitmaschine um mal ein paar Jahre in die Vergangenheit zu reisen, denn Visual J ist schon lange tot.
Mit Visual J kann dir (hier) keiner wirklich helfen, in diesem Forum geht es um Java.

*verschoben*
 

nrg

Top Contributor
Mein Tipp: Wenn du Java lernen willst, schnapp dir ein Anfänger-Tutorial und verzichte komplett auf so Sachen wie JBlue. Damit wirst du dir nämlich kein Sprachverständnis erarbeiten. Beginne mit kleinen shellbasierten Programmen, die du am besten noch von Hand kompilierst und ausführst. Danach freunde dich mit einer IDE wie Eclipse oder Netbeans an.
Java Tutorial interaktiv - Programmieren lernen mit Java
 

Todo89

Mitglied
ouch.:autsch: Ok, also das mit den "==" habe ich nur falsch aufgeschrieben, wir haben das tatsächlich mit den zwei Gleichheitszeichen gelernt. Den get_Text()) haben wir allerdings bisher immer mitgeschrieben, also anscheinend scheint es den doch zu geben ? (unsere lehrerin hat das gemacht)
Wie kann ich denn sonst die Textbox mit einem Wert vergleichen, der im Eingabefeld stehen soll?

Was du mit Zuweisung meinst, verstehe ich nicht ganz und die referenzielle und inhaltliche Gleichheit kenne ich leider nicht.

@ Moderator: Es tut mir wirklich Leid, den Unterschied wusste ich nicht. Unsere Lehrerin redet stets von Java und deshalb dachte ich, gerade auch, als ich die anderen Beiträge hier gelesen habe, dass mir hier geholfen werden kann. Wo liegen denn die Unterschiede zwischen Java und J#?

Und bitte keinen Streit in diesem Thread über IQ. Das ist nicht das Thema.

Gruß
ein verwirrter Thorsten
 
M

maki

Gast
@ Moderator: Es tut mir wirklich Leid, den Unterschied wusste ich nicht. Unsere Lehrerin redet stets von Java und deshalb dachte ich, gerade auch, als ich die anderen Beiträge hier gelesen habe, dass mir hier geholfen werden kann. Wo liegen denn die Unterschiede zwischen Java und J#?
J# war eine schlechte Kopie von Java, die per Gericht verboten wurde.

zB. gibt es in Java kein [c]System.EventArgs[/c], wenn du fragen zur API hast, kann man dir nicht helfen, könntest genausogut in ein C# Forum gehen und dort deine fragen stellen, dort wärst du auch falsch ;)

Ist nciht böse gemeint, aber wenn du in Visual J proggen musst (bewzeifle ich), sieh dich leiber nochamls um, ansonsten nimm einfach Java und gut ist.
 

Todo89

Mitglied
J# war eine schlechte Kopie von Java, die per Gericht verboten wurde.

zB. gibt es in Java kein [c]System.EventArgs[/c], wenn du fragen zur API hast, kann man dir nicht helfen, könntest genausogut in ein C# Forum gehen und dort deine fragen stellen, dort wärst du auch falsch ;)

Ist nciht böse gemeint, aber wenn du in Visual J proggen musst (bewzeifle ich), sieh dich leiber nochamls um, ansonsten nimm einfach Java und gut ist.

Also sieht die If-Abfrage z.B. bei Java anders aus als bei J#? Na, das ist aber schön. Die Lehrerin wird noch was zu Hören bekommen mit ihren "modernen" Lehrmethoden. Und für sowas gibt man Geld aus.

Trotzdem Danke.
 

Todo89

Mitglied
Nein, die grundlegende Syntax müsste soweit gleich sein

Ich würde halt nur gerne wissen, wie sich die Idee, die richtige Antwort mit der eingegebenen Antwort vom Benutzer zu vergleichen, in Visual J umsetzen lässt. Dann sollte der PC in richtigem Falle die Punktzahl, die man vorher definiert hat, um 1 erhöhen und zu guter Letzt der Punktzahl einen IQ-Wert zuordnen.

Sollte das keiner wissen, ist das in Ordnung, aber das sind ja die ersten Basics gewesen und ich könnte mir gut vorstellen, dass die in Java und J# gleich sind.
 
T

Tomate_Salat

Gast
Code:
private void button1_Click(Object sender, System.EventArgs e)
{
  if (textBox3.get_Text()== "schwimmen")
 { 
       Punkte += 1;
 }
}

so könnte ich mir vorstellen, dass es funktioniert. Wenn der Javaklon aber richtig kopiert hat, sollte es so heisen:

Code:
private void button1_Click(Object sender, System.EventArgs e)
{
  if (textBox3.get_Text().equals("schwimmen"))
 { 
       Punkte += 1;
 }
}

ist allerdings ungetestet. Kannst ja mal schauen, ob das funktioniert....ja und ansonsten, vllt einfach mal anmerken, dass ihr eine tote Sprache. (Wobei ich befürchte, sie wird mit Latein versuchen das rechtzufertigen :D).
 

Todo89

Mitglied
Vielen Dank, Tomate :)

Ich werde gleich morgen schauen, ob es funktioniert. Wo genau muss ich eigentlich die Variablen definieren? Nicht im Bereich des Buttons, oder?

Und ja, ich bin Lateiner, da wirds schwierig mit dem Argumentieren :p

Schönen Abend noch,
Thorsten
 
T

Tomate_Salat

Gast
Ich würde sagen als Klassenattribut. Aber alles rein spekulativ, da ich nie mit J# gearbeitet habe.
 

Todo89

Mitglied
Soweit habe ich jetzt alles getan, ich habe nur noch Probleme damit, der Punktzahl einen IQ-Wert zuzuordnen.

Code:
if (Punkte=9)
{
   MessageBox.Show("IQ:170");
}

Allerdings meckert er bei Punkte rum und meint, dass ein boolean-Wert dastehen müsste -> die Variable Punkte habe ich ja als double eingesetzt. Hat jemand irgendwelche Vorschläge? :p
 

Todo89

Mitglied
Auf meinem Arbeitsblatt wird das als Text herausgeben benutzt. Als zweite Möglichkeit wird

Java:
if ....
{ label5.set_Text("wasauchimmer"); }

angegeben, wobei label5 eben ein Textfeld ist.

Das einzige, was er mir jetzt noch als falsch anzeigt, ist eben diese if-Abfrage mit der Begründung:

if condition must be boolean and not 'double'
 

XHelp

Top Contributor
Aso, mist, habe vergessen, dass es um J# geht. Da könnte alles möglich sein :D
Hast du denn mit
Code:
==
probiert?
 

nrg

Top Contributor
hab ich doch schon oben geschrieben. Vergleiche mit ==. = ist eine Zuweisung

edit: schreib vom iPhone. zweite Seite net gesehn :)
 

nrg

Top Contributor
Java:
      if (Punkte=9) {

als was
Code:
Punkte
deklariert ist, weiß nur der TO und wie JAVA eine Ganzzahl im Code interpretiert, brauch ich dir Superjavapro ja nicht erklären, hm?

edit: wobei nachdem der TO
Code:
Punkte
auch mal erfolgreich mit
Code:
Punkte += 1
inkrementiert hat, sollte der Datentyp auch klar sein...

edit2: bezog sich auf den anoymen Post von iqqq, welche jetzt gelöscht sind. besser ist es :bae:
 
Zuletzt bearbeitet:

Todo89

Mitglied
Ich habe die Variable
Java:
Punkte
als
Java:
private double Punkte
definiert.

Bei
Java:
if (Punkte == 9)
{
MessageBox.Show("IQ:170");
}
zeigt er mir halt die Fehlermeldung an. Ansonsten scheint jedenfalls nichts falsch zu sein.
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Wurde zum Zeitpunkt des vergleichs double initalisiert? schreibe vllt mal:
Java:
private double Punkte=0;
 

Todo89

Mitglied
Ohhhhhhh mein GOTT, es funktioniert :applaus::applaus::toll::toll:

Vielen Dank, Tomate, du bist der Beste :lol:

Wie kann man sowas nur vergessen :)
Werde das Ganze jetzt etwas größer umsetzen, sollte noch was sein, melde ich mich hier.

Gruß
ein glücklicher Thorsten
 

nrg

Top Contributor
wobei ein int besser wäre. zumindest in java kann nicht jedes ergebnis einer gleitzahlrechnung dezimal 100% dargestellt werden. d.h. es könnte mal sowas wie 9.000000001 oder 8.999999999 rauskommen. dann würde
Code:
Punkte == 9
nicht funktionieren.
Lange Rede kurzer Sinn: wenn du etwas hochzählen möchtest nimm einen int
 

Ähnliche Java Themen


Oben