Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35

Циклы

25.07.2012, 22:35. Показов 4249. Ответов 68
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь с циклом.Есть определенный массив из которого необходимо вытащить данные и поставить в цикл, так же необходимо делать проверку, вот что у меня получилось:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LPDIRECT3DTEXTURE9 values[4];
    values[0] = Green; 
    values[1] = Red; 
    values[2] = Yellow; 
    values[3] = Blue; 
 
    while (GetAsyncKeyState(VK_NUMPAD1) &1 )
     {
         for (int i=0; i <= 4; ++i)
        {
        x = values[i];
        bFugas = !bFugas;
        }
        
 
     }
Т.Е при нажатии на num1 , должна происходить смена цвета)
P.S Надеюсь написал понятным языком)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.07.2012, 22:35
Ответы с готовыми решениями:

Заменить в коде циклы for на циклы while
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2; j++) if ((i%j) == 0) a =...

циклы
с точностью е=0.001

циклы for, while
for: Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k. while: Дано натуральное число n....

68
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 14:50
Студворк — интернет-сервис помощи студентам
Если эта ошибка возникает до нажатия, значит программа, минуя это:
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
       int i = 1;
        bFugas = !bFugas;
    }
проходит до этого:
C++
1
m_pD3Ddev->SetTexture(0,values[i]);
и встречает там неинициализированную переменную i. Раз это происходит, значит bFugas в это время не false. Эта переменная может ещё где-нибудь меняться, кроме как здесь?
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        int i = 1;
        bFugas = !bFugas;
    }
Добавлено через 5 минут
Цитата Сообщение от Igrom@n Посмотреть сообщение
Что надо исправить?
Надо сначала без циклов передать значение цвета. Если получится, тогда дальше двигаться. Тут знак сравнения нужен, а не присваивания:
C++
1
if(color==1)m_pD3Ddev->SetTexture(0,Red);
Добавлено через 4 минуты
По моему, там цикл вообще не нужен, если и так идёт постоянный опрос нажатия клавиша. Ведь вы сами написали, что
сама ф-ия GetAsyncKeyState представляет из себя некий цикл.
Добавлено через 3 минуты

Не по теме:

Хуже нет, когда нет возможности самому пробовать.



Добавлено через 5 минут
Заход в эту конструкцию HRESULT APIENTRY происходит когда?
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 14:53  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Если эта ошибка возникает до нажатия, значит программа, минуя это:
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
       int i = 1;
        bFugas = !bFugas;
    }
проходит до этого:
C++
1
m_pD3Ddev->SetTexture(0,values[i]);
и встречает там неинициализированную переменную i. Раз это происходит, значит bFugas в это время не false. Эта переменная может ещё где-нибудь меняться, кроме как здесь?
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        int i = 1;
        bFugas = !bFugas;
    }
Добавлено через 5 минут
Надо сначала без циклов передать значение цвета. Если получится, тогда дальше двигаться. Тут знак сравнения нужен, а не присваивания:
C++
1
if(color==1)m_pD3Ddev->SetTexture(0,Red);
Добавлено через 4 минуты
По моему, там цикл вообще не нужен, если и так идёт постоянный опрос нажатия клавиша. Ведь вы сами написали, что

Добавлено через 3 минуты

Не по теме:

Хуже нет, когда нет возможности самому пробовать.

да, в самом начала задается значение bFugas = false; Это значит что сейчас он выключен.
Заметил, что при a=0 ни горит ничего, при a=1,2 почему то горит черный.а если горит черный, значит он не смотрит на этот участок кода:
C
1
2
3
4
5
if(color=1)m_pD3Ddev->SetTexture(0,Red);
 if(color=2)m_pD3Ddev->SetTexture(0,White);
 if(color=3)m_pD3Ddev->SetTexture(0,Green);
 if(color=4)m_pD3Ddev->SetTexture(0,Blue);
 if(color=5)m_pD3Ddev->SetTexture(0,Black);
Добавлено через 2 минуты
Вам необходим сам исходник??
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:08
Цитата Сообщение от Igrom@n Посмотреть сообщение
Вам необходим сам исходник??
Нет, я о другом написал. IDE нужно настраивать. Код исправили? ==

Добавлено через 5 минут
И как вы значение a видите?

Добавлено через 3 минуты
Цикл этот никуда не годится. Мой вам совет, уберите его, вернитесь к if и добейтесь передачи одного цвета через переменную. Потом дальше. Циклы тут только всё путают.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:09  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Нет, я о другом написал. IDE нужно настраивать. Код исправили? ==

Добавлено через 5 минут
И как вы значение a видите?

Добавлено через 3 минуты
Цикл этот никуда не годится. Мой вам совет, уберите его, вернитесь к if и добейтесь передачи одного цвета через переменную. Потом дальше. Циклы тут только всё путают.
Руками перебрал.. Я так понял, что от а ничего не зависит, нажав 1 раз, 1 раз к color и прибавится,
при повторном нажатии это не происходит...
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:11
Этот вариант даёт ошибку?
C++
1
2
3
4
5
6
int i = 3;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }

C++
1
m_pD3Ddev->SetTexture(0, values[i]);
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:12  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Нет, я о другом написал. IDE нужно настраивать. Код исправили? ==

Добавлено через 5 минут
И как вы значение a видите?

Добавлено через 3 минуты
Цикл этот никуда не годится. Мой вам совет, уберите его, вернитесь к if и добейтесь передачи одного цвета через переменную. Потом дальше. Циклы тут только всё путают.
Ну я в скайпе с парнем общался, он мне сказал надо делать через циклы for и while..
Сделав через if у меня получилось:
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
    int i=3;
    int color=0;
 
 
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
       if(i<4)
       {
        i++;
        color++;
        bFugas = true;
       }
       else
       {
        i=0;
        color=0;
        bFugas =false;
       }
 
    }
    
 
 
 
if (bFugas) 
 { 
     if (Fugas) 
 { 
 DWORD dwOldZEnable; 
 m_pD3Ddev->GetRenderState(D3DRS_ZENABLE,&dwOldZEnable); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); 
 m_pD3Ddev->SetTexture(0,White);
 m_pD3Ddev->DrawIndexedPrimitive(device,BaseVertexIndex,MinVertexIndex,NumVertices,startIndex,primCount); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable); 
 if(color==1)m_pD3Ddev->SetTexture(0,Red);
 if(color==2)m_pD3Ddev->SetTexture(0,White);
 if(color==3)m_pD3Ddev->SetTexture(0,Green);
 if(color==4)m_pD3Ddev->SetTexture(0,Blue);
 if(color==5)m_pD3Ddev->SetTexture(0,Black);
 
 
 } 
 }
но как бы я не менял i к color значения не +
Цитата Сообщение от alsav22 Посмотреть сообщение
Этот вариант даёт ошибку?
Да
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:18
Да
Покажите мне всю конструкцию куда вы его вставили. Не может он давать такую же ошибку.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:22  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Покажите мне всю конструкцию куда вы его вставили. Не может он давать такую же ошибку.
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
HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitive(D3DPRIMITIVETYPE device,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)
{
 
LPDIRECT3DTEXTURE9 values[4];
    values[0] = Green; 
    values[1] = Red; 
    values[2] = Yellow; 
    values[3] = Blue; 
int i;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }
    
 
 
 
if (bFugas) 
 { 
     if (Fugas) 
 { 
 DWORD dwOldZEnable; 
 m_pD3Ddev->GetRenderState(D3DRS_ZENABLE,&dwOldZEnable); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); 
 m_pD3Ddev->SetTexture(0,White);
 m_pD3Ddev->DrawIndexedPrimitive(device,BaseVertexIndex,MinVertexIndex,NumVertices,startIndex,primCount); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable); 
m_pD3Ddev->SetTexture(0, values[i]);
 
 
 } 
 }
 
 
    HRESULT hRet = m_pD3Ddev->DrawIndexedPrimitive(device, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    return hRet;
}
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:26
Я разве такой код написал? в 9 строке:
C++
1
int i = 3;
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:29  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Я разве такой код написал? в 9 строке:
C++
1
int i = 3;
о5 не туда напечатал! работает! только горит черным.. вывод -> он пропускает код
C++
1
 m_pD3Ddev->SetTexture(0, values[i]);
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:31
Цитата Сообщение от Igrom@n Посмотреть сообщение
Ошибку выдал, слишком много его значений
Ещё рад код полностью, который ошибку выдаёт и, если можно, скрин ошибки.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:34  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Ещё рад код полностью, который ошибку выдаёт и, если можно, скрин ошибки.

