![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Здраствуйте. Помогите пожалуйста, что это может быть, что вот уже больше дня играюсь с билдером и он непонятно что творит. Например, написана функция для ввода текста в многострочном поле определенной длины:
Код:
Код:
Это только один глюк... А если продолжить рассказ: Код:
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
И таких глюков в программе еще пару десятков.
Например, есть такой случай: Код:
Я долго ломал голову, от чего же это так, пока в пошаговом исполнении программы я случайно не поставил брекпойнт на закрывающую скобку функции MyFunction(). И как оказалось, после выполнения последней команды в функции управление переходит на нее. Я нажимаю Play(для продолжения работы программы после остановки на брекпойнте), после чего программа снова отсаовилась на скобке. Я снова нажимаю Play - она снова на скобке. Я взял и поставил брекпойнты тупо на всех строчках кода, и как оказалось, после выполнения вот этой функции программа переходит на скобку } и выполняется на ней бесконечно=-O Я тупо в ауте. И это я не все глюки перезвал. Уже больше года имею дело с средами программирования и самим программированием, но такие чудеса, которые не вкладываются ни в какие законы физики, математики или программирования я вижу впервые :megashok: Что это может такое быть?:'( Помогите пожалуйста, очень прошу. У меня уже просто идеи кончились и я смотрю в монитор квадратными глазами и не знаю что делать. Другое дело, если бы знать причину глюков, а так ведь они эти глюки появляются там, где такое вообще невозможно практически, и программа работает по каким-то аномальным законам=-O Последний раз редактировалось Tolias; 22.11.2010 в 00:14. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Помогите пожалуйста, очень прошу(((((
А то я уже не знаю что думать и уже дошел до того, что на оперативку стал грешить%) . Ведь в ней же хранятся все переменные исполняемой программы. А раз эти пеерменные непонятно по каким законам удаляются или меняются, значит может проблема в ОЗУ?.. Но вот скачал memtest, проверил оперативку. Memtest говорит "Pass Complete, no errors, Press Esc to exit". Значит оператива в поряде.. Также уже переустанавливал систему в надежде, что может это просто глюки билдера и после его на чистую ось ситуация исправится. Но не тут то было(( Все осталось по старому. Значения переменных затираются там, где о них вообще не упоминается%) например: PHP код:
Как вообще вот в такой обстановке возможно программу писать...(((( Последний раз редактировалось Tolias; 22.11.2010 в 00:18. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]()
Попробуй замени при выводе
cprintf("%i ",z); на cprintf("%d ",z); И что это за cprintf; почему нельзя простой printf? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Попробовал. Ситуация та же самая. В том то и прикол, что cprintf вообще не должен вообще никак трогать переменную str, но при выполнении этой команды почему-то затирается значение str(((
Эта команда идентична printf, но лишь с той разницей, что в консольном окне можно выводить текст с заданным цветом фона и текста. В моей программе это как раз нужно P.S. printf тоже затирает данные других переменных, уже пробовал ![]() ![]() |
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]() Цитата:
И на какое else она перескакивает? Мне просто сейчас очень лень, с головой лезть в отладку. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Как так? Ведь, насколько я знаю, if всегда выполнялся при ненулевом значении. Если же написать if(0), то условие не выполняется. А вы говорите обратное.. Я что-то вообще запутался... Как же так? Почему тогда в одних случаях if поступает по одному, а второй раз по другому.. Объясните мне пожалуйста, будьте добры. Проясните мою бедную голову
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Как же тогда знать, когда оператор if единицу считает true, а когда false?
|
![]() |
![]() |
![]() |
#9 | |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
![]() Цитата:
В if проверка ведется на истину. т.е. выражение в if должно вернуть одно из двух значений true или false. Код:
![]() Последний раз редактировалось psycho-coder; 22.11.2010 в 20:25. |
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 41
|
![]()
Короче говоря, условие всегда выполняется, если сукупность операторов или какая-то функция или какое-то выражение, что находится в скобках if'а будет равно числу, отличному от нуля. Верно? А так как много функций умеют возвращать в случае ошибки выполнения нуль, то их можно пихать сразу в скобки if'а, и тем самым проверять, правильно ли сработала функция, написанная в скобках.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему значения линии тренда некорректны после половины периода | helen-list | Microsoft Office Excel | 2 | 08.06.2010 11:56 |
Обновление таблицы после выполнения селекта | Tatochka | Microsoft Office Access | 5 | 15.01.2010 10:40 |
Почему после выполнения do-while, вложенного в if, инструкции дальше не выполняются? | Chewing_dog | Помощь студентам | 3 | 09.06.2009 06:44 |
Button после выполнения ProgressBar | }{oт@бь)ч | Общие вопросы Delphi | 7 | 25.01.2009 12:33 |
Команды обработки строк! | Proskurin | Помощь студентам | 11 | 06.05.2008 16:11 |