Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-08-2003, 10:54   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 51
Probleme mit Matzrizen...

ich will eine vigenere verschlüsselung basteln!

dazu brauch ich eine matrix, die in der ersten zeile an alphabet von b bis a hat (b,c,d,....x,y,z,a), und in den folgenden 25zeilen ein alphabet, das immer um EIN zeichen nach rechts verschoben ist!

mein ansatzt sieht folgendermaßen aus:

[i]

alphabet = new array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

valphabet = new array();
quadrat = new array();


function versch(verschiebung) {
for (i=0; i<=25; i++) {
stelle = i+verschiebung+1;
if (stelle>25) {
stelle = stelle-26;
}
valphabet = alphabet[stelle];
}
// trace(valphabet.toString());
return valphabet;
}



// auslesen
for (k=0; k<=25; k++)
{
quadrat[k] = versch(k);
trace(quadrat.toString());
}


die einzelnen "verschobenen" alphabete werden mir korrekt erzeugt! wenn ich aber jedes einzelne in das "quadrat"-array einsetzten will, kommt entweder garnix dabei raus, oder ich habe im quadrat 26 array´s vom "normalen"(a,b,c,d..) alphabet!


ich hab auch schon:
quadrat[k]=[versch(k)] ausprobiert
oder weiter oben dann: quadrat[k][i]=alphabet[stelle]


aber nix funktioniert!

kann mir da jemand helfen?
Hugepanic ist offline   Mit Zitat antworten
Alt 16-08-2003, 11:14   #2 (permalink)
Hot's no frogn gebn?!
 
Benutzerbild von Joemoe
 
Registriert seit: Oct 2002
Ort: Vlbg, ÖR
Beiträge: 186
Hallo Dein Code

ActionScript:
  1. alphabet = new array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
  2. valphabet = new array();
  3. quadrat = new array();
  4. function versch(verschiebung) {
  5.     for ( var i=0; i<=25; i++) {
  6.         stelle = i+verschiebung+1;
  7.         if (stelle>25) {
  8.             stelle = stelle-26;
  9.         }
  10.         valphabet[i] = alphabet[stelle];
  11.     }
  12.     // trace(valphabet.toString());
  13.     return valphabet;
  14. }
  15. // auslesen
  16. for (k=0; k<=25; k++) {
  17.     quadrat[k] = versch(k);
  18.     trace(quadrat[ k ].toString()); // Hab hier lediglich das [ k ] dazu getan.
  19. }


gibt genau das aus, sollte doch passen?

ActionScript:
  1. b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a
  2. c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b
  3. d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c
  4. e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d
  5. f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e
  6. g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f
  7. h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g
  8. i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h
  9. j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i
  10. k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j
  11. l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k
  12. m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l
  13. n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m
  14. o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n
  15. p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o
  16. q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p
  17. r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q
  18. s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r
  19. t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s
  20. u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t
  21. v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u
  22. w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v
  23. x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w
  24. y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x
  25. z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y
  26. a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
__________________
www.morgenstille.at
www.treemotion.at
Joemoe ist offline   Mit Zitat antworten
Alt 16-08-2003, 12:25   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 51
warum hast du das "var" in die if schleife geschrieben???

das kam nicht von mir...............


?????????

was bedeutet das??


und noch ne frage!

wenn ich am ende

trace(quadrat[0][0]);

mache, sollte ja ein "b" erscheinen!! das tut´s aber nicht!!

sondern ein "a"!!! und das darf nicht sein!!! oberes linkes zeichen in der matrix MUSS ein "b" sein!!


ich blick langsam nimma druch!

laut dem oberen trace sieht´s das array ok aus!
aber eben doch wieder nicht!
Hugepanic ist offline   Mit Zitat antworten
Alt 16-08-2003, 13:15   #4 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
du übersiehst das in quadrat immer nur die aktuelle zeile gespeichert wird (mit jedem durchlauf wird sie überschrieben)... und somit hast am ende auch die letzte zeile in der var und somit sprichtst du mit quadrat[0][0] nach der for schleife auch die letzte line an.... und dort ist der erste wert ein "a"
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (16-08-2003 um 13:16 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 16-08-2003, 14:06   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Mit den Array-Methoden ginge es auch etwas kürzer:

ActionScript:
  1. alphabet = new array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
  2. "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
  3. "w", "x", "y", "z");
  4. quadrat = new array();
  5.  
  6. for (k = 1; k <= 26; k++) {
  7.     quadrat.push( alphabet.slice( k).concat(alphabet.slice(0, k)));
  8. }
  9.  
  10. trace(quadrat.join(newline))

mfg r
bokel ist offline   Mit Zitat antworten
Alt 16-08-2003, 14:17   #6 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi zusammen
ist es überhaupt nötig das alles über ein arrayquadrat zu bauen.
ActionScript:
  1. function get_code(verschiebung,buchstabe){
  2.         var temp=97+verschiebung
  3.         var wert=temp+buchstabe>122 ? temp+buchstabe-26 : temp+buchstabe
  4.         var code=(String.fromCharCode(wert))
  5.         return code
  6. }
  7. //verschiebung 0-25    buchstabe  0-25
  8. trace(get_code(25,24))
  9.  
  10. //verschiebung = 0   normales alph.
  11. //verschiebung = 1   dann  b,c,d,............a   buchst. 0-25
  12. //verschiebung = 2   dann  c,d,e,..........a,b   buchst. 0-25
  13. //verschiebung = 3   .............
  14. //verschiebung = 25  dann  z,a,b...........x,y
  15.  
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 16-08-2003, 16:30   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 51
Zitat:
Geschrieben von Scrawer
du übersiehst das in quadrat immer nur die aktuelle zeile gespeichert wird (mit jedem durchlauf wird sie überschrieben)... und somit hast am ende auch die letzte zeile in der var und somit sprichtst du mit quadrat[0][0] nach der for schleife auch die letzte line an.... und dort ist der erste wert ein "a"

