____________________________________________ Boletín 'El Rincón del C' ____________________________________________ Numero 5 - Diciembre 2000 http://www.elrincondelc.com mailto:boletin@elrincondelc.com Esta publicación llega a 250 suscriptores. Es un servicio gratuito cortesía de 'El Rincón del C' y se envía a quienes se han suscrito voluntariamente. Si no es tu caso consulta al final del boletín para darte de baja. Contenido de este numero: 1. Nota del editor 2. Novedades en 'El Rincón del C' 3. Novedades DJGPP 4. Articulo: Introducción a la programación gráfica (II) 5. Busca el error (núm. 4) 6. Busca el error: solución al núm. 3 7. El sitio recomendado 8. Colaboraciones en este boletín 9. Encuesta 10. Información de suscripción y contacto ********Publicidad********************** Gorilon.com - Chistes gráficos y de texto nuevos cada día. http://www.gorilon.com ***************************************** ____________________________________________ 1. Nota del editor ____________________________________________ Hola a tod@s, Ya estamos otra vez aquí, en esta quinta entrega. La última del año, del siglo y del milenio. Este mes tenemos la segunda entrega del minicurso que nos introducirá en el mundo de la programación gráfica. Este artículo nos lo envía Rodolfo Casas desde Bilbao. Si tienes conocimientos sobre algún tema en concreto o has escrito algo interesante envíanoslo. Cada vez es más la gente que ofrece su ayuda para colaborar en la web, anímate tu también. Muy felices fiestas a todos y cuidado con el champán, Gorka Urrutia gorka@elrincondelc.com http://www.elrincondelc.com ____________________________________________ 2. Novedades en 'El Rincón del C' ____________________________________________ * Sección: Código fuente elisa.c: un sencillo visor de ficheros. Funciona en GNU/Linux y MSDOS (DJGPP). David Ramón Yanes Fariña. calcdia.c: programa que calcula el día a partir de la fecha. Marc. Small C: un pequeño compilador de C con código fuente. Tictactoe: Juego del 3 en raya. (C++) http://www.elrincondelc.com/fuentes * Sección: Compiladores Nuevo compilador añadido a la lista: Dev-C++. Realmente no es un compilador sino un IDE para windows. http://www.elrincondelc.com/compila * Sección: Faq del C Las preguntas 2.1 a 2.3 han sido traducidas por Fabian. Ayúdanos con la traducción de la FAQ del C! http://www.elrincondelc.com/faqc * Sección: Artículos crenshaw-txt.zip - Un tutorial en inglés que muestra paso a paso cómo crear un compilador. http://www.elrincondelc.com/arts/ ____________________________________________ 3.- Novedades DJGPP ____________________________________________ Recientemente se han actualizado los paquetes que se describen a continuación. Si deseas mas información sobre el DJGPP visita: http://www.elrincondelc.com/djgpp.html Paquetes actualizados: - Rhide 1.4.7.8: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/rh1478b.zip ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2apps/rh1478s.zip - GNU Bash 2.04: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204b.zip ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204d.zip ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip Para bajarte los paquetes debes ir a la siguiente dirección FTP: ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/ Mas información sobre estos paquetes en: http://www.elrincondelc.com/djgpp/djactual.html ************************************************* PARA CONSEGUIR DJGPP EN CD: Por estar apuntado a este boletín tienes un descuento sobre los precios oficiales. Consulta los precios en: http://www.elrincondelc.com/cddjgpp/cdboletin.html Si deseas adquirir el CD con el DJGPP actualizado visita: http://www.elrincondelc.com/cddjgpp/cdboletin.html Formas de pago: * Contra reembolso (solo España y Europa). * Transferencia bancaria, Giro postal. * Tarjeta de crédito. NOTA: Oferta valida hasta el día 27 de Enero de 2000 ************************************************* ____________________________________________ 4. Articulo: Introducción a la programación gráfica Autor: Rodolfo Casas ____________________________________________ (Usuarios de DJGPP ver nota al pie del artículo). Hola a todos, vamos a empezar en esta entrega aprendiendo a borrar la pantalla y a dibujar rectángulos. Para ello echemos una ojeada al siguiente código: (puedes bajártelo desde: http://www.elrincondelc.com/fuentes/graf2.c ) /*************************************/ #include union REGS registros; unsigned char far *direccion = (unsigned char far *) 0xA0000000; void modo_grafico( int modo ) { registros.x.ax = modo; int86(0x10,®istros,®istros); } void pixel(int x, int y, unsigned char color) { *(direccion+y*320+x)=color; } void borrar_pantalla() { int i,j; for (i=0; i<320; i++) for (j=0; j<200; j++) pixel(i,j,0); } void rectangulo(int x, int y, int ancho, int alto, int color) { int i,j; for (i=x; i250) x=0; /* Dibujamos el nuevo rectángulo */ rectangulo(x, 50,50,50,2); } getch(); modo_grafico( 0x07 ); return 0; } /*************************************/ El programa va dibujando un rectángulo que se mueve de izda a derecha. Probablemente se vea un parpadeo muy incómodo, en el próximo número veremos cómo evitarlo. El programa continúa moviendo el rectángulo hasta que pulsamos una tecla (para eso es la función kbhit()). El sistema es muy simple, primero se dibuja un rectángulo negro que sirve para borrar el rectángulo anterior. Luego se aumenta la coordenada 'x' y se dibuja el nuevo. Cuando llegamos a la posición 250 hacemos que la coordenada x sea 0 para volver a la izquierda de la pantalla. Y esto es todo por este número, en el próximo veremos cómo evitar ese incómodo parpadeo y las pantallas virtuales. Hasta entonces felices fiestas! * * * * Atención!! Si estás usando DJGPP no podrás trabajar con gráficos de la forma que se indica aquí. DJGPP no permite el acceso directo a una dirección de memoria (en este caso 0xA0000), para ello hay que usar otras funciones. Para más información sobre el tema consulta la guía de usuario DeCas: http://www.elrincondelc.com/decas/ug/sp-vga.html * * * * Envíanos tus artículos a mailto:boletin@elrincondelc.com ____________________________________________ 5. Busca el error (num. 4) ____________________________________________ Aquí tenéis el programa de este numero. A ver quien es el primero que localiza el error. Si crees que lo tienes escribe a: mailto:buscaerror@elrincondelc.com indicando cual es el error. El ganador (no hay premios, solo el gusto de ser el primero) será el primero en contestar correctamente. El programa intenta mostrar tres veces por pantalla el texto "Este es el texto que se debe mostrar", pero no sucede así. ¿por qué? La solución en el próximo numero. /* Busca el error (num 4): */ #include int main() { char texto[]="Este es el texto que se debe mostrar"; char *ptexto; ptexto=texto; printf("%s\n",ptexto); for( ;*ptexto;ptexto++) { printf( "%c",*ptexto ); } printf("%s\n",ptexto); return 0; } /* fin del programa */ Puedes enviar un programa para la sección 'Busca el error' a: mailto:boletin@elrincondelc.com ____________________________________________ 6. Busca el error: solución al num. 3 ____________________________________________ El ganador del numero 3 ha sido: **************** Leopoldo Lara Vázquez - http://usuarios.tripod.es/llv **************** Otros acertantes: Marino Guerrero Lucio Ramírez Jon Justo Juan Carlos Alonso **************** /* Busca el error (num 3): */ #include int main() { int *numero; numero = (int *) malloc( 1 ); *numero = 10; printf ("El valor de numero es: %i\n", *numero ); } /* fin del programa */ SOLUCION: (enviada por Leopoldo Lara) La función malloc, reserva un numero de bytes en la memoria dinámica. La llamada malloc(1) solo reserva un byte, mientras que el puntero al que se asigna apunta a un int, que ocupa como mínimo 2 bytes (en la arq. x86) o incluso mas. ____________________________________________ 7. El sitio recomendado ____________________________________________ El sitio de este mes: http://www.kriptopolis.com Información sobre criptografía y seguridad: qué es, por qué se necesita, cómo utilizar programas para encriptar datos (gnupg). Editan un boletín electrónico en el que publican noticias y artículos relacionados con el tema. ____________________________________________ 8. Colaboraciones en este boletín ____________________________________________ Si deseas colaborar en este boletín enviando algún articulo o noticias interesantes escribe a: mailto:boletin@elrincondelc.com También nos gustaría que nos contaras que te parece este boletín, que sugerencias tienes, que añadirías, que quitarías,... Para opinar escribe a: mailto:boletin@elrincondelc.com Muchas gracias!! ____________________________________________ 9. Encuesta ____________________________________________ Ayúdanos a mejorar este boletín. Dedícanos un par de minutos y rellena esta encuesta: http://www.elrincondelc.com/encuesta/boletin.html Muchas gracias por tu colaboración! ____________________________________________ 10. Información de suscripción y contacto ____________________________________________ Para inscribirte a este boletín envía un mensaje en blanco a: mailto:elrincondelc-subscribe@egroups.com Si este boletín te ha llegado sin haberlo solicitado o no deseas recibirlo mas envía un mensaje en blanco a: mailto:elrincondelc-unsubscribe.com Si tienes sugerencias o quieres ponerte en contacto con nosotros escribe a: mailto:boletin@elrincondelc.com Prohibida la reproducción parcial o total sin el previo consentimiento por escrito del Editor. Todas las opiniones e ideas reflejadas en este boletín de noticias pertenecen a sus respectivos autores. El Editor no se responsabiliza de los daños causados por el uso de la información contenida en el mismo. Todos los derechos reservados. (c) Gorka Urrutia Landa, 2.000 http://www.elrincondelc.com ----fin del boletín---