iBookG4user
originele poster- 27 juni 2006
- Seattle, WA
- 20 sep 2009
'Schrijf een functie die een array vult met 25 willekeurige getallen tussen 1 en 10. Schrijf vervolgens een functie die de array uitprint. Schrijf wat code in main om je functies te testen. Soms wordt deze testcode een *driver . genoemd
Gebruik hier geen globale variabelen. Geef de array door aan de functie via de parameterlijst'
Mijn huidige code resulteert niet in fouten in de debugger, maar geeft de array niet weer. En ik weet niet wat hij bedoelt met de chauffeur te schrijven, wat moet ik testen? Jullie hebben allemaal bewezen buitengewoon behulpzaam te zijn in het verleden en ik weet zeker dat jullie me deze keer in de goede richting zullen helpen
Code: |_+_|
lee1210
- 10 januari 2005
- Dallas, Texas
- 20 sep 2009
Ook, en ik weet zeker dat het een eerlijke fout is, ik weet zeker dat je professor bedoelde pseudo- willekeurig.
In het algemeen declareert u ook nieuwe double()s, en roept u geen produceren en afdrukken op. Neem de dubbele daar weg, en geef een argument door zoals hierboven besproken, en verander het retourtype van beide in ongeldig.
-Lezen
gnasher729
Opgeschort
- 25 november 2005
- 20 sep 2009
En hoe zou je een aanroep schrijven naar de functie 'produceren'?
En binnen je 'hoofd'-functie, welke van de twee heb je geschreven, een functie-prototype of een functie-aanroep?
iBookG4user
originele poster- 27 juni 2006
- Seattle, WA
- 20 sep 2009
lee1210 zei: Een paar dingen: je array moet van het type int[] zijn, niet double[]. U moet een int-array accepteren om te produceren en af te drukken. U moet een int[] in main declareren, doorgeven om te produceren, het daar invullen en vervolgens doorgeven om af te drukken. De<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Ook, en ik weet zeker dat het een eerlijke fout is, ik weet zeker dat je professor bedoelde pseudo- willekeurig.
In het algemeen declareert u ook nieuwe double()s, en roept u geen produceren en afdrukken op. Neem de dubbele daar weg, en geef een argument door zoals hierboven besproken, en verander het retourtype van beide in ongeldig.
-Lezen
Ok, ik heb de wijzigingen aangebracht die je hebt voorgesteld en de code ziet er logischer uit. Hoewel ik nu drie fouten in de for-lussen krijg.
Code: |_+_|
Bijlagen
lee1210
- 10 januari 2005
- Dallas, Texas
- 20 sep 2009
Ik denk dat het de bedoeling is dat je print terug belt, wat goed zou moeten zijn.
Als u array doorgeeft om te produceren, gebruikt u ook array en niet *array.
-Lezen
iBookG4user
originele poster- 27 juni 2006
- Seattle, WA
- 20 sep 2009
lee1210 zei: Verander het argumenttype van produceren in int[] of int *. Op dit moment is het gewoon int, dus je kunt [] niet gebruiken, enz. Hetzelfde geldt voor printen. Ook hoeft u niets van de productie of bedrukking terug te sturen. Wijzig hun retourtype in ongeldig.
Ik denk dat het de bedoeling is dat je print terug belt, wat goed zou moeten zijn.
Als u array doorgeeft om te produceren, gebruikt u ook array en niet *array.
-Lezen
Het werkte
Weet je wat hij bedoelde met het schrijven van de code om de functies te testen? Wat bedoelt hij daarmee? En heel erg bedankt voor je hulp tot nu toe!
Code: |_+_|
chown33
Moderator
Medewerker- 9 augustus 2009
- het bodemloze vlak
- 20 sep 2009
iBookG4user zei: Weet je wat hij bedoelde met het schrijven van de code om de functies te testen? Wat bedoelt hij daarmee?
Volgens de specificatie moeten de getallen in de array tussen 1 en 10 liggen. Je zou een test kunnen schrijven die dat bevestigt.
Het zei ook dat de cijfers willekeurig moeten zijn. Hoewel willekeur moeilijker te testen kan zijn dan het lijkt, kan eenvoudige niet-willekeurigheid gemakkelijk te testen zijn. De eenvoudigste is om te bevestigen dat niet alle getallen dezelfde waarde hebben. Meer complexe tests van willekeur maken gebruik van statistische analyses.
Een andere test die u kunt schrijven, is om te bevestigen dat de functie produce() elke keer dat deze wordt aangeroepen, verschillende waarden retourneert. Dit is een eenvoudige vorm van statistische analyse, d.w.z. ervoor zorgen dat opeenvolgende aanroepen onafhankelijke resultaten hebben.
U moet ook overwegen de array te initialiseren met bekende ongeldige waarden, zoals -1 of 0, voordat u produce() aanroept. Anders kan een niet-geïnitialiseerde lokale array al onvoorspelbare waarden bevatten, die een test als willekeurig zou kunnen interpreteren, zelfs als produce() helemaal niets doet.
Als specificatie is de werkbeschrijving enigszins vaag. Om te beginnen specificeert het niet welke tests het moet doorstaan. Geloof me, als je het aan de meeste programmeurs overlaat om de kwalificatietests te kiezen, is dat een grote vergissing. De code zou in slechts één geval kunnen werken, wat het geval was dat de programmeur gebruikte om de code te ontwikkelen. Als dat gek lijkt, kan ik je verzekeren dat het is gebeurd.
iBookG4user
originele poster- 27 juni 2006
- Seattle, WA
- 20 sep 2009
Dit werkte een traktatie:
Code: |_+_| S
Schuurmachine
tot
- 24 april 2008
- 21 sep 2009
iBookG4user zei: Dat was eenvoudig genoeg, bedankt!
Dit werkte een traktatie:
Probeer een 'ongeldig' getal in je array te zetten (zeg 11) en kijk of deze functie dat detecteert.
iBookG4user
originele poster- 27 juni 2006
- Seattle, WA
- 21 sep 2009
Sander zei: Probeer een 'ongeldig' getal in je array te zetten (zeg 11) en kijk of deze functie dat detecteert.
Ik heb de array tijdelijk ingesteld om getallen groter dan 10 toe te staan en het heeft het gedetecteerd, bedankt S
Schuurmachine
tot
- 24 april 2008
- 22 sep 2009
iBookG4user zei: ik heb de array tijdelijk ingesteld om getallen groter dan 10 toe te staan en hij heeft het gedetecteerd, bedankt
Zelfs als het niet het eerste element in de array is..?
De reden dat ik het vraag is omdat je print()-functie (tenminste de laatste versie die in deze thread wordt getoond) alleen het eerste element van de array retourneert (geconverteerd naar een dubbele).
Populaire Berichten