Egyéb

Mac C++ tömbök és véletlen számok

iBookG4user

Eredeti plakát
2006. június 27
Seattle, WA
  • 2009. szeptember 20
A főiskolámon a legkellemetlenebb időpontokban adják a C++ oktatókat... Mindenesetre az oktató a következő utasításokat tette közzé:

Írjon egy függvényt, amely kitölt egy tömböt 25 véletlen számmal 1 és 10 között. Ezután írjon egy függvényt, amely kiírja a tömböt. Írj egy kódot a főbe, hogy teszteld a funkcióidat. Néha ezt a tesztkódot *illesztőprogramnak nevezik

Ne használjon itt globális változókat. Adja át a tömböt a függvénynek a paraméterlistán keresztül'

A jelenlegi kódom nem okoz hibát a hibakeresőben, de nem adja ki a tömböt. És nem tudom mit ért az alatt, hogy a drivert írja, mit kéne tesztelnem? Mindannyian rendkívül segítőkésznek bizonyultak a múltban, és biztos vagyok benne, hogy ezúttal is segít majd a helyes irányba mutatni.

Kód: |_+_|

lee1210

2005. január 10


Dallas, TX
  • 2009. szeptember 20
Néhány dolog: A tömbnek int[] típusúnak kell lennie, nem pedig double[]-nak. Az előállításhoz és nyomtatáshoz el kell fogadnia egy int tömböt. Deklarálnia kell egy int[]-t a főben, át kell adnia a gyártáshoz, ott kell kitöltenie, majd át kell adnia a nyomtatáshoz. Az<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

És biztos vagyok benne, hogy ez egy őszinte hiba, biztos vagyok benne, hogy a professzora komolyan gondolta ál- véletlen.

Ezenkívül főként új double()-okat deklarál, nem pedig a product és a print meghívását. Vegye ki a duplát, és adjon meg egy argumentumot a fent leírtak szerint, és módosítsa mindkettő visszatérési típusát érvénytelenre.

-Olvas

gnasher729

Felfüggesztett
2005. november 25
  • 2009. szeptember 20
Hogyan írna egy függvény prototípust a 'produce' függvényhez?
És hogyan írnád a 'produce' függvény hívását?

És a 'fő' függvényen belül melyiket írtad a kettő közül, függvény prototípust vagy függvényhívást?

iBookG4user

Eredeti plakát
2006. június 27
Seattle, WA
  • 2009. szeptember 20
lee1210 mondta: Néhány dolog: A tömbnek int[] típusúnak kell lennie, nem pedig double[]. Az előállításhoz és nyomtatáshoz el kell fogadnia egy int tömböt. Deklarálnia kell egy int[]-t a főben, át kell adnia a gyártáshoz, ott kell kitöltenie, majd át kell adnia a nyomtatáshoz. Az<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.

És biztos vagyok benne, hogy ez egy őszinte hiba, biztos vagyok benne, hogy a professzora komolyan gondolta ál- véletlen.

Ezenkívül főként új double()-okat deklarál, nem pedig a product és a print meghívását. Vegye ki a duplát, és adjon meg egy argumentumot a fent leírtak szerint, és módosítsa mindkettő visszatérési típusát érvénytelenre.

-Olvas

Rendben, elvégeztem az általad javasolt változtatásokat, és a kód logikusabbnak tűnik. Bár most három hibát kapok a for ciklusokban.

Kód: |_+_|

Mellékletek

  • Képernyőfelvétel 2009-09-20, 17.42.31.png Képernyőkép 2009-09-20, 17.42.31.png'file-meta'> 178,1 KB · Megtekintések: 1941

lee1210

2005. január 10
Dallas, TX
  • 2009. szeptember 20
Módosítsa a product argumentumtípusát int[] vagy int * értékre. Jelenleg csak int, így nem használhatja a []-t stb. Ugyanez vonatkozik a nyomtatásra is. Ezenkívül nem kell semmit visszaküldenie a gyártásból vagy a nyomtatásból. Módosítsa a visszaküldés típusát érvénytelenre.

Azt hiszem, az a szándék, hogy visszahívd a printet főben, ami rendben van.

Továbbá, amikor megadja a tömböt a létrehozáshoz, csak használja a tömböt, ne a *tömböt.

-Olvas

iBookG4user

Eredeti plakát
2006. június 27
Seattle, WA
  • 2009. szeptember 20
lee1210 mondta: Módosítsa a product argumentumtípusát int[] vagy int *-ra. Jelenleg csak int, így nem használhatja a []-t stb. Ugyanez vonatkozik a nyomtatásra is. Ezenkívül nem kell semmit visszaküldenie a gyártásból vagy a nyomtatásból. Módosítsa a visszaküldés típusát érvénytelenre.

Azt hiszem, az a szándék, hogy visszahívd a printet főben, ami rendben van.

Továbbá, amikor megadja a tömböt a létrehozáshoz, csak használja a tömböt, ne a *tömböt.

-Olvas

Működött
Tudod, mit értett azon, hogy megírta a kódot a funkciók tesztelésére? Mit akar ezzel mondani? És nagyon köszönöm az eddigi segítséget!

Kód: |_+_|

chown33

Moderátor
Munkatárs
2009. augusztus 9
az Abysmal Plane
  • 2009. szeptember 20
iBookG4user azt mondta: Tudod, mit értett azon, hogy megírta a kódot a funkciók tesztelésére? Mit akar ezzel mondani?

A specifikáció szerint a tömbben lévő számoknak 1 és 10 között kell lenniük. Írhatna egy tesztet, ami megerősíti ezt.

Azt is mondta, hogy a számoknak véletlenszerűnek kell lenniük. Míg a véletlenszerűséget nehezebb tesztelni, mint amilyennek látszik, az egyszerű nem véletlenszerűséget könnyű tesztelni. A legegyszerűbb annak megerősítése, hogy az összes szám nem azonos értékű. A véletlenszerűség összetettebb tesztjei statisztikai elemzéseket használnak.

Egy másik teszt, amelyet megírhat, annak ellenőrzése, hogy a production() függvény minden egyes meghívásakor különböző értékeket ad vissza. Ez a statisztikai elemzés egyszerű formája, azaz biztosítja, hogy az egymást követő hívások független eredménnyel járjanak.

Érdemes megfontolni a tömb inicializálását is ismert érvénytelen értékekkel, például -1 vagy 0, mielőtt a production(t) meghívná. Ellenkező esetben egy inicializálatlan helyi tömb már előre nem látható értékeket tartalmazhat, amelyeket a teszt akkor is véletlenszerűen értelmezhet, ha a production() egyáltalán nem csinál semmit.

Specifikációként a munka leírása kissé homályos. Egyrészt nem határozza meg, hogy milyen teszteken kell átmennie. Hidd el, ha a legtöbb programozóra bízod a minősítési tesztek kiválasztását, az nagy hiba. A kód csak egy esetben működhet, ezt a programozó használta a kód fejlesztéséhez. Ha ez őrültségnek tűnik, biztosíthatom, hogy megtörtént.

iBookG4user

Eredeti plakát
2006. június 27
Seattle, WA
  • 2009. szeptember 20
Ez elég egyszerű volt, köszönöm!
Ez bevált:
Kód: |_+_| S

Sander

nak nek
2008. április 24
  • 2009. szeptember 21
iBookG4user azt mondta: Ez elég egyszerű volt, köszönöm!
Ez bevált:

Próbáljon meg egy „érvénytelen” számot beírni a tömbbe (mondjuk 11), és nézze meg, hogy ez a függvény észleli-e ezt.

iBookG4user

Eredeti plakát
2006. június 27
Seattle, WA
  • 2009. szeptember 21
Sander azt mondta: Próbáljon meg egy „érvénytelen” számot a tömbbe helyezni (mondjuk a 11-et), és nézze meg, hogy a függvény észleli-e ezt.

Átmenetileg úgy állítottam be a tömböt, hogy engedélyezze a 10-nél nagyobb számokat, és ez sikerült is, köszönöm S

Sander

nak nek
2008. április 24
  • 2009. szeptember 22
Az iBookG4user azt mondta: Ideiglenesen beállítottam a tömböt, hogy engedélyezze a 10-nél nagyobb számokat, és ezt észlelte, köszönöm

Még ha nem is az első elem a tömbben..?

Azért kérdezem, mert a print() függvényed (legalábbis az ebben a szálban bemutatott utolsó verzió) csak a tömb első elemét adja vissza (kettősre konvertálva).