warum ist in quadrat immer nur die letzte zeile gespeichert???

was ich will ist eine matrizze!

also sowas: quadrat = [["b","c",..."z","a"],["c","d","e",..."z","a","b"]............["a","b",........["z"]]

nur will ich das wegen 26zeilen und 26buchstaben nicht von hand machen müssen!

ziel der sache ist halt das ich zum beispiel bei x = quadrat[0][0] dann "b" rauskriege!


@hay@bokel
sicher kann ich mir jedesmal mein alphabet neu zusammenbauen! so läuft auch das jetzige programm! aber ich WILL halt eine matrix erstellen! (brauch das später eh)


trotzdem danke schonmal!

ich hoffe ihr wisst jetzt was ich will!
Hugepanic ist offline   Mit Zitat antworten
Alt 16-08-2003, 17:18   #8 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
Zitat:
Geschrieben von Hugepanic
warum ist in quadrat immer nur die letzte zeile gespeichert???
was ich will ist eine matrizze!
was du willst ist ein sache was du machst eine andere
das anlegen von: quadrat = new array();

muss in die function "versch()" rein.... dann wird dein wille schon eher umgesetzt
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 16-08-2003, 17:23   #9 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
naja also ein alphabet baue ich keines.
und ob ich die werte jetzt so
quadrat[0][0]
oder so hole
get_code(1,0)
müste ja egal sein
ansonsten wie @Scrawer meint
"was du willst ist ein sache was du machst eine andere"
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 16-08-2003, 17:47   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
@hugepanic

Ich glaube ich bin in der Matrix
Hast du dir das Ergebnis des Scripts mal angeschaut ?
Die Matrix steckt in quadrat. Ein trace auf quadrat[0][0]
sollte b ergeben.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 16-08-2003, 17:48   #11 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
wer?
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 17-08-2003, 00:37   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 51
wenn ich das kriegen würde, was ich wollte, würde ich hier nicht reinschreiben!!

also nochmal!
hier mein aktueller code
--------------------------------------------------------

for (k=0; k<=25; k++) {
for (i=0; i<=25; i++) {
stelle = i+k+1;
if (stelle>25) {
stelle = stelle-26;
}
valphabet = alphabet[stelle];
quadrat[k] = alphabet[stelle];
}

}
for (i=0; i<=25; i++) {
trace(quadrat).toString();
}



und das kommt dabei raus!!!
------------------------------------------------------------

a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y, z
....
..
.
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y, z

------------------------------------------------------------



wo ist denn da jetzt der fehler?????
kann es sein, das quadrat richtig belegt ist, aber ich mir nur das falsche "tracen" lasse???




P.S.:so SOLLTE es aussehen

b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, a
c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a, b
d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,c, d
....
..
.
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y, z



P.P.S.: oh wie ich es hasse.........

Geändert von Hugepanic (17-08-2003 um 00:39 Uhr)
Hugepanic ist offline   Mit Zitat antworten
Alt 17-08-2003, 01:04   #13 (permalink)
Hot's no frogn gebn?!
 
Benutzerbild von Joemoe
 
Registriert seit: Oct 2002
Ort: Vlbg, ÖR
Beiträge: 186
Die Lösung des Problems :

ActionScript:
  1. alphabet = new array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");
  2. valphabet = new array();
  3. quadrat = new array();
  4. function versch(verschiebung) {
  5.         for ( var i=0; i<=25; i++) {
  6.                 stelle = i+verschiebung+1;
  7.                 if (stelle>25) {
  8.                         stelle = stelle-26;
  9.                 }
  10.                 valphabet[i] = alphabet[stelle];
  11.         }
  12.         // trace(valphabet.toString());
  13.         return valphabet;
  14. }
  15. // auslesen
  16. for ( var k=0; k<=25; k++) {
  17.         quadrat[k] = versch(k).concat( ); // concat MUSS verwendet werden
  18. }


Bei einer Zuweisung mit Datentypen höherer Ordnung (weiß auch nicht wie sie heißt), speichert flash immer nur einen Zeiger und das ist der auf valphabet, da das am ende a,b,c... ist hatten in den bisherigen versionen alle elemente in quadrat den wert von valphabet und der war am schluss eben a,...

In der Version kopiere ich den inhalt des jeweiligen valphabet in quadrat[ k ] mit concat();
Jetzt MUSS es funktionieren.

Weiß auch nicht wieso ich so lange auf der LEitung gestanden bin .

Sorre, hoffe es geht.

Gruß Joemoe
__________________
www.morgenstille.at
www.treemotion.at
Joemoe ist offline   Mit Zitat antworten
Alt 17-08-2003, 08:54   #14 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
concat oder du legst in der function versch das array valphabet immer aufs neue an... dann übergibt er keinen zeiger....
wie ich schon oben sagte....

denn im moment wird das array nur einmal ausserhalb der function erzeugt.. daher wird immer mit einem zeiger gearbeitet.....
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)

Geändert von Scrawer (17-08-2003 um 08:55 Uhr)
Scrawer ist offline   Mit Zitat antworten
Alt 17-08-2003, 10:08   #15 (permalink)
Hot's no frogn gebn?!
 
Benutzerbild von Joemoe
 
Registriert seit: Oct 2002
Ort: Vlbg, ÖR
Beiträge: 186
sorry scrawer, hab deine beiträge zu wenig genau gelesen
__________________
www.morgenstille.at
www.treemotion.at
Joemoe ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele