Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2015, 13:51   #1
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию С#, для самых знатоков, ошибка с очищением массива

Код отправляю в тексте. Если кому пригодится, могу дать сам код, но он весит 700 кб.

Я долго сижу над вопросом, поэтому хочу уточнить, может кто-то мне быстро укажет на проблему. На рисунке приведен интерфейс, где каждую секунду выводится часть данных из массива А и находится массив difcod. Так вот, стандартная длина массива difcod - 1800 символов. По 1800 бит выводится на график бинарного сигнала.... Обратите внимание на эту переменную difcod. Если обрабатывать текст, который приведен на рисунке, то он разбивается на 3 части и они по очереди представляются на экране в виде 1800 бинарных бит. На рисунке справа я пытаюсь сделать созвездие...не важно. Но по его форме я и сужу качество моего кода.

Так вот, если нажать на старт, и передавать все так, как это показано на рисунке 1, а затем нажать на стоп, то ничего не заметно. Но если потом ввести в исходный текст символ "Э", то получается не то "созвездие" (рисунок справа). Я проверил. Если закрыть программу, запустить ее заново и в тексте набрать "Э", а потом нажать на старт, выдает правильное созвездие. Я решил сравнить переменную difcod и понял, что где-то она не обнуляется. Дело в том, что длина строки difcod всегда должна быть равна 1800. difcod берется из Bdig. Но случилось так, что во время второго "Э" она была равна 3600.

То есть надо бы в правильном месте и в правильное время очистить массив difcod, но у меня не получается.

Я заметил вопрос поинтереснее, когда сразу после запуска компилятора ввел в окно "Э", а затем нажал на старт, график справа строится первый раз отлично, потом идет два пустых окна, потому что размерность массивов равна трем, а потом (!), когда идет вывод данных по второму кругу, график справа строится криво. То есть difcod уже имеет размерность 3600 бит. Как так, почему именно 3600?

Может сможете на основании имеющихся данных сказать, что не так обновляется?

Либо скажите, что я могу еще попробовать сделать с кодом, чтобы элементы difcod всегда были размерностью 1800?
Изображения
Тип файла: jpg Безымянный.jpg (40.8 Кб, 116 просмотров)
Вложения
Тип файла: txt code.txt (10.6 Кб, 113 просмотров)
Krasi вне форума Ответить с цитированием
Старый 20.10.2015, 14:52   #2
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

Хех, все оказалось настолько просто! Я не придумал, где у меня не обнуляется переменная, но я просто сделал отдельную функцию difcoding, где из Bdig формируется difcoding. И ошибка исчезла!!!
Krasi вне форума Ответить с цитированием
Старый 20.10.2015, 15:03   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Код 700 кб? Вы там Войну и мир в строкой литерал положили?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2015, 15:11   #4
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

О, я не знаю. Там только одна либа - ZedGraph. Я пока не очень понимаю, почему столько весит.
Krasi вне форума Ответить с цитированием
Старый 20.10.2015, 15:22   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну так либа это ж не код.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2015, 15:50   #6
Krasi
Форумчанин
 
Регистрация: 12.02.2010
Сообщений: 787
По умолчанию

А без либы программа не заработает. Но спасибо за уточнение, сам код я отправил в тексте, а исходники программы мог бы отправить дополнительно, а не код.
Krasi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача для знатоков appalist Общие вопросы C/C++ 6 24.12.2011 00:32
Для самых, самых начинающих! Dava Общие вопросы Delphi 4 20.09.2011 22:30
Ввести массив вещественных чисел NxM для заданной строки массива найти два самых больших числа (на C#) владислав10 Помощь студентам 1 10.04.2011 14:10
Пустяк для знатоков ассемблера a.lebedev Помощь студентам 0 30.05.2010 22:33