Drugo

Mac C++ nizi in naključna števila

iBookG4user

Originalni plakat
27. junij 2006
Seattle, WA
  • 20. september 2009
Inštruktorje za C++ postavijo v najbolj neugodnih trenutkih na moji fakulteti ... Kakorkoli že, inštruktor je objavil naslednja navodila:

»Napišite funkcijo, ki bo napolnila matriko s 25 naključnimi števili med 1 in 10. Nato napišite funkcijo, ki bo izpisala matriko. Napišite nekaj kode v main, da preizkusite svoje funkcije. Včasih se ta testna koda imenuje *gonilnik

Tukaj ne uporabljajte globalnih spremenljivk. Posredujte matriko funkciji skozi seznam parametrov'

Moja trenutna koda ne povzroči nobenih napak v razhroščevalniku, vendar ne izpiše matrike. In ne vem kaj misli s pisanjem voznika, kaj naj testiram? Vsi ste se v preteklosti izkazali za izjemno koristne in prepričan sem, da me boste tokrat pomagali usmeriti v pravo smer

Koda: |_+_|

lee1210

10. januar 2005


Dallas, TX
  • 20. september 2009
Nekaj ​​stvari: Vaša matrika mora biti tipa int[], ne dvojna[]. Za izdelavo in tiskanje morate sprejeti matriko int. Int[] morate deklarirati v main, ga posredovati v proizvodnjo, ga izpolniti tja in nato posredovati za tiskanje. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

In prepričan sem, da gre za pošteno napako, prepričan sem, da je mislil vaš profesor psevdo- naključen.

Prav tako v glavnem deklarirate nove dvojne()e, ne prikličete proizvodnje in tiskanja. Tam odstranite dvojnik in vnesite argument, kot je opisano zgoraj, ter spremenite tip vrnitve obeh v ničelno.

-Preberi

gnasher729

Prekinjeno
25. november 2005
  • 20. september 2009
Kako bi napisali prototip funkcije za funkcijo 'produce'?
In kako bi napisali klic funkcije 'produce'?

In znotraj vaše 'glavne' funkcije, katero od obeh ste napisali, prototip funkcije ali klic funkcije?

iBookG4user

Originalni plakat
27. junij 2006
Seattle, WA
  • 20. september 2009
lee1210 je rekel: Nekaj ​​stvari: Vaša matrika mora biti tipa int[], ne dvojna[]. Za izdelavo in tiskanje morate sprejeti matriko int. Int[] morate deklarirati v main, ga posredovati v proizvodnjo, ga izpolniti tam in nato posredovati za tiskanje. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

In prepričan sem, da gre za pošteno napako, prepričan sem, da je mislil vaš profesor psevdo- naključen.

Prav tako v glavnem deklarirate nove dvojne()e, ne prikličete proizvodnje in tiskanja. Tam odstranite dvojnik in vnesite argument, kot je opisano zgoraj, ter spremenite tip vrnitve obeh v ničelno.

-Preberi

Ok, naredil sem spremembe, ki ste jih predlagali, in koda je videti bolj logična. Čeprav zdaj dobivam tri napake v zankah for.

Koda: |_+_|

Priloge

  • Posnetek zaslona 20.09.2009 ob 5.42.31 PM.png Posnetek zaslona 20.09.2009 ob 5.42.31 PM.png'file-meta'> 178,1 KB · Ogledi: 1.941

lee1210

10. januar 2005
Dallas, TX
  • 20. september 2009
Spremenite vrsto argumenta produkta v int[] ali int *. Trenutno je samo int, tako da ne morete uporabiti [] itd. Enako velja za tiskanje. Prav tako vam ni treba ničesar vrniti iz izdelkov ali tiska. Spremenite njihovo vrsto vrnitve v neveljavno.

Mislim, da je namen, da pokličete print nazaj v main, kar bi moralo biti v redu.

Tudi, ko podajate matriko za proizvodnjo, samo uporabite matriko in ne *array.

-Preberi

iBookG4user

Originalni plakat
27. junij 2006
Seattle, WA
  • 20. september 2009
lee1210 je rekel: Spremenite vrsto argumenta produkcije v int[] ali int *. Trenutno je samo int, tako da ne morete uporabiti [] itd. Enako velja za tiskanje. Prav tako vam ni treba ničesar vrniti iz izdelkov ali tiska. Spremenite njihovo vrsto vrnitve v neveljavno.

Mislim, da je namen, da pokličete print nazaj v main, kar bi moralo biti v redu.

Tudi, ko podajate matriko za proizvodnjo, samo uporabite matriko in ne *array.

-Preberi

Delovalo je
Zdaj, ali veste, kaj je mislil s pisanjem kode za testiranje funkcij? Kaj misli s tem? In najlepša hvala za vašo pomoč!

Koda: |_+_|

chown33

Moderator
Osebje
9. avgust 2009
Abysmal Plane
  • 20. september 2009
iBookG4user je rekel: Zdaj, ali veste, kaj je mislil s pisanjem kode za testiranje funkcij? Kaj misli s tem?

V specifikaciji je pisalo, da morajo biti številke v nizu med 1 in 10. Lahko bi napisali test, ki to potrdi.

Povedalo je tudi, da morajo biti številke naključne. Medtem ko je lahko naključnost težje preizkusiti, kot se zdi, je preprosto nenaključnost enostavno preizkusiti. Najpreprosteje je potrditi, da vse številke niso enake vrednosti. Kompleksnejši testi naključnosti uporabljajo statistične analize.

Drug test, ki ga lahko napišete, je, da potrdite, da funkcija production() vrne različne vrednosti vsakič, ko je poklicana. To je preprosta oblika statistične analize, to je zagotavljanje neodvisnih rezultatov pri zaporednih invokacijah.

Razmislite tudi o inicializaciji matrike z znanimi neveljavnimi vrednostmi, kot sta -1 ali 0, preden pokličete product(). V nasprotnem primeru lahko neinicializirana lokalna matrika že vsebuje nepredvidljive vrednosti, ki bi jih test lahko interpretiral kot naključne, tudi če production() sploh ne naredi ničesar.

Kot specifikacija je izjava o delu nekoliko nejasna. Prvič, ne določa, katere teste mora opraviti. Verjemite mi, če večini programerjev prepustite izbiro kvalifikacijskih izpitov, je to velika napaka. Koda bi lahko delovala samo v enem primeru, kar je programer uporabil za razvoj kode. Če se vam to zdi noro, vam lahko zagotovim, da se je zgodilo.

iBookG4user

Originalni plakat
27. junij 2006
Seattle, WA
  • 20. september 2009
To je bilo dovolj preprosto, hvala!
To je dobro delovalo:
Koda: |_+_| S

Sander

do
24. april 2008
  • 21. september 2009
iBookG4user je rekel: To je bilo dovolj preprosto, hvala!
To je dobro delovalo:

Poskusite v svojo matriko vnesti 'neveljavno' številko (recimo 11) in preverite, ali ta funkcija to zazna.

iBookG4user

Originalni plakat
27. junij 2006
Seattle, WA
  • 21. september 2009
Sander je rekel: Poskusite vstaviti 'neveljavno' številko v svojo matriko (recimo 11) in preverite, ali ta funkcija to zazna.

Začasno sem nastavil matriko tako, da omogoča številke, večje od 10, in ga je zaznal, hvala S

Sander

do
24. april 2008
  • 22. september 2009
iBookG4user je rekel: Začasno sem nastavil matriko tako, da dovoli številke, večje od 10, in ga je zaznal, hvala

Tudi če ni prvi element v nizu..?

Razlog, zaradi katerega sprašujem, je, ker vaša funkcija print() (vsaj zadnja različica, prikazana v tej niti) vrne samo prvi element matrike (pretvorjen v dvojnik).