[Algemeen] Programmeren

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

  1. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Beginners fout idd. Toen ik zag dacht ik "hoe dom".

    We moeten zoveel mogelijk commentaar gebruiken. Zo kan ikmnu makkelijk zien als ik iets in bv een loopmwil plaatsen. Vorige probleem wat Modder opgelost heeft had ik een deel binnen de verkeerde haken gezet.
     
  2. appie21

    appie21 Active Member

    Berichten:
    3.899
    Leuk Bevonden:
    22
    Hallo

    ik heb een echte beginners vraag!

    ik heb een java code waar mee ik een timer start

    Code:
    setTimeout("notify()",10000);
    
    function notify() {
            navigator.notification.beep(1);
    alert("hoi");
            //    return false;
        }
    Hoe kan ik deze timer onderbreken met een knop/functie?

    Dus dat hij voor de 10 seconde stopt en de alert niet wordt weer gegeven.
     
  3. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.721
    Als je trouwens nog wat in depth wil leren over scope etc:
    http://www.gamasutra.com/view/news/168335/CC_low_level_curriculum_More_conditionals_.php

    Vanaf deel 1 dus. Iets wat eigenlijk iedere programmeur wel enigszins moet begrijpen, zoals de man zelf ook al zegt.
     
  4. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Ik heb voor mijzelf een testProject gemaakt voor StringBuffers om ze te begrijpen. Nu heb ik de volgende codes gemaakt voor de 3 constructors:

    Code:
    package testProjecten;
    
    public class StringBufDemo {
    	
    	public static void main (String[] args) {
    		
    		String st = "Een nieuwe string";
    		
    		StringBuffer sb1 = new StringBuffer();
    		int x = sb1.length();
    		System.out.println("De lengte van de lege StringBuffer is: " + x + "\n\n");
    		
    		StringBuffer sb2 = new StringBuffer(20);
    		x = sb2.length();
    		System.out.println("De lengte van de met int opgegeven StringBuffer is: " + x + "\n\n");
    		
    		StringBuffer sb3 = new StringBuffer(st);
    		x = sb3.length();
    		System.out.println("De lengte van de met String opgegeven StringBuffer is: " + x);
    		x = st.length();
    		System.out.println("De lengte van de String is: " + x);	
    	}
    }
    Echter krijg ik de volgende uitvoer:

    Ik had bij de 2e regel 20 verwacht en bij de laatste regel 16+17 = 33. Wat heb ik fout gedaan?

    Edit: nvm, als ik de grootte wil hebben moet ik natuurlijk .capacity gebruiken...
     
    Laatst bewerkt: 29 jun 2012
  5. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Kan iemand mij in de volgende code vertellen wat 'toString' precies doet.

    Code:
    package testProjecten;
    import javax.swing.JOptionPane;
    
    public class Palindroom {
    	
    	public static void main (String[] args) {
    		
    		String invoer = JOptionPane.showInputDialog(null, "Voer een woord in!" , "Palindroom controle" , JOptionPane.QUESTION_MESSAGE);
    		
    		StringBuffer woord = new StringBuffer(invoer);
    		StringBuffer palindroom = new StringBuffer(invoer);
    		palindroom.reverse();
    		
    		String controle1 = woord.toString(); // waarom?
    		String controle2 = palindroom.toString(); // waarom?
    		String resultaat;
    		
    		if (controle1.equalsIgnoreCase(controle2)) { 
    			resultaat = "Dit is een palindroom!";
    		}
    		else {
    			resultaat = "Dit is GEEN palindroom...";
    	    }
    		JOptionPane.showMessageDialog(null , resultaat , "Controle" , JOptionPane.INFORMATION_MESSAGE);
    		System.exit(0);
    	}    
    }
    Ik had dus in eerste instantie in de if 'woord.equalsPalaindroom' staat. Echter geeft het programma dan altijd terug dat het geen palindroom is. Heeft dat met de reference in een object te maken?
     
  6. LDawg

    LDawg Active Member

    Berichten:
    482
    Leuk Bevonden:
    5
    toString maakt van iets dat een String zou kunnen zijn, een String :p
    Je kunt bijvoorbeeld een int naar string converteren door de .toString() erop aan te roepen.

    Wat doet de methode equalsPalindroom? Het moet wel een boolean returnen, en niet de de omgekeerde String.
     
  7. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    equals is toch altijd een boolean expressie?

    Vandaar mijn gedachte 'woord.equalsPalindroom', maar dat werkt dus wel voor een String maar niet voor een StringBuffer?
     
  8. LDawg

    LDawg Active Member

    Berichten:
    482
    Leuk Bevonden:
    5
    equals wel ja, maar ik weet niet wat equalsPalindroom is want die methode heb je waarschijnlijk zelf gemaakt.

    De standaard equals methode kijkt of het object gelijk is aan het andere object. Als je dan twee verschillende objecten geeft is het inderdaad altijd false. Je kunt van de StringBuffer een String maken (met toString) en deze dan meegeven. Dan zijn het dus beide strings en gaat de equals methode kijken of ze dezelfde waarde hebben.
     
  9. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    woord en palindroom zijn beide een StringBuffer dus een object?

    Ik kan dus met de equals methode geen objecten met elkaar vergelijk?

    Dan snap ik het?
     
  10. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.721
    == kijkt naar de verwijzingen naar de objecten. Dus als twee variabelen verwijzen naar hetzelfde object kan je dit hiermee checken. Equals checkt inderdaad of twee objecten gelijk zijn.
     
  11. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Volgende vraag :) Ik houd jullie wel bezig...

    Ik heb geprobeerd een dobbel programma te maken. Werkt zoals het hoort en compileert:

    Code:
    package testProjecten;
    import javax.swing.JOptionPane;
    
    public class Dobbel {
    	
    	public Dobbel() {
    		
    		int worp1 = dobbel();
    		int worp2 = dobbel();
    		int worp3 = dobbel();
    		int totaal = worp1 + worp2 + worp3;
    		
    		String resultaat = "U heeft het volgende gegooid:\n" + "Worp 1: " + worp1 + "\n" + "Worp 2: " + worp2 + "\n" + "Worp 3: " + worp3 +
    		"\n\n" + "Het totaal van de worpen is: " + totaal;
    		
    		JOptionPane.showMessageDialog(null,  resultaat, "Geworpen resultaat", JOptionPane.INFORMATION_MESSAGE);
    		
    		System.exit(0);
    		}// einde contructor
    	
    	public int dobbel() {
    		int worp = (int)(Math.random() * 6) + 1;
    		return worp;
    		}//einde method
    	
    public static void main (String[] args) {
    	Dobbel dobbelsteen = new Dobbel();
    	}//einde mainmethod
    }//einde class
    Echter geeft hij een warning in de main method op 'dobbelsteen'. Logisch omdat ik deze variabele verder niet gebruikt. Nu is het niet heel erg, maar ik zou wel willen weten of ik dit had kunnen voorkomen en/of hoe ik het oplos. En ik weet dat ik al hem een keer gebruik voor niks het opgelost is, maar dat is niet de oplossing die ik zoek ;)

    Ik wil trouwens maar 1 regel code in de main method hebben.
     
  12. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.721
    Huh, wat ben je allemaal aan het doen in de constructor? 8)

    Buiten dat kan je voor die warning gewoon new Dobbel(); gebruiken ipv Dobbel dobbelsteen = new Dobbel();.
    Je gebruikt dobbelsteen namelijk nergens, dus waarom wil je de verwijzing naar het Dobbel object opslaan in een variabele als je hem toch maar een keer aanroept? :)
     
  13. appie21

    appie21 Active Member

    Berichten:
    3.899
    Leuk Bevonden:
    22
    hallo

    ik ben met phonegap bezig

    (javascript)

    ik wil de graden van een hoek van een driehoek weten
    heb dus tan nodig

    Ik weet de overstaande lengte en de aanliggende lengte

    hoe bereken ik de graden van de hoek? in javascript?
    var overstaande = 4
    var aanliggende = 4
    ik heb al Math.atan(overstaande/aanliggende);

    maar daar komt geen 0.45 uit? wat doe ik fout?
     
    Laatst bewerkt: 6 jul 2012
  14. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Weet niet zeker maar volgens mij rekent Javascript in radialen.
     
  15. appie21

    appie21 Active Member

    Berichten:
    3.899
    Leuk Bevonden:
    22
    dank u

    var d = r *180 / Math.PI; lost het probleem op
     
  16. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Gedeelte van de opdracht en ook de uitwerking. Vandaar ook de vraag. Het is niet helemaal logisch wat ik moet doen. Mag maar 1 regel in de main method staan dus moet de rest in de constructor.
     
  17. Modder-Eter

    Modder-Eter XBW.nl VIP XBW.nl VIP

    Berichten:
    21.604
    Leuk Bevonden:
    8.721
    Ja, maar is het niet de bedoeling dat je een aparte Dobbel klasse hebt en je die aanmaakt/aanroept in een andere klasse? En als het enkel binnen de Dobbel klasse mag, kun je toch een aparte methode maken om binnen te "dobbelen"?

    De bedoeling van een constructor is namelijk om je object in een stabiele staat te zetten door de instance variabelen een waarde te geven. Het is niet de bedoeling hele stapels andere code binnen een constructor uit te voeren.
     
  18. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Wat modder zegt + System.exit(0) in een constructor is erg vreemd.
    Ik denk dat je het het beste zo kan doen:
    Een klass Dobbelsteen maken, een method toevoegen die drie keer dobbelt, en dan in de main:
    (new Dobbelsteen()).drieKeerDobbelen();

    Of nog beter:
    JOptionPane.showMessageDialog(null, (new Dobbelsteen()).drieKeerDobbelen(), "Geworpen resultaat", JOptionPane.INFORMATION_MESSAGE);

    En dan laat je de drieKeerDobbelen method de resultaat string returnen. Als nog is het niet erg mooi, ik vind het ook een beetje een rare opdracht.
     
  19. GForce

    GForce Danica Patrick

    Berichten:
    14.778
    Leuk Bevonden:
    14
    Ik zal later even de opdracht en de uitwerking uploaden.

    Opdracht:

    [​IMG]


    Uitwerking:

    [​IMG]
     
    Laatst bewerkt: 9 jul 2012
  20. SilverLie

    SilverLie Lurkt

    Berichten:
    184
    Leuk Bevonden:
    1
    Staat die uitwerking zo in je boek? Dat kan toch niet 8)
     

Deel Deze Pagina