Chat
#include <iostream.h> #include <stdlib.h> #include <dos.h> #include <stdio.h> #include <conio.h> /*Definimos el puerto serie COM1*/ #define PUERTO 0x3F8 /*Declaramos la funcion margen para dibujar la pantalla*/ void margen(); /*La funcion inicializar se encarga de enviar todos los parametros necesarios para inicializar el puerto*/ void inicializar(); /*Inicio del programa*/ void main(void) { unsigned char TECLA, CH; int i=3,j=3,m=3,f=14; clrscr(); margen();//llamamos a la funcion margen para que dibuje la pantalla gotoxy(3,3); inicializar();//llamamos a la funcion inicializar para que prepare al puerto while (TECLA!=27)//Mientras no presionemos escape... { if (inportb(PUERTO+5)&1)// { CH=inportb(PUERTO);//guardo en CH el valor que esta en el puerto //limpiamos el puerto if (CH==13)//preguntamos si el caracter recibido es enter { i=3; f++;//controla la posicion del cursor if (f==23) { window(3,14,77,22); delline(); f=22; window(1,1,80,25); gotoxy(i,f); } } if (CH!=NULL)//preguntamos si el caracter no es nulo { if(CH=='r')//para que el cursor se mantenga siempre al final CH='n'; gotoxy(i,f);printf("%c",CH);//imprimimos el caracter i++; if (i==78) { i=3; f++; if (f==23) { window(3,14,77,22); delline(); f=22; window(1,1,80,25); gotoxy(i,f); } } } } if (kbhit())//preguntamos si se presiono alguna tecla { gotoxy(j,m); //mandamos el cursor al final de cada caracter j++;//con j escribimos la palabra if (j==78) { j=3; m++; if (m==13) { window(3,3,77,12); delline(); m=12; window(1,1,80,25); gotoxy(j,m); } } TECLA=getche();//guardamos la tecla presionada if (TECLA==13)//preguntamos si la tecla presionada es un enter { gotoxy(3,m+1);printf("");//al apretar enter probocamos un salto de linea j=3; m++; if (m==13) { window(3,3,77,12); delline(); m=12; window(1,1,80,25); gotoxy(j,m); } } if (TECLA!=27)//preguntamos si es distinto de escape { while(!inportb(PUERTO+5)&1); outportb(PUERTO,TECLA);//enviamos el caracter al puerto } } } } void margen () { int i; for (i = 1; i < 80; i++) //Dibujamos los margenes { gotoxy (i, 1); printf ("Û"); gotoxy (i,24); printf ("Û"); } for (i = 1; i < 80; i++) { gotoxy (i, 2); printf ("�"); gotoxy (i,23); printf ("�"); } for (i = 1; i < 80; i++) { gotoxy (i,13); printf ("�"); } for (i = 2; i < 24; i++) { gotoxy (1 ,i); printf ("Û"); gotoxy (79,i); printf ("Û"); } for (i = 2; i < 24; i++) { gotoxy (2 ,i); printf ("º"); gotoxy (78,i); printf ("º"); } gotoxy (2 , 2); printf ("É"); gotoxy (2 ,23); printf ("È"); gotoxy (78, 2); printf ("»"); gotoxy (78,23); printf ("¼"); gotoxy(3,2);printf("Escribiste:"); gotoxy(3,13);printf("Recibiste:"); gotoxy(64,24);printf("ESC -> Salir."); } void inicializar() { outportb(PUERTO+1,0);// outportb(PUERTO+3,0x80);// outportb(PUERTO+0,0x0C);// outportb(PUERTO+1,0x00);// outportb(PUERTO+3,0x03);// outportb(PUERTO+2,0XC7); outportb(PUERTO+4,0X0B); }
Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress las eliminó al verlas como etiquetas HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios. Y lo mas importante: Todos los ejemplos fueron realizados por personas con únicamente conocimiento básico del lenguaje, no de programación.
Otro punto importante: Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:
- Si es lenguaje C [c]Código en C[/c]
- Si es lenguaje Pascal [pascal]Aquí dentro el código de Pascal[/pascal].
De esta manera el código coloreas el código.
Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el con lo siguiente:Me reservo el derecho de alterar, publicar o no los comentarios as´ como cambiar mis condiciones en el momento que así lo requiera.
¿estas de acuerdo? entonces adelante que ya te he quitado bastante tiempo leyendo esta basura de advertencias :)