Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-10-2004, 15:16   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
Question kleinste Variable ermitteln

Hallo,

wie kann ich auf unkomplizierte Art & Weise die kleinste von 6 verschiedenen Variablen ermitteln ohne eine Mega-if-Abrage zu bauen?

Habe schon Mehrfach-Abfragen mit "&&" in der IF-Anweisung:
if (variable_1 < variable_2 && variable_1 < variable_3 && variable_1 < variable_4 && variable_1 < variable_5 && variable_1 < variable_6){

...und das dann mal 6 für Jede.

Aber irgendwie wird dabei nicht die kleinste der sechs herausgefiltert.

MfG
MacTobi
mactobi ist offline   Mit Zitat antworten
Alt 11-10-2004, 15:20   #2 (permalink)
a.k.a maddin79
 
Benutzerbild von madflanderz
 
Registriert seit: Jul 2003
Ort: berlin f-hain
Beiträge: 1.693
sowas macht man mit ner for schleife. du fängst von vorne an und gehst alle zahlen durch. du startest mit max = 1000000 und testest ob die zahl < max, falls ja setzt du max=zahl. nun machst du das mit allen zahlen und am ende steht in max der kleinste wert.

versuch erstmal selbst auf den code zu kommen :-)
__________________
www.madflanderz.de

ø,¸¸,ø¤º°`°º¤ø,¸¸,ø¤º°` _ addicted to bass _ `°º¤ø,¸¸,ø¤º°`°º¤ø,¸¸,ø
madflanderz ist offline   Mit Zitat antworten
Alt 11-10-2004, 15:41   #3 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Moin,
ich hatte vor längerer Zeit mal ein ähnliches Problem und habe jetzt hier mal meine Lösung noch ein wenig verbessert:

ActionScript:
  1. function maxNr(nr1, nr2) {
  2.     return nr2-nr1;
  3. }
  4. function minNr(nr1, nr2) {
  5.     return nr1-nr2;
  6. }
  7. Array.prototype.sortBy = function(sw) {
  8.     this.sort(sw);
  9.     return this[0];
  10. };
  11. //
  12. einArray = [7, 10, 2, 78, 150, 42];
  13. trace("kleinste Nummer: "+einArray.sortBy(minNr));
  14. trace("grösste Nummer: "+einArray.sortBy(maxNr));
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 11-10-2004, 15:46   #4 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
Question

...habe halt noch nie eine for-Schleife gebaut. Deshalb brauch ich hier einen Lösungsansatz:

for (?; ?; ?) {

MfG
MacTobi
mactobi ist offline   Mit Zitat antworten
Alt 11-10-2004, 15:59   #5 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
verwend' doch einfach meine Funktion.
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 11-10-2004, 16:05   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
Arrow

An querkopf...
habe 7, 10, 2, 78, 150, 42 durch die Variablen ersetzt, aber ich bekomme statt der kleinsten gar nichts und die Größte ist auch nicht Größte.
Was habe ich falsch gemacht oder was hab ich vergessen?

function maxNr(nr1, nr2) {
****return nr2-nr1;
}
function minNr(nr1, nr2) {
****return nr1-nr2;
}
Array.prototype.sortBy = function(sw) {
****this.sort(sw);
****return this[0];
};
//
einArray = [Variable_1, Variable_2, Variable_3, Variable_4, Variable_5, Variable_6];
trace("kleinste Nummer: "+einArray.sortBy(minNr));
trace("grösste Nummer: "+einArray.sortBy(maxNr));

MfG
MacTobi
mactobi ist offline   Mit Zitat antworten
Alt 11-10-2004, 16:11   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
Sorry Querkopf,

habe mich bei der Variablen-Bezeichnung vertippt.

Funktioniert einwandfrei.

Vielen Dank
mactobi ist offline   Mit Zitat antworten
Alt 11-10-2004, 16:23   #8 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
bitte, bitte
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 11-10-2004, 16:47   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
An Querkopf,

besteht die Möglichkeit die zugehörige Variable (Namen) mit in der Funktion auszugeben?

MfG
MacTobi
mactobi ist offline   Mit Zitat antworten
Alt 12-10-2004, 08:59   #10 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
nicht mit der Funktion. Dazu ist sie ja auch nicht gedacht... aber mal gucken was man da so machen kann....
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 12-10-2004, 09:30   #11 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
so. ist jetzt nicht mehr so super dynamisch, aber wer eine bessere Lösung hat... bin offen für konstruktive Kritik

ActionScript:
  1. function maxNr(nr1, nr2) {
  2.     return nr2[0]-nr1[0];
  3. }
  4. function minNr(nr1, nr2) {
  5.     return nr1[0]-nr2[0];
  6. }
  7. Array.prototype.sortBy = function(sw) {
  8.     this.sort(sw);
  9.     return [this[0][0],this[0][1]];
  10. };
  11. //
  12. var variable_1 = 7;
  13. var variable_2 = 10;
  14. var variable_3 = 2;
  15. var variable_4 = 78;
  16. var variable_5 = 150;
  17. var variable_6 = 42;
  18. //
  19. var anzVars = 6;
  20. var einArray = new Array();
  21. for (var i = 1; i<=anzVars; i++) {
  22.     var tempAr = new Array();
  23.     tempAr = [this["variable_"+i], "variable_"+i];
  24.     einArray.push(tempAr);
  25. }
  26. //
  27. trace("kleinste Nummer: "+einArray.sortBy(minNr)[0]+" - kleinster VarName: "+einArray.sortBy(minNr)[1]);
  28. trace("grösste Nummer: "+einArray.sortBy(maxNr)[0]+" - grösster VarName: "+einArray.sortBy(maxNr)[1]);

btw mactobi, beschäftige Dich ein wenig mit Arrays und lies mal alle hier verwendeten Funktionen (werden im Editor farblich hervorgehoben) in der Flashhilfe nach, damit Du nachvollziehen kannst, was ich da eigentlich mache...

Bis dann,
-querkopf-
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 12-10-2004, 10:14   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Hier noch eine simple Lösung:

PHP-Code:
var 0;
var 
10000000;
var 
anzahl_varis 10;
v0 5;
v1 25;
v2 15548;
v3 12;
v4 1;
v5 8;
v6 19;
v7 5912;
v8 45;
v9 85;
____________________________________________________
for (var 0anzahl_varisi++)
{
    if (eval (
"v" i) > g)
    {
        
= eval ("v" i);
        
g_n "v" i;
    }
    if (eval (
"v" i) < k)
    {
        
= eval ("v" i);
        
k_n "v" i;
    }
}
______________________________________________________
trace 
("groß : " " name: " g_n);
trace ("klein : " " name: " k_n); 
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 12-10-2004, 12:59   #13 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
da finde ich meine aber schöner....

__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 12-10-2004, 13:08   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: gotha
Beiträge: 15
Super! Funzt einwandfrei.

Vielen Dank nochmal für die schnelle und professionelle Hilfe.

MfG
MacTobi
mactobi 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 18:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele