Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
bobibu
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
1

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

10.05.2014, 12:54. Просмотров 389. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2014, 12:54
Ответы с готовыми решениями:

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

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

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

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

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

5
bobibu
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
12.05.2014, 19:01  [ТС] 2
Пишу еще раз, для того чтобы поднять тему)
Просто интересно в чем прикол)
0
tezaurismosis
Администратор
Эксперт .NET
8611 / 3897 / 730
Регистрация: 17.04.2012
Сообщений: 8,678
Записей в блоге: 14
12.05.2014, 20:24 3
bobibu, можно немного больше кода, хотя бы этот метод и связанные с ним, так что-то не приходят идеи
0
bobibu
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
tezaurismosis
Администратор
Эксперт .NET
8611 / 3897 / 730
Регистрация: 17.04.2012
Сообщений: 8,678
Записей в блоге: 14
13.05.2014, 11:22 5
Тот код, что вы привели почти ничего не проясняет, ну да ладно.
Раз код зависит от
C++
1
srand((unsigned) time(NULL));
во время выполнения скомпилированной программы этот код генерирует одинаковые числа, так как "seed" (это параметр в методе: (unsigned) time(NULL)) не успевает измениться.
При выполнении кода в отладке (это вы подразумеваете под словом "по-шагам"?) time(NULL) успевает измениться, пока вы переходит от строки к строке и случайные числа генерируются разные.
1
bobibu
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
13.05.2014, 11:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2014, 11:41

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru