0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
1

Один и тот же код, но работает по разному

10.05.2014, 12:54. Показов 1372. Ответов 5
Метки нет (Все метки)

Один и тот же код но работает по разному.
Если запускать код по шагам отрабатывает на все 100%, а если "не по-шагам", то есть запустить exe и работаем в программе, то она не правильно работает.
(если кому интересно, что за программа, то это цепи Маркова с исследованием финального распределения с визуальным приложением в виде игрового автомата(было скучно вот и игровой автомат и пририсовал))
если быть точнее то в этом куске программа "не по-шагам" работает не правильно:
C++
1
2
3
4
5
6
for(i=0;i<5;i++)
             {
                 button1_Click(sender,e);
                 button2_Click(sender,e);
                 ...
             }
есть предположение, что компилятор по разному компилирует(по шагам и "не по-шагам")...
Если у кого есть какие-нибудь мысли по этому поводу буду рад услышать!)
Заранее Спасибо!)
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2014, 12:54
Ответы с готовыми решениями:

Один и тот же код по разному работает
Доброго времени суток, уважаемые товарищи! Решил написать код, заполняющий диагональ двумерной...

Один и тот же код работает по-разному
Составила программу, программа работает, выдаёт верное решение: var n,i,j,k,r:integer;...

Один и тот же код на Си и Паскале работает по-разному!
Задача: найти в массиве наидлиннейшую цепочку отрицательных элементов, вырезать её и вставить в...

Почему в WEB приложении и в обычном один и тот же код по разному работает?
static Boolean Auth(String data) { String dbURL =...

5
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
12.05.2014, 19:01  [ТС] 2
Пишу еще раз, для того чтобы поднять тему)
Просто интересно в чем прикол)
0
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
12.05.2014, 20:24 3
bobibu, можно немного больше кода, хотя бы этот метод и связанные с ним, так что-то не приходят идеи
0
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
12.05.2014, 22:12  [ТС] 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
button3_Click(System::Object^  sender, System::EventArgs^  e) 
{
    for(i=0;i<5;i++)
     {
         button1_Click(sender,e);
         button2_Click(sender,e);
         //красим panel на каждом i шаге по разному
     }
}
button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
    //заполняем рандомно вектор B с условиями цепи Маркова
}
button2_Click(System::Object^  sender, System::EventArgs^  e) 
{
    proizvedenieVector();   //умножение возведённой матрицы A^n и вектора B
}
код в 500 строк разумеется кидать нет никакого смысла, но вот так кратенько у меня работает так)
из всех эспериментов, я понял то что компилятор не считает нужным "менять рандомный вектор"
но вот эта строка присутствует разумеется:
C++
1
srand((unsigned) time(NULL));
вообщем, решил сделать проверку, решил посмотреть какие векторы у меня получаются в итоге после button2_Click:
по шагам - разные векторы(тут правильно, соответственно при маленькой степени n, при больших степенях будут уже одинаковые векторы)
"не по-шагам" - одинаковые векторы(тут не правильно)

работаю в VS 2008
0
Администратор
Эксперт .NET
9355 / 4637 / 755
Регистрация: 17.04.2012
Сообщений: 9,490
Записей в блоге: 14
13.05.2014, 11:22 5
Тот код, что вы привели почти ничего не проясняет, ну да ладно.
Раз код зависит от
C++
1
srand((unsigned) time(NULL));
во время выполнения скомпилированной программы этот код генерирует одинаковые числа, так как "seed" (это параметр в методе: (unsigned) time(NULL)) не успевает измениться.
При выполнении кода в отладке (это вы подразумеваете под словом "по-шагам"?) time(NULL) успевает измениться, пока вы переходит от строки к строке и случайные числа генерируются разные.
1
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
13.05.2014, 11:41  [ТС] 6
C++
1
srand((unsigned) time(NULL));
он у меня находился в
C++
1
button1_Click(sender,e);
получается он у меня постоянно обновлялся и не успевал изменяться)
tezaurismosis, спасибо!)
закинул srand((unsigned) time(NULL)) в Form1_Load(), теперь все норм)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2014, 11:41
Помогаю со студенческими работами здесь

Один и тот же код выполняется по-разному
имеется код если его выполнять в visual studio 2010 то он выполняется по разному, иногда выводит ...

Один и тот же рекордсет - но работает по разному
Один и тот же рекордсет - но работает по разному. В чем причина ? Cм. текст ниже. ...

Один и тот же внешний жесткий диск по разному работает на двух похожих ноутбуках
Один и тот же внешний жесткий диск по разному работает на двух похожих ноутбуках. От чего это...

Text-align: justify один код работает по разному
Имеется код, выравнивающий гориз-е меню с помощью text-align: justify....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru