|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.10.2015, 13:51 | #1 |
Форумчанин
Регистрация: 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? |
20.10.2015, 15:03 | #3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Код 700 кб? Вы там Войну и мир в строкой литерал положили?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
20.10.2015, 15:22 | #5 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну так либа это ж не код.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача для знатоков | 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 |