Een opdracht voor school - Breuken

Status
Niet open voor verdere reacties.

Lauriepaurie

Nieuwe gebruiker
Lid geworden
29 nov 2010
Berichten
2
Ik heb de volgende programmeeropdracht gekregen. Het is de eerste opdracht en ook de eerste keer dat ik programmeer. Ik zou niet goed weten hoe ik het moet oplossen.
De opdracht is:

Schijf een programma Breuken dat de volgende twee methoden heeft:
Een methode gemiddeld(int x1,int x2,int x3,int x4,int x5,int x6,int x7,int x8) die van 8 gehele (niet negatieve) getallen:
het gemiddelde berekent en afdrukt, als een vereenvoudigde breuk. D.w.z. als de som van de 8 getallen 3 is, dan dient er 3/8 afgedrukt te worden, maar als de som van de 8 getallen 16 is dan dient er 2 afgedrukt te worden.

Tot nu toe heb ik:
class Breuken {
public static void main(String args[]) {
int x1 = 1;
int x2 = 1;
int x3 = 1;
int x4 = 1;
int x5 = 1;
int x6 = 1;
int x7 = 1;
int x8 = 1;
double gemiddelde;
gemiddelde =((x1 + x2+ x3 + x4 + x5 + x6 + x7 + x8)/8);
System.out.println(gemiddelde);
}
}

Ik weet niet hoe ik:
- ervoor zorgt dat alle getallen van 1 tot en met ... minstens 100 aan bod komen (hoe het programma die allemaal langsgaat)
- ervoor zorgt dat 'gemiddelde' als breuk wordt afgedrukt en niet bvb zo: 1.8

Zou iemand hier iets op weten?

Alvast bedankt,

Lauren
 
Voor het doorlopen van een groot aantal kan je een For of een while loop gebruiken.
Voorbeeld Forloop: http://mindprod.com/jgloss/forloop.html
Voorbeeld whileloop: http://www.video-animation.com/java_004.shtml
beide zijn in het engels.

Voor het laten weergeven van de breuk zal je zelf eerst moeten kijken of je som van de getallen gedeeld kan worden door het aantal getallen zonder dat er een rest overblijft. Als dat het geval is, dan kan je de uitkomt laten zien.

Mocht er wel een rest overblijven, dan kan je dat vervolgens via een string weergeven als: "uitkomst rest/aantalGetallen"

dus als je een totaal opgeteld hebt van 17 en je aantal getallen is 8
Dan is je uitkomst 2, rest is 1

Krijg je vervolgens een string die er als volgt uitziet: "2 1/8"
 
Laatst bewerkt:
Dankjewel!
Ik snap nu inderdaad wat een for- en while-loop zijn. Echter het probleem hier is dat ik 8 variabelen heb. Weet jij (of iemand anders) misschien hoe je er voor kan zorgen dat al die getallen allemaal in een while loop kunnen.
1 variabele erin zetten zou er zo uitzien:

class Breukentestje {
public static void main(String args[]) {
int x1 = 1;
while (x1<10) {
System.out.print(x1);
x1 = x1 + 1;
}
}
}

Maar hoe doe je dit voor acht variabelen terwijl je vervolgens het gemiddelde berekent?

Alvast bedankt,

Lauren
 
om ze allemaal eenvoudig te gebruiken kan je ze in een array zetten.
Dan heb je eigenlijk 1 variabele, met een X aantal waardes

Code:
private int[] intArray = new int[8];

Zo maak je een array van 8 lang.
Deze kan je vullen doormiddel van een for/while loop

Code:
for(int i = 0; i < intArray-1; i++){
  intArray[i] = 1;
}

De -1 is omdat een array op 0 begint en de lengte van de array 8 is.
zou je de -1 niet doen, dan zal je een nullpointerexception krijgen omdat intArray[8] niet bestaat. Alleen maar 0, 1, 2, 3, 4, 5, 6, 7
 
om ze allemaal eenvoudig te gebruiken kan je ze in een array zetten.
Dan heb je eigenlijk 1 variabele, met een X aantal waardes

Code:
private int[] intArray = new int[8];

Zo maak je een array van 8 lang.
Deze kan je vullen doormiddel van een for/while loop

Code:
for(int i = 0; i < intArray-1; i++){
  intArray[i] = 1;
}

De -1 is omdat een array op 0 begint en de lengte van de array 8 is.
zou je de -1 niet doen, dan zal je een nullpointerexception krijgen omdat intArray[8] niet bestaat. Alleen maar 0, 1, 2, 3, 4, 5, 6, 7
Toch even reageren omdat hier toch een fout is ingeslopen, het moet zijn:
Code:
for(int i = 0; i < intArray.length; i++){
     intArray[i] = 1;
}
en het is niet nodig om -1 te doen omdat i begint bij 0 en kleiner moet zijn dan 8 om de for-loop door te lopen.
 
Je hebt gelijk. Was een standaard voorbeeld wat ik gebruikte maar in het verleden blijkbaar niet aangepast heb, op de locatie waar ik het had staan, toen ik de fout zelf ook zag :o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan