1 Wert in 2 versch. Arrays

Dieses Thema: "1 Wert in 2 versch. Arrays" im Forum "Java/Mono/dotGNU" wurde erstellt von juan_, 07.01.2009.

  1. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo beisammen,

    kann mir jemand sagen, wie ich mit möglichst wenig Aufwand eine Zahl in ein 2dim. Array (bestimmte Position) packe und ein boolsches Array an der Stelle[Zahl] auf true setze?

    ;)

    Bsp:
    Zahl 4 soll an Stelle [2][1] des Arrays und das Booleanarray soll an Position 4 auf true gesetzt werden.


    Steh grad irgendwie ein bisschen aufm Schlauch :S

    danke && ciao
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    öhm ...

    Code:
    zahl = 4;
    foo[2][1] = zahl;
    bar[zahl] = true
    ... oder stehe ich auch auf einem Schlauch?
     
  4. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    jain, theoretisch hast du recht. ich hätte mich vielleicht ein wenig präziser ausdrücken sollen:

    das Ganz wird in versch. Methoden weiterverarbeiten, und daher geht so deine "zentrale" Lösung nicht. Ich würde gerne am Anfang irgendwas definieren und es dann via Methode an die anderen Beiden weiterleiten. Ich will außerdem flexibel bleiben, an welchen Stellen die Zahl im 2dim. Array eingetragen wird.

    ciao
     
  5. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Hm, ich kenne die Architektur deines Programmes nicht, aber lässt es sich eventuell mit einer statischen Klasse (soll als Ableger dienen) oder einer Member-Variable (aus der ganzen Klasse erreichbar) lösen?
     
  6. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    keine Ahnung, haha ;)

    Sorry, sagt mir absolut null, bin noch sehr weit am Anfang. Programm darf ich leider auch nicht posten, weil es ne Belegarbeit ist und ich nicht will, dass ich wegen sonem "Fehler" druchfalle.

    vielleicht kann ich es ein bisschen erklären.

    -math.random zieht eine zahl von 1-16
    -methode überprüft ob die Zahl schon in matrix[][] steht, wenn nein: zahl reinschreiben und booleanarray bei zahl auf true sezten.


    eigentlich ganz simpel. jetzt würde ich es gerne so einrichten, dass ich das Programm mit ein paar Initialwerten füttere, und ihm damit sagen, dass matrix[2][1] mit 4 bereits belegt ist und die 4 Pos. im Booleanarray auf true steht. diese zahl darf somit nicht wieder gezogen werden
     
  7. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Code:
    //foo[x][y]
    //bar[x*y]
    int newRandom = Math.Random(16);
    
    for(int i = 0; i < x; i++)
    {
    	for(int j = 0; j < y; j++)
    	{
    		if(foo[x][y] == newRandom) bar[x*y] = true;
    	}
    }
     
  8. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    verdammt!

    wieder unglücklich ausgedrückt. Alles steht, bis auf die Initialwerteintragung ;)


    //edit: okay, lassen wirs. ist einfach zu dumm, ohne mit dem Programm zu arbeiten...

    Danke dir für deine Mühen
     
  9. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Also, ich hab Zeit. Eventuell ist es auch meine Schuld.

    Also, das was ich die gegeben habe passt, aber es fehlt eine "Initialwerteintragung"? - Meinst du damit, dass du dieses foo[x][y] mit Werten füllst, und bei jeder Eintragung wird der jeweilige Wert quasi durchgestrichen, sodass der Wert immer nur 1 mal vorkommt?
     
  10. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    Ich glaube, dass wir beide ein wenig an einander vorbei arbeiten ;)

    Das was du mir gegeben hast passt nicht, da ich das ganze Prozedere mit den Randomwerten in eigene Funktionen ausgelagert habe.

    im Prinzip muss die Methode so aussehen, dass ich ihr einfach sagen, dass welche Initialwerte ich brauche. im Prinzip evtl. sowas:
    initialisiere(array[2][1] = 4)
    initialisiere(array[3][2] = 6)

    die Initialisierenmethode sieht dann so aus, dass sie erstmal die beiden Werte (4,6) an die jeweiligen Positionen schreibt UND die Positionen 4 und 6 im boolschen Array auf true stellt.


    Mit fällt aber dabei gerade das nächste Problem auf: wie kann ich den beiden Positionen im Array (2,1 und 3,2) sperren, sodass die Felder nicht bearbeitet werden können?!
     
  11. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Hi,

    zwecks des "neuen Problems": prüfe, ob das Array an dieser Position bereits einen Wert enthält.

    Wenn ich dich jetzt richtig verstanden habe:

    Code:
    private static int[,] foo = new int[4, 4];
    private static bool[] bar = new bool[16];
    
    static private bool initialisiere(int x, int y)
    {
        int newRand = new Random().Next(16);
        if (foo[x, y] != -1 || bar[newRand])
        {
            // Array besitzt an dieser Position einen Wert
            // oder
            // Randomzahl wurde bereits genutzt
    
            return false;
        }
        else
        {
            foo[x, y] = newRand;
            bar[newRand] = true;
    
            return true;
        }
    }
    
    static private void erstmaligesFuellen()
    {
        // alles auf -1 setzen um zu zeigen, dass es leer ist
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                foo[i, j] = -1;
            }
        }
    
        bool warNix = false;
        for (int x = 0; x < 4; x++)
        {
            for (int y = 0; y < 4; y++)
            {
                while (warNix == false)
                {
                    warNix = initialisiere(x, y);
                }
                warNix = false;
            }
        }
    }
     
  12. juan_

    juan_ König

    Dabei seit:
    22.01.2004
    Beiträge:
    976
    Zustimmungen:
    0
    Ort:
    Berlin
    danke!
     
Thema:

1 Wert in 2 versch. Arrays

Die Seite wird geladen...

1 Wert in 2 versch. Arrays - Ähnliche Themen

  1. Free Software Foundation bewertet Codehosting-Dienste

    Free Software Foundation bewertet Codehosting-Dienste: Die Free Software Foundation (FSF) hat Bewertungen nach den selbst definierten Richtlinien für mehrere Codehosting-Dienste herausgegeben....
  2. Mit bash Skript bestimmte Werte aus Tabelle lesen

    Mit bash Skript bestimmte Werte aus Tabelle lesen: Hallo! Ich beschäftige mich erst seit Kurzem mit bash und bin deshalb noch nicht so fit darin. Und nun habe ich schon ein kleines Problem und...
  3. Logs von debsecan, tiger, chkrootkit richtig auswerten.

    Logs von debsecan, tiger, chkrootkit richtig auswerten.: Hallo! ich habe debsecan drüber laufen lassen und der zeigt mir einen Haufen an low/medium/high urgency an, mit oder ohne remotly exploitable....
  4. Wertebereich ersetzen mit sed

    Wertebereich ersetzen mit sed: Hallo Forenmitglieder, ich habe ein kleines Problem mit sed und zwar möchte ich in einer Datei mit mehren Spalten und Zeilen das Vorkommen eines...
  5. Kernel-Patch erschwert Rowhammer-Angriff

    Kernel-Patch erschwert Rowhammer-Angriff: Ein Patch wird aller Voraussicht nach in der kommenden Kernel-Version verhindern, dass Anwender den physischen Speicher einer Anwendung erfragen...