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

Работа с мышью в borland c++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление строк и столбцов в двумерном массиве http://www.cyberforum.ru/cpp-beginners/thread123475.html
Подключая только модули iostream,conio,math. Уплотнить заданую матрицу А, удаляя из нее сроки и столбцы заполненные нулями.
C++ Возвести число в 7000 степень Сегодня был на олимпиаде. Проверка была через contester, в задачи есть место где нужно возвести число в степень. Никак работать не хотела. Потом увидел тесты. Там 9 возводилась в 7000. ЭТО ЖЕ КАКОЙ НАДО ТИПА ДАННЫХ ЧТО-БЫ ЭТО СДЕЛАТЬ ЧЕРЕЗ ОБЫЧНЫЙ POW()??? http://www.cyberforum.ru/cpp-beginners/thread123465.html
C++ Не работает е моим деструктором, только с дефолтовым
Что именно делает деструктор который по умолчанию? Просто есть код, который работает только если деструктор используется именно дефолтовый. class mnozh { int n; int *mas; public: mnozh(); // конструктор mnozh(int); // конструктор по умолчанию mnozh(mnozh&); // конструктор копирования
Площадь треугольника и круга C++
Здравствуйте Прошу помочь с написанием программы: Из заданного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью круга,проходящей через эти три точки , и площадью треугольника с вершиной в этих точках была равна нулю или меньше определённого вводимого параметра(с которым выводились все комбинации этих точек). Что то пытался сделать, но...
C++ Как найти все вершины, достижимые из заднной??? http://www.cyberforum.ru/cpp-beginners/thread123430.html
Доброго всем дня. прошу помощи или советов в реализации задачи типа: задан орграф: 1) найти все вершины, недостижимые из заданной, 2) найти все вершины, достижимые из заднной за указанное число шагов. в интернете не нашла ни одного алгоритма осуществляющего поиск всех возможных путей из одной точки( хотя может просто плохо искала( если у кого то есть возможность помочь - очень прошу,...
C++ Дана квадратная матрица Дана квадратная матрица,NxN.Определить: 1)произведение элементов в тех строках,которые не содержат отрицательных элементов. 2)максимум среди сумм элементов диагоналеи параллельных главной диагонали. подробнее

Показать сообщение отдельно
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
30.04.2010, 13:01
честно, плохо помню все нюансы, но в принципе все работает, по желанию, что-то измените, что-то уберете, возможно куча лишних переменных...
просто склеил из ф-ций, что были:
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <bios.h>
#include <dos.h>
 
#define col BLUE
#define bkcol BROWN
 
int x, x1, x2, xp = 0, y, y1, y2, yp = 0, nbut, but, nb, key;
 
void initgr(){
    int gdriver=DETECT, gmode, errorcode;
    initgraph(&gdriver,&gmode,"");
    errorcode = graphresult();
    if (errorcode != grOk)  /* an error occurred */
    {
        cprintf("Graphics error: %s\n", grapherrormsg(errorcode));
        cprintf("Press any key to halt:");
        getch();
        exit(1); /* terminate with an error code */
    }
}
 
void fillbar(int x1, int y1, int x2, int y2)
{
    setfillstyle(1 , col);
    bar(x1 ,y1 ,x2 ,y2 );
}
 
void mouse(int m)
{
    int mode;
    if (m==0) mode=2;else mode=m;
    asm{
        mov ax,mode
        int 33h
    }
}
 
void mStatus()
{
    int mbut, mx, my;
    asm{
        mov ax,3h
        int 33h
        mov mx,cx
        mov my,dx
        mov mbut,bx
    }
    x = mx;
    y = my;
 
    but = mbut;
}
 
void mousemove(int xm, int ym)
{
    asm{
        mov ax, 4
        mov cx, xm
        mov dx, ym
        int 33h
    }
}
 
void count()
{
    if(but==0) nb=0;
    if((but==1) && (nb==0))
    {
        nbut++;
        nb=1;
    }
}
 
int mousecoord(int x1,int y1, int x2, int y2)
{
    mStatus();
    if (x>=x1 && x<=x2 && y>=y1 && y<=y2) return 1;
    else return 0;
}
 
int Sign(int d)
{
    int sg;
    if (d>0)  sg=1;
    if (d==0) sg=0;
    if (d<0)  sg=-1;
    return sg;
}
 
void LineBrezen(int x1,int y1,int x2,int y2)
{
    int x,y,dx,dy,s1,s2,t,probm,e,i;
 
    x=x1;y=y1;dx=abs(x2-x1);dy=abs(y2-y1);
    s1=Sign(x2-x1);s2=Sign(y2-y1);
    if (dy>dx){
        t=dx;
        dx=dy;
        dy=t;
        probm=1;
    }
    else
        probm=0;
    e=2*dy-dx;
    for (i=1;i<dx;i++)
    {
        putpixel(x,y,col);
        while (e>=0)
        {
            if (probm==1)
                x=x+s1;
            else
                y=y+s2;
            e=e-2*dx;
        }
 
        if (probm==1)
            y=y+s2;
        else
            x=x+s1;
        e=e+2*dy;
    }
}
 
void cross(int x1,int y1)
{
    setcolor(7);
    mouse(0);
    setwritemode(1);
    line(x1-4,y1,x1+4,y1);
    line(x1,y1-4,x1,y1+4);
    delay(10);
    setwritemode(0);
    mouse(1);
}
 
void drawline()
{
    if(nbut==1&&x<639&&y<479&&y>0&&x>0)
    {
        mouse(0);
        x1=x;
        y1=y;
        cross(x1,y1);
        nbut++;
        mouse(1);
 
    }
    if(nbut==3&&x<639&&y<479&&y>0&&x>0)
    {
        mouse(0);
        x2=x;
        y2=y;
        cross(x1,y1);
        setcolor(col);
        LineBrezen( x1, y1, x2, y2);
        nbut=0;
        mouse(1);
    }
}
 
void main(){
    initgr();
        setbkcolor(bkcol);
    mouse(1);
    while(key!=283) //выход из программы по нажатию клавиши Esc
    {
        if (bioskey(1))
            key=bioskey(0);
        else
            key=0;
        mStatus();
        if(mousecoord(0,0,639,479))
          count();
 
    drawline();
    }
    closegraph();
}
в define присвойте для цвета линии переменной col любой цвет либо его номер:
аналогично для цвета фона присвойте в define цвет bkcol:
0 BLACK
1 BLUE
2 GREEN
3 CYAN
4 RED
5 MAGENTA
6 BROWN
7 LIGHTGRAY
8 DARKGRAY
9 LIGHTBLUE
10 LIGHTGREEN
11 LIGHTCYAN
12 LIGHTRED
13 LIGHTMAGENTA
14 YELLOW
15 WHITE
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru