Kita

Mac C++ masyvai ir atsitiktiniai skaičiai

iBookG4user

Originalus plakatas
2006 m. birželio 27 d
Sietlas, WA
  • 2009 m. rugsėjo 20 d
Jie skiria C++ dėstytojus nepatogiausiu metu mano koledže... Bet kokiu atveju, instruktorius paskelbė tokias nuorodas:

„Parašykite funkciją, kuri užpildys masyvą su 25 atsitiktiniais skaičiais nuo 1 iki 10. Tada parašykite funkciją, kuri išspausdins masyvą. Pagrindiniame lange parašykite kodą, kad patikrintumėte savo funkcijas. Kartais šis bandymo kodas vadinamas *tvarkykle

Čia nenaudokite visuotinių kintamųjų. Perduokite masyvą funkcijai per parametrų sąrašą'

Mano dabartinis kodas nesukelia jokių klaidų derinimo priemonėje, tačiau jis neišveda masyvo. Ir aš nežinau, ką jis turi omenyje rašydamas vairuotoją, ką aš turėčiau išbandyti? Jūs visi praeityje buvote nepaprastai naudingi ir aš tikiu, kad šį kartą padėsite man nukreipti teisingą kryptį

Kodas: |_+_|

lee1210

2005 m. sausio 10 d


Dalasas, Teksasas
  • 2009 m. rugsėjo 20 d
Keletas dalykų: jūsų masyvas turi būti int[], o ne double[]. Norėdami gaminti ir spausdinti, turite priimti tarpinį masyvą. Turite deklaruoti int[] pagrindiniame, perduoti jį gaminti, užpildyti ten, tada perduoti spausdinti. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Be to, ir aš esu tikras, kad tai sąžininga klaida, esu tikras, kad jūsų profesorius turėjo omenyje pseudo- atsitiktinis.

Be to, iš esmės deklaruojate naujus dvigubus (-us), o ne gaminate ir spausdinate. Išimkite dublį ir pateikite argumentą, kaip aptarta aukščiau, ir pakeiskite abiejų grąžinimo tipą į negaliojantį.

- Skaityk

gnasher729

Sustabdytas
2005 m. lapkričio 25 d
  • 2009 m. rugsėjo 20 d
Kaip parašysite funkcijos prototipą funkcijai „gaminti“?
O kaip parašyti iškvietimą į funkciją „gaminti“?

O savo „pagrindinėje“ funkcijoje kurį iš dviejų įrašėte, funkcijos prototipą ar funkcijos iškvietimą?

iBookG4user

Originalus plakatas
2006 m. birželio 27 d
Sietlas, WA
  • 2009 m. rugsėjo 20 d
lee1210 pasakė: Keletas dalykų: Jūsų masyvas turi būti int[] tipo, o ne double[]. Norėdami gaminti ir spausdinti, turite priimti tarpinį masyvą. Turite deklaruoti int[] pagrindiniame, perduoti jį gaminti, užpildyti ten, tada perduoti spausdinti. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Be to, ir aš esu tikras, kad tai sąžininga klaida, esu tikras, kad jūsų profesorius turėjo omenyje pseudo- atsitiktinis.

Be to, iš esmės deklaruojate naujus dvigubus (-us), o ne gaminate ir spausdinate. Išimkite dublį ir pateikite argumentą, kaip aptarta aukščiau, ir pakeiskite abiejų grąžinimo tipą į negaliojantį.

- Skaityk

Gerai, padariau jūsų siūlomus pakeitimus ir kodas atrodo logiškiau. Nors dabar gaunu tris klaidas for kilpose.

Kodas: |_+_|

Priedai

  • Ekrano nuotrauka 2009-09-20 17.42.31 val. Ekrano kopija 2009-09-20, 5.42.31 PM.png'file-meta'> 178,1 KB · Peržiūrų: 1 941

lee1210

2005 m. sausio 10 d
Dalasas, Teksasas
  • 2009 m. rugsėjo 20 d
Pakeiskite gaminio argumento tipą į int[] arba int *. Šiuo metu tai tik int, todėl negalite naudoti [] ir pan. Tas pats pasakytina ir apie spausdinimą. Be to, jums nereikia nieko grąžinti iš produkcijos ar spausdinimo. Pakeiskite jų grąžinimo tipą į negaliojantį.

Manau, kad jūs norite iškviesti spausdinimą atgal, o tai turėtų būti gerai.

Be to, kai perduodate masyvą sukurti, tiesiog naudokite masyvą, o ne *masyvą.

- Skaityk

iBookG4user

Originalus plakatas
2006 m. birželio 27 d
Sietlas, WA
  • 2009 m. rugsėjo 20 d
lee1210 pasakė: Pakeiskite gaminio argumento tipą į int[] arba int *. Šiuo metu tai tik int, todėl negalite naudoti [] ir pan. Tas pats pasakytina ir apie spausdinimą. Be to, jums nereikia nieko grąžinti iš produkcijos ar spausdinimo. Pakeiskite jų grąžinimo tipą į negaliojantį.

Manau, kad jūs norite iškviesti spausdinimą atgal, o tai turėtų būti gerai.

Be to, kai perduodate masyvą sukurti, tiesiog naudokite masyvą, o ne *masyvą.

- Skaityk

Pavyko
Dabar, ar žinote, ką jis turėjo omenyje rašydamas kodą, kad patikrintų funkcijas? Ką jis tuo nori pasakyti? Ir labai ačiū už jūsų pagalbą iki šiol!

Kodas: |_+_|

chown33

Moderatorius
Darbuotojas
2009 m. rugpjūčio 9 d
bedugnė plokštuma
  • 2009 m. rugsėjo 20 d
iBookG4user pasakė: Ar žinote, ką jis norėjo parašyti kodą, kad patikrintų funkcijas? Ką jis tuo nori pasakyti?

Specifikacijoje buvo nurodyta, kad skaičiai masyve turi būti nuo 1 iki 10. Galite parašyti testą, kuris tai patvirtintų.

Taip pat sakoma, kad skaičiai turi būti atsitiktiniai. Nors atsitiktinumą patikrinti gali būti sunkiau, nei atrodo, paprastą neatsitiktiškumą gali būti lengva patikrinti. Paprasčiausias yra patvirtinti, kad visi skaičiai nėra vienodos reikšmės. Sudėtingesni atsitiktinumo testai naudoja statistinę analizę.

Kitas testas, kurį galite parašyti, yra patvirtinti, kad funkcija production() grąžina skirtingas reikšmes kiekvieną kartą, kai ji iškviečiama. Tai paprasta statistinės analizės forma, t. y. užtikrinama, kad nuoseklūs iškvietimai gautų nepriklausomus rezultatus.

Taip pat turėtumėte apsvarstyti galimybę inicijuoti masyvą su žinomomis neteisingomis reikšmėmis, tokiomis kaip -1 arba 0, prieš iškviesdami product(). Kitu atveju nepainicijuotame vietiniame masyve jau gali būti nenuspėjamų reikšmių, kurias testas gali interpretuoti kaip atsitiktines, net jei product() nieko nedaro.

Kaip specifikacija, darbo aprašymas yra šiek tiek neaiškus. Viena vertus, jame nenurodyta, kokius testus jis turi išlaikyti. Patikėkite, jei dauguma programuotojų paliekate pasirinkti kvalifikacijos testus, tai didelė klaida. Kodas gali veikti tik vienu atveju, tuo atveju, kai programuotojas sukūrė kodą. Jei tai atrodo beprotiška, galiu jus užtikrinti, kad taip atsitiko.

iBookG4user

Originalus plakatas
2006 m. birželio 27 d
Sietlas, WA
  • 2009 m. rugsėjo 20 d
Tai buvo pakankamai paprasta, ačiū!
Tai pasiteisino:
Kodas: |_+_| S

Sanderis

į
2008 m. balandžio 24 d
  • 2009 m. rugsėjo 21 d
iBookG4user pasakė: Tai buvo pakankamai paprasta, ačiū!
Tai pasiteisino:

Pabandykite į savo masyvą įrašyti „netinkamą“ skaičių (tarkim, 11) ir pažiūrėkite, ar ši funkcija tai aptinka.

iBookG4user

Originalus plakatas
2006 m. birželio 27 d
Sietlas, WA
  • 2009 m. rugsėjo 21 d
Sanderis pasakė: Pabandykite į savo masyvą įrašyti „netinkamą“ skaičių (tarkim, 11) ir pažiūrėkite, ar ši funkcija tai aptinka.

Laikinai nustatiau masyvą, kad būtų galima leisti didesnius nei 10 skaičius, ir jis tai aptiko, ačiū S

Sanderis

į
2008 m. balandžio 24 d
  • 2009 m. rugsėjo 22 d
„iBookG4user“ pasakė: laikinai nustačiau masyvą, kad leistų didesnius nei 10 skaičius, ir jis tai aptiko, ačiū

Net jei tai nėra pirmasis masyvo elementas..?

Klausiu dėl to, kad jūsų funkcija print() (bent jau paskutinė versija, parodyta šioje temoje) grąžina tik pirmąjį masyvo elementą (konvertuotą į dvigubą).