iBookG4user
Původní plakát- 27. června 2006
- Seattle, WA
- 20. září 2009
'Napište funkci, která vyplní pole 25 náhodnými čísly mezi 1 a 10. Poté napište funkci, která pole vytiskne. Napište nějaký kód do main, abyste otestovali své funkce. Někdy se tento testovací kód nazývá *ovladač
Nepoužívejte zde globální proměnné. Předejte pole funkci prostřednictvím seznamu parametrů'
Můj aktuální kód nezpůsobuje žádné chyby v ladicím programu, ale nevydává pole. A nevím, co myslí tím, že píše ovladač, co mám testovat? Všichni jste se v minulosti ukázali jako nesmírně užiteční a jsem si jistý, že mi tentokrát pomůžete nasměrovat správný směr
Kód: |_+_|
lee1210
- 10. ledna 2005
- Dallas, TX
- 20. září 2009
Také, a jsem si jistý, že je to upřímná chyba, jsem si jistý, že to myslel váš profesor pseudo- náhodný.
V podstatě také deklarujete nové double()s, nikoli vyvoláte produkci a tisk. Vezměte tam dvojku a předejte argument, jak je uvedeno výše, a změňte návratový typ obou na neplatný.
-Číst
gnasher729
Pozastaveno
- 25. listopadu 2005
- 20. září 2009
A jak byste napsali volání funkce 'produkovat'?
A ve vaší „hlavní“ funkci, kterou z těchto dvou jste napsali, prototyp funkce nebo volání funkce?
iBookG4user
Původní plakát- 27. června 2006
- Seattle, WA
- 20. září 2009
lee1210 řekl: Pár věcí: Vaše pole by mělo být typu int[], ne double[]. Chcete-li vytvořit a vytisknout, musíte přijmout pole int. Musíte deklarovat int[] v main, předat jej k produkci, tam vyplnit a poté předat k tisku. The<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Také, a jsem si jistý, že je to upřímná chyba, jsem si jistý, že to myslel váš profesor pseudo- náhodný.
V podstatě také deklarujete nové double()s, nikoli vyvoláte produkci a tisk. Vezměte tam dvojku a předejte argument, jak je uvedeno výše, a změňte návratový typ obou na neplatný.
-Číst
Dobře, provedl jsem změny, které jste navrhl, a kód vypadá logičtěji. I když teď dostávám tři chyby v cyklech for.
Kód: |_+_|
Přílohy
lee1210
- 10. ledna 2005
- Dallas, TX
- 20. září 2009
Myslím, že záměrem je zavolat print zpět v main, což by mělo být v pořádku.
Také, když předáte pole k produkci, použijte pole, nikoli *array.
-Číst
iBookG4user
Původní plakát- 27. června 2006
- Seattle, WA
- 20. září 2009
lee1210 řekl: Změňte typ argumentu produkce na int[] nebo int *. Právě teď je to jen int, takže nemůžete použít [] atd. Totéž platí pro tisk. Také nemusíte nic vracet z výroby nebo tisku. Změňte jejich návratový typ na neplatný.
Myslím, že záměrem je zavolat print zpět v main, což by mělo být v pořádku.
Také, když předáte pole k produkci, použijte pole, nikoli *array.
-Číst
Fungovalo to
Víte, co myslel tím, že napsal kód pro testování funkcí? co tím myslí? A moc děkuji za vaši dosavadní pomoc!
Kód: |_+_|
chown33
Moderátor
Zaměstnanec- 9. srpna 2009
- Propastná rovina
- 20. září 2009
iBookG4user řekl: Víte, co myslel tím, že napsal kód pro testování funkcí? co tím myslí?
Specifikace říkala, že čísla v poli by měla být mezi 1 a 10. Můžete napsat test, který to potvrdí.
Také řekl, že čísla by měla být náhodná. Zatímco náhodnost může být obtížnější, než se zdá, jednoduchá nenáhodnost může být snadno testovatelná. Nejjednodušší je potvrdit, že všechna čísla nemají stejnou hodnotu. Složitější testy náhodnosti využívají statistické analýzy.
Dalším testem, který můžete napsat, je potvrdit, že funkce production() vrací různé hodnoty pokaždé, když je zavolána. Jedná se o jednoduchou formu statistické analýzy, tedy zajištění toho, že po sobě jdoucí vyvolání mají nezávislé výsledky.
Před voláním metody production() byste také měli zvážit inicializaci pole se známými neplatnými hodnotami, jako je -1 nebo 0. V opačném případě může neinicializované lokální pole již obsahovat nepředvídatelné hodnoty, které by test mohl interpretovat jako náhodné, i když production() nedělá vůbec nic.
Jako specifikace je prohlášení o práci poněkud vágní. Jednak nespecifikuje, jakými testy musí projít. Věřte, že pokud necháte výběr kvalifikačních testů na většině programátorů, je to velká chyba. Kód mohl fungovat pouze v jednom případě, což byl případ, který programátor použil k vývoji kódu. Pokud se vám to zdá šílené, mohu vás ujistit, že se to stalo.
iBookG4user
Původní plakát- 27. června 2006
- Seattle, WA
- 20. září 2009
Tohle se povedlo:
Kód: |_+_| S
Sander
na
- 24. dubna 2008
- 21. září 2009
iBookG4user řekl: To bylo dost jednoduché, díky!
Tohle se povedlo:
Zkuste do pole vložit „neplatné“ číslo (řekněme 11) a zjistěte, zda to tato funkce detekuje.
iBookG4user
Původní plakát- 27. června 2006
- Seattle, WA
- 21. září 2009
Sander řekl: Zkuste do pole vložit 'neplatné' číslo (řekněme 11) a zjistěte, zda to tato funkce detekuje.
Dočasně jsem pole nastavil tak, aby umožňovalo čísla větší než 10 a detekovalo to, díky S
Sander
na
- 24. dubna 2008
- 22. září 2009
iBookG4user řekl: Dočasně jsem nastavil pole tak, aby umožňovalo čísla větší než 10 a detekovalo to, díky
I když to není první prvek v poli..?
Důvod, proč se ptám, je ten, že vaše funkce print() (alespoň poslední verze uvedená v tomto vláknu) vrací pouze první prvek pole (převedený na double).
Populární Příspěvky