iBookG4user
Originalaffisch- 27 juni 2006
- Seattle, WA
- 20 september 2009
'Skriv en funktion som kommer att fylla en array med 25 slumptal mellan 1 och 10. Skriv sedan en funktion som kommer att skriva ut arrayen. Skriv lite kod i main för att testa dina funktioner. Ibland kallas denna testkod en *drivrutin
Använd inte globala variabler här. Skicka arrayen till funktionen genom parameterlistan'
Min nuvarande kod resulterar inte i några fel i debuggern, men den matar inte ut arrayen. Och jag vet inte vad han menar med att skriva föraren, vad ska jag testa? Ni har alla visat sig vara oerhört hjälpsamma tidigare och jag är säker på att ni kommer att hjälpa mig att peka i rätt riktning den här gången
Kod: |_+_|
lee1210
- 10 januari 2005
- Dallas, TX
- 20 september 2009
Dessutom, och jag är säker på att det är ett ärligt misstag, är jag säker på att din professor menade pseudo- slumpmässig.
Dessutom deklarerar du i huvudsak nya double()s, utan åberopar produktion och tryck. Ta bort dubbeln där, och skicka in ett argument som diskuterats ovan, och ändra returtypen för båda dessa till void.
-Läsa
gnasher729
Upphängd
- 25 november 2005
- 20 september 2009
Och hur skulle du skriva ett anrop till funktionen 'producera'?
Och inuti din 'huvudfunktion', vilken av de två har du skrivit, en funktionsprototyp eller ett funktionsanrop?
iBookG4user
Originalaffisch- 27 juni 2006
- Seattle, WA
- 20 september 2009
lee1210 sa: Några saker: Din array ska vara av typen int[], inte dubbel[]. Du måste acceptera en int-array för att producera och skriva ut. Du måste deklarera en int[] i main, skicka den för att producera, fylla i den där och sedan skicka den till utskrift. De<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Dessutom, och jag är säker på att det är ett ärligt misstag, är jag säker på att din professor menade pseudo- slumpmässig.
Dessutom deklarerar du i huvudsak nya double()s, utan åberopar produktion och tryck. Ta bort dubbeln där, och skicka in ett argument som diskuterats ovan, och ändra returtypen för båda dessa till void.
-Läsa
Ok, jag gjorde ändringarna som du föreslog och koden ser mer logisk ut. Fast nu får jag tre fel i for-slingorna.
Kod: |_+_|
Bilagor
lee1210
- 10 januari 2005
- Dallas, TX
- 20 september 2009
Jag tror att avsikten är att du ska ringa print tillbaka i main, vilket borde vara bra.
Dessutom, när du skickar array för att producera, använd bara array inte *array.
-Läsa
iBookG4user
Originalaffisch- 27 juni 2006
- Seattle, WA
- 20 september 2009
lee1210 sa: Ändra argumenttypen för producera till int[] eller int *. Just nu är det bara int, så du kan inte använda [], etc. Detsamma gäller tryck. Dessutom behöver du inte returnera något från produktion eller tryck. Ändra deras returtyp till ogiltig.
Jag tror att avsikten är att du ska ringa print tillbaka i main, vilket borde vara bra.
Dessutom, när du skickar array för att producera, använd bara array inte *array.
-Läsa
Det fungerade
Vet du vad han menade med att skriva koden för att testa funktionerna? Vad menar han med det? Och tack så mycket för din hjälp så här långt!
Kod: |_+_|
chown33
Moderator
Anställd- 9 augusti 2009
- det avgrundsdjupa planet
- 20 september 2009
iBookG4user sa: Vet du vad han menade med att skriva koden för att testa funktionerna? Vad menar han med det?
Specifikationen sa att siffrorna i arrayen skulle vara mellan 1 och 10. Du kan skriva ett test som bekräftar det.
Det stod också att siffrorna skulle vara slumpmässiga. Även om slumpmässighet kan vara svårare att testa än det verkar, kan enkel icke-slumpmässighet vara lätt att testa. Det enklaste är att bekräfta att alla siffror inte har samma värde. Mer komplexa tester av slumpmässighet använder statistiska analyser.
Ett annat test du kan skriva är att bekräfta att funktionen produce() returnerar olika värden varje gång den anropas. Detta är en enkel form av statistisk analys, det vill säga att säkerställa att på varandra följande anrop har oberoende resultat.
Du bör också överväga att initiera arrayen med kända ogiltiga värden, såsom -1 eller 0, innan du anropar produce(). Annars kan en oinitierad lokal array redan innehålla oförutsägbara värden, som ett test kan tolka som slumpmässigt även om produce() inte gör något alls.
Som en specifikation är arbetsbeskrivningen något vag. För det första anger den inte vilka tester den måste klara. Tro mig, om du överlåter till de flesta programmerare att välja kvalifikationstester är det ett stort misstag. Koden kanske bara fungerar i ett fall, vilket var fallet som programmeraren använde för att utveckla koden. Om det verkar galet kan jag försäkra dig om att det har hänt.
iBookG4user
Originalaffisch- 27 juni 2006
- Seattle, WA
- 20 september 2009
Detta fungerade en njutning:
Kod: |_+_| S
Sander
till
- 24 april 2008
- 21 september 2009
iBookG4user sa: Det var enkelt nog, tack!
Detta fungerade en njutning:
Försök att sätta ett 'ogiltigt' nummer i din array (säg 11) och se om den här funktionen upptäcker det.
iBookG4user
Originalaffisch- 27 juni 2006
- Seattle, WA
- 21 september 2009
Sander sa: Försök att sätta ett 'ogiltigt' nummer i din array (säg 11) och se om den här funktionen upptäcker det.
Jag ställde tillfälligt in arrayen för att tillåta nummer större än 10 och den upptäckte det, tack S
Sander
till
- 24 april 2008
- 22 september 2009
iBookG4user sa: Jag ställde tillfälligt in arrayen för att tillåta nummer större än 10 och den upptäckte det, tack
Även om det inte är det första elementet i arrayen..?
Anledningen till att jag frågar är att din print()-funktion (åtminstone den senaste versionen som visas i den här tråden) endast returnerar det första elementet i arrayen (konverterat till en dubbel).
Populära Inlägg