iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
'Skriv en funktion, der vil fylde et array med 25 tilfældige tal mellem 1 og 10. Skriv derefter en funktion, der vil udskrive arrayet. Skriv noget kode i main for at teste dine funktioner. Nogle gange kaldes denne testkode en *driver
Brug ikke globale variabler her. Send arrayet til funktionen gennem parameterlisten'
Min nuværende kode resulterer ikke i nogen fejl i debuggeren, men den udsender ikke arrayet. Og jeg ved ikke, hvad han mener med at skrive til chaufføren, hvad skal jeg teste? I har alle vist sig at være yderst hjælpsomme i fortiden, og jeg er sikker på, at I vil hjælpe mig i den rigtige retning denne gang
Kode: |_+_|
lee1210
- 10. januar 2005
- Dallas, TX
- 20. september 2009
Også, og jeg er sikker på, at det er en ærlig fejl, er jeg sikker på, at din professor mente det pseudo- tilfældig.
I hovedsagen erklærer du også nye double()s, og påberåber dig ikke produktion og print. Tag det dobbelte væk der, og send et argument som diskuteret ovenfor, og skift returtypen for begge disse til void.
-Læs
gnasher729
Suspenderet
- 25. november 2005
- 20. september 2009
Og hvordan ville du skrive et kald til funktionen 'producer'?
Og inde i din 'hovedfunktion', hvilken af de to har du skrevet, en funktionsprototype eller et funktionskald?
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
lee1210 sagde: Et par ting: Dit array skal være af typen int[], ikke double[]. Du skal acceptere en int-array for at producere og printe. Du skal erklære en int[] i main, videregive den til at producere, udfylde den der og derefter sende den til print. Det<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Også, og jeg er sikker på, at det er en ærlig fejl, er jeg sikker på, at din professor mente det pseudo- tilfældig.
I hovedsagen erklærer du også nye double()s, og påberåber dig ikke produktion og print. Tag det dobbelte væk der, og send et argument som diskuteret ovenfor, og skift returtypen for begge disse til void.
-Læs
Ok, jeg lavede de ændringer, du foreslog, og koden ser mere logisk ud. Selvom jeg nu får tre fejl i for-løkkerne.
Kode: |_+_|
Vedhæftede filer
lee1210
- 10. januar 2005
- Dallas, TX
- 20. september 2009
Jeg tror, at hensigten er, at du ringer print tilbage i hovedet, hvilket burde være fint.
Også, når du sender array til at producere, skal du bare bruge array ikke *array.
-Læs
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
lee1210 sagde: Skift argumenttypen for producere til int[] eller int *. Lige nu er det bare int, så du kan ikke bruge [], osv. Det samme gælder print. Du behøver heller ikke returnere noget fra produktion eller tryk. Skift deres returtype til ugyldig.
Jeg tror, at hensigten er, at du ringer print tilbage i hovedet, hvilket burde være fint.
Også, når du sender array til at producere, skal du bare bruge array ikke *array.
-Læs
Det virkede
Ved du nu, hvad han mente med at skrive koden for at teste funktionerne? Hvad mener han med det? Og mange tak for din hjælp indtil videre!
Kode: |_+_|
chown33
Moderator
Medarbejder- 9. august 2009
- det afgrundsdybe plan
- 20. september 2009
iBookG4user sagde: Ved du nu, hvad han mente med at skrive koden for at teste funktionerne? Hvad mener han med det?
Specifikationen sagde, at tallene i arrayet skulle være mellem 1 og 10. Du kunne skrive en test, der bekræfter det.
Den sagde også, at tallene skulle være tilfældige. Mens tilfældighed kan være sværere at teste for, end det ser ud til, kan simpel ikke-tilfældighed være let at teste for. Det enkleste er at bekræfte, at alle tallene ikke har samme værdi. Mere komplekse test af tilfældighed bruger statistiske analyser.
En anden test, du kan skrive, er at bekræfte, at funktionen produce() returnerer forskellige værdier, hver gang den kaldes. Dette er en simpel form for statistisk analyse, dvs. at sikre, at fortløbende påkald har uafhængige resultater.
Du bør også overveje at initialisere arrayet med kendte ugyldige værdier, såsom -1 eller 0, før du kalder produce(). Ellers kan et ikke-initialiseret lokalt array allerede indeholde uforudsigelige værdier, som en test kunne fortolke som tilfældige, selvom producere() slet ikke gør noget.
Som en specifikation er arbejdsopgørelsen noget vag. For det første specificerer den ikke, hvilke prøver den skal bestå. Tro mig, hvis du overlader det til de fleste programmører at vælge kvalifikationsprøverne, er det en stor fejltagelse. Koden fungerer muligvis kun i ét tilfælde, hvilket var tilfældet, som programmøren brugte til at udvikle koden. Hvis det virker skørt, kan jeg forsikre dig om, at det er sket.
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
Dette virkede en godbid:
Kode: |_+_| S
Sander
til
- 24. april 2008
- 21. september 2009
iBookG4user sagde: Det var simpelt nok, tak!
Dette virkede en godbid:
Prøv at sætte et 'ugyldigt' tal i dit array (f.eks. 11), og se om denne funktion registrerer det.
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 21. september 2009
Sander sagde: Prøv at sætte et 'ugyldigt' tal i dit array (f.eks. 11) og se om denne funktion registrerer det.
Jeg indstillede midlertidigt arrayet til at tillade tal større end 10, og det opdagede det, tak S
Sander
til
- 24. april 2008
- 22. september 2009
iBookG4user sagde: Jeg indstillede midlertidigt arrayet til at tillade tal større end 10, og det registrerede det, tak
Selvom det ikke er det første element i arrayet..?
Grunden til at jeg spørger er fordi din print() funktion (i det mindste den sidste version vist i denne tråd) kun returnerer det første element i arrayet (konverteret til en dobbelt).
Populære Indlæg