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

Циклы - C++

25.07.2012, 22:35. Просмотров 2208. Ответов 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
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for...

На циклы do while
даны два действительных числа а1,а2,... . Известно, что а1&gt;0 и что среди...

Циклы (на С)
Составить программу для нахождения чисел из интервала , имеющих наибольшее...

Циклы (for, while, do while)
Помогите пожалуйста, вообще ничего не получается...:( Через for: 1.Задано...

Циклы на С
Дано натуральное число n. Получить все совершенные числа меньше n (совершенное...

Циклы
1.Покупатель должен заплатить в кассу S р.У него имеются 1, 5, ,10, 50, 100,...

68
Leomana
59 / 59 / 8
Регистрация: 29.06.2012
Сообщений: 188
25.07.2012, 23:01 #2
скажу так : ппц ты объяснил!
одно замечание
C++
1
for (int i=0; i < 4; ++i)
1
Igrom@n
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
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 06:31 #4
И что не работает? Вход в while если нажата num1. Так? Там четыре раза меняется значение x и bFugas. Это и есть смена цвета? Проверки только не видно.
0
Igrom@n
0 / 0 / 0
Регистрация: 25.07.2012
Сообщений: 35
26.07.2012, 09:23  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
И что не работает? Вход в while если нажата num1. Так? Там четыре раза меняется значение x и bFugas. Это и есть смена цвета? Проверки только не видно.
Какой проверки?) Мне нужно. что если я 1 раз нажал, то цвет 1 раз и сменился!
0
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 09:55 #6
Цитата Сообщение от Igrom@n Посмотреть сообщение
Какой проверки?)
Цитата Сообщение от Igrom@n Посмотреть сообщение
Нужна помощь с циклом.Есть определенный массив из которого необходимо вытащить данные и поставить в цикл, так же необходимо делать проверку, вот что у меня получилось:
Это кто писал? Не вы?
0
Intel~lect
135 / 124 / 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
alsav22
5438 / 4833 / 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
Intel~lect
135 / 124 / 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
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 10:48 #10
Цитата Сообщение от Igrom@n Посмотреть сообщение
P.S Надеюсь написал понятным языком)
Опишите поподробней, что должно происходить. Например, просто смена цвета на следующий в списке и дальше поехали, или, перебор цветов (при каждом нажатии на клавишу), выбор нужного, и уже тогда дальше поехали?
0
zss
Модератор
Эксперт С++
6959 / 6521 / 4139
Регистрация: 18.12.2011
Сообщений: 17,209
Завершенные тесты: 1
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
Igrom@n
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
alsav22
5438 / 4833 / 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
Igrom@n
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
alsav22
5438 / 4833 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
26.07.2012, 11:32 #15
Если можете, покажите полный код.

Добавлено через 3 минуты
Цитата Сообщение от Igrom@n Посмотреть сообщение
брать цвет из массива подставлять в функцию
В какую функцию?
0
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
5438 / 4833 / 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
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
5438 / 4833 / 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
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
26.07.2012, 11:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2012, 11:59
Привет! Вот еще темы с решениями:

Циклы
Вычислить сумму квадратов всех положительных значений функции. Определить, для...

циклы
вот файлик с примером на ряды решается с помощью цикла вводите число n допустим...

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

с++ циклы
не работает, помогите найти ошибку #include &lt;iostream&gt; #include &lt;math.h&gt; ...


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

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

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