Ja, die "\n"zorgt voor een harde return.quote:Op maandag 27 februari 2006 21:29 schreef gelly het volgende:
Nee, ik bedoel, snap je wel wat je doet ?
Ik doelde meer op b.v. de for-loop .. Het zijn namelijk vrij standaard dingetjes in Java..quote:Op maandag 27 februari 2006 21:33 schreef Messenga het volgende:
[..]
Ja, die "\n"zorgt voor een harde return.
Ja, dat begrijp ik.quote:Op maandag 27 februari 2006 21:34 schreef gelly het volgende:
[..]
Ik doelde meer op b.v. de for-loop .. Het zijn namelijk vrij standaard dingetjes in Java..
Die hoofdletters had ik nog niet gezien, veranderd maar de fouten blijven.quote:Op dinsdag 28 februari 2006 22:31 schreef gelly het volgende:
Let eens op hoofdlettergebruik .. je gebruikt zowel PostorderBedrijf als Postorderbedrijf. En heb je wel een klasse GUI gemaakt ?
wat bedoel je daar precies mee?quote:Op dinsdag 28 februari 2006 22:39 schreef gelly het volgende:
Heb je wel een package declaratie in de code van de classes staan ? Anders moet je ze importeren...
in dezelfde mapquote:Op dinsdag 28 februari 2006 22:49 schreef Scorpie het volgende:
waar staat je PostorderBedrijf class?
Daar geeft ie geen foutmeldingen op dus ik kan aannemen dat de packages goed zijn?quote:Op dinsdag 28 februari 2006 22:51 schreef gelly het volgende:
Zet eens in alle classes bovenaan package testpackage;
En zet alle bestanden dan in een directory die zo heet.
Door er een package van te maken zorg je ervoor dat de classes elkaar kunnen "zien". Je moet het uiteraard nog wel testen...quote:Op dinsdag 28 februari 2006 22:55 schreef _Xbox_Master_ het volgende:
[..]
Daar geeft ie geen foutmeldingen op dus ik kan aannemen dat de packages goed zijn?
Als ze allemaal packageloos zijn staan ze in de default package en kunnen ze elkaar ook "zien". Niet netjes natuurlijk, maar voor de gemiddelde huiswerkopdracht van veertig regels goed genoeg.quote:Op dinsdag 28 februari 2006 22:59 schreef gelly het volgende:
[..]
Door er een package van te maken zorg je ervoor dat de classes elkaar kunnen "zien". Je moet het uiteraard nog wel testen...
Ik doe het altijd standaardquote:Op dinsdag 28 februari 2006 23:00 schreef Litpho het volgende:
[..]
Als ze allemaal packageloos zijn staan ze in de default package en kunnen ze elkaar ook "zien". Niet netjes natuurlijk, maar voor de gemiddelde huiswerkopdracht van veertig regels goed genoeg.
ah ok, ik snap hetquote:Op dinsdag 28 februari 2006 22:59 schreef gelly het volgende:
[..]
Door er een package van te maken zorg je ervoor dat de classes elkaar kunnen "zien". Je moet het uiteraard nog wel testen...
1 2 3 4 5 6 7 8 9 10 | import nl.hen.ict.assertion.Assertion; import nl.hen.ict.gui.*; public class Apl{ public static void main(String[] args) { PostorderBedrijf POB = new PostorderBedrijf(); GUI pobGUI = new GUI(POB); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | import java.util.*; import nl.hen.ict.gui.*; public class GUI implements UseCaseHandler { private PostorderBedrijf postorderbedrijf; public GUI(PostorderBedrijf ditPOB) { postorderbedrijf = ditPOB; UseCase useCase = new UseCase("Opgave Bank A", this); useCase.addUseCase("Voeg Klant toe"); useCase.addUseCase("Voeg Artikel toe"); useCase.addUseCase("Bestel Artikel"); useCase.addUseCase("Laat Schuld Klant zien"); useCase.addUseCase("Laat Totale schuld van Alle Klanten zien"); useCase.show(); } public void handleUseCase(String useCaseName) { //must be implemented if (useCaseName.equals("Voeg Klant toe")) { VoegKlantToe(); } else { if (useCaseName.equals("Voeg Artikel toe")) { VoegArtikelToe(); } else { if (useCaseName.equals("Bestel Artikel")) { BestelArtikel(); } else { if (useCaseName.equals("Laat Schuld Klant zien")) { OverzichtSchuld(); } else { if (useCaseName.equals("Laat Totale schuld van Alle Klanten zien")) { TotaleSchuld(); } } } } } } private void VoegKlantToe() { Questioner questioner = new Questioner("Invoer nieuwe Klant"); questioner.addString("Naam",""); boolean validInput = false; while (!validInput && !questioner.isCancelled()) { questioner.show(); if (questioner.isOk()) { String naam = questioner.getString("Naam"); postorderbedrijf.voegKlantToe(naam); // geen controle op dubbelingen validInput = true; } } } public void VoegArtikelToe() { Questioner questioner = new Questioner("Invoer nieuw Artikel"); questioner.addInt("Artikelnummer", 1000); questioner.addInt("Prijs", 0); questioner.addString("Omschrijving",""); boolean validInput = false; while (!validInput && !questioner.isCancelled()) { questioner.show(); if (questioner.isOk()) { int artikelnummer = questioner.getInt("Artikelnummer"); int prijs = questioner.getInt("Prijs"); String omschrijving = questioner.getString("Omschrijving"); postorderbedrijf.VoegArtikelToe(artikelnummer, prijs, omschrijving); // geen controle op dubbelingen validInput = true; } } } public void BestelArtikel() { Questioner questioner = new Questioner("Bestel Artikel"); questioner.addInt("Artikelnummer", 1000); questioner.addString("Klantnaam",""); boolean validInput = false; while (!validInput && !questioner.isCancelled()) { questioner.show(); if (questioner.isOk()) { int artikelnummer = questioner.getInt("Artikelnummer"); String naam = questioner.getString("Klantnaam"); Klant klant = postorderbedrijf.geefKlant(naam); // geen controle op dubbelingen Artikel artikel = postorderbedrijf.geefArtikel(artikelnummer); klant.bestel(artikel); validInput = true; } } } public void OverzichtSchuld() { Questioner questioner = new Questioner("Overzicht schuld"); questioner.addString("Klantnaam",""); boolean validInput = false; while (!validInput && !questioner.isCancelled()) { questioner.show(); if(questioner.isOk()) { String naam = questioner.getString("Klantnaam"); Klant klant = postorderbedrijf.geefKlant(naam); int bedrag = klant.schuld(); Reporter reporter = new Reporter("Overzicht Schuld", 10, 40); reporter.println("De schuld van "+naam+" is: " +bedrag); reporter.show(); validInput = true; } } } public void TotaleSchuld() { Reporter reporter = new Reporter("Totale Schuld", 10, 80); int bedrag = postorderbedrijf.schuldKlanten(); reporter.println("Schuld alle Klanten: "+bedrag); reporter.show(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import nl.hen.ict.gui.*; import nl.hen.ict.assertion.Assertion; class PostorderBedrijf { private Map <Klant> klanten = new HashMap <Klant> (); private Map <Artikel> artikelen = new HashMap <Artikel> (); public PostorderBedrijf() { } public void voegKlantToe(String deNaam) { Assertion.require(deNaam != null, "Er is geen naam meegegeven"); Klant deKlant = new Klant(deNaam); klanten.put(deNaam, deKlant); } public void voegArtikelToe(int hetNummer, double dePrijs, String omschrijving) { Assertion.require(hetNummer != 0 && dePrijs != 0, "Er is geen prijs of nummer meegegeven"); Artikel hetArtikel = new Artikel(hetNummer, dePrijs, omschrijving); artikelen.put(hetNummer, hetArtikel); } public int schuldKlanten() { Iterator i = klanten.values().iterator(); Klant deKlant; int totaal = 0; while(i.hasNext()) { deKlant = (Klant) i.next(); bedrag = deKlant.schuld(); totaal = totaal + bedrag; } return totaal; } public Klant geefKlant(String naam) { Klant klant = (Klant) klanten.get(naam); return Klant; } public Artikel geefArtikel(int hetNummer) { Artikel artikel = (Artikel) artikelen.get(nummer); return artikel; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | import java.util.*; import nl.hen.ict.gui.*; class Artikel { private int artikelnummer; private int prijs; private String omschrijving; public Artikel(int hetNummer, int dePrijs, String deOmschrijving) { Assertion.require(hetNummer > 1000 && hetNummer <= 9999, "Artikelnummer is niet goed"); Assertion.require(dePrijs >= 0, "Geen prijs opgegeven"); artikelnummer = hetNummer; prijs = dePrijs; omschrijving = deOmschrijving; Assertion.ensure(artikelnummer == hetNummer && prijs == dePrijs, "Artikelnummer en prijs niet correct"); } public int getPrijs() { return prijs; } public String getOmschrijving() { return omschrijving; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import nl.hen.ict.assertion.Assertion; import nl.hen.ict.gui.*; class Klant { private String naam; private Map <Bestelling> bestellingen = new HashMap <Bestelling> (); private int schuld; public Klant(String deNaam) { Assertion.require(deNaam != null, "Er is geen naam meegegeven"); naam = deNaam; Assertion.ensure(naam.equals(deNaam), "Naam is correct"); } public void bestel(Artikel eenArtikel) { Assertion.require(eenArtikel != null, "Er is geen Artikel meegegeven"); int bestelnummer = getLaatsteBestelNummer() + 1; Bestelling deBestelling = new Bestelling(eenArtikel, bestelnummer); bestellingen.put(bestelnummer, eenArtikel); } public int schuld() { Bestelling bestelling; Iterator i = bestellingen.values().iterator(); while(i.hasNext() ) { bestelling = (Bestelling) i.next(); int bedrag = bestelling.getKosten(); schuldklant = schuld + bedrag; } return schuldklant; } public int getLaatsteBestelNummer() { Iterator i = bestellingen.values().iterator(); Bestelling bestelling; while(i.hasNext()) { bestelling = (Bestelling)i.next(); int nummer = bestelling.getBestelnummer(); } return nummer; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import nl.hen.ict.assertion.Assertion; import nl.hen.ict.gui.*; class Bestelling { private int bestelnummer; private Artikel artikel; public Bestelling(int hetBestelnummer, Artikel hetArtikel) { bestelnummer = hetBestelnummer; artikel = hetArtikel; } public int getBestelnummer() { return bestelnummer; } public int getKosten() { int bedrag = artikel.getPrijs(); return bedrag; } } |
zonder deze regel: package testpackage;quote:Op dinsdag 28 februari 2006 23:25 schreef gelly het volgende:
Is dat de oude of nieuwe code ?
Mijn classpath verwijst naar de dir waar de nl.hen.ict packages staan die ik overal importeer.quote:Op dinsdag 28 februari 2006 23:38 schreef gelly het volgende:
En je ClassPath verwijst ook naar de dir waar de classes staan ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | A basic extension of the java.applet.Applet class */ import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void init() { // Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller symantec.itools.lang.Context.setApplet(this); // This code is automatically generated by Visual Cafe when you add // components to the visual environment. It instantiates and initializes // the components. To modify the code, only use code syntax that matches // what Visual Cafe can generate, or Visual Cafe may be unable to back // parse your Java file into its visual environment. //{{INIT_CONTROLS setLayout(null); setBackground(java.awt.Color.lightGray); setSize(426,266); add(decimaalGetalVeld); decimaalGetalVeld.setBounds(228,48,132,42); add(binairGetalVeld); binairGetalVeld.setBounds(228,120,132,42); ConversieButton.setLabel("Decimaal -> Binair"); add(ConversieButton); ConversieButton.setBackground(java.awt.Color.lightGray); ConversieButton.setBounds(36,192,168,49); label1.setText("Decimaal Getal"); add(label1); label1.setFont(new Font("Dialog", Font.PLAIN, 20)); label1.setBounds(24,48,161,34); label2.setText("Binair Getal : "); add(label2); label2.setFont(new Font("Dialog", Font.PLAIN, 20)); label2.setBounds(24,120,161,34); BinDecButton.setLabel("Binair -> Decimaal"); add(BinDecButton); BinDecButton.setBackground(java.awt.Color.lightGray); BinDecButton.setBounds(228,192,168,49); //}} //{{REGISTER_LISTENERS SymAction lSymAction = new SymAction(); ConversieButton.addActionListener(lSymAction); BinDecButton.addActionListener(lSymAction); //}} } //{{DECLARE_CONTROLS java.awt.TextField decimaalGetalVeld = new java.awt.TextField(); java.awt.TextField binairGetalVeld = new java.awt.TextField(); java.awt.Button ConversieButton = new java.awt.Button(); java.awt.Label label1 = new java.awt.Label(); java.awt.Label label2 = new java.awt.Label(); java.awt.Button BinDecButton = new java.awt.Button(); //}} class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == ConversieButton) ConversieButton_ActionPerformed(event); else if (object == BinDecButton) BinDecButton_ActionPerformed(event); } } void ConversieButton_ActionPerformed(java.awt.event.ActionEvent event) { int decGetal = Integer.parseInt(decimaalGetalVeld.getText()); String resultaat = "" ; do { if (decGetal % 2==0) resultaat = "0" + resultaat; else { resultaat = "1" + resultaat; decGetal --; } decGetal = decGetal / 2; } while (decGetal >0); binairGetalVeld.setText(resultaat); // Eerst zet hij de int van het gehele decimale getal om in een tekstvorm door middel // van parseInt. Die haalt hij uit het DecimaalGetalVeld. // vervolgens kijkt hij of het resultaat wat je krijgt te delen is door 2 waarna je // een rest getal van 0 krijgt. Is dit zo dan geeft hij het resultaat in het BinairGetalVeld. // Anders doet hij daar nog 1 bij op om hem wel te kunnen converteren in een WEL geheel // binair getal. Dit resultaat komt uiteraard in het het binairGetalVeld. } void BinDecButton_ActionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. } } |
Gewoon, optellen. Zoiets als hieronder dus.quote:Op woensdag 15 maart 2006 20:11 schreef Messenga het volgende:
Nou, ik kom me ook weer eens melden. Feest
.
Met de volgende code heb ik een leuke code die van Decimaal naar binair gaat.
[ code verwijderd ]
Die werkt ook.
Maar nu moet ik dat andersom doen. Dus van Binair naar Decimaal. Maar ik heb geen idee hoe.
Instructies: Maak gebruik van de String 'lenght(); ' en substring (int,int).
Anyone?
1 2 3 4 5 6 7 8 9 10 11 | long decimaal = 0; for ( int i=0; i < bin.length(); i++ ) { if ( bin.substring( i, i+1 ).equals("1") ) { decimaal += Math.round( Math.pow( 2, i ) ); } } return decimaal; } |
Ik zie hier een nobele taak voor jequote:Op woensdag 15 maart 2006 20:46 schreef Messenga het volgende:
Ohja. Was vergeten te zeggen dat het in Actionpeformed moet. Of maakt dat niet uit?
Duh. Natuurlijk vergeet ik dat welquote:Op woensdag 15 maart 2006 20:50 schreef HuHu het volgende:
Vergeet je niet de String om te draaien voordat je het uitrekend Litpho?
Ja goh, maar hoe ziet de code er ongeveer uitquote:Op maandag 10 april 2006 16:42 schreef gelly het volgende:
Door een eventhandler aan je radiobuttongroup te hangen he
Daar zijn meerdere manieren voor...quote:Op maandag 10 april 2006 16:44 schreef Messenga het volgende:
[..]
Ja goh, maar hoe ziet de code er ongeveer uit?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | { public void stateChanged(ChangeEvent e) { mijnRadioButton_stateChanged(e) } }); En dan ergens anders in je applet een methode private void mijnRadioButton_stateChanged(ChangeEvent e) { \\hier de code die de kleur moet veranderen.. } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | double px1 = x1 * perspective(z1), px2 = x2 * perspective(z2), py1 = y1 * perspective(z1), py2 = y2 * perspective(z2); int ipx1 = (int)px1; int ipx2 = (int)px2; int ipy1 = (int)py1; int ipy2 = (int)py2; g.drawLine(ipx1,ipy1,ipx2,ipy2); } double perspective(int z) { double p = (double)s/((double)s-(double)z); return p; } |
Wat houdt dit dan in? of heb je misschien een linkje naar een artikel over dit onderwerp?quote:Op dinsdag 11 april 2006 10:35 schreef dikkedorus het volgende:
Werk met transformatie matrices ipv zelf al die vermenigvuldigingen te doen. Als je echt serieus een engine wilt maken.
1 2 3 4 5 6 7 8 9 | public class Test { public static void main(String[] args) { System.out.println("Dit is een test"); } } |
Ik wilde het net zeggen, check dat even na!quote:Op woensdag 19 april 2006 13:35 schreef Gabberhead het volgende:
In je classpath staat C:\j2sdk1.4.2.11\ en C:\j2sdk1.4.2_11\
In je PATH is het C:\j2sdk1.4.2_11\
Eentje daarvan is fout en de andere niet. Mijn vermoeden is dat de entries met de underscore goed zijn
1 |
Iddquote:Op woensdag 19 april 2006 15:07 schreef FallenAngel666 het volgende:
Dat krijg je als je een teksteditor gebruikt voor applicatie ontwikkeling in plaats van een volwaardige IDE, zoals Eclipse. Die regelt dat lekker voor je
Dat heb ik een keer per ongeluk uitgezet.quote:
Ja... maar ik heb het probleem ook op een andere computer... lukt het jou wel dan?quote:Op zaterdag 22 april 2006 15:40 schreef gelly het volgende:
Heb je je browser al opnieuw opgestart ?
quote:<HTML>
<!-- Lotus-Domino (Release 5.0.2a (Intl) - 23 November 1999 on Windows NT/Intel) -->
<HEAD>
Er is een smerig truucje voor, dat is deze:quote:Op dinsdag 25 april 2006 21:04 schreef teehknaL het volgende:
Misschien een domme vraag, maar ik kom er niet uit:
ik heb een double, en die wil ik graag in een textfield krijgen. Nou wil .setText() alleen maar strings gevoerd krijgen. Hoe moet ik nou die double converteren naar een string? Iemand een idee?
Hee thanx!quote:Op dinsdag 25 april 2006 21:09 schreef HuHu het volgende:
Er is een smerig truucje voor, dat is deze:
.setText("" + deDouble );
Hierbij wordt de double automatisch naar een Sting omgezet, omdat je deze met de + aan een (lege) string plakt. En de nette manier is:
.setText(String.valueOf(deDouble));
parseDoublequote:Op dinsdag 25 april 2006 21:09 schreef HuHu het volgende:
[..]
Er is een smerig truucje voor, dat is deze:
.setText("" + deDouble );
Hierbij wordt de double automatisch naar een Sting omgezet, omdat je deze met de + aan een (lege) string plakt. En de nette manier is:
.setText(String.valueOf(deDouble));
parseDouble gebruik ik de andere kant opquote:
1 2 | double diameter = Double.parseDouble(str); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | public class Opdracht3part1a { public static void main(String [] args) { String s1 = "Happy New Year"; String s2 = "ew Y"; //System.out.println(s2.length()); System.out.println(s1.indexOf(s2)); System.out.println(indexOf(s1,s2)); } public static int indexOf(String s1, String s2) { char c, d, e, f; int i, k, x, y, z, h=-1; for (i=0; i < s1.length(); i++) { c = s1.charAt ![]() for (k=0; k < s2.length(); k++) { d = s2.charAt(k); boolean sjaak = true; if (c==d) { h=i; x=i; y=k; while(sjaak) { x=x+1; y=y+1; e = s1.charAt(x); f = s2.charAt(y); if (e==f) { sjaak = true; z=y; z=z+1; if (z==s2.length()) return h; } else { sjaak = false; h=-1; } } } else { k=k+s2.length(); h=-1; } } } return h; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | { public static void main(String[] args) { System.out.println("index:" + indexOf("testhallo","tst")); System.out.println("index:" + indexOfLooped("testhallo","tst")); System.out.println("index:" + indexOf("hallotesthallo","test")); System.out.println("index:" + indexOfLooped("hallotesthallo","test")); } // recursief public static int indexOf(String haystack, String needle) { if(haystack.length() >= needle.length()) { if(haystack.startsWith(needle)) { return 0; } else { int index = indexOf(haystack.substring(1),needle); if(index == -1) return -1; else return 1+index; } } else { return -1; } } // lus public static int indexOfLooped(String haystack, String needle) { for(int index = 0; haystack.length() > 0; index++) { if(haystack.startsWith(needle)) return index; haystack = haystack.substring(1); } return -1; } } |
je zou eens na moeten lezen wat StartsWith doet:quote:Op donderdag 25 mei 2006 16:21 schreef KneiterS het volgende:
Ik zit nog steeds te kijken hoe je dat nou flikt met die lus manier.
Je kijkt eerst of de eerste string begint met dezelfde letter als de 2de string. Is dit zo dan return je de index van hoe vaak die al door de loop geweest is. Daarnaast doe je ook iedere iteratie de eerste letter van string1 afnemen zodat je steeds met een andere letter vergelijkt. Maar wat ik nou niet snap hoe kan het dit systeem ook werkt als je bijvoorbeeld de eerste test of Test gelijk is aan TeSt. Als ik naar deze code kijk dan zie ik alleen maar dat er vergeleken word of de eerste letter gelijk is van een woord. Maar op de een of andere manier werkt het toch allemaal. Kan je me misschien uitleggen waar die vergelijking dan gemaakt wordt?
1 2 3 | for(int i=0; i < 40; i++) myArray[i]=0; |
1 2 3 4 5 6 7 8 9 | for (int i=0; i < 40; i++) { if (myArray[i]<half) { myArray2[k]=myArray[i]; k=k+1; } } |
In java.ulils.Arrays zit een static methode fill() (zie API docs)quote:Op zondag 28 mei 2006 14:58 schreef KneiterS het volgende:
Daar ben ik weer met nog een vraagje:
Ik moet nu wat opdrachtjes maken over arrays. Allereerst moet ik een array initialiseren van 40 elements en vervolgens zorgen dat alle 40 de waarde 0 hebben. Dit heb ik gedaan met een loopje:
[ code verwijderd ]
Werkt op zich prima maar ik vroeg me af of er niet gewoon een functie voor is in java? Dat je dat loopje niet nodig hebt maar dat vanzelf alles gevuld wordt met 0?
Arrays zijn vies. Eigenlijk moet je docent een pak slaag omdat ie je met arrays bezig laat zijn, maar goed.quote:In de opdracht moet ik verder 500 random getallen trekken tussen 0 en 39 en dan steeds 1tje optellen in de desbetreffende deel van de array. Dat lukt allemaal prima. Dan moet ik de het hoogste getal van de array nemen en het laagste, deze optellen en delen door 2, dat wordt dan het getal half. Dat lukt ook. Maar dan moet ik een 2de array maken waar alleen de getallen lager dan half ingezet mogen worden. Nou lukt het idee me opzich wel, dat doe ik namelijk als volgt:
[ code verwijderd ]
Alleen moet je natuurlijk eerst die array initialiseren en dan moet je een getal opgeven van hoeveel plaatsen je wilt in die array, maar vantevoren weet ik nog helemaal niet hoeveel plaatsen ik nodig heb. Nou vraag ik me af hoe ik dat dan voor elkaar kan krijgen is er geen functie dat je steeds een extra plaatsje erbij kan maken in je array? Ik hoop dat het een beetje duidelijk is.
Mja, da's het nadeel van een array; de grootte staat van te voren vast - gelukkig zijn er wel oplossingen (linked list enzo) maja, het lijkt me ook dat de docent wil dat je 2x er doorheen gaat. Eenmaal op het aantal uit te vinden, dan array aanmaken en dan de array vullen.quote:Op zondag 28 mei 2006 15:12 schreef Aaargh! het volgende:
[..]
In java.ulils.Arrays zit een static methode fill() (zie API docs)
[..]
Arrays zijn vies. Eigenlijk moet je docent een pak slaag omdat ie je met arrays bezig laat zijn, maar goed.
Als ik het goed begrijp moet je een 2e array opleveren waarin alleen de getallen staan uit array 1 die lager zijn dan de variabele 'half'. Begrijp ik het goed als ik hieruit opmaak dat de 2e array geen 'lege' posities mag bevatten en dat deze verder op dezelfde volgorde moet zijn als array 1 ?
Wat je docent denk ik wil is dat je eerst een lusje maakt die telt hoeveel items in array 1 er lager zijn dan 'half' en dat je deze gebruikt om een nieuwe array aan te maken.
Ja volgens mij begrijp je het goed. Wat jij zegt dat had ik idd geprobeerd maar dan krijg ik een fout. Ik zal wel mijn hele code laten zien:quote:Op zondag 28 mei 2006 15:12 schreef Aaargh! het volgende:
Arrays zijn vies. Eigenlijk moet je docent een pak slaag omdat ie je met arrays bezig laat zijn, maar goed.
Als ik het goed begrijp moet je een 2e array opleveren waarin alleen de getallen staan uit array 1 die lager zijn dan de variabele 'half'. Begrijp ik het goed als ik hieruit opmaak dat de 2e array geen 'lege' posities mag bevatten en dat deze verder op dezelfde volgorde moet zijn als array 1 ?
Wat je docent denk ik wil is dat je eerst een lusje maakt die telt hoeveel items in array 1 er lager zijn dan 'half' en dat je deze gebruikt om een nieuwe array aan te maken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import java.util.Random; public class Opdracht1 { public static void main(String[] args) { Random random = new Random(); int a = 40; int[]myArray = new int[a]; for(int i=0; i < a; i++) myArray[i]=0; for (int i=0; i < 500; i++) { int value = Math.abs(random.nextInt()); value = value%a; myArray[value] = myArray[value]+1; } int half = half(myArray); System.out.println(half); int x=0; for (int i=0; i < 40; i++) { if (myArray[i]<half) { x=x+1; } } int[]myArray2 = new int[x]; int k=0; for (int i=0; i < 40; i++) { if (myArray[i]<half) { myArray2[k]=myArray[i]; k=k+1; } } int half2 = half(myArray2); System.out.println(half2); } public static int half(int myArray[]) { int mx=0; int mn=500; for (int i=0; i < 40; i++) { if(myArray[i]>mx) mx = myArray[i]; if(myArray[i]<mn) mn = myArray[i]; } int half = (mx + mn)/2; return half; } } |
1 2 3 4 5 6 7 8 9 10 11 | for (int i=0; i < 40; i++) { if (myArray[i]<half) { x=x+1; } } int[]myArray2 = new int[x]; |
1 |
1 2 3 4 5 6 7 8 | { if (myArray[i]<half) { myArray2[k]=myArray[i]; k=k+1; } } |
Dat ook jaquote:Op zondag 28 mei 2006 15:32 schreef Aaargh! het volgende:
Je fout zit in de methode 'half()'
Die doet de aanname dat de array die bekeken wordt 40 elementen heeft, maar myArray2 heeft meestal helemaal niet 40 elementen.
Als je even de stacktrace had bekeken had je gezien dat de fout in regel 61 zit.
Nee, dat klopt wel. De eerste array is nog steeds 40 groot, voor de 2e array gebruikt ie de variabele 'k'. (ook niet netjes, hij had een meer omschrijvender variabele naam kunnen kiezen).quote:Op zondag 28 mei 2006 15:35 schreef fallrite het volgende:
[ code verwijderd ]
In dat stuk ga je de 2e array vullen maar je gebruikt nog wel als grens 40 terwijl de array hoogstwaarschijnlijk kleiner is (daar dient dus niet 40 maar x te staan (die variable is namelijk de lengte van de array)).
Nope.quote:Op woensdag 31 mei 2006 13:50 schreef Scorpie het volgende:
gewoon de 2e array in een vector gooien met vector.fill() (volgens mij?).
1 2 3 4 5 | // Wat elementen toevoegen... Vector bar = new Vector(Arrays.asList(foo)); |
Jigloo, knip en plak GUI http://www.cloudgarden.com/jigloo/quote:Op vrijdag 2 juni 2006 17:44 schreef Cart_man het volgende:
Word echt gestoord van dat java. Moet in Eclipse een programmaatje bouwen met werkend interface. Werkelijk geen idee wat de beste aanpak hiervoor is? Iemand starterstips?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | public class Class1 extends TekenApplet { double hoek; public void initialiseer() { maakAnimatieMogelijk(); achtergrondkleur("blauw"); } public void tekenprogramma() { links(hoek); vierkant(100); links(hoek); vierkant(50); penUit(); vooruit(75); rechts(90); vooruit(25); rechts(90); penAan(); links(hoek); vierkant(50); } void vierkant(double z) { penUit(); vooruit(z/2); rechts(90); vooruit(z/2); vulAan("oranje"); rechts(90); vooruit(z); rechts(90); vooruit(z); rechts(90); vooruit(z); rechts(90); vooruit(z); vulUit(); } public void animatie() { while(animatieLopend()) { hoek = hoek + .5; tekenOpnieuw(); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | { public static void main(String args[]) { GasPump Pomp1 = new GasPump(1.20, "reg"); System.out.println("Informatie van POMP 1:"); System.out.println("Bezig met vullen van de pomp 1:"); Pomp1.refill(); System.out.println("Inhoud pomp1: " +Pomp1.stock() +" liter."); System.out.println(""); System.out.println("Pomp nu 80 liter uit pomp 1"); Pomp1.pompen(80); System.out.println(""); System.out.println("Er wordt een nieuwe pomp bijgebouwd:"); GasPump Pomp2 = new GasPump(1.50, "sup"); System.out.println("We vullen deze pomp:"); Pomp2.refill(); System.out.println(""); System.out.println("Pomp nu 80 liter uit pomp 2."); Pomp2.pompen(80); System.out.println(""); System.out.println("Pomp nu weer 80 liter uit pomp 1."); Pomp1.pompen(80); System.out.println(""); System.out.println("We gaan nu uit pomp 1 10 keer 90 liter halen:"); for(int i=1; i < 11; i++) { Pomp1.pompen(90); System.out.println(""); } System.out.println("Uit pomp 2 halen we 5 keer 40 liter:"); for(int i=1; i < 6; i++) { Pomp2.pompen(40); System.out.println(""); } System.out.println("De inhoud is nu:"); System.out.println("Inhoud pomp1: " +Pomp1.stock() +" liter."); System.out.println("Inhoud pomp2: " +Pomp2.stock() +" liter."); System.out.println(""); System.out.println("De tankwagen komt langs en vult de pompen weer bij:"); Pomp1.refill(); Pomp2.refill(); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | { private int stock; private double price; private String kind; public GasPump(double price1, String type) //pre: double met de prijs die niet leeg mag zijn //post: nieuwe pomp opgestart. { price = price1; stock = 0; kind = type; } public void refill() //post: regstock en supstock bijgesteld. { stock = 1000; System.out.println("Pomp gevuld, nieuwe voorraad: " +stock() +" liter " +kind +"."); } public void pompen(int liters) //pre: int met aantal te pompen liter, not NULL en een string reg of sup. //post: nieuwe waarde voor regstock of supstock en een output. { if (liters > stock()) { System.out.println("Niet genoeg benzine op voorraad, de resterende "+ stock() +" liter worden bijgepompt:"); System.out.println("Totaal bedrag: " +(stock() * price) +" euro."); stock = 0; System.out.println("Nieuwe voorraad: " +stock() +" liter " +(kind) +" in de pomp."); } else { System.out.println("Er worden "+ liters +" liters regular gepompt:"); stock = stock() - liters; System.out.println("Totaal bedrag: " +(liters * price) +" euro."); System.out.println("Nieuwe voorraad: " +stock() +" liter " +(kind) +" in de pomp."); } } public int stock() //post: int met waarde van stock { return stock; } } |
Je kan gewoon de equals() methode van java.lang.Object kunnen overriden voor GasPump.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if(this == obj){ return true; } if (obj instanceof GasPump){ GasPump pump = (GasPump) obj; boolean stockIsEqual = stock == pump.getStock(); boolean kindIsEqual = kind.equals(pump.getKind()); if(stockIsEqual && kindIsEqual){ return true; } } return false; } |
Wat bedoel je met "aan elkaar gekoppeld"?quote:Op donderdag 8 juni 2006 08:39 schreef joupee het volgende:
Ik ben bezig met een beetje java, maar ik kom er niet uit.
Het is de bedoeling dat er een vierkant ronddraait en dat er dan op de hoekpunten kleinere vierkantjes ronddraaien. De code zit er tot nu toe als volgt uit:
[ code verwijderd ]
Het probleem nu is dat de kleinere vierkantjes aan elkaar gekoppeld zitten en ik heb geen flauw idee hoe ik dit kan verhelpen...
Tnx het is me gelukt! Ja ik vond dat cooler om een methode te gebruiken ipv de variabele, het slaat idd nergens opquote:Op donderdag 8 juni 2006 22:31 schreef FallenAngel666 het volgende:
[..]
Je kan gewoon de equals() methode van java.lang.Object kunnen overriden voor GasPump.
Uit de losse pols:
[ code verwijderd ]
Moet je nog wel even je methode stock() hernoemen naar getStock() en een methode getKind() implementeren. Waarom roep je binnen jouw klasse trouwens de methode stock() aan i.p.v. direct de member variabele te gebruiken? Probeer ook het door elkaar gebruiken van Nederlandstalige en Engelstalige naamgeving te vermijden.
1 2 3 4 5 6 7 | { JButton but+i = new JButton(">"); panel.add(but); but.setBounds(10,h,45,35); h+=40; } |
1 2 3 4 | for(int i=0; i<buttons.length;i++){ buttons[i] = new JButton(">"); } |
1 2 3 | someContainer.add(new JButton(">")); } |
Hehe ja, maar 't was dus meer ff om te illustreren wat ik wildequote:Op woensdag 14 juni 2006 20:51 schreef fallrite het volgende:
Ehm, ja.. but+i is een taalconstructie die ik zo niet ken hoor![]()
Kijk anders ook ff hier en hier. De html file moet je vervolgens ook gewoon in de JAR file stoppen.quote:Op maandag 14 augustus 2006 17:10 schreef rvisser78 het volgende:
Vraagje, ik heb een project in Jbuilder gemaakt. Nu wil ik er een .jar file van maken zodat ik hem met een html file kan runnen. Kan iemand me vertellen hoe dat werkt, ik kom er niet uit
Alvast bedankt!
Ik zou er iets als de volgende methode voor gebruiken:quote:Op zondag 1 oktober 2006 15:55 schreef Messenga het volgende:
Zo, hier is de ubern00b van FOK! wat betreft Java weer. :')
Ik moet een applet maken die er zo uit ziet :
[afbeelding]
Zoals je ziet zijn de labels aan de rechterkant nog wel zichbaar, maar als je het runt zijn ze niet zichtbaar. Nu moet ik een applet maken waarbij een leerling het aantal 3'en 4'en, 5'en en het totaal aantal punten moet invullen. Als dat gebeurt is krijgt de leerling 1 van de 3 labels te zien.
Nou heeft de applet de volgende voorwaarden :
Rapportcijfer zijn geele getallen van 3 tot 10
Cijfers 1 en 2 doen niet mee
Leerling met
-meer dan 1 3
- 3 of meer vieren
- 2 vieren en meer dan 1 vijf
- 2 vijfen en minimaal 1 vier
- 3 vijfen
- met 2 vieren of 1 vier met in totaal 42 punten wordt besproken, bij minder dan 42 punten.
blijft zitten
Alle overige gevallen gaat de leerling over.
Hoe zorg ik ervoor dat al deze punten goed verwerkt worden in een applet? Ik begrijp dat het door middel van een if statement moet, maar veel verder kom ik niet.
1 2 3 4 5 6 7 | if ( drieen > 1 | vieren >= 3 | (vieren==2 & vijven > 1) | (vieren >= 1 & vijven==2) | vijven==3 ) return BLIJVEN_ZITTEN; if ( vieren >= 1 & totaal < 42 ) return BLIJVEN_ZITTEN; if ( vieren >= 1 & totaal >= 42 ) return BESPREKEN; return GAAT_OVER; } |
Nou ja, definieeren is niet het juiste woord, maar ik had in gedachte dat je nog ergensquote:Op zondag 1 oktober 2006 18:32 schreef Messenga het volgende:
Laatste regel moet inderdaad 2 vijven of 1 vier zijn.
En hoe defineer je ook alweer? :@ :')
1 2 3 | final int BESPREKEN = 1; final int GAAT_OVER = 2; |
ligt eraan. Mogen de drieeen, vieren etc veranderen tijdens het runnen van de applicatie? Dan denk ik dat je:quote:Op zondag 1 oktober 2006 19:36 schreef Messenga het volgende:
Ik heb nu :
if (drieen > 1 | vieren >= 3 | (vieren==2 & vijven > 1) | (vieren >= 1 & vijven==2) | vijven==3 ) {
return BLIJVEN_ZITTEN;
}
if ( vieren >= 1 & totaal < 42 ) {
return BLIJVEN_ZITTEN;
}
if ( vieren >= 1 & totaal >= 42 ) {
return BESPREKEN;
}
return GAAT_OVER;
Ik werk namelijk met Visual Café.
Nu moet ik alle drieen, vieren, vijven en het totaal nog defineren.. hoe?
1 2 3 4 5 6 7 8 9 | String naamcijfer; LeerlingRij[teller].naam= NaamVeld.getText(); LeerlingRij[teller].cijfer= Integer.parseInt( Cijferveld.getText()); naamcijfer = LeerlingRij[teller].naam + " - " + LeerlingRij[teller].cijfer; Naamlijst.add(naamcijfer); NaamVeld.setText(""); Cijferveld.setText(""); teller++; |
1 2 3 4 5 6 7 8 9 10 | for ( int aantal = lengte; aantal >1; aantal--)// Als aantal gelijk is aan lengte for (int index =0; index < aantal-1; index++)//gaat ie verder, index moet kleiner zijn dan aantal-1 { String dit_element = Naamlijst.getItem(index);//pakt het element if(dit_element.compareTo(Naamlijst.getItem(index+1)) > 0)//vergelijkt 2 elementen uit de lijst { Naamlijst.remove(index);// verwijderd het tijdelijk Naamlijst.add(dit_element, index+1);// voegt het op de juiste plaats toe NaamVeld.requestFocus(); |
1 2 3 4 5 6 7 8 9 | public class Sort { public static void main(String[] args) { List<String> list = Arrays.asList(args); Collections.sort(list); System.out.println(list); } } |
quote:Let's run the program.
% java Sort i walk the line
The following output is produced.
[i, line, the, walk]
Je moet eens kijken naar de Comparator interface in java.utils. Daarmee kun je vast leggen hoe objecten geordend zijn. Vervolgens kun je dan de sort methode in Collections of Arrays gebruiken.quote:Op zondag 8 oktober 2006 14:18 schreef Messenga het volgende:
Ik meld me weer eens.
[afbeelding]
Die applet. Nou heb ik de voeg toe en sorteer op naam Button al gemaakt.
code voor de voeg toe button :
[ code verwijderd ]
Code voor de sorteer op naam
[ code verwijderd ]
Maar hoe doe ik dit met een sorteer op cijfer button?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | { sortCijfers(LeerlingRij); // to do: code goes here. } public void sortCijfers (Leerling[ ] array) { int i, j; String s; Leerling temp; for ( i = 1; i < array.length; i++ ) for ( j = 0; j < array.length-i; j++ ) if ( array[j].cijfer > array[j+1].cijfer ) { temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } // if Naamlijst.clear(); for (i = 0; i < array.length; i++) { if (array[i].naam != null) { s = array[i].naam + " - " + array[i].cijfer; Naamlijst.add(s); } } } //zie commentaar van de namen van de actionpeformed hierboven, alleen de variabele namen //zijn gewijzigd. } |
Vrij weinig hoor, je hebt iig de Java Development Kit nodig, te vinden op http://java.sun.com/javase/downloads/index.jsp . Daarnaast een texteditor om je code in te schrijven. Kladblok voldoet als je echt hardcore bentquote:Op zaterdag 14 oktober 2006 14:37 schreef fate het volgende:
Nu php me wat tegensteekt zou ik me graag eens in java storten maar na wat rondgesurft te hebben weet ik nog altijd niet goed welke programma's ik nodig heb om java te schrijven en uit te voeren.
Wil iemand me dit even uitleggen want als ik ergens uitleg vindt is het redelijk onbegrijpelijk :s.
Je telt alle listitems bijelkaar op en deelt het totaal door 10 ?quote:Op zaterdag 14 oktober 2006 14:39 schreef Messenga het volgende:
Alle getallen delen door 10
Maar hoe zet je zoiets om in code?
Zover was ik alquote:Op zaterdag 14 oktober 2006 14:44 schreef gelly het volgende:
[..]
Je telt alle listitems bijelkaar op en deelt het totaal door 10 ?
Je doorloopt met een for-lus alle items, telt ze bijelkaar op en deelt ze door 10. Wat wil je nu precies weten ... Probeer zelf eens wat, waarschijnlijk leer je daar meer van. Lukt het niet, post dan de code die je al hebt hier. Ik ga je huiswerk niet zitten makenquote:Op zaterdag 14 oktober 2006 14:46 schreef Messenga het volgende:
[..]
Zover was ik al.
Ik moet gewoon een begin hebben, van :"Hier begin je mee, op die manier selecteer je alle getallen." Dan is het niet zo moeilijk meer.
Je was net voor mn editquote:Op zaterdag 14 oktober 2006 14:49 schreef gelly het volgende:
[..]
Je doorloopt met een for-lus alle items, telt ze bijelkaar op en deelt ze door 10. Wat wil je nu precies weten ... Probeer zelf eens wat, waarschijnlijk leer je daar meer van. Lukt het niet, post dan de code die je al hebt hier. Ik ga je huiswerk niet zitten maken
Welke versie moet ik van die Java Development Kit downloaden? Er staan er zoveelquote:Op zaterdag 14 oktober 2006 14:43 schreef gelly het volgende:
[..]
Vrij weinig hoor, je hebt iig de Java Development Kit nodig, te vinden op http://java.sun.com/javase/downloads/index.jsp . Daarnaast een texteditor om je code in te schrijven. Kladblok voldoet als je echt hardcore bentZelf gebruik ik Eclipse ( http://www.eclipse.org ) als editor, die heeft syntax higlighting en andere tools om e.e.a. wat minder tijdrovend te maken. Tutorials zijn ook overal te vinden.
JDK 5.0 update 9quote:Op zaterdag 14 oktober 2006 14:53 schreef fate het volgende:
[..]
Welke versie moet ik van die Java Development Kit downloaden? Er staan er zoveel![]()
zoiets zegt me dus echt nietsquote:Op zaterdag 14 oktober 2006 14:55 schreef gelly het volgende:
In pseudo code :
For x = 0 tot 9 { totaal = totaal + listitem[x] }
gem = totaal /10 <-- gem moet double zijn, geen int.
label = gem.toString
1 2 3 4 5 6 7 8 9 10 11 | { int som=0; for (int x=0; x < 10; x++){ som = som + getallen[x]; } return (som / 10); } |
1 2 3 4 5 6 7 | int som=0; for (int x=0; x < 10; x++){ som = som + cijfers[x]; GemLabel.setText(String.valueOf(cijfers[x])); |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |