Cits

Mac C++ masīvi un nejauši skaitļi

iBookG4user

Oriģinālais plakāts
2006. gada 27. jūnijs
Sietla, Vašingtona
  • 2009. gada 20. septembris
Viņi manā koledžā ieliek C++ pasniedzējus visneērtākajos laikos... Jebkurā gadījumā instruktors ievietoja šādus norādījumus:

'Uzrakstiet funkciju, kas aizpildīs masīvu ar 25 nejaušiem skaitļiem no 1 līdz 10. Pēc tam uzrakstiet funkciju, kas izdrukās masīvu. Ierakstiet kādu kodu galvenajā, lai pārbaudītu savas funkcijas. Dažreiz šo testa kodu sauc par * draiveri

Šeit neizmantojiet globālos mainīgos. Nododiet masīvu funkcijai caur parametru sarakstu'

Mans pašreizējais kods neatkļūdotājs nerada kļūdas, taču tas neizvada masīvu. Un es nezinu, ko viņš domā, rakstot vadītāju, ko man vajadzētu pārbaudīt? Jūs visi pagātnē esat izrādījušies ārkārtīgi izpalīdzīgi, un esmu pārliecināts, ka šoreiz palīdzēsiet man norādīt pareizo virzienu

Kods: |_+_|

lee1210

2005. gada 10. janvāris


Dalasa, Teksasa
  • 2009. gada 20. septembris
Dažas lietas: jūsu masīvam ir jābūt tipam int[], nevis double[]. Lai izveidotu un drukātu, jums ir jāpieņem iekšējais masīvs. Jums ir jādeklarē int[] galvenajā, jānodod tā ražošanai, jāaizpilda tur un pēc tam jānodod drukāšanai. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Turklāt, un es esmu pārliecināts, ka tā ir godīga kļūda, esmu pārliecināts, ka jūsu profesors to domāja pseido- nejauši.

Turklāt jūs galvenokārt deklarējat jaunus dubultus () , nevis izsaucat ražošanu un drukāšanu. Noņemiet dubulto vērtību un norādiet argumentu, kā aprakstīts iepriekš, un mainiet abu šo atgriešanas veidu uz nederīgu.

-Izlasi

gnasher729

Apturēts
2005. gada 25. novembris
  • 2009. gada 20. septembris
Kā jūs rakstītu funkcijas prototipu funkcijai “producēt”?
Un kā jūs rakstītu funkcijas 'produce' izsaukumu?

Un kuru no šīm divām esat ierakstījis savā “galvenajā” funkcijā — funkcijas prototipu vai funkcijas izsaukumu?

iBookG4user

Oriģinālais plakāts
2006. gada 27. jūnijs
Sietla, Vašingtona
  • 2009. gada 20. septembris
lee1210 teica: Dažas lietas: jūsu masīvam jābūt tipam int[], nevis double[]. Lai izveidotu un drukātu, jums ir jāpieņem iekšējais masīvs. Jums ir jādeklarē int[] galvenajā, jānodod tā ražošanai, jāaizpilda tur un pēc tam jānodod drukāšanai. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

Turklāt, un es esmu pārliecināts, ka tā ir godīga kļūda, esmu pārliecināts, ka jūsu profesors to domāja pseido- nejauši.

Turklāt jūs galvenokārt deklarējat jaunus dubultus () , nevis izsaucat ražošanu un drukāšanu. Noņemiet dubulto vērtību un norādiet argumentu, kā aprakstīts iepriekš, un mainiet abu šo atgriešanas veidu uz nederīgu.

-Izlasi

Labi, es veicu jūsu ieteiktās izmaiņas, un kods izskatās loģiskāks. Lai gan tagad es saņemu trīs kļūdas for cilpās.

Kods: |_+_|

Pielikumi

  • Ekrānuzņēmums 2009-09-20 plkst. 17.42.31.png Ekrānuzņēmums 2009.09.20. plkst. 17.42.31.png'file-meta'> 178,1 KB · Skatījumi: 1941

lee1210

2005. gada 10. janvāris
Dalasa, Teksasa
  • 2009. gada 20. septembris
Mainiet produkta argumenta veidu uz int[] vai int *. Pašlaik tas ir tikai int, tāpēc jūs nevarat izmantot [] utt. Tas pats attiecas uz drukāšanu. Turklāt jums nekas nav jāatgriež no produkcijas vai drukas. Mainiet to atgriešanas veidu uz nederīgu.

Es domāju, ka nolūks ir atzvanīt drukāšanai, un tam vajadzētu būt labi.

Turklāt, nododot masīvu, lai izveidotu, izmantojiet tikai masīvu, nevis *masīvu.

-Izlasi

iBookG4user

Oriģinālais plakāts
2006. gada 27. jūnijs
Sietla, Vašingtona
  • 2009. gada 20. septembris
lee1210 teica: Mainiet argumenta veidu product uz int[] vai int *. Pašlaik tas ir tikai int, tāpēc jūs nevarat izmantot [] utt. Tas pats attiecas uz drukāšanu. Turklāt jums nekas nav jāatgriež no produkcijas vai drukas. Mainiet to atgriešanas veidu uz nederīgu.

Es domāju, ka nolūks ir atzvanīt drukāšanai, un tam vajadzētu būt labi.

Turklāt, nododot masīvu, lai izveidotu, izmantojiet tikai masīvu, nevis *masīvu.

-Izlasi

Tas izdevās
Tagad, vai jūs zināt, ko viņš domāja, rakstot kodu, lai pārbaudītu funkcijas? Ko viņš ar to domā? Un liels paldies par līdzšinējo palīdzību!

Kods: |_+_|

chown33

Moderators
Darbinieks
2009. gada 9. augusts
bezdibenis plakne
  • 2009. gada 20. septembris
iBookG4user teica: Vai jūs zināt, ko viņš domāja, rakstot kodu, lai pārbaudītu funkcijas? Ko viņš ar to domā?

Specifikācijā teikts, ka skaitļiem masīvā jābūt no 1 līdz 10. Jūs varētu uzrakstīt testu, kas to apstiprina.

Tajā arī teikts, ka skaitļiem jābūt nejaušiem. Lai gan nejaušību var būt grūtāk pārbaudīt, nekā šķiet, vienkāršu nejaušību var būt viegli pārbaudīt. Vienkāršākais ir apstiprināt, ka visi skaitļi nav vienādi. Sarežģītākos nejaušības testos tiek izmantotas statistiskās analīzes.

Vēl viens tests, ko varat uzrakstīt, ir apstiprināt, ka funkcija produce() atgriež dažādas vērtības katru reizi, kad tā tiek izsaukta. Tas ir vienkāršs statistiskās analīzes veids, t.i., nodrošina, ka secīgiem izsaukumiem ir neatkarīgi rezultāti.

Jums vajadzētu arī apsvērt iespēju inicializēt masīvu ar zināmām nederīgām vērtībām, piemēram, -1 vai 0, pirms izsaukt product(). Pretējā gadījumā neinicializēts lokālais masīvs jau var saturēt neparedzamas vērtības, kuras tests var interpretēt kā nejaušas pat tad, ja product() neko nedara.

Kā specifikācija darba apraksts ir nedaudz neskaidrs. Pirmkārt, tajā nav norādīts, kādi testi tai ir jānokārto. Ticiet man, ja kvalifikācijas testu izvēli atstājat vairumam programmētāju, tā ir liela kļūda. Kods var darboties tikai vienā gadījumā, ko programmētājs izmantoja, lai izstrādātu kodu. Ja tas šķiet traki, varu jums apliecināt, ka tas ir noticis.

iBookG4user

Oriģinālais plakāts
2006. gada 27. jūnijs
Sietla, Vašingtona
  • 2009. gada 20. septembris
Tas bija pietiekami vienkārši, paldies!
Tas noderēja:
Kods: |_+_| S

Sanders

uz
2008. gada 24. aprīlis
  • 2009. gada 21. septembris
iBookG4user teica: Tas bija pietiekami vienkārši, paldies!
Tas noderēja:

Mēģiniet masīvā ievietot 'nederīgu' numuru (piemēram, 11) un pārbaudiet, vai šī funkcija to nosaka.

iBookG4user

Oriģinālais plakāts
2006. gada 27. jūnijs
Sietla, Vašingtona
  • 2009. gada 21. septembris
Sanders teica: Mēģiniet ievietot 'nederīgu' numuru savā masīvā (piemēram, 11) un pārbaudiet, vai šī funkcija to nosaka.

Es īslaicīgi iestatīju masīvu, lai atļautu skaitļus, kas lielāki par 10, un tas to atklāja, paldies S

Sanders

uz
2008. gada 24. aprīlis
  • 2009. gada 22. septembris
iBookG4user teica: Es īslaicīgi iestatīju masīvu, lai atļautu skaitļus, kas lielāki par 10, un tas to atklāja, paldies

Pat ja tas nav pirmais elements masīvā..?

Iemesls, ko es jautāju, ir tāpēc, ka jūsu funkcija print() (vismaz pēdējā šajā pavedienā parādītā versija) atgriež tikai pirmo masīva elementu (pārveidots par dubultu).