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

Циклы

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

Author24 — интернет-сервис помощи студентам
Нужна помощь с циклом.Есть определенный массив из которого необходимо вытащить данные и поставить в цикл, так же необходимо делать проверку, вот что у меня получилось:
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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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;...

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

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

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

68
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
25.07.2012, 23:01 2
скажу так : ппц ты объяснил!
одно замечание
C++
1
for (int i=0; i < 4; ++i)
1
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
25.07.2012, 23:08  [ТС] 3
Цитата Сообщение от Leomana Посмотреть сообщение
скажу так : ппц ты объяснил!
одно замечание
C++
1
for (int i=0; i < 4; ++i)
Попробую объяснить) Я создаю свой wh, и мне нужно, чтоб при нажатии на num1 происходила смена цвета подсвечиваемой текстуры!) Для этого я создал массив, и создал цикл.. Но дальше запарка)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 06:31 4
И что не работает? Вход в while если нажата num1. Так? Там четыре раза меняется значение x и bFugas. Это и есть смена цвета? Проверки только не видно.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 09:23  [ТС] 5
Цитата Сообщение от alsav22 Посмотреть сообщение
И что не работает? Вход в while если нажата num1. Так? Там четыре раза меняется значение x и bFugas. Это и есть смена цвета? Проверки только не видно.
Какой проверки?) Мне нужно. что если я 1 раз нажал, то цвет 1 раз и сменился!
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 09:55 6
Цитата Сообщение от Igrom@n Посмотреть сообщение
Какой проверки?)
Цитата Сообщение от Igrom@n Посмотреть сообщение
Нужна помощь с циклом.Есть определенный массив из которого необходимо вытащить данные и поставить в цикл, так же необходимо делать проверку, вот что у меня получилось:
Это кто писал? Не вы?
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
26.07.2012, 10:01 7
Попробую предположить.
C++
1
2
3
4
5
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 10:18 8
Цитата Сообщение от Intel~lect Посмотреть сообщение
Попробую предположить.
C++
1
2
3
4
5
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
А контроль за i ?
0
137 / 126 / 14
Регистрация: 03.07.2012
Сообщений: 355
26.07.2012, 10:33 9
Цитата Сообщение от alsav22 Посмотреть сообщение
А контроль за i ?
Ну это не сложно. Добавить условие что-то вроде этого:
C++
1
2
3
4
5
6
7
if (i>=0 && i<3)
   x = values[++i];
else
{
   i = 0;
   x = values[i];
}
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 10:48 10
Цитата Сообщение от Igrom@n Посмотреть сообщение
P.S Надеюсь написал понятным языком)
Опишите поподробней, что должно происходить. Например, просто смена цвета на следующий в списке и дальше поехали, или, перебор цветов (при каждом нажатии на клавишу), выбор нужного, и уже тогда дальше поехали?
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
26.07.2012, 10:57 11
А может имелось ввиду что-то такого типа:
C++
1
2
3
4
5
6
7
8
9
10
i=0;
while (true)
{
   if(GetAsyncKeyState(VK_NUMPAD1) &1)
   {
        x = values[i++];
        bFugas = !bFugas;
        if(i==4)i=0;
    }
}
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 11:10  [ТС] 12
Цитата Сообщение от alsav22 Посмотреть сообщение
Это кто писал? Не вы?
Писал я)
C++ (Qt)
1
2
3
4
5
while (GetAsyncKeyState(VK_NUMPAD1) &1 )
{
   x = values[++i];
   bFugas = !bFugas;
}
пробовал) загорается 1 цветом, при нажатии 2 раз затухает(
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 11:16 13
Если просто сменить цвет на следующий и выйти, то можно, наверное, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while (true)
{
if (GetAsyncKeyState(VK_NUMPAD1) &1)
{
    if (i < 3)
    {
        x = values[++i];
        bFugas = !bFugas;
        break;
    }
    else
    {
        i = 0;
        x = values[i];
        bFugas = !bFugas;
        break;
    }
}
}
В while будет ожидаться нажатие клавиши, при нажатии меняется x и bFugas(за что отвечает - не знаю) и выход.
0
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 11:29  [ТС] 14
Цитата Сообщение от zss Посмотреть сообщение
А может имелось ввиду что-то такого типа:
C++
1
2
3
4
5
6
7
8
9
10
i=0;
while (true)
{
   if(GetAsyncKeyState(VK_NUMPAD1) &1)
   {
        x = values[i++];
        bFugas = !bFugas;
        if(i==4)i=0;
    }
}
с этим игра вообще не запускается =)

Добавлено через 9 минут
Цитата Сообщение от alsav22 Посмотреть сообщение
Опишите поподробней, что должно происходить. Например, просто смена цвета на следующий в списке и дальше поехали, или, перебор цветов (при каждом нажатии на клавишу), выбор нужного, и уже тогда дальше поехали?
При нажатии на клавишу, необходимо брать цвет из массива подставлять в функцию, при достижении конечного элемента сбросится(т.е ничего не должно светится).

Добавлено через 1 минуту
Цитата Сообщение от alsav22 Посмотреть сообщение
Если просто сменить цвет на следующий и выйти, то можно, наверное, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
while (true)
{
if (GetAsyncKeyState(VK_NUMPAD1) &1)
{
    if (i < 3)
    {
        x = values[++i];
        bFugas = !bFugas;
        break;
    }
    else
    {
        i = 0;
        x = values[i];
        bFugas = !bFugas;
        break;
    }
}
}
В while будет ожидаться нажатие клавиши, при нажатии меняется x и bFugas(за что отвечает - не знаю) и выход.
С while(true) игра вообще не загружается)
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 11:32 15
Если можете, покажите полный код.

Добавлено через 3 минуты
Цитата Сообщение от Igrom@n Посмотреть сообщение
брать цвет из массива подставлять в функцию
В какую функцию?
0
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
5498 / 4893 / 831
Регистрация: 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
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
5498 / 4893 / 831
Регистрация: 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
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
26.07.2012, 11:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2012, 11:59
Помогаю со студенческими работами здесь

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

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

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

Циклы
Как написать программу, в которой нужно сложить значения получаемые в цикле? ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru