iBookG4user
Оригинален плакат- 27 юни 2006 г
- Сиатъл, Вашингтон
- 20 септември 2009 г
„Напишете функция, която ще запълни масив с 25 произволни числа между 1 и 10. След това напишете функция, която ще разпечата масива. Напишете някакъв код в main, за да тествате функциите си. Понякога този тестов код се нарича *драйвер
Не използвайте глобални променливи тук. Предайте масива на функцията през списъка с параметри'
Моят текущ код не води до никакви грешки в дебъгера, но не извежда масива. И аз не знам какво има предвид като пише драйвера, какво трябва да тествам? Всички вие се оказахте изключително полезни в миналото и съм сигурен, че ще помогнете да ме насочите в правилната посока този път
Код: |_+_|
lee1210
- 10 януари 2005 г
- Далас, Тексас
- 20 септември 2009 г
Освен това, и съм сигурен, че това е честна грешка, сигурен съм, че вашият професор е имал предвид псевдо- произволен.
Освен това, по принцип, вие декларирате нови double()s, а не извиквате production и print. Отстранете двойника там и предайте аргумент, както беше обсъдено по-горе, и променете типа на връщане и на двете на void.
-Прочети
gnasher729
Суспендиран
- 25 ноември 2005 г
- 20 септември 2009 г
И как бихте написали извикване на функцията 'produce'?
И вътре във вашата 'главна' функция, коя от двете сте написали, прототип на функция или извикване на функция?
iBookG4user
Оригинален плакат- 27 юни 2006 г
- Сиатъл, Вашингтон
- 20 септември 2009 г
lee1210 каза: Няколко неща: Вашият масив трябва да е от тип int[], а не double[]. Трябва да приемете int масив, за да създадете и отпечатате. Трябва да декларирате int[] в main, да го предадете за производство, да го попълните там, след това да го предадете за печат. В<< operator of ofstream does not deal with arrays as you'd hope, so you'll need to loop to display in print.
Освен това, и съм сигурен, че това е честна грешка, сигурен съм, че вашият професор е имал предвид псевдо- произволен.
Освен това, по принцип, вие декларирате нови double()s, а не извиквате production и print. Отстранете двойника там и предайте аргумент, както беше обсъдено по-горе, и променете типа на връщане и на двете на void.
-Прочети
Добре, направих промените, които предложихте и кодът изглежда по-логичен. Въпреки че сега получавам три грешки в циклите for.
Код: |_+_|
Прикачени файлове
lee1210
- 10 януари 2005 г
- Далас, Тексас
- 20 септември 2009 г
Мисля, че намерението е да извикате print обратно в main, което би трябвало да е добре.
Също така, когато предавате масив за производство, просто използвайте масив, а не * масив.
-Прочети
iBookG4user
Оригинален плакат- 27 юни 2006 г
- Сиатъл, Вашингтон
- 20 септември 2009 г
lee1210 каза: Променете типа аргумент на product на int[] или int *. В момента това е просто int, така че не можете да използвате [] и т.н. Същото важи и за печат. Освен това не е необходимо да връщате нищо от продукция или печат. Променете техния тип връщане на void.
Мисля, че намерението е да извикате print обратно в main, което би трябвало да е добре.
Също така, когато предавате масив за производство, просто използвайте масив, а не * масив.
-Прочети
Проработи
Сега, знаете ли какво имаше предвид, като написа кода за тестване на функциите? Какво има предвид с това? И благодаря много за помощта до момента!
Код: |_+_|
chown33
Модератор
Член на персонала- 9 август 2009 г
- Бездната равнина
- 20 септември 2009 г
iBookG4user каза: Сега, знаете ли какво е имал предвид с писането на кода за тестване на функциите? Какво има предвид с това?
Спецификацията казва, че числата в масива трябва да са между 1 и 10. Можете да напишете тест, който потвърждава това.
Освен това се казва, че числата трябва да са произволни. Докато случайността може да бъде по-трудна за тестване, отколкото изглежда, простата неслучайност може да бъде лесна за тестване. Най-простото е да се потвърди, че всички числа не са с една и съща стойност. По-сложните тестове за случайност използват статистически анализи.
Друг тест, който можете да напишете, е да потвърдите, че функцията product() връща различни стойности всеки път, когато бъде извикана. Това е проста форма на статистически анализ, т.е. гарантиране, че последователните извиквания имат независими резултати.
Трябва също да помислите за инициализиране на масива с известни невалидни стойности, като -1 или 0, преди да извикате production(). В противен случай един неинициализиран локален масив може вече да съдържа непредвидими стойности, които тестът може да интерпретира като произволни, дори ако production() не прави нищо.
Като спецификация, описанието на работата е малко неясно. От една страна, не уточнява какви тестове трябва да премине. Повярвайте ми, ако оставите на повечето програмисти да избират квалификационните тестове, това е голяма грешка. Кодът може да работи само в един случай, какъвто беше случаят, използван от програмиста, за да разработи кода. Ако това изглежда лудо, мога да ви уверя, че се е случило.
iBookG4user
Оригинален плакат- 27 юни 2006 г
- Сиатъл, Вашингтон
- 20 септември 2009 г
Това свърши работа:
Код: |_+_| С
Сандър
да се
- 24 април 2008 г
- 21 септември 2009 г
iBookG4user каза: Това беше достатъчно просто, благодаря!
Това свърши работа:
Опитайте се да поставите 'невалидно' число във вашия масив (да речем, 11) и вижте дали тази функция го открива.
iBookG4user
Оригинален плакат- 27 юни 2006 г
- Сиатъл, Вашингтон
- 21 септември 2009 г
Сандър каза: Опитайте се да поставите „невалидно“ число във вашия масив (да речем, 11) и вижте дали тази функция го открива.
Временно настроих масива да позволява числа по-големи от 10 и той го откри, благодаря С
Сандър
да се
- 24 април 2008 г
- 22 септември 2009 г
iBookG4user каза: Временно настроих масива да позволява числа по-големи от 10 и го откри, благодаря
Дори и да не е първият елемент в масива..?
Причината да питам е, че вашата функция print() (поне последната версия, показана в тази тема) връща само първия елемент от масива (преобразуван в двоен).
Популярни Публикации