Форум программистов, компьютерный форум CyberForum.ru

Выполнение действий с возможностью действия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как оптимизировать код? http://www.cyberforum.ru/cpp-beginners/thread945018.html
Как оптимизировать код, чтобы работала программа быстрее #include <iostream> #include <fstream> #include <iomanip> using namespace std; int fib(int); int main() {
C++ Не корректный вывод данных #include <iostream> using namespace std; int main() { setlocale( LC_ALL, "Russian" ); http://www.cyberforum.ru/cpp-beginners/thread945005.html
C++ Когда нужно ставить 0.0f в передаче переменной
Давно пишу на DirectX и уже забыл для чего я использую 0.0f (имеется ввиду только буква f после числа с плавающей точкой) Вроде бы чтобы не происходило преобразование типов неявное. Ну вопросы на пальцах задам... D3DXVECTOR3 position(0.0f,0.0f,0.0f); Каждый из трех (x,y,z) это float надо ли использовать тут .0f чтобы компилятор не думал о преобразовании double в float?
Не могу понять почему в файл OUTPUT.TXT ничего не записывается C++
#include <iostream> #include <fstream> using namespace std; int main() { int n,i; ifstream in("INPUT.TXT"); in >> n;
C++ Очистить поток http://www.cyberforum.ru/cpp-beginners/thread944971.html
Хотел с помощью куска кода (см.ниже) очистить буфер связанный с потоком cin. Но выражение в скобках по какой-то причине не изменяется? while(cin.rdbuf()->in_avail() != 0) cin.get();
C++ C++ и Eclipse Здравствуйте. Суть вопроса: есть проект для микроконтроллера, к нему подключаются файлы, являющиеся файлами uOS. Добавлял эти файлы в проект и через импорт файлов, и добавляя в настройки проекта. Хедеры видит - не ругается эклипс. Но, когда используются макросы из файлов - эклипс ругается, выдает ошибку.Какую точно сказать не могу - нет возможности в данный момент посмотреть. Например, для... подробнее

Показать сообщение отдельно
Xantrax
16 / 16 / 1
Регистрация: 28.11.2012
Сообщений: 328
28.08.2013, 18:27     Выполнение действий с возможностью действия
Извиняюсь за теоретический вопрос, но все же попробую обратиться к вашим экстрасенсорным способностям.

Есть последовательность действий(функции выполняющие определенные действия) которую нужно выполнять, есть переменная-переключатель действий(int a), изменение которой должно приводить к переключению действий. Я с помощью таймера контролирую значение этой переменной(переключателья действия) и в зависимости от значения выполняю действие.
Выглядит это примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int i = 0;
 
void TForm1::ButtonClick()
{
    if(i==0)
    {
        Timer1->Enable = true; // по нажатию кнопки включаю таймер
        i++;
    }
     else if(i!=0)
    {
         Timer1->Enable = false;//
         i = 0;
     }
}
 
 
void TForm::TimerStart()              //Работа таймера с установленным интервалом 
{
    switch(a)
    {
        case 0:
        {
            действие0();
            a = 2;
            break;
        }
        case 1:
        {
            действие1();
            a = 2;
            break;
        }
        case 2:
        {
            действие2();
        if(определенные обстоятельства)
        {
            a = 1;
            break;
        }
         a = 0;
         break;
       }
    }
}
Проблема в том, что тики таймера приходят во время когда, допустим, выполняется действие 2 и переменная все еще равна тому значению для выполнения второго действия, соответственно программа вновь начинает выполнять второе действие....
Как реализовать цикл с точным выполнением действий и возможностью выхода из этого цикла?
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru