Muut

Mac C++ -taulukot ja satunnaisluvut

iBookG4-käyttäjä

Alkuperäinen juliste
27. kesäkuuta 2006
Seattle, WA
  • 20. syyskuuta 2009
He laittavat C++:n tutorit yliopistolleni epämukavimpiin aikoina... Joka tapauksessa ohjaaja lähetti seuraavat ohjeet:

'Kirjoita funktio, joka täyttää taulukon 25 satunnaisluvulla väliltä 1-10. Kirjoita sitten funktio, joka tulostaa taulukon. Kirjoita jokin koodi pääkenttään testataksesi toimintojasi. Joskus tätä testikoodia kutsutaan *ohjaimeksi

Älä käytä globaaleja muuttujia tässä. Ohjaa taulukko funktiolle parametriluettelon kautta'

Nykyinen koodini ei aiheuta virheitä debuggerissa, mutta se ei tulosta taulukkoa. Ja en tiedä mitä hän tarkoittaa kirjoittamalla kuljettajalle, mitä minun pitäisi testata? Olette kaikki osoittautuneet erittäin hyödyllisiksi aiemmin, ja olen varma, että autat minua osoittamaan oikeaan suuntaan tällä kertaa

Koodi: |_+_|

lee1210

10. tammikuuta 2005


Dallas, TX
  • 20. syyskuuta 2009
Muutama seikka: Taulukon tulee olla tyyppiä int[], ei double[]. Sinun on hyväksyttävä in-taulukko tuottaaksesi ja tulostaaksesi. Sinun on ilmoitettava int[] pääosassa, välitettävä se tuotantoa varten, täytettävä se ja välitettävä tulostettavaksi. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Lisäksi, ja olen varma, että se on rehellinen virhe, olen varma, että professorisi tarkoitti pseudo- satunnainen.

Lisäksi pääsääntöisesti ilmoitat uudet double()s:t, etkä vedota tuottamaan ja tulostamaan. Ota tupla pois sieltä ja välitä argumentti edellä käsitellyllä tavalla ja muuta näiden molempien palautustyyppi tyhjäksi.

-Lukea

gnasher729

Keskeytetty
25. marraskuuta 2005
  • 20. syyskuuta 2009
Kuinka kirjoittaisit funktion prototyypin funktiolle 'product'?
Ja kuinka kirjoittaisit kutsun funktiolle 'product'?

Ja kumpi näistä kahdesta olet kirjoittanut, funktion prototyypin vai funktiokutsun?

iBookG4-käyttäjä

Alkuperäinen juliste
27. kesäkuuta 2006
Seattle, WA
  • 20. syyskuuta 2009
lee1210 sanoi: Muutamia asioita: Matriisi tulee olla tyyppiä int[], ei double[]. Sinun on hyväksyttävä in-taulukko tuottaaksesi ja tulostaaksesi. Sinun on ilmoitettava int[] pääosassa, välitettävä se tuotantoa varten, täytettävä se ja välitettävä tulostettavaksi. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Lisäksi, ja olen varma, että se on rehellinen virhe, olen varma, että professorisi tarkoitti pseudo- satunnainen.

Lisäksi pääsääntöisesti ilmoitat uudet double()s:t, etkä vedota tuottamaan ja tulostamaan. Ota tupla pois sieltä ja välitä argumentti edellä käsitellyllä tavalla ja muuta näiden molempien palautustyyppi tyhjäksi.

-Lukea

Ok, tein ehdottamasi muutokset ja koodi näyttää loogisemmalta. Vaikka nyt saan kolme virhettä for-silmukassa.

Koodi: |_+_|

Liitteet

  • Kuvakaappaus 20.9.2009 klo 17.42.31.png Kuvakaappaus 20.9.2009 klo 17.42.31.png'file-meta'> 178,1 KB · Katselukerrat: 1 941

lee1210

10. tammikuuta 2005
Dallas, TX
  • 20. syyskuuta 2009
Muuta tuotannon argumenttityypiksi int[] tai int *. Tällä hetkellä se on vain int, joten et voi käyttää []:tä jne. Sama koskee tulostusta. Sinun ei myöskään tarvitse palauttaa mitään tuotteista tai painoista. Muuta palautustyyppi mitättömäksi.

Luulen, että sinun on tarkoitus soittaa printille takaisin, minkä pitäisi olla kunnossa.

Lisäksi, kun annat taulukon tuottaa, käytä vain array, ei * array.

-Lukea

iBookG4-käyttäjä

Alkuperäinen juliste
27. kesäkuuta 2006
Seattle, WA
  • 20. syyskuuta 2009
lee1210 sanoi: Muuta argumenttityyppi productiksi int[] tai int *. Tällä hetkellä se on vain int, joten et voi käyttää []:tä jne. Sama koskee tulostusta. Sinun ei myöskään tarvitse palauttaa mitään tuotteista tai painoista. Muuta palautustyyppi mitättömäksi.

Luulen, että sinun on tarkoitus soittaa printille takaisin, minkä pitäisi olla kunnossa.

Lisäksi, kun annat taulukon tuottaa, käytä vain array, ei * array.

-Lukea

Se toimi
Tiedätkö nyt, mitä hän tarkoitti kirjoittamalla koodin toimintojen testaamiseksi? Mitä hän sillä tarkoittaa? Ja kiitos paljon avustasi tähän mennessä!

Koodi: |_+_|

chown33

Moderaattori
Henkilökunnan jäsen
9. elokuuta 2009
Abysmal Plane
  • 20. syyskuuta 2009
iBookG4user sanoi: Tiedätkö nyt, mitä hän tarkoitti kirjoittamalla koodin toimintojen testaamiseksi? Mitä hän sillä tarkoittaa?

Erittelyn mukaan taulukon numeroiden tulisi olla välillä 1-10. Voit kirjoittaa testin, joka vahvistaa tämän.

Se sanoi myös, että numeroiden tulee olla satunnaisia. Vaikka satunnaisuutta voi olla vaikeampi testata kuin miltä näyttää, yksinkertaista ei-satunnaisuutta voi olla helppo testata. Yksinkertaisin on varmistaa, että kaikki luvut eivät ole samaa arvoa. Monimutkaisemmissa satunnaisuustesteissä käytetään tilastollisia analyyseja.

Toinen testi, jonka voit kirjoittaa, on varmistaa, että product()-funktio palauttaa eri arvot joka kerta, kun sitä kutsutaan. Tämä on yksinkertainen tilastollisen analyysin muoto, jolla varmistetaan, että peräkkäisillä kutsuilla on itsenäiset tulokset.

Sinun tulisi myös harkita taulukon alustamista tunnetuilla virheellisillä arvoilla, kuten -1 tai 0, ennen kuin kutsut product(a). Muuten alustamaton paikallinen matriisi voi sisältää jo ennalta arvaamattomia arvoja, jotka testi voisi tulkita satunnaisiksi, vaikka product() ei tekisi mitään.

Selvityksenä työn kuvaus on hieman epämääräinen. Ensinnäkin se ei määrittele, mitkä testit sen on läpäistävä. Uskokaa minua, jos jätät useimpien ohjelmoijien tehtäväksi valita pätevyystestit, se on suuri virhe. Koodi saattaa toimia vain yhdessä tapauksessa, jota ohjelmoija käytti koodin kehittämiseen. Jos se tuntuu hullulta, voin vakuuttaa, että niin on tapahtunut.

iBookG4-käyttäjä

Alkuperäinen juliste
27. kesäkuuta 2006
Seattle, WA
  • 20. syyskuuta 2009
Se oli tarpeeksi yksinkertaista, kiitos!
Tämä toimi herkkuna:
Koodi: |_+_| S

Hiomakone

kohtaan
24. huhtikuuta 2008
  • 21. syyskuuta 2009
iBookG4user sanoi: Se oli tarpeeksi yksinkertaista, kiitos!
Tämä toimi herkkuna:

Yritä laittaa taulukkoon 'virheellinen' numero (esim. 11) ja katso, havaitseeko tämä funktio sen.

iBookG4-käyttäjä

Alkuperäinen juliste
27. kesäkuuta 2006
Seattle, WA
  • 21. syyskuuta 2009
Sander sanoi: Yritä laittaa 'virheellinen' numero taulukkoosi (esim. 11) ja katso, havaitseeko tämä funktio sen.

Asetin väliaikaisesti taulukon sallimaan 10:tä suuremmat numerot ja se havaitsi sen, kiitos S

Hiomakone

kohtaan
24. huhtikuuta 2008
  • 22. syyskuuta 2009
iBookG4user sanoi: Asetin väliaikaisesti taulukon sallimaan 10:tä suuremmat numerot ja se havaitsi sen, kiitos

Vaikka se ei ole taulukon ensimmäinen elementti..?

Kysyn siksi, että print()-funktiosi (ainakin tämän säikeen viimeinen versio) palauttaa vain taulukon ensimmäisen elementin (muunnettu tuplaksi).