работает! только горит черным.. вывод -> он пропускает код

C++
1
*m_pD3Ddev->SetTexture(0, values[i]);
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:37
Если я правильно понял, так ошибки нет? И код, если можно.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:39  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Если я правильно понял, так ошибки нет? И код, если можно.
Да работает, вы были правы(там была другая ошибка)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 int i = 3;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }
 
if (bFugas) 
 { 
     if (Fugas) 
 { 
 DWORD dwOldZEnable; 
 m_pD3Ddev->GetRenderState(D3DRS_ZENABLE,&dwOldZEnable); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); 
 m_pD3Ddev->SetTexture(0,White);
 m_pD3Ddev->DrawIndexedPrimitive(device,BaseVertexIndex,MinVertexIndex,NumVertices,startIndex,primCount); 
 m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable); 
 m_pD3Ddev->SetTexture(0, values[i]);
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:41
Начальный цвет какой получается и что происходит при нажатии?
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:44  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Начальный цвет какой получается и что происходит при нажатии?
Начального цвета нет, при нажатии текстура начинает подсвечиваются черным цветом. Черным цветом подсвечивается она тогда, когда цвет не прописан в этой строчке
C++
1
m_pD3Ddev->SetTexture(0, values[i]);
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:48
Если так:
C++
1
2
3
4
5
6
7
 int i = 3;
    bFugas = true;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        //bFugas = !bFugas;
    }
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:53  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Если так:
C++
1
2
3
4
5
6
7
 int i = 3;
    bFugas = true;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        //bFugas = !bFugas;
    }
Сразу Подсвечивается черным цветом, на нажатия не реагирует
P.S в прошлом коде, При изменении int i = 3 на 0,1, 2 цвет становится разным, т.е ф-ия работает нормально
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 15:58
Цитата Сообщение от Igrom@n Посмотреть сообщение
т.е ф-ия работает нормально
Где же функция? Вы же до функции меняете ?
Имеется ввиду, до этого GetAsyncKeyState(VK_NUMPAD1)?

Добавлено через 2 минуты
Если так:
C++
1
2
3
4
5
6
7
int i = 3;
    bFugas = false;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 15:59  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Где же функция? Вы же до функции меняете ?
Имеется ввиду, до этого GetAsyncKeyState(VK_NUMPAD1)?

Добавлено через 2 минуты
Если так:
C++
1
2
3
4
5
6
7
int i = 3;
    bFugas = true;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }
Даааа

Добавлено через 43 секунды
Цитата Сообщение от alsav22 Посмотреть сообщение
Где же функция? Вы же до функции меняете ?
Имеется ввиду, до этого GetAsyncKeyState(VK_NUMPAD1)?

Добавлено через 2 минуты
Если так:
C++
1
2
3
4
5
6
7
int i = 3;
    bFugas = false;
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        i = 1;
        bFugas = !bFugas;
    }
Не имеет смысла, т.к в начале уже bFugas = false; это скащано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.07.2012, 15:59
Помогаю со студенческими работами здесь

Циклы
Воозникли трудности. Можете помочь ?) Необходимо протабулировать функции, зависящее от 2 переменных или от нескольких параметров....

Циклы
1)Используя перебор значений найти все числа из диапазона от n до m, которые при возведении в квадрат дают палиндром 2)В соревнованиях...

Циклы do и while
Приветсвую всех. Прошу помощи в решении двух задач: 1.Составить программу для определения, является ли натуральное число k степенью...

Циклы
Дан номер телевизионного канала(от 1 до 5). Вывести на экран наиболее популярные программы заданного канала.

Циклы
Как написать программу, в которой нужно сложить значения получаемые в цикле? z=sin(\sum_{3}^{10}(a*k+c)) a,c известны


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru