[Algemeen] Programmeren

Discussie in 'PC, Handheld & Algemeen' gestart door Modder-Eter, 5 apr 2007.

  1. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Ben begonnen met het leren van Java Script. Heb nu even geprobeerd om FizzBuzz te doen en het is gelukt in 10 minuutjes ofzo.
    Code:
    for (var i = 1; i <101; i++) {
    	if ( i % 3 === 0 ) {
    		if ( i % 5 === 0 ) {
    			console.log("Fizzbuzz");
    		} else {
    			console.log("Fizz");
    		}
    	} else if ( i % 5 === 0) {
    		console.log("Buzz");
    	} else {
    		console.log(i);
    	}
    }
     
  2. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Goed bezig! Modulo is in veel gevallen heel handig te gebruiken :)

    :+
    Code:
    for(var i = 1; i <= 100; i++) console.log(i % 3 == 0 ? (i % 5 == 0 ? "Fizzbuzz" : "Fizz") : (i % 5 == 0 ? "Buzz" : i));
    
     
  3. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Ziet er inderdaad erg simpel uit. Waarvoor wordt Modulo precies gebruikt?
     
  4. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Je hebt zelfs modulo gebruikt en je vraagt waarvoor modulo wordt gebruikt? :+

    Ik denk meer dat hij bedoelt dat je modulo makkelijk kan gebruiken in zo'n structuur die hij heeft geplaatst.
    Hier bijvoorbeeld met een ternary operator met daarbinnen nog eentje. Nu vind ik dat zelf minder netjes dan de code van CheesieOnion.
     
  5. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Nah, wat ik bedoelde is dat het gewoon een handige operator is :9 Bijvoorbeeld als je een tabel wilt maken waar de rijen om en om een andere background hebben oid. Of in games om iets te laten knipperen ofzo. En die spoiler stond er omdat ik het leuk vind om dingen zo klein mogelijk op te schrijven, alhoewel dit wss nog wel kleiner zou kunnen :9 En dat is idd niet heel leesbaar. Ternary kan wel heel makkelijk zijn voor simpelere dingen imo.
    Code:
    console.log(isAlive ? "levend!" : "deaud");
    
     
    Laatst bewerkt: 15 dec 2012
  6. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Ik heb nog wel een nieuwe challenge voor je, Cheesie. Wissel 2 getallen om zonder een temp variabele te gebruiken (en zonder te googlen). :+

    Overiger kan je code eleganter:

    Code:
    for (var i = 1; i <101; i++) {
            var string;
    	if ( i % 3 === 0 ) 
    		string = "Fizz";
            if ( i % 5 === 0 ) 
    		string += "Buzz";
            if (i % 5 != 0 && i % 3 != 0)
                    string += i;
            console.log(string);
    }
    
     
  7. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Als i deelbaar is door 3 moet er Fizz uit komen als i deelbaar is door 5 Buzz als hij deelbaar is door 3 en 5 moet er Fizzbuzz uitkomen dus jou code klopt dan toch niet? :+
     
  8. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Ondertussen al edited. Was vergeten dat console.log een output was. Zo klopt hij wel (alhoewel ik niet met strings binnen javascript bekend ben).
    In andere talen kun je namelijk gewoon tekst op dezelfde line pushen, daarom deed ik het zo. :p

    In Java bijvoorbeeld:
    Code:
    for(int i = 1; i <= 100; i++) {
    		if(i % 3 == 0)
    			System.out.print("Fizz");
    		if(i % 5 == 0)
    			System.out.print("Buzz");
    		if(i % 5 != 0 && i % 3 != 0)
    			System.out.print(i);
    	        System.out.print(" ");
    }
     
  9. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Dan moet je wel de string leeg initializen, als je alleen var string; gebruikt en i is deelbaar door 5 wordt string "undefinedBuzz" :9 En volgens mij is string ook reserved.

    Code:
    for (var i = 1; i <101; i++) {
            var str = "";
    	if ( i % 3 == 0 ) 
    		str = "Fizz";
            if ( i % 5 == 0 ) 
    		str += "Buzz";
            if (str.length == 0)
                    str += i;
            console.log(str);
    }
    Zo dan denk. En waarom gebruiken jullie hier ===? Je declared zelf i toch als een integer dus lijkt me niet nodig?
     
  10. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Ik heb zijn code gewoon gekopieerd en het dus zo gelaten. En ik was inderdaad de string vergeten te initializen tot empty ipv null.
     
  11. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Ah okee :)
     
  12. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Ik wist niet dat modulo iets binnen JavaScript was :+.

    Je bedoelt dus van 21 > 12?
     
  13. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Nouja, je hebt gewoon een var i = 2 en een var j = 3. En je wilt nu dat i 3 wordt en j 2. Hierbij mag je echter geen derde variabele gebruiken. (Dit is in de praktijk overigens totaal nutteloos, maar wel een leuk puzzeltje :+)
     
  14. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Code:
    Code:
    var i = 2;
    var j = 3;
    console.log(i + "" + j);
    var j = 2;
    var i = 3;
    console.log(i + "" + j);
    
    Output:
    Code:
    23
    32
    
    Ik ben nu dus bezig met het leren van JavaScript via CodeAcademy. Erg fijne website alleen jammer dat sommige dingen er dubbel instaan. Zo zijn er twee courses voor functions en ook nog eens twee voor objects.
     
  15. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Haha, probeer het nu is zonder dat je weet wat de waardes van i en j zijn :9 Dus als de gebruiker bijvoorbeeld i en j invult.
     
  16. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Nee, niet zo. Probeer de waardes van de twee variabelen om te wisselen, niet simpel printen en dan andersom printen. Dus daadwerkelijk de variabelen omwisselen zonder opnieuw te assignen. ;)

    Dus zo, maar dan zonder een temp variabele:

    Code:
    int i = 2;
    int j = 3;
    int temp;
    
    int temp = i;
    int i = j;
    int j = i
    
     
  17. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Ik heb wat lopen kloten, maar ik kom er niet uit.

    Ik heb nu trouwens via Codecademy het hele JavaScript-track gedaan en daarin zijn de volgende dingen allemaal behandeld:
    [​IMG]

    Kan ik dan JavaScript of missen er nog belangrijke dingen?
     
  18. Mezzla

    Mezzla Times Like These

    Berichten:
    562
    Leuk Bevonden:
    0
    Code:
    int i = 2;
    int j = 3;
    
    i = i+j; // = 5
    j = i-j; // = 2
    i = i-j; // = 3
    Toch? ^^
     
    Laatst bewerkt: 17 dec 2012
  19. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.718
    Klopt inderdaad. Totaal nutteloos, maar wel leuk. :+

    Tsja, je kent de basis JavaScript syntax, er zullen altijd dingen zijn die veranderen, valkuilen zijn en bepaalde syntax die slechts in bepaalde gevallen voorkomt. Daarnaast is een taal "kennen" slechts het begin. De taal is slechts de hamer of de beitel die je gebruikt om het uiteindelijke product te maken. Wat wil je bereiken? Dat is denk ik de eerste vraag die je jezelf moet stellen.
     
  20. CheesieOnion

    CheesieOnion <font color="green"><b>Redacteur</b></font>

    Berichten:
    1.058
    Leuk Bevonden:
    0
    Zijn er goede sites, waar ik oefeningen kan maken. Dus waarbij ze gewoon zeggen: "Maak dit".
     

Deel Deze Pagina