Character in Integer

  • Themenstarter Themenstarter Csoft
  • Beginndatum Beginndatum
C

Csoft

Gast
Hallo zusammen,
Sorry wenn ich hier im falschen Forum bin, aber ich wusste nicht wo ichs reinpacken sollte.

Und zwar habe ich folgendes Problem:
Die Aufgabe besteht darin, ein Programm zu schreiben, welches zufällig Zahlen generiert und in eine vorgegebene Variable speichert.
Die Variablen sollen alle in einer Schleife ausgegeben werden. Array's sind leider VERBOTEN!

Mein Ansatz:
Java:
import java.util.*;

public class Char_in_Int {
    public static void main(String[] args) {
        Random rnd = new Random();
        int intervall = 10;

        // Variablen:
        int a = rnd.nextInt(intervall);
        int b = rnd.nextInt(intervall);
        int c = rnd.nextInt(intervall);
        int d = rnd.nextInt(intervall);
        int e = rnd.nextInt(intervall);
        int f = rnd.nextInt(intervall);
        int g = rnd.nextInt(intervall);
        int h = rnd.nextInt(intervall);
        int i = rnd.nextInt(intervall);
        int j = rnd.nextInt(intervall);

        // Ausgabeschleife:
        for (int x=97;x<107;x++)
        {
            System.out.println((char)x+" = ");
        }
    }
}

In der Schleife habe ich die Laufbedingung so gesetzt, dass das X den entsprechenden ASCII-Wert des jeweiligen Buchstaben hat und somit alle Buchstaben untereinander (mit einem Gleichheitszeichen dahinter) ausgegeben werden.

Jetzt kommt meine Frage:
Wie baue ich es jetzt ein, das hinter dem Gleichheitszeichen der jeweilige Wert der Variable steht ?


Ich hoffe man konnte mich verstehen, aber ich mache noch nicht so lange JAVA.
Vielleicht kann mir ja der ein oder andere einen Tipp geben...

Lg Csoft
 
Der Idee mit der Schleife ist doch schon mal gut. Aber lass die Variablen a-j am besten ganz weg. Stattdessen nummerierst die Ausgaben durch, dann brauchst Du auch kein so komisches x in der Schleife.

Java:
        for (int i=1; i<11;i++)
        {
            System.out.println("Zufallszahl "+i+" = "+rnd.nextInt(intervall));
        }
 
Ich glaube worauf du hinaus willst ist, hier den Varibalennamen dynamisch einzufügen, sprich der Buchstabe in x soll den Variablennamen angeben. Das funktioniert meines Wissens in Java nicht, Variablenname müssen immer beim Compilieren schon festgelegt sein, und können nicht aus einer Variable ausgelesen werden. Sinnvoller wäre es daher sich die Variablen zu sparen und direkt in der Schleife die Zufallszahlen zu erzeugen.
 
Der Idee mit der Schleife ist doch schon mal gut. Aber lass die Variablen a-j am besten ganz weg. Stattdessen nummerierst die Ausgaben durch, dann brauchst Du auch kein so komisches x in der Schleife.

Java:
        for (int i=1; i<11;i++)
        {
            System.out.println("Zufallszahl "+i+" = "+rnd.nextInt(intervall));
        }

Ja das hatte ich so oder so ähnlich auch schon vor, das Problem liegt allerdings darin, das nachher mit den Zahlen noch gerechnet werden muss und so geht das ja nicht oder...?

@eRaaaa: Ich habe leider keine "komplette" Aufgabenstellung dazu, es wurde uns nur mündlich und auch wenig genau gesagt. Aber eigenlich müsste daraus doch alles klar werden?!
Zumindest bei mir 🙂
 
Nun, wenn Du die Werte noch brauchst, kein Array verwenden darfst und die ausgeben willst, dann musst Du das wohl oder übel für jede Variable einzeln schreiben. Also 10 Zeilen mit System.out.println().

Weiss nicht ob Ihr schon soweit seid:
Dann wäre es aber sinnvoller die Variablen als Membervariablen zu schreiben, diese in einem Konstruktor zu erzeugen, eine Ausgabemethode zu schreiben, eine getter methode für jede Variable zu schreiben und in der main ein Objekt der Klasse zu erzeugen.
 
Zuletzt bearbeitet:
naja, es ginge irgendwie mit switch evtl:
Java:
public class Char_in_Int {

    static Random rnd = new Random();
    final static int intervall = 10;
    static int a = rnd.nextInt(intervall);
    static int b = rnd.nextInt(intervall);
    static int c = rnd.nextInt(intervall);
    static int d = rnd.nextInt(intervall);
    static int e = rnd.nextInt(intervall);
    static int f = rnd.nextInt(intervall);
    static int g = rnd.nextInt(intervall);
    static int h = rnd.nextInt(intervall);
    static int i = rnd.nextInt(intervall);
    static int j = rnd.nextInt(intervall);

    public static void main(String[] args) {
	for (int x = 97; x < 107; x++) {
	    System.out.println((char) x + " = " + var((char) x));
	}
    }

    private static int var(char x) {
	switch (x) {
	case 'a':
	    return a;
	case 'b':
	    return b;
	    // usw.
	default:
	    return -1;
	}
    }

}

aber naja ... :bae:
 
Nun, wenn Du die Werte noch brauchst, kein Array verwenden darfst und die ausgeben willst, dann musst Du das wohl oder übel für jede Variable einzeln schreiben. Also 10 Zeilen mit System.out.println().

Weiss nicht ob Ihr schon soweit seid:
Dann wäre es aber sinnvoller die Variablen als Membervariablen zu schreiben, diese in einem Konstruktor zu erzeugen, eine Ausgabemethode zu schreiben, eine getter methode für jede Variable zu schreiben und in der main ein Objekt der Klasse zu erzeugen.

Wobei das ja auch nur eine Art Simulation eines Arrays mit einer eigenen Klasse wäre. Irgendwie scheint es mir, dass doch die Aufgabenstellung so wie hier beschrieben nicht ganz vollständig ist.
 
Es ist jedenfalls nicht möglich einen Variablennamen dynamisch zu halten und dann das eine oder das andere zu verwenden, das geht nicht.

Das ist so nicht ganz korrekt ^^ wenn die variablen membervariablen sind kannst du sie sehr wohl auch in einer schleife durchgehen ohne deren namen zu kennen.

Reflections - Field

allerdings ist das "relativ" langsam und ich denke nicht das der, der die angabe gestellt hat das auch so gemeint hat. also mehr oder weniger hier nur der vollständigkeit halber.

LG Hemeroc
 
Die Aufgabe besteht darin, ein Programm zu schreiben, welches zufällig Zahlen generiert und in eine vorgegebene Variable speichert.
Die Variablen sollen alle in einer Schleife ausgegeben werden. Array's sind leider VERBOTEN!
Wenn man schon so seltsame Vorgaben bekommt, sollte man auch seltsame Lösungen liefern 😛
Java:
public static void main( String[] args ) {
	Random rnd = new Random();
	int var = 10; // eine variable
	for( int i = 0; i < var; ++i ) { // eine schleife
		var = rnd.nextInt( var );
		System.out.println( var ); // ausgabe einiger zahlen 
	}
	var += 1; // variable wiederverwendet
	// programm sinnlos, aufgabe erfüllt
}
 

Neue Themen


Zurück
Oben