Announcement

Collapse
No announcement yet.

Doppelwürfel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Die Erzeugung eines zweiten Mappings würde auch keinen Sinn machen, wenn man drüber nachdenkt. Was sollte dann die Methode get('a') zurückliefern, wenn 'a' zwei mal als key vorhanden ist.
    Öhhh, in so gaaaaanz uralten Sprachen wie C/C++ ist das Feature vorhanden. Nennt sich dann MultiMap

    http://www.sgi.com/tech/stl/Multimap.html

    Gibt natürlich dann ensprechende Zugriffmethoden....
    Christian

    Comment


    • #17
      Originally posted by Christian Marquardt View Post
      Öhhh, in so gaaaaanz uralten Sprachen wie C/C++ ist das Feature vorhanden. Nennt sich dann MultiMap
      Alter Klugscheißer! ;-) Ja, gibts in Java natürlich auch, aber das Map-Interface macht das eben nicht.
      http://www.winfonet.eu

      Comment


      • #18
        Hallo, aber ich versteh es einfach nicht, wenn ich mein Programm ausführe, dann schreibt er mir einen Kaudawelsch aus Zahlen und dazwischen die Buchstaben.

        Code:
        public void ZahlenLosung(){
        			Map<Character, Integer> zahlenZuordnung = new HashMap<Character, Integer>();
        					zahlenZuordnung.put('a', 1);
        					zahlenZuordnung.put('b', 2);
        					zahlenZuordnung.put('c', 3);
        					zahlenZuordnung.put('d', 4);
        					zahlenZuordnung.put('e', 5);
        					zahlenZuordnung.put('f', 6);
        					zahlenZuordnung.put('g', 7);
        					zahlenZuordnung.put('h', 8);
        					zahlenZuordnung.put('i', 9);
        					zahlenZuordnung.put('k', 10);
        					zahlenZuordnung.put('k', 11);
        					zahlenZuordnung.put('l', 12);
        					zahlenZuordnung.put('m', 13);
        					zahlenZuordnung.put('n', 14);
        					zahlenZuordnung.put('o', 15);
        					zahlenZuordnung.put('p', 16);
        					zahlenZuordnung.put('q', 17);
        					zahlenZuordnung.put('r', 18);
        					zahlenZuordnung.put('s', 19);
        					zahlenZuordnung.put('t', 20);
        					zahlenZuordnung.put('u', 21);
        					zahlenZuordnung.put('v', 22);
        					zahlenZuordnung.put('w', 23);
        					zahlenZuordnung.put('x', 24);
        					zahlenZuordnung.put('y', 25);
        					zahlenZuordnung.put('z', 26);
        			
        			String losungsword="ZumKodieren";
        			char[] losung = losungsword.toLowerCase().toCharArray();
        			Arrays.sort(losung);
        			
        			for(int x=0 ; x<losung.length ; x++){
        				for(int y=0 ; y<losung.length ; y++){
        					if(losung[x]<losung[y]){
        						char temp = losung[x];
        						losung[x] = losung [y];
        						losung[y] = temp;
        					}
        					
        					
        					for (final char c : losung) {
        						  final int zahl = zahlenZuordnung.get(c);
        						  System.out.print(zahl);
        						  zahlenZuordnung.put(c, zahl +1);
        						}
        					
        				}
        			}
        	    
        		 }
        Könnt ihr mir meinen Fehler hier erklären?
        Gruß Melani

        Comment


        • #19
          Was sollen die Scheifen tun?
          Problembeschreibung?

          Ist das gewünscht?

          Code:
              String losungsword="ZumKodieren";
              char[] losung=losungsword.toLowerCase().toCharArray();
              Arrays.sort(losung);
              System.out.println(losung);
              for(int i=0;i<losung.length;i++)
                  {
                  System.out.print(zahlenZuordnung.get(losung[i])+" ");
                  if(zahlenZuordnung.containsKey(losung[i]))
                      {
                      zahlenZuordnung.put(losung[i],zahlenZuordnung.get(losung[i])+1);
                      }
                  }
          Zuletzt editiert von Christian Marquardt; 14.05.2010, 15:54. Reason: §$%§%§54 Codeformatierung
          Christian

          Comment


          • #20
            Sortieren musste nicht mehr von Hand

            Hallo melani,
            den Teil deiner Schleifen, der die Sortierung des Char-Arrays übernimmt, kannst Du ersatzlos streichen. Das wird durch
            Code:
            Arrays.sort(losung);
            gemacht. Außerdem hast Du bei der Initialisierung der Map einen Tipp-Fehler
            Code:
            zahlenZuordnung.put('k', 10);
            zahlenZuordnung.put('k', 11);
            'k' ist zwei mal vorhanden und 'j' fehlt.
            http://www.winfonet.eu

            Comment


            • #21
              Danke für deine Antwort!
              Aber mein Problem sieht wie folgt aus:

              Das was ihr mir gesagt habt, hab ich getan, es kommt dabei das raus:
              Code:
              aacdhlrswwz
              1 2 3 4 8 12 18 19 23 24 26
              Brauchen tue ich aber dies, wenn ich mich net irre (nach der Anforderung):

              Code:
              aacdhlrswwz
              1 2 3 4 5 6 7 8 9 10 11
              Sonst könnte doch ein Problem auftreten, falls zum Beispiel ein Losungswort wie: aabchiz kommt oder?
              Falls ich mich irre, tut es mir leid!
              Gruß Melani

              Edit: Danke ngomo, werd ich ändern!

              Comment


              • #22
                Bezweifle, dass das stimmt. Nach der Logik baucht man kein Wort. Die Reihenfolge wird durch das Wort und sich daraus ergebenden Reihenfoldew festgelegt
                Zuletzt editiert von Christian Marquardt; 14.05.2010, 18:05.
                Christian

                Comment


                • #23
                  Habe mal nur das encodieren umgesetzt:

                  Bild1.jpg

                  Schicke das Projekt gerne zu....

                  Doppelwuerfel.zip
                  Zuletzt editiert von Christian Marquardt; 14.11.2015, 20:59.
                  Christian

                  Comment


                  • #24
                    Erst mal wollte ich mich bei euch bedanken. Ihr habt mir sehr geholfen, mit dem was ihr mir hier gepostet habt.
                    Ich habe aber noch ein Problem mit meinem Programm und zwar die Permutation.
                    Muss ich die Permutation in die Methode der Interface rein machen? Wenn ja, wie kann ich einen String (den Klartext) in einen Array umwandeln, den dank Google hab ich eine Permutation gefunden, kann sie bei mir aber nicht anwenden.

                    Code:
                    static void permutiere(String[] a, int[] p) {
                    		String[] aSave = new String[a.length];
                    		for (int i = 0; i < a.length; i++) {
                    			aSave[i] = a[i];
                    		}
                    		for (int i = 0; i < p.length; i++) {
                    			a[i] = aSave[p[i]];
                    		}
                    	}
                    Könnt ihr mir sagen ob es das richtige ist oder ob ich grad falsch liege?
                    Mein Problem ist nämlich, ich kriege nur einen String rein und kein Array.
                    Gruß Melani

                    Comment


                    • #25
                      Muss ich die Permutation in die Methode der Interface rein machen?
                      Den Satz verstehe ich nicht.

                      Wenn ja, wie kann ich einen String (den Klartext) in einen Array umwandeln
                      Hatten wir schon

                      char[]t=eingabe.toLowerCase().toCharArray();

                      Des Weiteren ist die Aufgabe nicht so kompliziert wie wir hier bisher gedacht haben.

                      Das Lösungswort ist in Kleinbuchstaben zu wandeln
                      Die Kleinbuchstaben sind zu sortieren
                      Nach der Sortierung sind sie einfach durchzunummerieren
                      Mehr nicht. Es ist keine Zuordung von gesamten Alphabet o.a. notwendig
                      Das durchnummeriete Feld wird nach der Reihenfolge der unsortierten Buchstaben ausgegeben.

                      Schicke dir den Code -> schau rein
                      Christian

                      Comment


                      • #26
                        Kannst du mir hier meinen Fehler erklären? (Auf den Fotos)

                        Zum Interface: In der Aufgabestellung ist ja ein Interface vorgegenben:
                        Code:
                        public interface Interface {
                        	
                        	interface Codec{
                        		public String kodiere(String klartext);
                        		public String dekodiere(String geheimtext);
                        		public String gibLosung();
                        		public void setzeLosung(String schlüssel);
                        		//throws IllegalArgumentException bei ungeignetem Schlüssel!
                        		}
                        Soll ich das kodieren ( Permutaion) auch in der Methode wie in dem Bild rein tun? Oder lieber eine eigene Methode?
                        Gruß Melani
                        Attached Files

                        Comment


                        • #27
                          Könnt ihr mir vieleicht sagen, wie man den klartext, den ich eingebe als String in einen Array umwandeln?
                          Code:
                          	public String kodiere(String klartext){
                          				String[] aSave = new String[klartext.length()];
                          				for (int i = 0; i < klartext.length(); i++) {
                          					aSave[i] = klartext[i];
                          				}
                          				for (int i = 0; i < Zahlen.length; i++) {
                          					klartext[i] = aSave[Zahlen[i]];
                          				}
                          
                          			
                          			return klartext;
                          			// TODO Auto-generated method stub
                          	}
                          Gruß Melani

                          Comment


                          • #28
                            char[] klartext=klartext.toCharArray();
                            Christian

                            Comment


                            • #29
                              Danke für die schnelle Antwort!
                              Gruß Melani

                              Comment


                              • #30
                                Ich möchte mich auch bedanken

                                Comment

                                Working...
                                X