Ik heb een nieuw 'probleem' weten te creëren. Ik ben bezig met een opdracht van school, waarbij ik priemgetallen moet berekenen. Gezien het verdere verloop van de opdracht is het het handigst om eerst een aantal (zeg 10000) priemgetallen op te slaan in een vector. Dat mag het probleem niet zijn. Wat wèl het probleem is, is de manier waarop ik ze er in wil krijgen. Hier onder de code die ik daarvoor wil gebruiken:
Het probleem is, dat op het moment dat een priemgetal gevonden wordt er niet meteen naar de volgende invoer wordt gegaan, maar verder wordt getest met andere delingen met i. Hierdoor komt de lijst (van nu 10 waarden) er uit te zien als 3 4 5 5 5 6 6 7 7 7.
Het probleem is opgelost als ik zowel bij het ontdekken van een niet-priemgetal als bij een priemgetal de opdracht kan geven deze lus te onderbreken en verder te gaan met de volgende invoer. Als ik een return invoer, wordt meteen alles onderbroken en wordt de vector opgevuld met 0-waarden. Hoe kan ik iets dergelijks toch >>simpel<<
bereiken?
code:
1
2
3
4
5
6
7
8
9
10
11
12
| void Controle::maakRij(){ int j=0; for(invoer=1;invoer<100;invoer++){ for(int i=2;i<invoer;i++){ if(invoer%i<=0){} else{ priemRij[j]=invoer; j++; } } } } |
Het probleem is, dat op het moment dat een priemgetal gevonden wordt er niet meteen naar de volgende invoer wordt gegaan, maar verder wordt getest met andere delingen met i. Hierdoor komt de lijst (van nu 10 waarden) er uit te zien als 3 4 5 5 5 6 6 7 7 7.
Het probleem is opgelost als ik zowel bij het ontdekken van een niet-priemgetal als bij een priemgetal de opdracht kan geven deze lus te onderbreken en verder te gaan met de volgende invoer. Als ik een return invoer, wordt meteen alles onderbroken en wordt de vector opgevuld met 0-waarden. Hoe kan ik iets dergelijks toch >>simpel<<
Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.