iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
'Skriv en funksjon som vil fylle en matrise med 25 tilfeldige tall mellom 1 og 10. Skriv deretter en funksjon som vil skrive ut matrisen. Skriv litt kode i hovedfor å teste funksjonene dine. Noen ganger kalles denne testkoden en *driver
Ikke bruk globale variabler her. Send matrisen til funksjonen gjennom parameterlisten'
Min nåværende kode resulterer ikke i noen feil i debuggeren, men den sender ikke ut matrisen. Og jeg vet ikke hva han mener med å skrive sjåføren, hva skal jeg teste? Dere har alle vist seg å være svært hjelpsomme tidligere, og jeg er sikker på at dere vil hjelpe meg i riktig retning denne gangen
Kode: |_+_|
lee1210
- 10. januar 2005
- Dallas, TX
- 20. september 2009
Også, og jeg er sikker på at det er en ærlig feil, er jeg sikker på at professoren din mente det pseudo- tilfeldig.
I hovedsak erklærer du nye doble()-er, ikke påkaller produksjon og trykk. Ta dobbelen bort der, og send inn et argument som diskutert ovenfor, og endre returtypen for begge disse til void.
-Lese
gnasher729
Suspendert
- 25. november 2005
- 20. september 2009
Og hvordan vil du skrive et kall til funksjonen 'produser'?
Og inne i 'hovedfunksjonen' din, hvilken av de to har du skrevet, en funksjonsprototype eller et funksjonskall?
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
lee1210 sa: Et par ting: Matrisen din bør være av typen int[], ikke double[]. Du må godta en int-array for å produsere og skrive ut. Du må deklarere en int[] i main, gi den til å produsere, fylle den inn der og sende den til utskrift. De<< 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 feil, er jeg sikker på at professoren din mente det pseudo- tilfeldig.
I hovedsak erklærer du nye doble()-er, ikke påkaller produksjon og trykk. Ta dobbelen bort der, og send inn et argument som diskutert ovenfor, og endre returtypen for begge disse til void.
-Lese
Ok, jeg gjorde endringene du foreslo, og koden ser mer logisk ut. Selv om jeg nå får tre feil i for-løkkene.
Kode: |_+_|
Vedlegg
lee1210
- 10. januar 2005
- Dallas, TX
- 20. september 2009
Jeg tror hensikten er at du skal ringe print tilbake i main, noe som burde være greit.
Også, når du sender array for å produsere, bare bruk array ikke *array.
-Lese
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
lee1210 sa: Endre argumenttypen for produksjon til int[] eller int *. Akkurat nå er det bare int, så du kan ikke bruke [], osv. Det samme gjelder print. Du trenger heller ikke returnere noe fra produksjon eller trykk. Endre returtypen til ugyldig.
Jeg tror hensikten er at du skal ringe print tilbake i main, noe som burde være greit.
Også, når du sender array for å produsere, bare bruk array ikke *array.
-Lese
Det funket
Nå, vet du hva han mente med å skrive koden for å teste funksjonene? Hva mener han med det? Og tusen takk for hjelpen så langt!
Kode: |_+_|
chown33
Moderator
Betjeningen- 9. august 2009
- det dype planet
- 20. september 2009
iBookG4user sa: Nå, vet du hva han mente med å skrive koden for å teste funksjonene? Hva mener han med det?
Spesifikasjonen sa at tallene i arrayet skulle være mellom 1 og 10. Du kan skrive en test som bekrefter det.
Den sa også at tallene skulle være tilfeldige. Mens tilfeldighet kan være vanskeligere å teste for enn det ser ut til, kan enkel ikke-tilfeldighet være lett å teste for. Det enkleste er å bekrefte at alle tallene ikke har samme verdi. Mer komplekse tester av tilfeldighet bruker statistiske analyser.
En annen test du kan skrive er å bekrefte at produce()-funksjonen returnerer forskjellige verdier hver gang den kalles. Dette er en enkel form for statistisk analyse, det vil si å sikre at påfølgende påkallinger har uavhengige resultater.
Du bør også vurdere å initialisere matrisen med kjente ugyldige verdier, for eksempel -1 eller 0, før du kaller produce(). Ellers kan en uinitialisert lokal matrise allerede inneholde uforutsigbare verdier, som en test kan tolke som tilfeldig selv om produce() ikke gjør noe i det hele tatt.
Som en spesifikasjon er arbeidsoppgaven noe vag. For det første spesifiserer den ikke hvilke tester den må bestå. Tro meg, hvis du overlater til de fleste programmerere å velge kvalifikasjonstestene, er det en stor feil. Koden kan fungere i bare ett tilfelle, som var tilfellet programmereren brukte til å utvikle koden. Hvis det virker sprøtt, kan jeg forsikre deg om at det har skjedd.
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 20. september 2009
Dette fungerte en godbit:
Kode: |_+_| S
Sander
til
- 24. april 2008
- 21. september 2009
iBookG4user sa: Det var enkelt nok, takk!
Dette fungerte en godbit:
Prøv å sette et 'ugyldig' tall i matrisen din (f.eks. 11) og se om denne funksjonen oppdager det.
iBookG4user
Original plakat- 27. juni 2006
- Seattle, WA
- 21. september 2009
Sander sa: Prøv å sette inn et 'ugyldig' nummer i matrisen din (f.eks. 11) og se om denne funksjonen oppdager det.
Jeg satte arrayet midlertidig til å tillate tall større enn 10, og det oppdaget det, takk S
Sander
til
- 24. april 2008
- 22. september 2009
iBookG4user sa: Jeg satte arrayet midlertidig til å tillate tall større enn 10, og det oppdaget det, takk
Selv om det ikke er det første elementet i matrisen..?
Grunnen til at jeg spør er fordi print()-funksjonen din (minst den siste versjonen vist i denne tråden) bare returnerer det første elementet i matrisen (konvertert til en dobbel).
Populære Innlegg