🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: nl.comp.programmeren
6 messages
6 total messages Started by Passero Mon, 17 May 2004 13:43
hulp gevraagd voor een methode.
#443
Author: Passero
Date: Mon, 17 May 2004 13:43
42 lines
2706 bytes
Voor een programma in java moet ik een quiz maken. Het is een quiz die
vragen stelt over klimatogrammen. Die klimatogrammen zitten in onze
database. Alles wordt @ random gegenereerd. Je kan altijd kiezen tussen 3
antwoorden. Ik zit met het probleem dat wanneer ik de 2 foutieve antwoorden
genereer, ze niet altijd verschillend zijn. Ik had eens geprobeerd om de
testen of de 2 antwoorden gelijk zijn en om zo met een while te werken maar
het loopt altijd vast. Ik heb die code nu verwijderd dus die methode kan ik
niet meer tonen :s. Ik kan wel de methode geven die niet controlleerd of er
dubbele zijn. Kan iemand mij daarin helpen?

private void maakNeerslagAntwoord()
    {
      String temp;
      double waarde;
      antwoorden = new String[2];
      boolean test = false;
      for(int i = 0; i < 2;i++)
      {
        test=false;
        while (test == false)
        {
          temp = Maanden.getRandomMaand();
          if (!temp.equals(maand))
          {
            waarde = gegevens.geefNeerslag(Maanden.geefMaandNummer(temp));
            antwoorden[i] = Double.toString(waarde);
            test = true;
          }
        }
      }
    }

Maanden.getRandomMaand(); is een methode die een string teruggeeft die een
naam van een maand is. de methode geefNeerslag gaat gewoon de
neerslaghoeveelheid halen uit een bepaalde klimatogram. Ik denk dat de rest
duidelijk is.


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.600 / Virus Database: 381 - Release Date: 28/02/2004
Re: hulp gevraagd voor een methode.
#444
Author: Dr.Ruud
Date: Mon, 17 May 2004 14:01
13 lines
1509 bytes
Toen ik Passero kietelde, kwam er dit uit:

> Outgoing mail is certified Virus Free.
> Checked by <ontspamd> anti-virus system (<ontspamd>).
> Version: 6.0.600 / Virus Database: 381 - Release Date: 28/02/2004

Deze reactie is gegarandeerd zonder bijbedoelingen.

-- 
Affijn, Ruud   `  -  ?
               + ` ? *
                 ? `
               ?  =  `
Re: hulp gevraagd voor een methode.
#445
Author: Sander Bruggink
Date: Mon, 17 May 2004 14:16
27 lines
2132 bytes
Passero wrote:
[knip]
> Ik had eens geprobeerd om de
> testen of de 2 antwoorden gelijk zijn en om zo met een while te werken maar
> het loopt altijd vast. Ik heb die code nu verwijderd dus die methode kan ik
> niet meer tonen :s. 

Ik denk dat dat toch de eenvoudigste manier is om het op te lossen. Om 
te voorkomen dat het ooit oneindig kan loopen, zou je ervoor kunnen 
kiezen de maand van het tweede antwoord gewoon met een op te hogen als 
hij hetzelfde is als het eerste antwoord, in plaats van steeds opnieuw 
random maanden te genereren.

> 
> private void maakNeerslagAntwoord()
>     {
[knip]
>     }
> 

Verder nog de volgende opmerking over je methode: het is mogelijk om een 
waarde terug te geven. In dit geval zou ik er geen returntype "void" 
kiezen, maar bijvoorbeeld die lijst met foute antwoorden teruggeven 
i.p.v. ze in een globale variabele te zetten.

groente
-- Sander
Re: hulp gevraagd voor een methode.
#432
Author: Joz
Date: Mon, 17 May 2004 14:46
16 lines
1871 bytes
Dr.Ruud heeft ons zojuist aangekondigd :
> Toen ik Passero kietelde, kwam er dit uit:
>
>> Outgoing mail is certified Virus Free.
>> Checked by <ontspamd> anti-virus system (<ontspamd>).
>> Version: 6.0.600 / Virus Database: 381 - Release Date: 28/02/2004
>
> Deze reactie is gegarandeerd zonder bijbedoelingen.

Welke mail zou ie bedoelen?

