Toon posts:

[Java] methode lukt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo

Ik ben bezig met een programeer opdracht en nu moet ik het aantaldeelnemers dat ergens meedoet. omzetten naar een aantal autos dat moet rijden om ze te brengen. In een auto gaan 4 deelnemers. maar nu is het probleem dat als je bijvoorbeeld 9 deelnemers hebt dat je dan 3 autos nodig hebt en verder nu heb ik zelf ok al gebprobeerd maar ik kom er echt nie uit. :(

dit heb ik zelf al gemaakt maar hij klopt nie wie kan me helpen ?

public int getAantalAutos()
{
if(deelnemer % 4 ==0)
{
aantalAutos = deelnemer / 4;
}
else
{
aantalAutos = (deelnemer /4) + 1;
}
return aantalAutos;

}

Verwijderd

Math.floor(deelnemer / 4) ?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Wat klopt er niet aan? Ik kan me inderdaad voorstellen dat je een berg foutmeldingen krijgt waneer je dit probeert te compileren. Je algo is redelijk goed, maar waar haalt ie die verschillende vars vandaan?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Verwijderd schreef op 19 June 2003 @ 14:23:
Math.floor(deelnemer / 4) ?
Denk dat je eerder de ceil functie moet gebruiken. Maar ik denk dat je de topic starter hier niet echt mee helpt. Het is waarschijnlijk een opdracht voor school en het doel daarvan is om te leren. Tuurlijk kunnen we hier wel helpen als de topic starter duidelijk aangeeft wat zijn probleem is/ wat hij niet snapt

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 19 juni 2003 @ 14:23:
Math.floor(deelnemer / 4) ?
Hoe wil jij een integer gaan round-downen? Volgens mij zul je dan eerst deelnemer naar een double moeten casten en dan ceil() doen ipv floor() (anders heb je bij 3 pers 0 auto's nodig?)

Maar wat gaat er mis dan TS? Geef es foutmeldingen. Ik zie niet in wat er fout gaat in het algoritme?

  • ANdrode
  • Registratie: Februari 2003
  • Niet online
deelnemer is een int, een int [mathematische operator] int, levert weer een int op.
Deze code levert dus altijd of één auto te weinig, of één te veel.

een simpele code is trouwens gewoon het naar boven afronden van het aantal auto's. Een geheel aantal auto's dat nodig is blijft dan namelijk gewoon hetzelfde, en als het groter wordt dan wordt het groter.
Nodig daarvoor:
- een floating point waarde ipv een int.
- Een functie die naar boven afrond, lees de manual daarvoor maar, of lees ff een post hierboven.

edit:
Had de code dus ff niet gelezen :o en hij bleek dus % te gebruiken, die wel ints uitspuugt dacht ik.

[ Voor 33% gewijzigd door ANdrode op 19-06-2003 14:35 ]


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Glimi schreef op 19 June 2003 @ 14:29:
[...]

Hoe wil jij een integer gaan round-downen? Volgens mij zul je dan eerst deelnemer naar een double moeten casten en dan ceil() doen ipv floor() (anders heb je bij 3 pers 0 auto's nodig?)

Maar wat gaat er mis dan TS? Geef es foutmeldingen. Ik zie niet in wat er fout gaat in het algoritme?
Je weet niet zeker of het een int is :p mischien is deelnemer wel een double ;)

[ Voor 3% gewijzigd door Woy op 19-06-2003 14:35 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Topicstarter
het zij allemaal ints die ik gebruik en het probleem dat ik heb is dat ik nie weet hoe ik het moet aanpakken als int deelnemers 6 is bijvoorbeeld en dan deel je door 4 dan krijg je als antwoord in een int 1.5 dat hoe moet ik dat dan aanpaken ?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
rwb schreef op 19 June 2003 @ 14:35:
Je weet niet zeker of het een int is :p mischien is deelnemer wel een double ;)
Op een of andere manier verwacht ik geen deelnemers achter de komma :P

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 17-08 23:56

Janoz

Moderator Devschuur®

!litemod

Euhm.. Al wel iets geprobeert?

In een int kan natuurlijk nooit een float komen. In die int komt gewoon 1 terecht en aangezien 6 mod 4 geen 0 is wordt er 1 bijopgeteld. Je algo is dus in principe goed.

Nogmaals: Wat lukt dan niet?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

rwb schreef op 19 June 2003 @ 14:35:
[...]


Je weet niet zeker of het een int is :p mischien is deelnemer wel een double ;)
als het een double was dan moest er gecast worden naar int, aangezien dat de return type is ;)

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Verwijderd schreef op 19 juni 2003 @ 14:39:
het zij allemaal ints die ik gebruik en het probleem dat ik heb is dat ik nie weet hoe ik het moet aanpakken als int deelnemers 6 is bijvoorbeeld en dan deel je door 4 dan krijg je als antwoord in een int 1.5 dat hoe moet ik dat dan aanpaken ?
Volgens mij heb je geen flauw idee wat ints zijn en wat / en % doen.
Misschien toch maar beginnen bij het begin: http://java.sun.com/docs/...tsandbolts/datatypes.html

Verwijderd

Topicstarter
wat nie lukt is dat het nie werkt als ik em compile dan geeft hij niet de goede waarde kijk ik heb een class met daarin een matrix die haal ik op en ik haal de aantalautos op die bereken weer in een andere klasse en daar gaat het mis en volgens mij licht het aan die getAutos methode


CursusPlaatsApplet
|
|
Bedrijf
| |
| Plaats hier staat de getAutos methode
|
|
AfstandTabel

Verwijderd

Het kan ook zonder if statement.

return (aantalMensen + aantalMensenPerAuto - 1) / aantalMensenPerAuto

Verwijderd

Verwijderd schreef op 19 June 2003 @ 14:21:
hallo

Ik ben bezig met een programeer opdracht en nu moet ik het aantaldeelnemers dat ergens meedoet. omzetten naar een aantal autos dat moet rijden om ze te brengen. In een auto gaan 4 deelnemers. maar nu is het probleem dat als je bijvoorbeeld 9 deelnemers hebt dat je dan 3 autos nodig hebt en verder nu heb ik zelf ok al gebprobeerd maar ik kom er echt nie uit. :(

dit heb ik zelf al gemaakt maar hij klopt nie wie kan me helpen ?

public int getAantalAutos()
{
if(deelnemer % 4 ==0)
{
aantalAutos = deelnemer / 4;
}
else
{
aantalAutos = (deelnemer /4) + 1;
}
return aantalAutos;

}
Het klopt toch ook dat je voor 9 deelnemers 3 auto's nodig hebt...?
Wat is het probleem ?

Verwijderd

Topicstarter
ik weet het nie meer ik denk dat het nie aan die getAutos methode ligt dan ik zal verder zoeken

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Erkens schreef op 19 juni 2003 @ 14:43:
[...]

als het een double was dan moest er gecast worden naar int, aangezien dat de return type is ;)
Mischien was dat het probleem wel :p
ik weet het nie meer ik denk dat het nie aan die getAutos methode ligt dan ik zal verder zoeken
Dat is toch niet zo moeilijk te testen. Roep de functie gewoon met een aantal waarden aan en kijk of er de goed antwoorden uit komen?

[ Voor 35% gewijzigd door Woy op 19-06-2003 15:00 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”

Pagina: 1