AYUDA PORFAVOR
TENGO EL SIGUIEN TE PROGRAMA EN C++ QUE ME BAJE DE INTERNET PERO EL PROBLEMA ES QUE NOSE COMO PUEDO EJECUTARLO EN EL COMPILADOR DE BORLAND C++. ESPERO QUE ALGUIEN ME AYUDE POR FAVOR QUE ES LO QUE PUEDO HACER GRACIAS
BOTON.H
#include"stdio.h"
#include"graph.h"
void crear_boton(int botxa,int botya,int botxb,int botyb,char eleccion_por_defecto)
{
_setcolor(7);
_rectangle(_GFILLINTERIOR,botxa,botya,botxb,botyb);
_setcolor(15);
_rectangle(_GBORDER,botxa,botya,botxb,botyb);
_setcolor(0);
_moveto(botxa,botyb);
_lineto(botxb,botyb);
_lineto(botxb,botya);
_moveto(botxa+10,((((botyb-botya)/2)+botya)-5));
if(eleccion_por_defecto=='d')
{_setfont("t'helv'h8w8b");}
}
LINEAS.H
#include<stdio.h>
#include<graph.h>
void linea(int lineainix,int lineainiy,int lineafinx,int lineafiny)
{
_setcolor(0);
_moveto(lineainix,lineainiy);
_lineto(lineafinx,lineafiny);
if(lineainix==lineafinx)
{
_setcolor(15);
_moveto(lineainix-1,lineafiny);
_lineto(lineainix-1,lineainiy);
_moveto(lineainix+1,lineainiy);
_lineto(lineainix+1,lineafiny);
}
if(lineainiy==lineafiny)
{
_setcolor(15);
_moveto(lineafinx,lineainiy-1);
_lineto(lineainix,lineainiy-1);
_moveto(lineainix,lineainiy+1);
_lineto(lineafinx,lineainiy+1);
}
}
LEDS.H
#include<stdio.h>
#include<graph.h>
void crear_leds(int ledxa,int ledya,int ledxb,int ledyb,int numero_leds,int espacio,char con_numero,char sin_leds)
{
int contador_for,resultado_separador,ledxacopy;
resultado_separador=((espacio-((ledxb-ledxa)*numero_leds))/(numero_leds-1));
for(contador_for=1;contador_for<=numero_leds;contador_for++)
{
if(sin_leds!='s')
{
_setcolor(4);
_ellipse(_GFILLINTERIOR,ledxa,ledya,ledxb,ledyb);
_setcolor(0);
_ellipse(_GFILLINTERIOR,ledxa+3,ledya+3,ledxb-3,ledyb-3);
}
if(con_numero=='n')
{
_setfont("t'helv'h25w20b");
_moveto(((((ledxb-ledxa)/2)+ledxa)-10),ledyb+10);
if(contador_for==1)_outgtext("1");
if(contador_for==2)_outgtext("2");
if(contador_for==3)_outgtext("3");
if(contador_for==4)_outgtext("4");
if(contador_for==5)_outgtext("5");
if(contador_for==6)_outgtext("6");
if(contador_for==7)_outgtext("7");
if(contador_for==8)_outgtext("8");
}
ledxacopy=ledxa;
ledxa=ledxb+resultado_separador;
ledxb=ledxb-ledxacopy+resultado_separador+ledxb;
}
}
OTRO2.C
#include<stdio.h>
#include<conio.h>
#include<graph.h>
#include<stdlib.h>
#include"raton.h"
int config[30];
#include"graficos.h"
void inicio1(void);
void inicio2(void);
void inicio3(void);
void inicio4(void);
void led1on(void);
void led2on(void);
void led3on(void);
void led4on(void);
void led5on(void);
void led6on(void);
void led7on(void);
void led8on(void);
void led1off(void);
void led2off(void);
void led3off(void);
void led4off(void);
void led5off(void);
void led6off(void);
void led7off(void);
void led8off(void);
void led1display1(void);
void led2display1(void);
void led3display1(void);
void led4display1(void);
void led5display1(void);
void led6display1(void);
void led7display1(void);
void led8display1(void);
void led1display2(void);
void led2display2(void);
void led3display2(void);
void led4display2(void);
void led5display2(void);
void led6display2(void);
void led7display2(void);
void led8display2(void);
void ledoffdisplay(void);
void codigoout(void);
void ejecucion(void);
void entrada(void);
void pulsarboton(void);
void efecto1(void);
void efecto2(void);
void creacionaleatoria(void);
void definido_usuario(void);
void creamanual2(void);
void aleatorio(void);
void aleatorio2(void);
void pulsos(void);
void apagadoleds(void);
void error_raton(void);
void combinatorio(void);
void reseteo(void);
void organi(void);
void tabla(void);
void cerrar(void);
void cerrarmenu(void);
void histograma_graf(void);
void grafica_graf(void);
void grafica_dia(void);
void histograma_dia(void);
void menu_principal(void);
void comprobacion_bizquierdo(void);
void principal(void);
void retardo(float vel);
void menu_retardo(void);
void valores_por_defecto(void);
int estoyen,ponerdia,ejecutar,levanta,posi[8],usuario[75][8],posicion,reset,leda,ledb,ledc,ledd,lede,ledf,ledg,ledh,a,b,tipo,paso;
char menu,colornumero,lolo,ejecuta;
unsigned char datoa,datob,datoc,datod,datoe,datof,datog,datoh,datoresul;
float vel,m;
void main()
{
struct videoconfig confi;
_setvideomode(_VRES16COLOR);
_getvideoconfig(&confi);
_registerfonts("c:\qc25\samples\*.FON");
_setgtextvector(1,0);
_setbkcolor(_BLACK);
tipo=raton_instalado();
if (tipo==0)inicializa_raton();
poner_raton_en(320,240);
valores_por_defecto();
principal();
}
void retardo(float vel)
{
float retar;
lolo='A';
m=0;
for(retar=0;retar<5000*vel;retar++)
{
if(kbhit()){lolo=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}
menu_retardo();
}
void menu_retardo(void)
{
estoyen=2;
switch(lolo)
{
case '+':pulsarboton();m=(-0.2);break;
case '-':pulsarboton();m=0.2;break;
case 'p':
case 'P':
{
pulsarboton();
lolo='A';
for(;;)
{
if(kbhit()){lolo=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
if(lolo=='p')break;
}
_setcolor(15);
_moveto(265,209);
_lineto(200,209);
_lineto(200,239);
_setcolor(0);
_lineto(265,239);
_lineto(265,209);
for(estoyen=0;estoyen<1000;estoyen++);
break;
}
case 's':
case 'S':reset=1;pulsarboton();quitar_raton();principal();break;
case 'g':
case 'G':quitar_raton();grafica_graf();mostrar_raton();break;
case 'h':
case 'H':quitar_raton();histograma_graf();mostrar_raton();break;
}
}
void valores_por_defecto(void)
{
vel=1;
reset=1;
config[0]=0;
config[2]=1;
config[3]=7;
config[4]=15;
config[7]=4;
config[9]=4;
config[10]=15;
config[23]=1;
}
void principal(void)
{
if(reset==1)inicio1();
inicio2();
inicio3();
if(reset==1){
if(config[0]==0)histograma_graf();
if(config[0]==1)grafica_graf();}
menu_principal();
}
void inicio1(void)
{
crear_window(7,7,633,470,'c');
_outgtext("INTERFAZ GRAFICO");
_setfont("t'modern'h8w6b");
_moveto(163,18);
_outgtext("VER.");
_setfont("t'helv'h8w8b");
_moveto(185,15);
_outgtext("2.1");
}
void inicio2(void)
{
crear_boton(30,53,150,83,'d');
_outgtext("ENTRADA");
crear_boton(30,105,150,135,'d');
_outgtext("1§ EFECTO");
crear_boton(30,157,150,187,'d');
_outgtext("2§ EFECTO");
crear_boton(30,209,150,239,'d');
_outgtext("D.USUARIO");
crear_boton(30,261,150,291,'d');
_outgtext("ALEATORIO");
/*
crear_boton(30,313,150,343,'d');
_outgtext("POR PULSOS");
crear_boton(30,365,150,395,'d');
_outgtext("COMBINATORIO");
*/
/* coordenadas del ultimo boton=30,417,150,447,'d' */
crear_boton(30,365,150,395,'d');
_outgtext("RESETEO");
linea(170,53,170,447);
}
void pulsarboton(void)
{
int lpuno,lpdos,lptres,lpcuatro,qwert,qwerty;
if(estoyen==0)
{
qwert=0;qwerty=15;
if(menu=='e'||menu=='E'){lpuno=30;lpdos=53;lptres=150;lpcuatro=83;}
if(menu=='1'){lpuno=30;lpdos=105;lptres=150;lpcuatro=135;}
if(menu=='2'){lpuno=30;lpdos=157;lptres=150;lpcuatro=187;}
if(menu=='d'||menu=='D'){lpuno=30;lpdos=209;lptres=150;lpcuatro=239;}
if(menu=='a'||menu=='A'){lpuno=30;lpdos=261;lptres=150;lpcuatro=291;}
/*
if(menu=='p'||menu=='P'){lpuno=30;lpdos=313;lptres=150;lpcuatro=343;}
if(menu=='c'||menu=='C'){lpuno=30;lpdos=365;lptres=150;lpcuatro=395;}
*/
if(menu=='s'||menu=='S'){lpuno=539;lpdos=209;lptres=603;lpcuatro=239;}
if(menu=='r'||menu=='R'){lpuno=30;lpdos=365;lptres=150;lpcuatro=395;}
}
if(estoyen==1)
{
if(menu=='n'||menu=='N'){lpuno=217;lpdos=270;lptres=252;lpcuatro=290;levanta=1;}
if(menu=='s'||menu=='S'){lpuno=267;lpdos=270;lptres=302;lpcuatro=290;levanta=1;}
if(menu=='c'||menu=='C'){lpuno=317;lpdos=270;lptres=392;lpcuatro=290;levanta=1;}
}
if(estoyen==2)
{
qwert=0;qwerty=15;
if(lolo=='p'||lolo=='P'){lpuno=200;lpdos=209;lptres=265;lpcuatro=239;}
if(lolo=='+'){lpuno=476;lpdos=209;lptres=509;lpcuatro=239;estoyen=1;levanta=1;}
if(lolo=='-'){lpuno=295;lpdos=209;lptres=328;lpcuatro=239;estoyen=1;levanta=1;}
if(lolo=='s'||lolo=='S'){lpuno=539;lpdos=209;lptres=603;lpcuatro=239;levanta=1;}
}
_setcolor(qwert);
_moveto(lptres,lpdos);
_lineto(lpuno,lpdos);
_lineto(lpuno,lpcuatro);
_setcolor(qwerty);
_lineto(lptres,lpcuatro);
_lineto(lptres,lpdos);
if(levanta==1)
{
retardo(0.1);
qwert=15;qwerty=0;
_setcolor(qwert);
_moveto(lptres,lpdos);
_lineto(lpuno,lpdos);
_lineto(lpuno,lpcuatro);
_setcolor(qwerty);
_lineto(lptres,lpcuatro);
_lineto(lptres,lpdos);
levanta=0;
}
}
void inicio3(void)
{
crear_window(190,53,613,189,'a');
_outgtext("LEDS DE VISUALIZACION DE SALIDA/ENTRADA");
/* LEDS */
crear_leds(210,100,250,140,8,383,'n','0');
/* BOTONES DE FUNCION */
crear_boton(200,209,265,239,'d');
_outgtext("PAUSA");
crear_boton(539,209,603,239,'d');
_outgtext("SALIR");
crear_boton(354,209,450,239,'d');
_outgtext("VELOCIDAD");
crear_boton(295,209,328,239,'a');
_rectangle(_GFILLINTERIOR,302,222,320,226);
crear_boton(476,209,509,239,'a');
_rectangle(_GFILLINTERIOR,483,222,501,226);
_rectangle(_GFILLINTERIOR,490,215,494,233);
_setcolor(15);
_rectangle(_GBORDER,354,209,450,239);
_rectangle(_GBORDER,352,207,452,241);
_rectangle(_GBORDER,290,204,333,244);
_rectangle(_GBORDER,288,202,335,246);
_rectangle(_GBORDER,471,204,514,244);
_rectangle(_GBORDER,469,202,516,246);
linea(335,223,352,223);
linea(452,223,469,223);
_rectangle(_GBORDER,195,204,270,244);
_rectangle(_GBORDER,193,202,272,246);
_rectangle(_GBORDER,534,204,608,244);
_rectangle(_GBORDER,532,202,610,246);
linea(171,223,193,223);
linea(272,223,288,223);
linea(516,223,532,223);
linea(610,223,632,223);
_setcolor(0);
_rectangle(_GBORDER,353,208,451,240);
_rectangle(_GBORDER,289,203,334,245);
_rectangle(_GBORDER,470,203,515,245);
_rectangle(_GBORDER,194,203,271,245);
_rectangle(_GBORDER,533,203,609,245);
}
void histograma_graf(void)
{
crear_window(190,259,613,447,'a');
_outgtext("HISTOGRAMA REPRESENTATIVO DE LOS LED");
/*
crear_boton(525,266,601,278,'d');
_outgtext("GRAFICA");
*/
_setcolor(0);
crear_leds(210,360,250,410,8,383,'n','s');
_rectangle(_GFILLINTERIOR,205,290,598,415);
config[0]=0;
config[23]=1;
if(ejecutar==1)histograma_dia();
}
void histograma_dia(void)
{
ponerdia=0;
led1display1();
led2display1();
led3display1();
led4display1();
led5display1();
led6display1();
led7display1();
led8display1();
ponerdia=1;
}
void grafica_graf(void)
{
crear_window(190,259,613,447,'a');
_outgtext("GRAFICA REPRESENTATIVA DE LOS LED");
crear_boton(525,266,601,278,'d');
_outgtext("HISTOGR.");
crear_leds(210,360,250,410,8,383,'n','s');
_rectangle(_GFILLINTERIOR,205,290,598,415);
config[0]=1;
config[23]=2;
if(ejecutar==1)grafica_dia();
}
void grafica_dia(void)
{
ponerdia=0;
led1display2();
led2display2();
led3display2();
led4display2();
led5display2();
led6display2();
led7display2();
led8display2();
ponerdia=1;
}
void comprobacion_bizquierdo(void)
{
if(estoyen==0)
{
if(dx>=0&dx<=640&dy>=0&dy<=480)menu='x';
if(dx>=30&dx<=150&dy>=53&dy<=83)menu='e';
if(dx>=30&dx<=150&dy>=105&dy<=135)menu='1';
if(dx>=30&dx<=150&dy>=157&dy<=187)menu='2';
if(dx>=30&dx<=150&dy>=209&dy<=239)menu='d';
if(dx>=30&dx<=150&dy>=261&dy<=291)menu='a';
/*
if(dx>=30&dx<=150&dy>=313&dy<=343)menu='c';
if(dx>=30&dx<=150&dy>=365&dy<=395)menu='p';
*/
if(dx>=30&dx<=150&dy>=365&dy<=395)menu='r';
/*
if(config[0]==0){if(dx>=525&dx<=601&dy>=266&dy<=278)menu='g';}
if(config[0]==1){if(dx>=525&dx<=601&dy>=266&dy<=278)menu='h';}
*/
if(dx>=539&dx<=603&dy>=209&dy<=239)menu='s';
if(dx>=609&dx<=621&dy>=14&dy<=26)menu='w';
}
if(estoyen==1)
{
if(dx>=217&dx<=252&dy>=270&dy<=290)menu='s';
if(dx>=267&dx<=302&dy>=270&dy<=290)menu='n';
if(dx>=317&dx<=392&dy>=270&dy<=290)menu='c';
if(dx>=155&dx<=210&dy>=455&dy<=300)menu='p';
quitar_raton();
}
if(estoyen==2)
{
if(dx>=200&dx<=600&dy>=160&dy<=280)error_raton();lolo='B';
if(dx>=200&dx<=265&dy>=209&dy<=239)lolo='p';
if(dx>=295&dx<=328&dy>=209&dy<=239)lolo='-';
if(dx>=476&dx<=509&dy>=209&dy<=239)lolo='+';
if(dx>=539&dx<=603&dy>=209&dy<=239)lolo='s';
/*
if(config[0]==0){if(dx>=525&dx<=601&dy>=266&dy<=278)lolo='g';}
if(config[0]==1){if(dx>=525&dx<=601&dy>=266&dy<=278)lolo='h';}
*/
}
if(estoyen==3)
{
if(dx>=150&dx<=550&dy>=95&dy<=180)error_raton();ejecuta='0';
if(dx>=400&dx<=500&dy>=150&dy<=175)ejecuta='e';
}
t_izq=0;
}
void error_raton(void)
{
_setcolor(0);
_rectangle(_GFILLINTERIOR,0,0,5,480);
_rectangle(_GFILLINTERIOR,633,0,640,480);
_rectangle(_GFILLINTERIOR,0,471,640,480);
_rectangle(_GFILLINTERIOR,0,0,640,6);
}
void menu_principal(void)
{
ventana_raton(0,0,630,465);
menu='0';
estoyen=0;
mostrar_raton();
do{
if(kbhit()){menu=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(menu=='0');
quitar_raton();
switch(menu)
{
case 'e':
case 'E':pulsarboton();mostrar_raton();entrada();break;
case '1':pulsarboton();mostrar_raton();efecto1();break;
case '2':pulsarboton();mostrar_raton();efecto2();break;
case 'd':
case 'D':pulsarboton();mostrar_raton();definido_usuario();break;
case 'a':
case 'A':pulsarboton();mostrar_raton();aleatorio();break;
/*
case 'c':
case 'C':combinatorio();break;
case 'p':
case 'P':pulsos();break;
*/
case 'r':
case 'R':pulsarboton();mostrar_raton();reseteo();break;
/*
case 'g':
case 'G':
{
retardo(0.2);
grafica_graf();
menu_principal();
break;
}
case 'h':
case 'H':
{
retardo(0.2);
histograma_graf();
menu_principal();
break;
}
*/
case 'w':retardo(0.2);cerrar();break;
case 'S':
case 's':pulsarboton();retardo(0.2);cerrar();break;
case 'x':
{
error_raton();
menu_principal();
break;
}
default:menu_principal();break;
}
}
void organi(void)
{
vel=1;
if(reset==1)
{
posi[0]=1;
posi[1]=1;
posi[2]=1;
posi[3]=1;
posi[4]=1;
posi[5]=1;
posi[6]=1;
posi[7]=1;
}
leda=0;
ledb=0;
ledc=0;
ledd=0;
lede=0;
ledf=0;
ledg=0;
ledh=0;
datoa=0x00;
datob=0x00;
datoc=0x00;
datod=0x00;
datoe=0x00;
datof=0x00;
datog=0x00;
datoh=0x00;
}
void tabla(void)
{
switch(posicion)
{
case 1:b=410;a=408;break;
case 2:b=406;a=404;break;
case 3:b=402;a=400;break;
case 4:b=398;a=396;break;
case 5:b=394;a=392;break;
case 6:b=390;a=388;break;
case 7:b=386;a=384;break;
case 8:b=382;a=380;break;
case 9:b=378;a=376;break;
case 10:b=374;a=372;break;
case 11:b=370;a=368;break;
case 12:b=366;a=364;break;
case 13:b=362;a=360;break;
case 14:b=358;a=356;break;
case 15:b=354;a=352;break;
case 16:b=350;a=348;break;
case 17:b=346;a=344;break;
case 18:b=342;a=340;break;
case 19:b=338;a=336;break;
case 20:b=334;a=332;break;
case 21:b=330;a=328;break;
case 22:b=326;a=324;break;
case 23:b=322;a=320;break;
case 24:b=318;a=316;break;
case 25:b=314;a=312;break;
case 26:b=310;a=308;break;
case 27:b=306;a=304;break;
case 28:b=302;a=300;break;
case 29:b=298;a=296;break;
case 30:b=294;a=292;break;
}
}
void led1on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,210,100,250,140);
datoa=0x80;
if(leda==0)
{
if(config[23]==1)
{led1display1();}
if(config[23]==2)
{led1display2();}
}
}
void led1off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,213,103,247,137);
datoa=0x00;
ledoffdisplay();
leda=0;
}
void led1display1(void)
{
for(posicion=1;posicion<=posi[0];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,210,a,250,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[0]++;
leda=1;
/*
}
*/
}
void led1display2(void)
{
if(!(ponerdia==0))
{
posi[0]++;
leda=1;
}
}
void led2on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,259,100,299,140);
datob=0x40;
if(ledb==0)
{
if(config[23]==1)
{led2display1();}
if(config[23]==2)
{led2display2();}
}
}
void led2off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,262,103,296,137);
datob=0x00;
ledoffdisplay();
ledb=0;
}
void led2display1(void)
{
for(posicion=1;posicion<=posi[1];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,259,a,299,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[1]++;
ledb=1;
/*
}
*/
}
void led2display2(void)
{
if(!(ponerdia==0))
{
posi[1]++;
ledb=1;
}
}
void led3on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,308,100,348,140);
datoc=0x20;
if(ledc==0)
{
if(config[23]==1)
{led3display1();}
if(config[23]==2)
{led3display2();}
}
}
void led3off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,311,103,345,137);
datoc=0x00;
ledoffdisplay();
ledc=0;
}
void led3display1(void)
{
for(posicion=1;posicion<=posi[2];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,308,a,348,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[2]++;
ledc=1;
/*
}
*/
}
void led3display2(void)
{
if(!(ponerdia==0))
{
posi[2]++;
ledc=1;
}
}
void led4on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,357,100,397,140);
datod=0x10;
if(ledd==0)
{
if(config[23]==1)
{led4display1();}
if(config[23]==2)
{led4display2();}
}
}
void led4off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,360,103,394,137);
datod=0x00;
ledoffdisplay();
ledd=0;
}
void led4display1(void)
{
for(posicion=1;posicion<=posi[3];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,357,a,397,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[3]++;
ledd=1;
/*
}
*/
}
void led4display2(void)
{
if(!(ponerdia==0))
{
posi[3]++;
ledd=1;
}
}
void led5on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,406,100,446,140);
datoe=0x08;
if(lede==0)
{
if(config[23]==1)
{led5display1();}
if(config[23]==2)
{led5display2();}
}
}
void led5off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,409,103,443,137);
datoe=0x00;
ledoffdisplay();
lede=0;
}
void led5display1(void)
{
for(posicion=1;posicion<=posi[4];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,406,a,446,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[4]++;
lede=1;
/*
}
*/
}
void led5display2(void)
{
if(!(ponerdia==0))
{
posi[4]++;
lede=1;
}
}
void led6on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,455,100,495,140);
datof=0x04;
if(ledf==0)
{
if(config[23]==1)
{led6display1();}
if(config[23]==2)
{led6display2();}
}
}
void led6off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,458,103,492,137);
datof=0x00;
ledoffdisplay();
ledf=0;
}
void led6display1(void)
{
for(posicion=1;posicion<=posi[5];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,455,a,495,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[5]++;
ledf=1;
/*
}
*/
}
void led6display2(void)
{
if(!(ponerdia==0))
{
posi[5]++;
ledf=1;
}
}
void led7on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,504,100,544,140);
datog=0x02;
if(ledg==0)
{
if(config[23]==1)
{led7display1();}
if(config[23]==2)
{led7display2();}
}
}
void led7off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,507,103,541,137);
datog=0x00;
ledoffdisplay();
ledg=0;
}
void led7display1(void)
{
for(posicion=1;posicion<=posi[6];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,504,a,544,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[6]++;
ledg=1;
/*
}
*/
}
void led7display2(void)
{
if(!(ponerdia==0))
{
posi[6]++;
ledg=1;
}
}
void led8on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,553,100,593,140);
datoh=0x01;
if(ledh==0)
{
if(config[23]==1)
{led8display1();}
if(config[23]==2)
{led8display2();}
}
}
void led8off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,556,103,590,137);
datoh=0x00;
ledoffdisplay();
ledh=0;
}
void led8display1(void)
{
for(posicion=1;posicion<=posi[7];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,553,a,593,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[7]++;
ledh=1;
/*
}
*/
}
void led8display2(void)
{
if(!(ponerdia==0))
{
posi[7]++;
ledh=1;
}
}
void ledoffdisplay()
{
_setcolor(config[0]);
_rectangle(_GFILLINTERIOR,0,0,1,480);
}
void codigoout(void)
{
/* En esta funcion se recoge el dato enviado por cada led y se opera
realizando una suma hexadecimal y metiendo el resultado en una variable
la cual sera el dato que introducimos en la salida */
datoresul=datoa+datob+datoc+datod+datoe+datof+datog+datoh;
_settextposition(3,42);
printf("SAL.HEXA=%x ",datoresul);
vel=vel+m;
printf(" VEL=%.2f",vel);
outp(0x37A,0);
outp(0x378,datoresul);
outp(0x37A,1);
}
void entrada(void)
{
/* En esta funcion se realiza la entrada de datos del prototipo a el
programa que son tratados con una mascara para luego representarlo
por pantalla */
int i;
unsigned char entradaa[2],entradab[2],mascara;
outp(0x37A,2);
entradaa[0]=inp(0x379);
outp(0x37A,0);
entradaa[1]=inp(0x379);
mascara=0xf0;
_settextposition(4,20);
printf("LA 0=%x ",entradaa[0]);
_settextposition(5,20);
printf("LA 1=%x ",entradaa[1]);
_settextposition(6,20);
printf("LA MASCARA=%x ",mascara);
getch();
entradaa[0]=entradaa[0]&mascara;
entradaa[1]=entradaa[1]&mascara;
_settextposition(7,20);
printf("LA 0 CON MASCARA=%x ",entradaa[0]);
_settextposition(8,20);
printf("LA 1 CON MASCARA=%x ",entradaa[1]);
getch();
for(i=0;i<2;i++)
{
if(entradaa[i]==0xb0)entradab[i]=0xf0;
if(entradaa[i]==0xf0)entradab[i]=0xe0;
if(entradaa[i]==0x30)entradab[i]=0xd0;
if(entradaa[i]==0x70)entradab[i]=0xc0;
if(entradaa[i]==0x90)entradab[i]=0xb0;
if(entradaa[i]==0xd0)entradab[i]=0xa0;
if(entradaa[i]==0x10)entradab[i]=0x90;
if(entradaa[i]==0x50)entradab[i]=0x80;
if(entradaa[i]==0xa0)entradab[i]=0x70;
if(entradaa[i]==0xe0)entradab[i]=0x60;
if(entradaa[i]==0x20)entradab[i]=0x50;
if(entradaa[i]==0x60)entradab[i]=0x40;
if(entradaa[i]==0x80)entradab[i]=0x30;
if(entradaa[i]==0xc0)entradab[i]=0x20;
if(entradaa[i]==0x00)entradab[i]=0x10;
if(entradaa[i]==0x40)entradab[i]=0x00;
}
organi();
_settextposition(9,20);
printf("LA 0 CON MASCARA2=%x ",entradab[0]);
_settextposition(10,20);
printf("LA 1 CON MASCARA2=%x ",entradab[1]);
if(entradab[0]>=0x80){entradab[0]=entradab[0]-0x80;led1on();}
if(entradab[0]>=0x40){entradab[0]=entradab[0]-0x40;led2on();}
if(entradab[0]>=0x20){entradab[0]=entradab[0]-0x20;led3on();}
if(entradab[0]>=0x10){entradab[0]=entradab[0]-0x10;led4on();}
if(entradab[1]>=0x80){entradab[1]=entradab[1]-0x80;led5on();}
if(entradab[1]>=0x40){entradab[1]=entradab[1]-0x40;led6on();}
if(entradab[1]>=0x20){entradab[1]=entradab[1]-0x20;led7on();}
if(entradab[1]>=0x10){entradab[1]=entradab[1]-0x10;led8on();}
codigoout();
getch();
inicio2();
inicio3();
menu_principal();
}
void efecto1(void)
{
/* En esta funcion se introducen los datos del efecto 1 en le array
usuario para luego ejecutarlo en la funcion ejecutar */
int t;
organi();
paso=26;
for(t=0;t<8;t++)
{usuario[0][t]=0;
if(t==0)usuario[0][t]=1;}
for(t=0;t<8;t++)
{usuario[1][t]=0;
if(t==1)usuario[1][t]=1;}
for(t=0;t<8;t++)
{usuario[2][t]=0;
if(t==2)usuario[2][t]=1;}
for(t=0;t<8;t++)
{usuario[3][t]=0;
if(t==3)usuario[3][t]=1;}
for(t=0;t<8;t++)
{usuario[4][t]=0;
if(t==4)usuario[4][t]=1;}
for(t=0;t<8;t++)
{usuario[5][t]=0;
if(t==5)usuario[5][t]=1;}
for(t=0;t<8;t++)
{usuario[6][t]=0;
if(t==6)usuario[6][t]=1;}
for(t=0;t<8;t++)
{usuario[7][t]=0;
if(t==7)usuario[7][t]=1;}
for(t=0;t<8;t++)
{usuario[8][t]=0;
if(t==7)usuario[8][t]=1;}
for(t=0;t<8;t++)
{usuario[9][t]=0;
if(t==6)usuario[9][t]=1;}
for(t=0;t<8;t++)
{usuario[10][t]=0;
if(t==5)usuario[10][t]=1;}
for(t=0;t<8;t++)
{usuario[11][t]=0;
if(t==4)usuario[11][t]=1;}
for(t=0;t<8;t++)
{usuario[12][t]=0;
if(t==3)usuario[12][t]=1;}
for(t=0;t<8;t++)
{usuario[13][t]=0;
if(t==2)usuario[13][t]=1;}
for(t=0;t<8;t++)
{usuario[14][t]=0;
if(t==1)usuario[14][t]=1;}
for(t=0;t<8;t++)
{usuario[15][t]=0;
if(t==0)usuario[15][t]=1;}
for(t=0;t<8;t++)
{usuario[16][t]=0;
if(t==0)usuario[16][t]=1;}
for(t=0;t<8;t++)
{usuario[17][t]=0;
if(t==3||t==4)usuario[17][t]=1;}
for(t=0;t<8;t++)
{usuario[18][t]=0;
if(t==2||t==5)usuario[18][t]=1;}
for(t=0;t<8;t++)
{usuario[19][t]=0;
if(t==1||t==6)usuario[19][t]=1;}
for(t=0;t<8;t++)
{usuario[20][t]=0;
if(t==0||t==7)usuario[20][t]=1;}
for(t=0;t<8;t++)
{usuario[21][t]=0;
if(t==0||t==7)usuario[21][t]=1;}
for(t=0;t<8;t++)
{usuario[22][t]=0;
if(t==1||t==6)usuario[22][t]=1;}
for(t=0;t<8;t++)
{usuario[23][t]=0;
if(t==2||t==5)usuario[23][t]=1;}
for(t=0;t<8;t++)
{usuario[24][t]=0;
if(t==3||t==4)usuario[24][t]=1;}
ejecucion();
}
void efecto2(void)
{
/* En esta funcion se introducen los datos en el array del efecto 2
para luego ejecutarlo en la funcion ejecutar */
int t;
paso=18;
organi();
for(t=0;t<8;t++)
{usuario[0][t]=0;
if(t==0||t==2||t==4||t==6)usuario[0][t]=1;}
for(t=0;t<8;t++)
{usuario[1][t]=0;
if(t==1||t==3||t==5||t==7)usuario[1][t]=1;}
for(t=0;t<8;t++)
{usuario[2][t]=0;
if(t==0||t==2||t==4||t==6)usuario[2][t]=1;}
for(t=0;t<8;t++)
{usuario[3][t]=0;
if(t==0||t==7)usuario[3][t]=1;}
for(t=0;t<8;t++)
{usuario[4][t]=0;
if(t==1||t==6)usuario[4][t]=1;}
for(t=0;t<8;t++)
{usuario[5][t]=0;
if(t==2||t==5)usuario[5][t]=1;}
for(t=0;t<8;t++)
{usuario[6][t]=0;
if(t==3||t==4)usuario[6][t]=1;}
for(t=0;t<8;t++)
{usuario[7][t]=0;
if(t==0)usuario[7][t]=1;}
for(t=0;t<8;t++)
{usuario[8][t]=0;
if(t==7)usuario[8][t]=1;}
for(t=0;t<8;t++)
{usuario[9][t]=0;
if(t==1)usuario[9][t]=1;}
for(t=0;t<8;t++)
{usuario[10][t]=0;
if(t==6)usuario[10][t]=1;}
for(t=0;t<8;t++)
{usuario[11][t]=0;
if(t==2)usuario[11][t]=1;}
for(t=0;t<8;t++)
{usuario[12][t]=0;
if(t==5)usuario[12][t]=1;}
for(t=0;t<8;t++)
{usuario[13][t]=0;
if(t==3)usuario[13][t]=1;}
for(t=0;t<8;t++)
{usuario[14][t]=0;
if(t==4)usuario[14][t]=1;}
for(t=0;t<8;t++)
{usuario[15][t]=0;
if(t==0||t==1||t==2||t==3||t==4||t==5||t==6||t==7)usuario[15][t]=1;}
for(t=0;t<8;t++)
{usuario[16][t]=0;
}
for(t=0;t<8;t++)
{usuario[17][t]=0;
if(t==0||t==1||t==2||t==3||t==4||t==5||t==6||t==7)usuario[17][t]=1;}
ejecucion();
}
void definido_usuario(void)
{
int contador,camb;
crear_window(150,95,550,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" SELECCIONA EL NUMERO DE PASOS ");
_moveto(200,180);
_outgtext(" DEL EFECTO(60 MAX):");
_settextposition(11,44);
scanf("%d",&paso);
fflush(stdin);
for(contador=0;contador<paso;contador++)
{
crear_window(150,95,505,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" LED APAGADO=0 ");
_moveto(200,180);
_outgtext(" LED ENCENDIDO=1 ");
_moveto(200,200);
_outgtext(" VOLVER=2 ");
_settextposition(15,30);
printf(" PASO %d ",contador+1);
/*Por razon inexplicable se le tiene que restar 48 al array usuario[60][8]*/
do{
_moveto(200,240);
_outgtext(" LED 1=");
_settextposition(17,23);
usuario[contador][0]=(getche()-48);
fflush(stdin);}while(usuario[contador][0]<0||usuario[contador][0]>2);
if(usuario[contador][0]==2)
{camb=1;break;}
do{
_moveto(200,260);
_outgtext(" LED 2=");
_settextposition(18,23);
usuario[contador][1]=(getche()-48);
fflush(stdin);}while(usuario[contador][1]<0||usuario[contador][1]>2);
if(usuario[contador][1]==2)
{camb=1;break;}
do{
_moveto(200,280);
_outgtext(" LED 3=");
_settextposition(19,23);
usuario[contador][2]=(getche()-48);
fflush(stdin);}while(usuario[contador][2]<0||usuario[contador][2]>2);
if(usuario[contador][2]==2)
{camb=1;break;}
do{
_moveto(200,300);
_outgtext(" LED 4=");
_settextposition(20,23);
usuario[contador][3]=(getche()-48);
fflush(stdin);}while(usuario[contador][3]<0||usuario[contador][3]>2);
if(usuario[contador][3]==2)
{camb=1;break;}
do{
_moveto(200,320);
_settextposition(21,23);
_outgtext(" LED 5=");
_settextposition(21,23);
usuario[contador][4]=(getche()-48);
fflush(stdin);}while(usuario[contador][4]<0||usuario[contador][4]>2);
if(usuario[contador][4]==2)
{camb=1;break;}
do{
_moveto(200,340);
_outgtext(" LED 6=");
_settextposition(22,23);
usuario[contador][5]=(getche()-48);
fflush(stdin);}while(usuario[contador][5]<0||usuario[contador][5]>2);
if(usuario[contador][5]==2)
{camb=1;break;}
do{
_moveto(200,360);
_outgtext(" LED 7=");
_settextposition(23,23);
usuario[contador][6]=(getche()-48);
fflush(stdin);}while(usuario[contador][6]<0||usuario[contador][6]>2);
if(usuario[contador][6]==2)
{camb=1;break;}
do{
_moveto(200,380);
_outgtext(" LED 8=");
_settextposition(24,23);
usuario[contador][7]=(getche()-48);
fflush(stdin);}while(usuario[contador][7]<0||usuario[contador][7]>2);
if(usuario[contador][7]==2)
{camb=1;break;}
}
if(camb==1)
{camb=2;definido_usuario();}
creamanual2();
}
void creamanual2(void)
{
crear_window(150,95,550,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" COMPLETADA ");
crear_boton(400,150,500,175,'d');
_outgtext("EJUCUTAR");
ejecuta='0';
estoyen=3;
ventana_raton(150,95,550,180);
mostrar_raton();
do{
if(kbhit()){ejecuta=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(ejecuta=='0');
quitar_raton();
switch(ejecuta)
{
case 'e':
case 'E':inicio1();inicio2();inicio3();histograma_graf();mostrar_raton();ejecucion();break;
default:aleatorio2();break;
}
}
void aleatorio(void)
{
crear_window(150,95,550,180,'a');
_outgtext("CREACION ALEATORIA DEL EFECTO");
_setcolor(15);
_moveto(200,140);
_outgtext(" SELECCIONA EL NUMERO DE PASOS");
_moveto(200,160);
_outgtext(" DEL EFECTO(60 MAX):");
_settextposition(11,44);
scanf("%d",&paso);
fflush(stdin);
creacionaleatoria();
}
void aleatorio2(void)
{
crear_window(150,95,550,180,'a');
_outgtext("CREACION ALEATORIA DEL EFECTO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION ALEATORIA ");
_moveto(200,160);
_outgtext(" COMPLETADA ");
crear_boton(400,150,500,175,'d');
_outgtext("EJUCUTAR");
ejecuta='0';
estoyen=3;
ventana_raton(150,95,550,180);
mostrar_raton();
do{
if(kbhit()){ejecuta=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(ejecuta=='0');
quitar_raton();
switch(ejecuta)
{
case 'e':
case 'E':inicio1();inicio2();inicio3();histograma_graf();mostrar_raton();ejecucion();break;
default:aleatorio2();break;
}
}
void creacionaleatoria(void)
{
int x,y;
for(x=0;x<paso;x++)
{
for(y=0;y<8;y++)
{
usuario[x][y]=rand() %2;
}
}
aleatorio2();
}
void pulsos(void)
{
/* printf("pulsos");*/
}
void combinatorio(void)
{
/* printf("combinatorio");*/
}
void reseteo(void)
{
reset=1;
ejecutar=0;
principal();
}
void ejecucion(void)
{
int i,j,pin;
organi();
ventana_raton(200,160,600,280);
ejecutar=1;
retardo(1);
for(i=0;i<paso;i++)
{
for(j=0;j<8;j++)
{
switch(usuario[i][j])
{
case 0:
{
if(j==0)
{led1off();break;}
if(j==1)
{led2off();break;}
if(j==2)
{led3off();break;}
if(j==3)
{led4off();break;}
if(j==4)
{led5off();break;}
if(j==5)
{led6off();break;}
if(j==6)
{led7off();break;}
if(j==7)
{led8off();break;}
}
case 1:
{
if(j==0)
{led1on();break;}
if(j==1)
{led2on();break;}
if(j==2)
{led3on();break;}
if(j==3)
{led4on();break;}
if(j==4)
{led5on();break;}
if(j==5)
{led6on();break;}
if(j==6)
{led7on();break;}
if(j==7)
{led8on();break;}
}
}
}
codigoout();
retardo(vel);
}
apagadoleds();
reset=0;
principal();
}
void apagadoleds(void)
{
led1off();
led2off();
led3off();
led4off();
led5off();
led6off();
led7off();
led8off();
}
void cerrar(void)
{
crear_window(155,210,455,300,'a');
_outgtext("INTERFAZ GRAFICO");
crear_boton(217,270,252,290,'d');
_outgtext("Si");
crear_boton(267,270,302,290,'d');
_outgtext("No");
crear_boton(317,270,392,290,'d');
_outgtext("Cancelar");
_moveto(175,250);
_outgtext("¨ESTA SEGURO DE QUE QUIERE SALIR?");
cerrarmenu();
}
void cerrarmenu()
{
ventana_raton(155,210,445,287);
poner_raton_en(284,280);
menu='0';
estoyen=1;
do{
mostrar_raton();
if(kbhit()){menu=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(menu=='0');
switch(menu)
{
case 's':
case 'S':_clearscreen(_GCLEARSCREEN);break;
case 'c':
case 'C':
case 'n':
case 'N':principal();break;
default:cerrar();break;
}
exit(1);
}
GRAFICOS.H
#include"boton.h"
#include"ventana.h"
#include"lineas.h"
#include"leds.h"
VENTANA.H
#include"stdio.h"
#include"graph.h"
void crear_window(int winxa,int winya,int winxb,int winyb,char con_boton_caracteristico)
{
_setcolor(config[3]);
_rectangle(_GFILLINTERIOR,winxa,winya,winxb,winyb);
_setcolor(config[2]);
_rectangle(_GFILLINTERIOR,winxa+3,winya+3,winxb-3,winya+23);
_setcolor(15);
_rectangle(_GBORDER,winxa,winya,winxb,winyb);
_rectangle(_GBORDER,winxa+3,winya+3,winxb-3,winya+23);
_setcolor(0);
_moveto(winxa+3,winya+23);
_lineto(winxb-3,winya+23);
_lineto(winxb-3,winya+3);
_moveto(winxa,winyb);
_lineto(winxb,winyb);
_lineto(winxb,winya);
if(con_boton_caracteristico=='c')
{
/* CUADRO DE CERRAR */
_setfont("t'helv'h8w8b");
_setcolor(7);
_rectangle(_GFILLINTERIOR,winxb-24,winya+7,winxb-12,winya+19);
_setcolor(15);
_rectangle(_GBORDER,winxb-24,winya+7,winxb-12,winya+19);
_setcolor(0);
_moveto(winxb-24,winya+19);
_lineto(winxb-12,winya+19);
_lineto(winxb-12,winya+7);
_moveto(winxb-23,winya+7);
_outgtext("X");
_moveto(winxb-22,winya+7);
_outgtext("X");
_moveto(winxb-21,winya+7);
_outgtext("X");
}
/* TEXTO DE PANTALLA */
_setfont("t'helv'h8w8b");
_setcolor(config[4]);
_moveto(winxa+23,winya+8);
}
RATON.H
#include "dos.h"
#include "stdio.h"
union REGS regs;
void tipo_cursor(char caracter,char atributos)
{
regs.x.ax=0x000A;
regs.x.bx=0x1;
regs.x.cx=caracter;
regs.x.dx=atributos;
int86(0x33,®s,®s);
}
int raton_instalado(void)
{
regs.x.ax=0x00;
int86(0x33,®s,®s);
if(regs.x.ax==0)
return(0);
else
return(1);
}
void inicializa_raton(void)
{
regs.x.ax=0x00;
int86(0x33,®s,®s);
}
void mostrar_raton(void)
{
regs.x.ax=0x01;
int86(0x33,®s,®s);
}
void quitar_raton(void)
{
regs.x.ax=0x02;
int86(0x33,®s,®s);
}
char t_izq;
void tecla_iz(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_izq=((regs.x.bx)&(0x01));
}
char t_der;
void tecla_der(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_der=((regs.x.bx)&(0x02));
}
char t_cen;
void tecla_cen(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_cen=((regs.x.bx)>(0x02));
}
void no_tecla_iz(void)
{
regs.x.ax=0x06;
regs.x.bx=0x00;
int86(0x33,®s,®s);
if((regs.x.bx)>0)
return(1);
else
return(0);
}
void poner_raton_en(int x,int y)
{
regs.x.ax=0x04;
regs.x.cx=x;
regs.x.dx=y;
int86(0x33,®s,®s);
}
int dx,dy;
void pos_raton()
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
dx=regs.x.cx;
dy=regs.x.dx;
}
void ventana_raton(int left,int top,int right,int bottom)
{
regs.x.ax=0x08;
regs.x.cx=top;
regs.x.dx=bottom;
int86(0x33,®s,®s);
regs.x.ax=0x07;
regs.x.cx=left;
regs.x.dx=right;
int86(0x33,®s,®s);
}
BOTON.H
#include"stdio.h"
#include"graph.h"
void crear_boton(int botxa,int botya,int botxb,int botyb,char eleccion_por_defecto)
{
_setcolor(7);
_rectangle(_GFILLINTERIOR,botxa,botya,botxb,botyb);
_setcolor(15);
_rectangle(_GBORDER,botxa,botya,botxb,botyb);
_setcolor(0);
_moveto(botxa,botyb);
_lineto(botxb,botyb);
_lineto(botxb,botya);
_moveto(botxa+10,((((botyb-botya)/2)+botya)-5));
if(eleccion_por_defecto=='d')
{_setfont("t'helv'h8w8b");}
}
LINEAS.H
#include<stdio.h>
#include<graph.h>
void linea(int lineainix,int lineainiy,int lineafinx,int lineafiny)
{
_setcolor(0);
_moveto(lineainix,lineainiy);
_lineto(lineafinx,lineafiny);
if(lineainix==lineafinx)
{
_setcolor(15);
_moveto(lineainix-1,lineafiny);
_lineto(lineainix-1,lineainiy);
_moveto(lineainix+1,lineainiy);
_lineto(lineainix+1,lineafiny);
}
if(lineainiy==lineafiny)
{
_setcolor(15);
_moveto(lineafinx,lineainiy-1);
_lineto(lineainix,lineainiy-1);
_moveto(lineainix,lineainiy+1);
_lineto(lineafinx,lineainiy+1);
}
}
LEDS.H
#include<stdio.h>
#include<graph.h>
void crear_leds(int ledxa,int ledya,int ledxb,int ledyb,int numero_leds,int espacio,char con_numero,char sin_leds)
{
int contador_for,resultado_separador,ledxacopy;
resultado_separador=((espacio-((ledxb-ledxa)*numero_leds))/(numero_leds-1));
for(contador_for=1;contador_for<=numero_leds;contador_for++)
{
if(sin_leds!='s')
{
_setcolor(4);
_ellipse(_GFILLINTERIOR,ledxa,ledya,ledxb,ledyb);
_setcolor(0);
_ellipse(_GFILLINTERIOR,ledxa+3,ledya+3,ledxb-3,ledyb-3);
}
if(con_numero=='n')
{
_setfont("t'helv'h25w20b");
_moveto(((((ledxb-ledxa)/2)+ledxa)-10),ledyb+10);
if(contador_for==1)_outgtext("1");
if(contador_for==2)_outgtext("2");
if(contador_for==3)_outgtext("3");
if(contador_for==4)_outgtext("4");
if(contador_for==5)_outgtext("5");
if(contador_for==6)_outgtext("6");
if(contador_for==7)_outgtext("7");
if(contador_for==8)_outgtext("8");
}
ledxacopy=ledxa;
ledxa=ledxb+resultado_separador;
ledxb=ledxb-ledxacopy+resultado_separador+ledxb;
}
}
OTRO2.C
#include<stdio.h>
#include<conio.h>
#include<graph.h>
#include<stdlib.h>
#include"raton.h"
int config[30];
#include"graficos.h"
void inicio1(void);
void inicio2(void);
void inicio3(void);
void inicio4(void);
void led1on(void);
void led2on(void);
void led3on(void);
void led4on(void);
void led5on(void);
void led6on(void);
void led7on(void);
void led8on(void);
void led1off(void);
void led2off(void);
void led3off(void);
void led4off(void);
void led5off(void);
void led6off(void);
void led7off(void);
void led8off(void);
void led1display1(void);
void led2display1(void);
void led3display1(void);
void led4display1(void);
void led5display1(void);
void led6display1(void);
void led7display1(void);
void led8display1(void);
void led1display2(void);
void led2display2(void);
void led3display2(void);
void led4display2(void);
void led5display2(void);
void led6display2(void);
void led7display2(void);
void led8display2(void);
void ledoffdisplay(void);
void codigoout(void);
void ejecucion(void);
void entrada(void);
void pulsarboton(void);
void efecto1(void);
void efecto2(void);
void creacionaleatoria(void);
void definido_usuario(void);
void creamanual2(void);
void aleatorio(void);
void aleatorio2(void);
void pulsos(void);
void apagadoleds(void);
void error_raton(void);
void combinatorio(void);
void reseteo(void);
void organi(void);
void tabla(void);
void cerrar(void);
void cerrarmenu(void);
void histograma_graf(void);
void grafica_graf(void);
void grafica_dia(void);
void histograma_dia(void);
void menu_principal(void);
void comprobacion_bizquierdo(void);
void principal(void);
void retardo(float vel);
void menu_retardo(void);
void valores_por_defecto(void);
int estoyen,ponerdia,ejecutar,levanta,posi[8],usuario[75][8],posicion,reset,leda,ledb,ledc,ledd,lede,ledf,ledg,ledh,a,b,tipo,paso;
char menu,colornumero,lolo,ejecuta;
unsigned char datoa,datob,datoc,datod,datoe,datof,datog,datoh,datoresul;
float vel,m;
void main()
{
struct videoconfig confi;
_setvideomode(_VRES16COLOR);
_getvideoconfig(&confi);
_registerfonts("c:\qc25\samples\*.FON");
_setgtextvector(1,0);
_setbkcolor(_BLACK);
tipo=raton_instalado();
if (tipo==0)inicializa_raton();
poner_raton_en(320,240);
valores_por_defecto();
principal();
}
void retardo(float vel)
{
float retar;
lolo='A';
m=0;
for(retar=0;retar<5000*vel;retar++)
{
if(kbhit()){lolo=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}
menu_retardo();
}
void menu_retardo(void)
{
estoyen=2;
switch(lolo)
{
case '+':pulsarboton();m=(-0.2);break;
case '-':pulsarboton();m=0.2;break;
case 'p':
case 'P':
{
pulsarboton();
lolo='A';
for(;;)
{
if(kbhit()){lolo=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
if(lolo=='p')break;
}
_setcolor(15);
_moveto(265,209);
_lineto(200,209);
_lineto(200,239);
_setcolor(0);
_lineto(265,239);
_lineto(265,209);
for(estoyen=0;estoyen<1000;estoyen++);
break;
}
case 's':
case 'S':reset=1;pulsarboton();quitar_raton();principal();break;
case 'g':
case 'G':quitar_raton();grafica_graf();mostrar_raton();break;
case 'h':
case 'H':quitar_raton();histograma_graf();mostrar_raton();break;
}
}
void valores_por_defecto(void)
{
vel=1;
reset=1;
config[0]=0;
config[2]=1;
config[3]=7;
config[4]=15;
config[7]=4;
config[9]=4;
config[10]=15;
config[23]=1;
}
void principal(void)
{
if(reset==1)inicio1();
inicio2();
inicio3();
if(reset==1){
if(config[0]==0)histograma_graf();
if(config[0]==1)grafica_graf();}
menu_principal();
}
void inicio1(void)
{
crear_window(7,7,633,470,'c');
_outgtext("INTERFAZ GRAFICO");
_setfont("t'modern'h8w6b");
_moveto(163,18);
_outgtext("VER.");
_setfont("t'helv'h8w8b");
_moveto(185,15);
_outgtext("2.1");
}
void inicio2(void)
{
crear_boton(30,53,150,83,'d');
_outgtext("ENTRADA");
crear_boton(30,105,150,135,'d');
_outgtext("1§ EFECTO");
crear_boton(30,157,150,187,'d');
_outgtext("2§ EFECTO");
crear_boton(30,209,150,239,'d');
_outgtext("D.USUARIO");
crear_boton(30,261,150,291,'d');
_outgtext("ALEATORIO");
/*
crear_boton(30,313,150,343,'d');
_outgtext("POR PULSOS");
crear_boton(30,365,150,395,'d');
_outgtext("COMBINATORIO");
*/
/* coordenadas del ultimo boton=30,417,150,447,'d' */
crear_boton(30,365,150,395,'d');
_outgtext("RESETEO");
linea(170,53,170,447);
}
void pulsarboton(void)
{
int lpuno,lpdos,lptres,lpcuatro,qwert,qwerty;
if(estoyen==0)
{
qwert=0;qwerty=15;
if(menu=='e'||menu=='E'){lpuno=30;lpdos=53;lptres=150;lpcuatro=83;}
if(menu=='1'){lpuno=30;lpdos=105;lptres=150;lpcuatro=135;}
if(menu=='2'){lpuno=30;lpdos=157;lptres=150;lpcuatro=187;}
if(menu=='d'||menu=='D'){lpuno=30;lpdos=209;lptres=150;lpcuatro=239;}
if(menu=='a'||menu=='A'){lpuno=30;lpdos=261;lptres=150;lpcuatro=291;}
/*
if(menu=='p'||menu=='P'){lpuno=30;lpdos=313;lptres=150;lpcuatro=343;}
if(menu=='c'||menu=='C'){lpuno=30;lpdos=365;lptres=150;lpcuatro=395;}
*/
if(menu=='s'||menu=='S'){lpuno=539;lpdos=209;lptres=603;lpcuatro=239;}
if(menu=='r'||menu=='R'){lpuno=30;lpdos=365;lptres=150;lpcuatro=395;}
}
if(estoyen==1)
{
if(menu=='n'||menu=='N'){lpuno=217;lpdos=270;lptres=252;lpcuatro=290;levanta=1;}
if(menu=='s'||menu=='S'){lpuno=267;lpdos=270;lptres=302;lpcuatro=290;levanta=1;}
if(menu=='c'||menu=='C'){lpuno=317;lpdos=270;lptres=392;lpcuatro=290;levanta=1;}
}
if(estoyen==2)
{
qwert=0;qwerty=15;
if(lolo=='p'||lolo=='P'){lpuno=200;lpdos=209;lptres=265;lpcuatro=239;}
if(lolo=='+'){lpuno=476;lpdos=209;lptres=509;lpcuatro=239;estoyen=1;levanta=1;}
if(lolo=='-'){lpuno=295;lpdos=209;lptres=328;lpcuatro=239;estoyen=1;levanta=1;}
if(lolo=='s'||lolo=='S'){lpuno=539;lpdos=209;lptres=603;lpcuatro=239;levanta=1;}
}
_setcolor(qwert);
_moveto(lptres,lpdos);
_lineto(lpuno,lpdos);
_lineto(lpuno,lpcuatro);
_setcolor(qwerty);
_lineto(lptres,lpcuatro);
_lineto(lptres,lpdos);
if(levanta==1)
{
retardo(0.1);
qwert=15;qwerty=0;
_setcolor(qwert);
_moveto(lptres,lpdos);
_lineto(lpuno,lpdos);
_lineto(lpuno,lpcuatro);
_setcolor(qwerty);
_lineto(lptres,lpcuatro);
_lineto(lptres,lpdos);
levanta=0;
}
}
void inicio3(void)
{
crear_window(190,53,613,189,'a');
_outgtext("LEDS DE VISUALIZACION DE SALIDA/ENTRADA");
/* LEDS */
crear_leds(210,100,250,140,8,383,'n','0');
/* BOTONES DE FUNCION */
crear_boton(200,209,265,239,'d');
_outgtext("PAUSA");
crear_boton(539,209,603,239,'d');
_outgtext("SALIR");
crear_boton(354,209,450,239,'d');
_outgtext("VELOCIDAD");
crear_boton(295,209,328,239,'a');
_rectangle(_GFILLINTERIOR,302,222,320,226);
crear_boton(476,209,509,239,'a');
_rectangle(_GFILLINTERIOR,483,222,501,226);
_rectangle(_GFILLINTERIOR,490,215,494,233);
_setcolor(15);
_rectangle(_GBORDER,354,209,450,239);
_rectangle(_GBORDER,352,207,452,241);
_rectangle(_GBORDER,290,204,333,244);
_rectangle(_GBORDER,288,202,335,246);
_rectangle(_GBORDER,471,204,514,244);
_rectangle(_GBORDER,469,202,516,246);
linea(335,223,352,223);
linea(452,223,469,223);
_rectangle(_GBORDER,195,204,270,244);
_rectangle(_GBORDER,193,202,272,246);
_rectangle(_GBORDER,534,204,608,244);
_rectangle(_GBORDER,532,202,610,246);
linea(171,223,193,223);
linea(272,223,288,223);
linea(516,223,532,223);
linea(610,223,632,223);
_setcolor(0);
_rectangle(_GBORDER,353,208,451,240);
_rectangle(_GBORDER,289,203,334,245);
_rectangle(_GBORDER,470,203,515,245);
_rectangle(_GBORDER,194,203,271,245);
_rectangle(_GBORDER,533,203,609,245);
}
void histograma_graf(void)
{
crear_window(190,259,613,447,'a');
_outgtext("HISTOGRAMA REPRESENTATIVO DE LOS LED");
/*
crear_boton(525,266,601,278,'d');
_outgtext("GRAFICA");
*/
_setcolor(0);
crear_leds(210,360,250,410,8,383,'n','s');
_rectangle(_GFILLINTERIOR,205,290,598,415);
config[0]=0;
config[23]=1;
if(ejecutar==1)histograma_dia();
}
void histograma_dia(void)
{
ponerdia=0;
led1display1();
led2display1();
led3display1();
led4display1();
led5display1();
led6display1();
led7display1();
led8display1();
ponerdia=1;
}
void grafica_graf(void)
{
crear_window(190,259,613,447,'a');
_outgtext("GRAFICA REPRESENTATIVA DE LOS LED");
crear_boton(525,266,601,278,'d');
_outgtext("HISTOGR.");
crear_leds(210,360,250,410,8,383,'n','s');
_rectangle(_GFILLINTERIOR,205,290,598,415);
config[0]=1;
config[23]=2;
if(ejecutar==1)grafica_dia();
}
void grafica_dia(void)
{
ponerdia=0;
led1display2();
led2display2();
led3display2();
led4display2();
led5display2();
led6display2();
led7display2();
led8display2();
ponerdia=1;
}
void comprobacion_bizquierdo(void)
{
if(estoyen==0)
{
if(dx>=0&dx<=640&dy>=0&dy<=480)menu='x';
if(dx>=30&dx<=150&dy>=53&dy<=83)menu='e';
if(dx>=30&dx<=150&dy>=105&dy<=135)menu='1';
if(dx>=30&dx<=150&dy>=157&dy<=187)menu='2';
if(dx>=30&dx<=150&dy>=209&dy<=239)menu='d';
if(dx>=30&dx<=150&dy>=261&dy<=291)menu='a';
/*
if(dx>=30&dx<=150&dy>=313&dy<=343)menu='c';
if(dx>=30&dx<=150&dy>=365&dy<=395)menu='p';
*/
if(dx>=30&dx<=150&dy>=365&dy<=395)menu='r';
/*
if(config[0]==0){if(dx>=525&dx<=601&dy>=266&dy<=278)menu='g';}
if(config[0]==1){if(dx>=525&dx<=601&dy>=266&dy<=278)menu='h';}
*/
if(dx>=539&dx<=603&dy>=209&dy<=239)menu='s';
if(dx>=609&dx<=621&dy>=14&dy<=26)menu='w';
}
if(estoyen==1)
{
if(dx>=217&dx<=252&dy>=270&dy<=290)menu='s';
if(dx>=267&dx<=302&dy>=270&dy<=290)menu='n';
if(dx>=317&dx<=392&dy>=270&dy<=290)menu='c';
if(dx>=155&dx<=210&dy>=455&dy<=300)menu='p';
quitar_raton();
}
if(estoyen==2)
{
if(dx>=200&dx<=600&dy>=160&dy<=280)error_raton();lolo='B';
if(dx>=200&dx<=265&dy>=209&dy<=239)lolo='p';
if(dx>=295&dx<=328&dy>=209&dy<=239)lolo='-';
if(dx>=476&dx<=509&dy>=209&dy<=239)lolo='+';
if(dx>=539&dx<=603&dy>=209&dy<=239)lolo='s';
/*
if(config[0]==0){if(dx>=525&dx<=601&dy>=266&dy<=278)lolo='g';}
if(config[0]==1){if(dx>=525&dx<=601&dy>=266&dy<=278)lolo='h';}
*/
}
if(estoyen==3)
{
if(dx>=150&dx<=550&dy>=95&dy<=180)error_raton();ejecuta='0';
if(dx>=400&dx<=500&dy>=150&dy<=175)ejecuta='e';
}
t_izq=0;
}
void error_raton(void)
{
_setcolor(0);
_rectangle(_GFILLINTERIOR,0,0,5,480);
_rectangle(_GFILLINTERIOR,633,0,640,480);
_rectangle(_GFILLINTERIOR,0,471,640,480);
_rectangle(_GFILLINTERIOR,0,0,640,6);
}
void menu_principal(void)
{
ventana_raton(0,0,630,465);
menu='0';
estoyen=0;
mostrar_raton();
do{
if(kbhit()){menu=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(menu=='0');
quitar_raton();
switch(menu)
{
case 'e':
case 'E':pulsarboton();mostrar_raton();entrada();break;
case '1':pulsarboton();mostrar_raton();efecto1();break;
case '2':pulsarboton();mostrar_raton();efecto2();break;
case 'd':
case 'D':pulsarboton();mostrar_raton();definido_usuario();break;
case 'a':
case 'A':pulsarboton();mostrar_raton();aleatorio();break;
/*
case 'c':
case 'C':combinatorio();break;
case 'p':
case 'P':pulsos();break;
*/
case 'r':
case 'R':pulsarboton();mostrar_raton();reseteo();break;
/*
case 'g':
case 'G':
{
retardo(0.2);
grafica_graf();
menu_principal();
break;
}
case 'h':
case 'H':
{
retardo(0.2);
histograma_graf();
menu_principal();
break;
}
*/
case 'w':retardo(0.2);cerrar();break;
case 'S':
case 's':pulsarboton();retardo(0.2);cerrar();break;
case 'x':
{
error_raton();
menu_principal();
break;
}
default:menu_principal();break;
}
}
void organi(void)
{
vel=1;
if(reset==1)
{
posi[0]=1;
posi[1]=1;
posi[2]=1;
posi[3]=1;
posi[4]=1;
posi[5]=1;
posi[6]=1;
posi[7]=1;
}
leda=0;
ledb=0;
ledc=0;
ledd=0;
lede=0;
ledf=0;
ledg=0;
ledh=0;
datoa=0x00;
datob=0x00;
datoc=0x00;
datod=0x00;
datoe=0x00;
datof=0x00;
datog=0x00;
datoh=0x00;
}
void tabla(void)
{
switch(posicion)
{
case 1:b=410;a=408;break;
case 2:b=406;a=404;break;
case 3:b=402;a=400;break;
case 4:b=398;a=396;break;
case 5:b=394;a=392;break;
case 6:b=390;a=388;break;
case 7:b=386;a=384;break;
case 8:b=382;a=380;break;
case 9:b=378;a=376;break;
case 10:b=374;a=372;break;
case 11:b=370;a=368;break;
case 12:b=366;a=364;break;
case 13:b=362;a=360;break;
case 14:b=358;a=356;break;
case 15:b=354;a=352;break;
case 16:b=350;a=348;break;
case 17:b=346;a=344;break;
case 18:b=342;a=340;break;
case 19:b=338;a=336;break;
case 20:b=334;a=332;break;
case 21:b=330;a=328;break;
case 22:b=326;a=324;break;
case 23:b=322;a=320;break;
case 24:b=318;a=316;break;
case 25:b=314;a=312;break;
case 26:b=310;a=308;break;
case 27:b=306;a=304;break;
case 28:b=302;a=300;break;
case 29:b=298;a=296;break;
case 30:b=294;a=292;break;
}
}
void led1on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,210,100,250,140);
datoa=0x80;
if(leda==0)
{
if(config[23]==1)
{led1display1();}
if(config[23]==2)
{led1display2();}
}
}
void led1off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,213,103,247,137);
datoa=0x00;
ledoffdisplay();
leda=0;
}
void led1display1(void)
{
for(posicion=1;posicion<=posi[0];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,210,a,250,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[0]++;
leda=1;
/*
}
*/
}
void led1display2(void)
{
if(!(ponerdia==0))
{
posi[0]++;
leda=1;
}
}
void led2on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,259,100,299,140);
datob=0x40;
if(ledb==0)
{
if(config[23]==1)
{led2display1();}
if(config[23]==2)
{led2display2();}
}
}
void led2off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,262,103,296,137);
datob=0x00;
ledoffdisplay();
ledb=0;
}
void led2display1(void)
{
for(posicion=1;posicion<=posi[1];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,259,a,299,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[1]++;
ledb=1;
/*
}
*/
}
void led2display2(void)
{
if(!(ponerdia==0))
{
posi[1]++;
ledb=1;
}
}
void led3on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,308,100,348,140);
datoc=0x20;
if(ledc==0)
{
if(config[23]==1)
{led3display1();}
if(config[23]==2)
{led3display2();}
}
}
void led3off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,311,103,345,137);
datoc=0x00;
ledoffdisplay();
ledc=0;
}
void led3display1(void)
{
for(posicion=1;posicion<=posi[2];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,308,a,348,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[2]++;
ledc=1;
/*
}
*/
}
void led3display2(void)
{
if(!(ponerdia==0))
{
posi[2]++;
ledc=1;
}
}
void led4on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,357,100,397,140);
datod=0x10;
if(ledd==0)
{
if(config[23]==1)
{led4display1();}
if(config[23]==2)
{led4display2();}
}
}
void led4off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,360,103,394,137);
datod=0x00;
ledoffdisplay();
ledd=0;
}
void led4display1(void)
{
for(posicion=1;posicion<=posi[3];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,357,a,397,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[3]++;
ledd=1;
/*
}
*/
}
void led4display2(void)
{
if(!(ponerdia==0))
{
posi[3]++;
ledd=1;
}
}
void led5on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,406,100,446,140);
datoe=0x08;
if(lede==0)
{
if(config[23]==1)
{led5display1();}
if(config[23]==2)
{led5display2();}
}
}
void led5off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,409,103,443,137);
datoe=0x00;
ledoffdisplay();
lede=0;
}
void led5display1(void)
{
for(posicion=1;posicion<=posi[4];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,406,a,446,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[4]++;
lede=1;
/*
}
*/
}
void led5display2(void)
{
if(!(ponerdia==0))
{
posi[4]++;
lede=1;
}
}
void led6on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,455,100,495,140);
datof=0x04;
if(ledf==0)
{
if(config[23]==1)
{led6display1();}
if(config[23]==2)
{led6display2();}
}
}
void led6off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,458,103,492,137);
datof=0x00;
ledoffdisplay();
ledf=0;
}
void led6display1(void)
{
for(posicion=1;posicion<=posi[5];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,455,a,495,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[5]++;
ledf=1;
/*
}
*/
}
void led6display2(void)
{
if(!(ponerdia==0))
{
posi[5]++;
ledf=1;
}
}
void led7on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,504,100,544,140);
datog=0x02;
if(ledg==0)
{
if(config[23]==1)
{led7display1();}
if(config[23]==2)
{led7display2();}
}
}
void led7off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,507,103,541,137);
datog=0x00;
ledoffdisplay();
ledg=0;
}
void led7display1(void)
{
for(posicion=1;posicion<=posi[6];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,504,a,544,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[6]++;
ledg=1;
/*
}
*/
}
void led7display2(void)
{
if(!(ponerdia==0))
{
posi[6]++;
ledg=1;
}
}
void led8on(void)
{
_setcolor(config[7]);
_ellipse(_GFILLINTERIOR,553,100,593,140);
datoh=0x01;
if(ledh==0)
{
if(config[23]==1)
{led8display1();}
if(config[23]==2)
{led8display2();}
}
}
void led8off(void)
{
_setcolor(0);
_ellipse(_GFILLINTERIOR,556,103,590,137);
datoh=0x00;
ledoffdisplay();
ledh=0;
}
void led8display1(void)
{
for(posicion=1;posicion<=posi[7];posicion++)
{
tabla();
_setcolor(config[9]);
_rectangle(_GFILLINTERIOR,553,a,593,b);
}
/*
if(!(ponerdia==0))
{
*/
posi[7]++;
ledh=1;
/*
}
*/
}
void led8display2(void)
{
if(!(ponerdia==0))
{
posi[7]++;
ledh=1;
}
}
void ledoffdisplay()
{
_setcolor(config[0]);
_rectangle(_GFILLINTERIOR,0,0,1,480);
}
void codigoout(void)
{
/* En esta funcion se recoge el dato enviado por cada led y se opera
realizando una suma hexadecimal y metiendo el resultado en una variable
la cual sera el dato que introducimos en la salida */
datoresul=datoa+datob+datoc+datod+datoe+datof+datog+datoh;
_settextposition(3,42);
printf("SAL.HEXA=%x ",datoresul);
vel=vel+m;
printf(" VEL=%.2f",vel);
outp(0x37A,0);
outp(0x378,datoresul);
outp(0x37A,1);
}
void entrada(void)
{
/* En esta funcion se realiza la entrada de datos del prototipo a el
programa que son tratados con una mascara para luego representarlo
por pantalla */
int i;
unsigned char entradaa[2],entradab[2],mascara;
outp(0x37A,2);
entradaa[0]=inp(0x379);
outp(0x37A,0);
entradaa[1]=inp(0x379);
mascara=0xf0;
_settextposition(4,20);
printf("LA 0=%x ",entradaa[0]);
_settextposition(5,20);
printf("LA 1=%x ",entradaa[1]);
_settextposition(6,20);
printf("LA MASCARA=%x ",mascara);
getch();
entradaa[0]=entradaa[0]&mascara;
entradaa[1]=entradaa[1]&mascara;
_settextposition(7,20);
printf("LA 0 CON MASCARA=%x ",entradaa[0]);
_settextposition(8,20);
printf("LA 1 CON MASCARA=%x ",entradaa[1]);
getch();
for(i=0;i<2;i++)
{
if(entradaa[i]==0xb0)entradab[i]=0xf0;
if(entradaa[i]==0xf0)entradab[i]=0xe0;
if(entradaa[i]==0x30)entradab[i]=0xd0;
if(entradaa[i]==0x70)entradab[i]=0xc0;
if(entradaa[i]==0x90)entradab[i]=0xb0;
if(entradaa[i]==0xd0)entradab[i]=0xa0;
if(entradaa[i]==0x10)entradab[i]=0x90;
if(entradaa[i]==0x50)entradab[i]=0x80;
if(entradaa[i]==0xa0)entradab[i]=0x70;
if(entradaa[i]==0xe0)entradab[i]=0x60;
if(entradaa[i]==0x20)entradab[i]=0x50;
if(entradaa[i]==0x60)entradab[i]=0x40;
if(entradaa[i]==0x80)entradab[i]=0x30;
if(entradaa[i]==0xc0)entradab[i]=0x20;
if(entradaa[i]==0x00)entradab[i]=0x10;
if(entradaa[i]==0x40)entradab[i]=0x00;
}
organi();
_settextposition(9,20);
printf("LA 0 CON MASCARA2=%x ",entradab[0]);
_settextposition(10,20);
printf("LA 1 CON MASCARA2=%x ",entradab[1]);
if(entradab[0]>=0x80){entradab[0]=entradab[0]-0x80;led1on();}
if(entradab[0]>=0x40){entradab[0]=entradab[0]-0x40;led2on();}
if(entradab[0]>=0x20){entradab[0]=entradab[0]-0x20;led3on();}
if(entradab[0]>=0x10){entradab[0]=entradab[0]-0x10;led4on();}
if(entradab[1]>=0x80){entradab[1]=entradab[1]-0x80;led5on();}
if(entradab[1]>=0x40){entradab[1]=entradab[1]-0x40;led6on();}
if(entradab[1]>=0x20){entradab[1]=entradab[1]-0x20;led7on();}
if(entradab[1]>=0x10){entradab[1]=entradab[1]-0x10;led8on();}
codigoout();
getch();
inicio2();
inicio3();
menu_principal();
}
void efecto1(void)
{
/* En esta funcion se introducen los datos del efecto 1 en le array
usuario para luego ejecutarlo en la funcion ejecutar */
int t;
organi();
paso=26;
for(t=0;t<8;t++)
{usuario[0][t]=0;
if(t==0)usuario[0][t]=1;}
for(t=0;t<8;t++)
{usuario[1][t]=0;
if(t==1)usuario[1][t]=1;}
for(t=0;t<8;t++)
{usuario[2][t]=0;
if(t==2)usuario[2][t]=1;}
for(t=0;t<8;t++)
{usuario[3][t]=0;
if(t==3)usuario[3][t]=1;}
for(t=0;t<8;t++)
{usuario[4][t]=0;
if(t==4)usuario[4][t]=1;}
for(t=0;t<8;t++)
{usuario[5][t]=0;
if(t==5)usuario[5][t]=1;}
for(t=0;t<8;t++)
{usuario[6][t]=0;
if(t==6)usuario[6][t]=1;}
for(t=0;t<8;t++)
{usuario[7][t]=0;
if(t==7)usuario[7][t]=1;}
for(t=0;t<8;t++)
{usuario[8][t]=0;
if(t==7)usuario[8][t]=1;}
for(t=0;t<8;t++)
{usuario[9][t]=0;
if(t==6)usuario[9][t]=1;}
for(t=0;t<8;t++)
{usuario[10][t]=0;
if(t==5)usuario[10][t]=1;}
for(t=0;t<8;t++)
{usuario[11][t]=0;
if(t==4)usuario[11][t]=1;}
for(t=0;t<8;t++)
{usuario[12][t]=0;
if(t==3)usuario[12][t]=1;}
for(t=0;t<8;t++)
{usuario[13][t]=0;
if(t==2)usuario[13][t]=1;}
for(t=0;t<8;t++)
{usuario[14][t]=0;
if(t==1)usuario[14][t]=1;}
for(t=0;t<8;t++)
{usuario[15][t]=0;
if(t==0)usuario[15][t]=1;}
for(t=0;t<8;t++)
{usuario[16][t]=0;
if(t==0)usuario[16][t]=1;}
for(t=0;t<8;t++)
{usuario[17][t]=0;
if(t==3||t==4)usuario[17][t]=1;}
for(t=0;t<8;t++)
{usuario[18][t]=0;
if(t==2||t==5)usuario[18][t]=1;}
for(t=0;t<8;t++)
{usuario[19][t]=0;
if(t==1||t==6)usuario[19][t]=1;}
for(t=0;t<8;t++)
{usuario[20][t]=0;
if(t==0||t==7)usuario[20][t]=1;}
for(t=0;t<8;t++)
{usuario[21][t]=0;
if(t==0||t==7)usuario[21][t]=1;}
for(t=0;t<8;t++)
{usuario[22][t]=0;
if(t==1||t==6)usuario[22][t]=1;}
for(t=0;t<8;t++)
{usuario[23][t]=0;
if(t==2||t==5)usuario[23][t]=1;}
for(t=0;t<8;t++)
{usuario[24][t]=0;
if(t==3||t==4)usuario[24][t]=1;}
ejecucion();
}
void efecto2(void)
{
/* En esta funcion se introducen los datos en el array del efecto 2
para luego ejecutarlo en la funcion ejecutar */
int t;
paso=18;
organi();
for(t=0;t<8;t++)
{usuario[0][t]=0;
if(t==0||t==2||t==4||t==6)usuario[0][t]=1;}
for(t=0;t<8;t++)
{usuario[1][t]=0;
if(t==1||t==3||t==5||t==7)usuario[1][t]=1;}
for(t=0;t<8;t++)
{usuario[2][t]=0;
if(t==0||t==2||t==4||t==6)usuario[2][t]=1;}
for(t=0;t<8;t++)
{usuario[3][t]=0;
if(t==0||t==7)usuario[3][t]=1;}
for(t=0;t<8;t++)
{usuario[4][t]=0;
if(t==1||t==6)usuario[4][t]=1;}
for(t=0;t<8;t++)
{usuario[5][t]=0;
if(t==2||t==5)usuario[5][t]=1;}
for(t=0;t<8;t++)
{usuario[6][t]=0;
if(t==3||t==4)usuario[6][t]=1;}
for(t=0;t<8;t++)
{usuario[7][t]=0;
if(t==0)usuario[7][t]=1;}
for(t=0;t<8;t++)
{usuario[8][t]=0;
if(t==7)usuario[8][t]=1;}
for(t=0;t<8;t++)
{usuario[9][t]=0;
if(t==1)usuario[9][t]=1;}
for(t=0;t<8;t++)
{usuario[10][t]=0;
if(t==6)usuario[10][t]=1;}
for(t=0;t<8;t++)
{usuario[11][t]=0;
if(t==2)usuario[11][t]=1;}
for(t=0;t<8;t++)
{usuario[12][t]=0;
if(t==5)usuario[12][t]=1;}
for(t=0;t<8;t++)
{usuario[13][t]=0;
if(t==3)usuario[13][t]=1;}
for(t=0;t<8;t++)
{usuario[14][t]=0;
if(t==4)usuario[14][t]=1;}
for(t=0;t<8;t++)
{usuario[15][t]=0;
if(t==0||t==1||t==2||t==3||t==4||t==5||t==6||t==7)usuario[15][t]=1;}
for(t=0;t<8;t++)
{usuario[16][t]=0;
}
for(t=0;t<8;t++)
{usuario[17][t]=0;
if(t==0||t==1||t==2||t==3||t==4||t==5||t==6||t==7)usuario[17][t]=1;}
ejecucion();
}
void definido_usuario(void)
{
int contador,camb;
crear_window(150,95,550,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" SELECCIONA EL NUMERO DE PASOS ");
_moveto(200,180);
_outgtext(" DEL EFECTO(60 MAX):");
_settextposition(11,44);
scanf("%d",&paso);
fflush(stdin);
for(contador=0;contador<paso;contador++)
{
crear_window(150,95,505,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" LED APAGADO=0 ");
_moveto(200,180);
_outgtext(" LED ENCENDIDO=1 ");
_moveto(200,200);
_outgtext(" VOLVER=2 ");
_settextposition(15,30);
printf(" PASO %d ",contador+1);
/*Por razon inexplicable se le tiene que restar 48 al array usuario[60][8]*/
do{
_moveto(200,240);
_outgtext(" LED 1=");
_settextposition(17,23);
usuario[contador][0]=(getche()-48);
fflush(stdin);}while(usuario[contador][0]<0||usuario[contador][0]>2);
if(usuario[contador][0]==2)
{camb=1;break;}
do{
_moveto(200,260);
_outgtext(" LED 2=");
_settextposition(18,23);
usuario[contador][1]=(getche()-48);
fflush(stdin);}while(usuario[contador][1]<0||usuario[contador][1]>2);
if(usuario[contador][1]==2)
{camb=1;break;}
do{
_moveto(200,280);
_outgtext(" LED 3=");
_settextposition(19,23);
usuario[contador][2]=(getche()-48);
fflush(stdin);}while(usuario[contador][2]<0||usuario[contador][2]>2);
if(usuario[contador][2]==2)
{camb=1;break;}
do{
_moveto(200,300);
_outgtext(" LED 4=");
_settextposition(20,23);
usuario[contador][3]=(getche()-48);
fflush(stdin);}while(usuario[contador][3]<0||usuario[contador][3]>2);
if(usuario[contador][3]==2)
{camb=1;break;}
do{
_moveto(200,320);
_settextposition(21,23);
_outgtext(" LED 5=");
_settextposition(21,23);
usuario[contador][4]=(getche()-48);
fflush(stdin);}while(usuario[contador][4]<0||usuario[contador][4]>2);
if(usuario[contador][4]==2)
{camb=1;break;}
do{
_moveto(200,340);
_outgtext(" LED 6=");
_settextposition(22,23);
usuario[contador][5]=(getche()-48);
fflush(stdin);}while(usuario[contador][5]<0||usuario[contador][5]>2);
if(usuario[contador][5]==2)
{camb=1;break;}
do{
_moveto(200,360);
_outgtext(" LED 7=");
_settextposition(23,23);
usuario[contador][6]=(getche()-48);
fflush(stdin);}while(usuario[contador][6]<0||usuario[contador][6]>2);
if(usuario[contador][6]==2)
{camb=1;break;}
do{
_moveto(200,380);
_outgtext(" LED 8=");
_settextposition(24,23);
usuario[contador][7]=(getche()-48);
fflush(stdin);}while(usuario[contador][7]<0||usuario[contador][7]>2);
if(usuario[contador][7]==2)
{camb=1;break;}
}
if(camb==1)
{camb=2;definido_usuario();}
creamanual2();
}
void creamanual2(void)
{
crear_window(150,95,550,400,'a');
_outgtext("EFECTO DEFINIDO POR EL USUARIO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION MANUAL ");
_moveto(200,160);
_outgtext(" COMPLETADA ");
crear_boton(400,150,500,175,'d');
_outgtext("EJUCUTAR");
ejecuta='0';
estoyen=3;
ventana_raton(150,95,550,180);
mostrar_raton();
do{
if(kbhit()){ejecuta=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(ejecuta=='0');
quitar_raton();
switch(ejecuta)
{
case 'e':
case 'E':inicio1();inicio2();inicio3();histograma_graf();mostrar_raton();ejecucion();break;
default:aleatorio2();break;
}
}
void aleatorio(void)
{
crear_window(150,95,550,180,'a');
_outgtext("CREACION ALEATORIA DEL EFECTO");
_setcolor(15);
_moveto(200,140);
_outgtext(" SELECCIONA EL NUMERO DE PASOS");
_moveto(200,160);
_outgtext(" DEL EFECTO(60 MAX):");
_settextposition(11,44);
scanf("%d",&paso);
fflush(stdin);
creacionaleatoria();
}
void aleatorio2(void)
{
crear_window(150,95,550,180,'a');
_outgtext("CREACION ALEATORIA DEL EFECTO");
_setcolor(15);
_moveto(200,140);
_outgtext(" CREACION ALEATORIA ");
_moveto(200,160);
_outgtext(" COMPLETADA ");
crear_boton(400,150,500,175,'d');
_outgtext("EJUCUTAR");
ejecuta='0';
estoyen=3;
ventana_raton(150,95,550,180);
mostrar_raton();
do{
if(kbhit()){ejecuta=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(ejecuta=='0');
quitar_raton();
switch(ejecuta)
{
case 'e':
case 'E':inicio1();inicio2();inicio3();histograma_graf();mostrar_raton();ejecucion();break;
default:aleatorio2();break;
}
}
void creacionaleatoria(void)
{
int x,y;
for(x=0;x<paso;x++)
{
for(y=0;y<8;y++)
{
usuario[x][y]=rand() %2;
}
}
aleatorio2();
}
void pulsos(void)
{
/* printf("pulsos");*/
}
void combinatorio(void)
{
/* printf("combinatorio");*/
}
void reseteo(void)
{
reset=1;
ejecutar=0;
principal();
}
void ejecucion(void)
{
int i,j,pin;
organi();
ventana_raton(200,160,600,280);
ejecutar=1;
retardo(1);
for(i=0;i<paso;i++)
{
for(j=0;j<8;j++)
{
switch(usuario[i][j])
{
case 0:
{
if(j==0)
{led1off();break;}
if(j==1)
{led2off();break;}
if(j==2)
{led3off();break;}
if(j==3)
{led4off();break;}
if(j==4)
{led5off();break;}
if(j==5)
{led6off();break;}
if(j==6)
{led7off();break;}
if(j==7)
{led8off();break;}
}
case 1:
{
if(j==0)
{led1on();break;}
if(j==1)
{led2on();break;}
if(j==2)
{led3on();break;}
if(j==3)
{led4on();break;}
if(j==4)
{led5on();break;}
if(j==5)
{led6on();break;}
if(j==6)
{led7on();break;}
if(j==7)
{led8on();break;}
}
}
}
codigoout();
retardo(vel);
}
apagadoleds();
reset=0;
principal();
}
void apagadoleds(void)
{
led1off();
led2off();
led3off();
led4off();
led5off();
led6off();
led7off();
led8off();
}
void cerrar(void)
{
crear_window(155,210,455,300,'a');
_outgtext("INTERFAZ GRAFICO");
crear_boton(217,270,252,290,'d');
_outgtext("Si");
crear_boton(267,270,302,290,'d');
_outgtext("No");
crear_boton(317,270,392,290,'d');
_outgtext("Cancelar");
_moveto(175,250);
_outgtext("¨ESTA SEGURO DE QUE QUIERE SALIR?");
cerrarmenu();
}
void cerrarmenu()
{
ventana_raton(155,210,445,287);
poner_raton_en(284,280);
menu='0';
estoyen=1;
do{
mostrar_raton();
if(kbhit()){menu=getch();}
tecla_iz();
if(t_izq!=0){pos_raton();comprobacion_bizquierdo();}
}while(menu=='0');
switch(menu)
{
case 's':
case 'S':_clearscreen(_GCLEARSCREEN);break;
case 'c':
case 'C':
case 'n':
case 'N':principal();break;
default:cerrar();break;
}
exit(1);
}
GRAFICOS.H
#include"boton.h"
#include"ventana.h"
#include"lineas.h"
#include"leds.h"
VENTANA.H
#include"stdio.h"
#include"graph.h"
void crear_window(int winxa,int winya,int winxb,int winyb,char con_boton_caracteristico)
{
_setcolor(config[3]);
_rectangle(_GFILLINTERIOR,winxa,winya,winxb,winyb);
_setcolor(config[2]);
_rectangle(_GFILLINTERIOR,winxa+3,winya+3,winxb-3,winya+23);
_setcolor(15);
_rectangle(_GBORDER,winxa,winya,winxb,winyb);
_rectangle(_GBORDER,winxa+3,winya+3,winxb-3,winya+23);
_setcolor(0);
_moveto(winxa+3,winya+23);
_lineto(winxb-3,winya+23);
_lineto(winxb-3,winya+3);
_moveto(winxa,winyb);
_lineto(winxb,winyb);
_lineto(winxb,winya);
if(con_boton_caracteristico=='c')
{
/* CUADRO DE CERRAR */
_setfont("t'helv'h8w8b");
_setcolor(7);
_rectangle(_GFILLINTERIOR,winxb-24,winya+7,winxb-12,winya+19);
_setcolor(15);
_rectangle(_GBORDER,winxb-24,winya+7,winxb-12,winya+19);
_setcolor(0);
_moveto(winxb-24,winya+19);
_lineto(winxb-12,winya+19);
_lineto(winxb-12,winya+7);
_moveto(winxb-23,winya+7);
_outgtext("X");
_moveto(winxb-22,winya+7);
_outgtext("X");
_moveto(winxb-21,winya+7);
_outgtext("X");
}
/* TEXTO DE PANTALLA */
_setfont("t'helv'h8w8b");
_setcolor(config[4]);
_moveto(winxa+23,winya+8);
}
RATON.H
#include "dos.h"
#include "stdio.h"
union REGS regs;
void tipo_cursor(char caracter,char atributos)
{
regs.x.ax=0x000A;
regs.x.bx=0x1;
regs.x.cx=caracter;
regs.x.dx=atributos;
int86(0x33,®s,®s);
}
int raton_instalado(void)
{
regs.x.ax=0x00;
int86(0x33,®s,®s);
if(regs.x.ax==0)
return(0);
else
return(1);
}
void inicializa_raton(void)
{
regs.x.ax=0x00;
int86(0x33,®s,®s);
}
void mostrar_raton(void)
{
regs.x.ax=0x01;
int86(0x33,®s,®s);
}
void quitar_raton(void)
{
regs.x.ax=0x02;
int86(0x33,®s,®s);
}
char t_izq;
void tecla_iz(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_izq=((regs.x.bx)&(0x01));
}
char t_der;
void tecla_der(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_der=((regs.x.bx)&(0x02));
}
char t_cen;
void tecla_cen(void)
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
t_cen=((regs.x.bx)>(0x02));
}
void no_tecla_iz(void)
{
regs.x.ax=0x06;
regs.x.bx=0x00;
int86(0x33,®s,®s);
if((regs.x.bx)>0)
return(1);
else
return(0);
}
void poner_raton_en(int x,int y)
{
regs.x.ax=0x04;
regs.x.cx=x;
regs.x.dx=y;
int86(0x33,®s,®s);
}
int dx,dy;
void pos_raton()
{
regs.x.ax=0x03;
int86(0x33,®s,®s);
dx=regs.x.cx;
dy=regs.x.dx;
}
void ventana_raton(int left,int top,int right,int bottom)
{
regs.x.ax=0x08;
regs.x.cx=top;
regs.x.dx=bottom;
int86(0x33,®s,®s);
regs.x.ax=0x07;
regs.x.cx=left;
regs.x.dx=right;
int86(0x33,®s,®s);
}
Esta hecho para Quick C (por el graph.h propio de este compilador)... portarlo a Turbo C es bastante cencillo, solo hay que hacer un archivo que tenga las definiciones de los comandos como
void _moveto (int x, int y) {
moveto (x, y);
}
Etc.
Es cuestion de mirar en la allyuda de Quick C y de Turbo C respectivamente...
Aviso, el compilador Quick C nunca lo use porque habia que comprarlo... en su lugar usaba djgpp V1 (alla por el 94-95) hasta que por el 98 alguien me paso el Turbo C 2.0 que creo que ya se podia bajar del museo de Borland...
void _moveto (int x, int y) {
moveto (x, y);
}
Etc.
Es cuestion de mirar en la allyuda de Quick C y de Turbo C respectivamente...
Aviso, el compilador Quick C nunca lo use porque habia que comprarlo... en su lugar usaba djgpp V1 (alla por el 94-95) hasta que por el 98 alguien me paso el Turbo C 2.0 que creo que ya se podia bajar del museo de Borland...
nose si me puedes ayudar un poco mas sabes yo soy novato en esto y por el momento solo se un poco de java pero de c++ nose nada es por eso eso que quisiera que me ayudaran con este problema que tengo nose como hacer correr este programa solo tengo el borland (el unico compilador de c++ que tengo) te agradeceria si me ayudaras por favor