-- 
Joz  - jvd_609 [at] hotmail [dot] com
http://www.josvandijken.tk - ftp://jvd.no-ip.info:27015
ftp info: http://www.jvd-ftp.tk
Let op: spamblock!
Re: hulp gevraagd voor een methode.
#433
Author: Kristoffel
Date: Mon, 17 May 2004 17:41
86 lines
4167 bytes
Passero wrote:
> Voor een programma in java moet ik een quiz maken. Het is een quiz die
> vragen stelt over klimatogrammen. Die klimatogrammen zitten in onze
> database. Alles wordt @ random gegenereerd. Je kan altijd kiezen tussen 3
> antwoorden. Ik zit met het probleem dat wanneer ik de 2 foutieve antwoorden
> genereer, ze niet altijd verschillend zijn. Ik had eens geprobeerd om de
> testen of de 2 antwoorden gelijk zijn en om zo met een while te werken maar
> het loopt altijd vast. Ik heb die code nu verwijderd dus die methode kan ik
> niet meer tonen :s. Ik kan wel de methode geven die niet controlleerd of er
> dubbele zijn. Kan iemand mij daarin helpen?
> 
> private void maakNeerslagAntwoord()
>     {
>       String temp;
>       double waarde;
>       antwoorden = new String[2];
>       boolean test = false;
>       for(int i = 0; i < 2;i++)
>       {
>         test=false;
>         while (test == false)
>         {
>           temp = Maanden.getRandomMaand();
>           if (!temp.equals(maand))
>           {
>             waarde = gegevens.geefNeerslag(Maanden.geefMaandNummer(temp));
>             antwoorden[i] = Double.toString(waarde);
>             test = true;
>           }
>         }
>       }
>     }
> 
> Maanden.getRandomMaand(); is een methode die een string teruggeeft die een
> naam van een maand is. de methode geefNeerslag gaat gewoon de
> neerslaghoeveelheid halen uit een bepaalde klimatogram. Ik denk dat de rest
> duidelijk is.
> 

private void maakNeerslagAntwoord()
     {
       String temp;
       double waarde;
       antwoorden = new String[2];
       String randomMaand = null;
//      boolean test = false;
       for(int i = 0; i < 2;i++)
       {
         while (!(temp = Maanden.getRandomMaand()).equals(randomMaand)) {
           waarde = gevens.geefNeerslag(Maanden.geefMaandNummer(temp));
           antwoorden[i] = Double.toString(waarde);
           randomMaand = temp;
	  break;
         }
       }
     }


Als je niet het risico wilt lopen dat 'getRandomMaand' steeds dezelfde 
maand teruggeeft (en dit gedurende enkele seconden) kies dan voor de 
oplossing van Sander Bruggink:
private void maakNeerslagAntwoord()
     {
       String temp;
       double waarde;
       antwoorden = new String[2];
       String randomMaand = null;
//      boolean test = false;
       for(int i = 0; i < 2;i++)
       {
         if (!(temp = Maanden.getRandomMaand()).equals(randomMaand)) {
           randomMaand = temp;
         } else {
	  int maandNr = Maanden.geefMaandNummer (temp) + 1;
	  temp = Maanden.geefMaandNaam(((maandNr == 13) ? 1 : maandNr));
	}
         waarde = gevens.geefNeerslag(Maanden.geefMaandNummer(temp));
         antwoorden[i] = Double.toString(waarde);
       }
     }

Ik vermoed dat je wel een methode 'geefMaandNaam (int i)' zult hebben. 
Als januari de maandnummer nul is, moet je de code aanpassen.

-- 
  Kristoffel
Re: hulp gevraagd voor een methode.
#434
Author: Suzan Foster
Date: Mon, 17 May 2004 19:32
56 lines
3123 bytes
Passero wrote:

> Voor een programma in java moet ik een quiz maken. Het is een quiz die
> vragen stelt over klimatogrammen. Die klimatogrammen zitten in onze
> database. Alles wordt @ random gegenereerd. Je kan altijd kiezen tussen 3
> antwoorden. Ik zit met het probleem dat wanneer ik de 2 foutieve antwoorden
> genereer, ze niet altijd verschillend zijn. Ik had eens geprobeerd om de
> testen of de 2 antwoorden gelijk zijn en om zo met een while te werken maar
> het loopt altijd vast. Ik heb die code nu verwijderd dus die methode kan ik
> niet meer tonen :s. Ik kan wel de methode geven die niet controlleerd of er
> dubbele zijn. Kan iemand mij daarin helpen?
> 
> private void maakNeerslagAntwoord()
>     {
>       String temp;
>       double waarde;
>       antwoorden = new String[2];
>       boolean test = false;
>       for(int i = 0; i < 2;i++)
>       {
>         test=false;
>         while (test == false)
>         {
>           temp = Maanden.getRandomMaand();
>           if (!temp.equals(maand))
>           {
>             waarde = gegevens.geefNeerslag(Maanden.geefMaandNummer(temp));
>             antwoorden[i] = Double.toString(waarde);
>             test = true;
>           }
>         }
>       }
>     }
> 
> Maanden.getRandomMaand(); is een methode die een string teruggeeft die een
> naam van een maand is. de methode geefNeerslag gaat gewoon de
> neerslaghoeveelheid halen uit een bepaalde klimatogram. Ik denk dat de rest
> duidelijk is.

grappig dat deze algoritme de groep blijft spoken.
<3fc0f35a$0$28299$ba620e4c@reader1.news.skynet.be> 

maar in principe zit je fout bij je Maanden class. probeer het eens door 
een iterator te implementeren, dan wordt je code:

Iterator it = Months.getRandomMonthIterator();

for (int i=0; i<2; i++) {
   Month month = it.next();
   ...

}

groetjes, su.
-- 
en dat nengels gedoe ziet er niet uit
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads