|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.06.2012, 10:09 | #11 | ||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
А теперь рассмотрим, как более правильно подходить к разработке программ.
1) Разрабатываем и тестируем каждую функцию отдельно. У вас одна функция any. Пишем для неё тесты в файле. При этом учитываем различные комбинации. Причём, чем больше комбинаций входных данных, тем лучше. Записываем в файле "input.txt" входные данные и ожидаемый результат: input.txt Цитата:
Цитата:
Код:
захотели изменить вашу функцию, так как придумали более красивый, короткий алгоритм. Теперь наш тест работает на нас. Мы можем быть спокойны, что не внесли какие-то очень серьёзные ошибки. А если у нас тест учитывает абсолютно все комбинации входных данных (такое редко возможно), то мы будем уверенны на 100%, что не внесли никаких ошибок. P.S. Приучайте себя писать тесты для доказательства правильной работы основного функционала. В дальнейшем вам не придётся тратить на это много времени (как в начале). Привычка - сильная штука. Главное, вырабатывать у себя правильные привычки, а не вредные! Последний раз редактировалось 8Observer8; 10.06.2012 в 10:12. |
||
10.06.2012, 11:02 | #12 | |||
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Что было бы если бы вы в самом начале написали тестовый проект для функции any()?
Из за вашей первой ошибки, функция any() никогда бы не возвратилась. Нужно это предусмотреть в тестовом проекте, использовав timeout. Если вам это интересно, то я напишу, как это сделать. Но на первых парах можно и без timeout'a. И так понятно, когда программа (точнее исследуемая функция) уходит в бесконечный цикл. Пока этот момент (с бесконечным циклом) пропустим. Следующий вариант вашей программы - это тот в котором мы забыли сбрасывать j: Код:
output.txt Цитата:
Цитата:
Код:
output.txt Цитата:
тестового проекта отнимает не так уж и много времени, а об его эффективности судите сами. P.S.S. Вы можете добавлять тестовые варианты в файл "input.txt", при этом ничего не меняя в программе. В тестовом проекте также можно предусмотреть возможность автоматической генерации тестовых данных. Последний раз редактировалось 8Observer8; 10.06.2012 в 11:19. Причина: P.S.S |
|||
10.06.2012, 16:59 | #13 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Я показываю позицию символа не по Сишному, а с единицы.
I'm learning to live...
|
|
10.06.2012, 19:29 | #14 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Цитата:
Код:
выполнил. Chelovekpredel, я бы на вашем месте использовал код Stilet'a. Он понятнее и логичнее, чем ваш: Код:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема с написанием программы.. | super3994 | Общие вопросы C/C++ | 1 | 16.11.2011 22:36 |
Проблема с написанием программы | PashkaRus | Помощь студентам | 3 | 07.06.2011 11:44 |
Проблема с написанием программы в Паскале | alexchromets | Помощь студентам | 0 | 27.02.2011 16:48 |
проблема с написанием многомодульной программы | серг | Общие вопросы C/C++ | 16 | 18.03.2010 22:11 |