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

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

Войти
Регистрация
Восстановить пароль
 
Nazz
WEB-developer
 Аватар для Nazz
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
#1

Выполнение одновременно - C++

16.06.2009, 19:01. Просмотров 731. Ответов 5
Метки нет (Все метки)

народ, вот у меня есть код на С++, у котором есть два цыкли. Я хочу, чтобы можна було бы одновременно: и водить курсором, и чтобы в то же время и прямоугольник опускался)))
вот етот код
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <dos.h>
#include <graphics.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
clrscr();
enum keys {UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27};
int gmode,gdriver=DETECT;
initgraph(&gdriver,&gmode,"C:\\BC3\\BGI");
cleardevice();
setcolor(3);
rectangle(40,0,50,479);
rectangle(600,0,610,479);
rectangle(40,0,610,10);
rectangle(40,469,610,479);
int x,y,z,c,key=0;
x=300;
y=440;
z=340;
c=468;
    do
    {
        if (kbhit()){
            if (!(key=getch())) key=getch();
            switch (key)
            {
            case UP:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    y=y-10;
                    c=c-10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case DOWN:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    y=y+10;
                    c=c+10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case LEFT:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    x=x-10;
                    z=z-10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case RIGHT:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    x=x+10;
                    z=z+10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            }
 
        }
    } while (key!=ESC);
int i,b,d,a,q;
a=10;
q=11;
b=12;
d=41;
for(i=0; i<=428;i++)
{
setcolor(RED);
rectangle(52,b,102,d);
setcolor(BLACK);
rectangle(52,a,102,q);
a=a+1;
q=q+1;
b=b+1;
d=d+1;
setcolor(RED);
rectangle(52,b,102,d);
setcolor(BLACK);
rectangle(52,a,102,q);
delay(20);
}
 
 
closegraph();
getch();
}
посмотрите, пожалуста, кто знает как ето сделать)))

мне нужно, чтоб вот етот цикл for(i=0; i<=428;i++)
выполнялся одновременно с етим do...while
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2009, 19:01     Выполнение одновременно
Посмотрите здесь:

C++ 2 wav одновременно
Чтение двух файлов одновременно! C++
C++ Инициализация n функций одновременно
C++ Запустить несколько таймеров одновременно
Воспроизведение нескольких звуков одновременно C++
C++ Несколько действий одновременно
C++ Одновременно выходные данные
Несколько программ одновременно C++
C++ Два таймера одновременно
Можно ли одновременно изучать С и С++? C++
Сортировка пяти массивов одновременно C++
__cplusplus и __STDC__ одновременно? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
16.06.2009, 19:53     Выполнение одновременно #2
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <dos.h>
#include <graphics.h>
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
clrscr();
enum keys {UP = 72, DOWN = 80, LEFT=75, RIGHT=77, ESC=27};
int gmode,gdriver=DETECT;
initgraph(&gdriver,&gmode,"C:\\BC3\\BGI");
cleardevice();
setcolor(3);
rectangle(40,0,50,479);
rectangle(600,0,610,479);
rectangle(40,0,610,10);
rectangle(40,469,610,479);
int x,y,z,c,key=0;
x=300;
y=440;
z=340;
c=468;
 
int i,b,d,a,q;
a=10;
q=11;
b=12;
d=41;
 
    do
    {
        if (kbhit()){
            if (!(key=getch())) key=getch();
            switch (key)
            {
            case UP:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    y=y-10;
                    c=c-10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case DOWN:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    y=y+10;
                    c=c+10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case LEFT:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    x=x-10;
                    z=z-10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            case RIGHT:
                {
                    setcolor(getbkcolor());
                    rectangle(x,y,z,c);
                    x=x+10;
                    z=z+10;
                    setcolor(GREEN);
                    rectangle(x,y,z,c);
                    break;
                }
            }
 
        }
 
           setcolor(RED);
          rectangle(52,b,102,d);
          setcolor(BLACK);
         rectangle(52,a,102,q);
         a=a+1; 
         q=q+1;
         b=b+1;
          d=d+1;
         setcolor(RED);
             rectangle(52,b,102,d);
         setcolor(BLACK);
         rectangle(52,a,102,q);
         delay(20);
          ++i;
    } while ((key!=ESC) && (i<=428));
 
closegraph();
getch();
}
Nazz
WEB-developer
 Аватар для Nazz
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
16.06.2009, 20:14  [ТС]     Выполнение одновременно #3
Alexandoros, а почему она у меня не запускается??((((
Alexandoros
226 / 64 / 4
Регистрация: 02.06.2009
Сообщений: 280
16.06.2009, 20:25     Выполнение одновременно #4
Ну дык, твоя ж прога, мне почем знать?
Дебугер в зубы и смотри на ошибки
Nazz
WEB-developer
 Аватар для Nazz
896 / 727 / 11
Регистрация: 12.03.2009
Сообщений: 2,802
Записей в блоге: 2
16.06.2009, 20:38  [ТС]     Выполнение одновременно #5
Alexandoros, ошыбки не выдает, а просто чёрный екран и сверху только указателькурсора(((( при чём, только нажымаеш на клавишу, сразу же конец проги(((
Neo-n06
22 / 3 / 1
Регистрация: 21.06.2009
Сообщений: 38
21.06.2009, 13:11     Выполнение одновременно #6
while ((key!=ESC) && (i<=428));

замени на

while ((key!=ESC) || (i<=428));
Yandex
Объявления
21.06.2009, 13:11     Выполнение одновременно
Ответ Создать тему
Опции темы

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