1. #1
    tinbie's Avatar
    Registered
    16/12/04
    Location
    Patershol
    Posts
    7,542
    iTrader
    217 (95%)
    Mentioned
    2 Post(s)
    Reputation
    0/5

    Flash: help bij bepalen van grootste getal

    ik lees een array in van 10 getallen

    getallen = new array(10)

    allemaal gedaan

    nu moet ik daar het grootste ingelezen getal van hebben
    en het kleinste


    en dan ook nog een vraagje hoe je daar het kwadraat van berekent

    getal*getal of is er daar een specifieke code voor ?
    Last edited by tinbie; 30-03-2005 at 17:44.
    no votes  

  2. #2
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    of the top of my head

    Code:
    var getallen:Array= new Array();
    
    function fillArray(){
    	for (var i = 0; i < 10; i++) {
    		getallen[i] = Math.round(Math.random()*100);
    	}
    	getHighest();
    }
    
    function getHighest(){
    	var highestNum:Number = 0;
    	for(i=0;i<getallen.length;i++){
    	 if(getallen[i]>highestNum)
    	 	highestNum = getallen[i];
    	}
    	trace("hoogste nummer = " + highestNum);
    	trace("kwadraat = " + highestNum*highestNum);
    }
    
    fillArray();
    Last edited by Bigbuddha; 30-03-2005 at 18:25.
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  3. #3
    Squall-sX-'s Avatar
    Registered
    09/11/02
    Location
    Sint-Truiden
    Posts
    468
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Gewoon twee variabelen aanmaken, en het eerste getal van de array hierin opslaan. Dan doorloop je de array, en als het getal kleiner is dan dat in de kleinste variabele, dan overschrijf je deze, en als het getal groter is dan de grote variabele, dan overschrijf je de die. Op het einde heb je dan twee variabelen met het grootste en het kleinste getal. Het kwadraat is altijd getal maal getal. Waarom zou je daar nog een apparte functie voor willen gebruiken?
    no votes  

  4. #4
    tinbie's Avatar
    Registered
    16/12/04
    Location
    Patershol
    Posts
    7,542
    iTrader
    217 (95%)
    Mentioned
    2 Post(s)
    Reputation
    0/5
    ik heb het dus gedaan zoals BigBuddha Squall-Sx- zeiden
    maar het probleem is dat hij geen getal weergeeft ook niet NaN ofzo
    totaal nix

    function grootsteEnkleinste() {
    for (i=0; i<=Getallen.length; i++) {
    if (Getallen[i]<iKleinste) {
    iKleinste = Getallen[i];
    } else if (Getallen[i]>iGrootste) {
    iGrootste = Getallen[i];
    }
    }
    }
    no votes  

  5. #5
    GLX's Avatar
    Registered
    15/01/05
    Posts
    115
    iTrader
    0
    Mentioned
    0 Post(s)
    als wat heb je iKleinste geïnitialiseerd?
    doe voor alle veiligheid voor het opreoepen van grootsteEnKleinste()
    iKleinste =0;

    -> post eens gans je code

    kwadraat:
    Math.sqr(getal) //dat dacht ik toch
    WYSIWYG
    no votes  

  6. #6
    Kn0t's Avatar
    Registered
    17/07/02
    Location
    #sskclan
    Posts
    336
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Als je iKleinste op 0 initialiseert zal het ook niet werken hé, tenzij der negatieve getallen in de array zitten
    En vermits die variabele wss automatisch op 0 wordt geïnitialiseerd zal je probleem daar misschien aan liggen?
    best iGrootste en iKleinste initialiseren op Getallen[0]
    no votes  

  7. #7
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    Op voorzet van Kn0t

    Code:
    function grootsteEnkleinste() {
    	var iGrootste:Number = Getallen[0];
    	var iKleinste:Number = Getallen[0];
    	for (i=0; i<=Getallen.length; i++) {
    		if (Getallen[i]<iKleinste) {
    			iKleinste = Getallen[i];
    		}
    		if (Getallen[i]>iGrootste) {
    			iGrootste = Getallen[i];
    		}
    	}
    	trace("hoogste nummer = "+iGrootste);
    	trace("kleinste nummer = "+iKleinste);
    }
    Zien dat je je iGrootste, iKleinste initialiseert.
    kleinste niet op 0 initialiseren anders is 0 altijd kleinste.


    Er zijn ongetwijfeld nog andere kortere oplossingen. Maar deze is vrij logisch en duidelijk
    Last edited by Bigbuddha; 31-03-2005 at 10:41.
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  8. #8
    LunchBox's Avatar
    Registered
    18/07/02
    Location
    Deurne
    Posts
    3,854
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    14/14
    wel je kan ook gewoon sorten (doet intern wat hier gebeurt maar verwisseld ze dan nog van plaats etc) en dan de eerste/laatste zijn kleinste/grootste.. het is niet dat het over berekeningen gaat waar 36pc's voor nodig zullen zijn vermoede'k.
    no votes  

  9. #9
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    Voorzet van LunchBox, en koel afgewerkt

    Code:
    function fillArray2() {
            var Getallen:Array = new Array();
    	for (var i = 0; i<10; i++) {
    		Getallen[i] = {number:Math.round(Math.random()*100)};
    	}
    	grootsteEnkleinste2();
    }
    
    function grootsteEnkleinste2() {
    	Getallen.sortOn(number);
    	trace("hoogste nummer = "+Getallen[0]["number"]);
    	trace("kleinste nummer = "+Getallen[Getallen.length-1]["number"]);
    }
    
    fillArray2();
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  10. #10
    Dece's Avatar
    Registered
    25/10/02
    Location
    Ninove
    Posts
    829
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by LunchBox
    This quote is hidden because you are ignoring this member. Show
    wel je kan ook gewoon sorten (doet intern wat hier gebeurt maar verwisseld ze dan nog van plaats etc) en dan de eerste/laatste zijn kleinste/grootste.. het is niet dat het over berekeningen gaat waar 36pc's voor nodig zullen zijn vermoede'k.
    idd lijkt me ook het eenvoudigste/ snelste

    var getallen = new array(10);

    function sortByNumber(a, b) {
    return (a > b);
    }

    getallen = [13, 52, 33, 2, 25, 14, 3, 77, 8];
    getallen.sort(sortByNumber);
    trace(getallen);

    output --> 2,3,8,13,14,25,33,52,77


    dankzij http://actionscript-toolbox.com/arrayobject2.php
    no votes  

  11. #11
    tinbie's Avatar
    Registered
    16/12/04
    Location
    Patershol
    Posts
    7,542
    iTrader
    217 (95%)
    Mentioned
    2 Post(s)
    Reputation
    0/5
    thx voor de reply's
    volgens mij moet het dus via de methode van Lunchbox het gemakkelijkst gaan
    alleen krijg ik nu nog stees geen output bij mijn iKleinste en iGrootste

    als die laptop hier nu nog de code wil posten kunnen jullie zelf eens zien
    no votes  

  12. #12
    tinbie's Avatar
    Registered
    16/12/04
    Location
    Patershol
    Posts
    7,542
    iTrader
    217 (95%)
    Mentioned
    2 Post(s)
    Reputation
    0/5
    dan maar het belangrijkste in stukjes

    Code:
    Getallen = new Array(10);
    iTeller = 0;
    iSommetje = 0;
    knop1.onRelease = function() {
    	invoeren();
    };
    function invoeren() {
    	if (iTeller<10 and iInvoer>1 and iInvoer<10) {
    		Getallen[iTeller] = iInvoer;
    		iTeller += 1;
    		iSommetje += Number(iInvoer);
    		sMededeling = " ";
    	} else if (iTeller == 10) {
    		iSom = iSommetje;
    		//iKleinste = Getallen.sort(kleiner);
    		//iGrootste = Getallen.sort(groter);
    		//grootsteEnkleinste();
    		grootsteEnkleinste2[HAAKJES VERGETEN]();
    		product();
    		kwadraad();
    	} else {
    		sMededeling = "Je moet een getal ingeven >1 en <10";
    	}
    }
    Last edited by tinbie; 01-04-2005 at 15:53.
    no votes  

  13. #13
    tinbie's Avatar
    Registered
    16/12/04
    Location
    Patershol
    Posts
    7,542
    iTrader
    217 (95%)
    Mentioned
    2 Post(s)
    Reputation
    0/5
    Sorry, maar het werkt wel

    had zelf klein foutje gemaakt die ik gezien heb bij het posten hier


    mijns excuses
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in