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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
#1

Циклы - C++

25.07.2012, 22:35. Просмотров 2088. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.07.2012, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклы (C++):

Заменить в коде циклы for на циклы while - C++
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 =...

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

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

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

циклы - C++
вывести на экран все целые числа из диапазона от А до Б, кратные трем (А&lt;=B)

циклы - C++
помогите вывести таблицу 4 3 2 1 0 3 2 1 0 2 1 0 1 0 0

68
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 11:36  [ТС] #16
Цитата Сообщение от 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
39
40
41
HRESULT APIENTRY hkIDirect3DDevice9::DrawIndexedPrimitive(D3DPRIMITIVETYPE device,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount)
{
 
LPDIRECT3DTEXTURE9 x,y;
LPDIRECT3DTEXTURE9 values[4];
values[0] = Green; 
values[1] = Red; 
values[2] = Yellow; 
values[3] = Blue; 
 
 
    if (GetAsyncKeyState(VK_NUMPAD1) &1 )
     {
         for (int i=0; i < 4; ++i)
 
        {
        x = values[i];
        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,x);
 } 
 }
 
 
    HRESULT hRet = m_pD3Ddev->DrawIndexedPrimitive(device, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
    return hRet;
}
Это участок кода с которым на данный момент работаю) Или надо полностью исходник?
P.S Вот с этим текстура подсвечивается 2 цветом, а при нажатии 2 раз просто отключается):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
 
i=0;
while (true)
{
   if(GetAsyncKeyState(VK_NUMPAD1) &1)
   {
        x = values[i++];
        bFugas = !bFugas;
        if(i==4)i=0;
    }
}
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 11:43 #17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
 
i=0;
while (true)
{
   if(GetAsyncKeyState(VK_NUMPAD1) &1)
   {
        x = values[i++];
        bFugas = !bFugas;
        if(i==4)i=0;
    }
}
Во втором выхода из while нет.
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 11:49  [ТС] #18
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
 
i=0;
while (true)
{
   if(GetAsyncKeyState(VK_NUMPAD1) &1)
   {
        x = values[i++];
        bFugas = !bFugas;
        if(i==4)i=0;
    }
}
Во втором выхода из while нет.
Простите, отпечатался(не то скопировал) вот правильное:
C
1
2
3
4
5
6
7
8
9
10
11
12
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
if (i>=0 && i<3)
   x = values[++i];
else
{
   i = 0;
   x = values[i];
}
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 11:53 #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int i = 0;
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
 if (i<3)
{
   x = values[++i];
   bFugas = !bFugas;
}
else
{
   i = 0;
   x = values[i];
   bFugas = !bFugas;
}
}
Так попробуйте.
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 11:59  [ТС] #20
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int i = 0;
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
 if (i<3)
{
   x = values[++i];
   bFugas = !bFugas;
}
else
{
   i = 0;
   x = values[i];
   bFugas = !bFugas;
}
}
Так попробуйте.
Пробовал, краш
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 12:08 #21
А в вашем коде, что с подсветкой происходит? Если один цвет задать через x = values[], без опроса нажатия клавиши, без циклов, то код работает?
1
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 12:14  [ТС] #22
Цитата Сообщение от alsav22 Посмотреть сообщение
А в вашем коде, что с подсветкой происходит? Если один цвет задать через x = values[], без опроса нажатия клавиши, без циклов, то код работает?
Нет, необходимо нажатие клавиши, для включения и выключения подсветки. bFugas = !bFugas; отвечает за включение, отключение подсветки. Дается такой код
C
1
2
if(GetAsyncKeyState( VK_NUMPAD1 )&1) 
bFugas = !bFugas;
Я хочу его переделать, чтоб по нажатию цвет переключался, а не просто включился выключился)
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 12:24 #23
А если так прописано:
C++
1
2
if(GetAsyncKeyState( VK_NUMPAD1 )&1) 
bFugas = !bFugas;
, то код работает? Меня интересует, без ваших изменений, код, сам по себе, рабочий?
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 12:26  [ТС] #24
Цитата Сообщение от alsav22 Посмотреть сообщение
А если так прописано:
C++
1
2
if(GetAsyncKeyState( VK_NUMPAD1 )&1) 
bFugas = !bFugas;
, то код работает? Меня интересует, без ваших изменений, код, сам по себе, рабочий?
Да (5 символов...)
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 12:38 #25
Начальные значения bFugas, Fugas какие?

Добавлено через 2 минуты
Если так написать:
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        x = values[1];
        bFugas = !bFugas;
    }
, то цвет на красный меняется?
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 12:39  [ТС] #26
Цитата Сообщение от alsav22 Посмотреть сообщение
Начальные значения bFugas, Fugas какие?
Они задаются здесь (точнее цвет и подсветка):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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]);
 } 
;
}
bFugas: bool bFugas = false;
Fugas: #define Fugas ((NumVertices == 1541 && primCount == 1220)
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 12:40 #27
C++
1
m_pD3Ddev->SetTexture(0,x);
Это ваша добавка в код?
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 12:45  [ТС] #28
Цитата Сообщение от alsav22 Посмотреть сообщение
Начальные значения bFugas, Fugas какие?

Добавлено через 2 минуты
Если так написать:
C++
1
2
3
4
5
if (GetAsyncKeyState(VK_NUMPAD1) &1 )
    {
        x = values[1];
        bFugas = !bFugas;
    }
, то цвет на красный меняется?
Нет вылазит ошибка

Добавлено через 45 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
m_pD3Ddev->SetTexture(0,x);
Это ваша добавка в код?
Только х, там стоял цвет
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 12:45 #29
У вас в
C++
1
2
3
4
5
6
7
8
if (bFugas) 
 { 
 if (Fugas) 
 { ..............
m_pD3Ddev->SetTexture(0,White);
..............................................
m_pD3Ddev->SetTexture(0,values[i]);
...................................................
Как это сочетается?
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 12:47  [ТС] #30
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
m_pD3Ddev->SetTexture(0,x);
Это ваша добавка в код?
Только х, там стоял цвет

Добавлено через 47 секунд
Цитата Сообщение от alsav22 Посмотреть сообщение
У вас в
C++
1
2
3
4
5
6
7
8
if (bFugas) 
 { 
 if (Fugas) 
 { ..............
m_pD3Ddev->SetTexture(0,White);
..............................................
m_pD3Ddev->SetTexture(0,values[i]);
...................................................
Как это сочетается?
1 Для подсветки сквозь стены, 2 для близи, т.е когда видишь объект перед собой
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2012, 12:47
Привет! Вот еще темы с ответами:

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

Циклы в Cи - C++
Всем привет, в общим столкнулся с проблемой, мне необходимо пробежаться по одной и той же строчке содержащею цифры например 1,2,3,4,5... ...

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

Циклы - C++
Добрый день! Хочу попросить помощи в решении следующей задачи: Условие 1: Напишите программу, рассчитывающую сумму денег, которую вы...


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

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
26.07.2012, 12:47
Ответ Создать тему
Опции темы

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