anexos - WordPress.com

Anuncio
ANEXOS
DJGPP Paso a Paso........................................ 89
Archivos del DJGPP...................................... 95
Línea de Comandos GCC ............................ 99
Entorno Gráfico (IDE)……………….……..101
Ejercicios Propuestos.................................... 108
DJGPP PASO A PASO
DJGPP es un compilador para DOS C/C++ aunque también es válido para
algunos otros lenguajes. El código que produce es de 32 bits y permite acceder de
forma directa a toda la memoria, no existe el límite de los 640Kb.
A pesar de ser para DOS también se puede usar bajo Windows 95/98/2000/XP,
entornos Unix, SO compatibles DOS y emuladores DOS. Los programas escritos
con él pueden portarse fácilmente a Unix.
Dado que es de libre distribución se puede copiar y usar libremente, además
puedes tener acceso al código fuente. En realidad es una versión DOS del
compilador GNU GCC (versión 2.95.2). Se acompaña además de otras de las
herramientas GNU.
En principio la instalación del DJGPP es simple y se puede realizar siguiendo los
pasos
indicados
en
la
documentación en
http://www.delorie.com/djgpp
(página en inglés).
Si deseas mayor información en castellano puedes consultar otros documentos
sobre el DJGPP en http://www.elrincondelc.com/index.html.
La presente es una guía paso a paso en español, para facilitar a los alumnos, la
instalación manual del compilador, dado a que se recomienda trabajar en líneas
de comandos antes de usar editores gráficos.
El anexo Archivos del DJGPP presenta una breve descripción de cada archivo
.zip que viene con el compilador y su utilidad.
Para aquellos que deseen mayor información pueden referirse a la pagina oficial
http://www.delorie.com/djgpp
89
Para Sistema Operativo Linux
Las siglas GCC significan GNU Compiler Collection (Colección de compiladores
GNU). GCC es una colección de compiladores que admite diversos lenguajes:
C,C++, Objetive C, Chill, Fortran, y Java.
Existen versiones prácticamente para todos los sistemas operativos. GCC ya
viene incluido en la mayoría (si no en todas) las distribuciones de GNU/Linux. Por
lo que para compilar un programa en C en Linux sólo debemos abrir la consola y
correr nuestro programa desde el directorio donde fue creado usando los
comandos del GCC (ver anexo: Línea de comandos GCC).
Muchos de los programas disponibles para Linux se pueden obtener compilados
para Windows. Eso supone que debemos tener el mismo entorno de compilación
en Windows que en Linux, si estamos usando el Compilador de C de GNU, lo
podemos usar también en Windows. Esta distribución de GCC se llama DJGPP y
se puede obtener en http://www.delorie.com/djgpp/. Cualquier información debes
dirigirte a la página oficial http://gcc.gnu.org/.
Si deseamos llevar el DJGPP a Linux para trabajar en ambos sistemas operativos
de la misma forma se puede leer http://www.delorie.com/howto/djgpp/linux-xdjgpp-revised.html ( página en inglés), un paso a paso de cómo llevar el DJGPP a
Linux.
90
Para Sistema Operativo Windows
Instalación del compilador
1. Proceda a crear un directorio para el DJGPP , C:\DJGPP.
2. Coloque todos los archivos que seleccionó como necesarios de entre la
distribución del
DJGPP en el directorio que acaba de crear. (Lea la sección
archivos del DJGPP)
En nuestro caso para compilar programas en C y C++ use los archivos:
gcc2953b.zip,
bnu2112b.zip,
pp2953b.zip,
djdev203.zip
lgp*.zip.
3. Haga que el directorio actual de trabajo sea C:\DJGPP,
4. Descomprima cada uno de los archivos zip en ese directorio.
Configuración del compilador
La configuración del compilador difiere de acuerdo al sistema operativo que
tengas, pues a partir de Windows 2000 se tiene una diferente forma de manipular
el fichero: autoexec.bat
Si usas Windows 95, 98 o Me
Abre el archivo: autoexec.bat (que se encuentra en: C:\) con el un editor de texto
(block de notas) añade las siguientes líneas al final del archivo:
91
set PATH=C:\DJGPP\BIN;%PATH%
set DJGPP=C:\DJGPP\DJGPP.ENV
Una vez hecho esto reinicia el computador para que se actualice el archivo.
Nota: Si el archivo no es visible, debes ir a opciones de carpeta o similar y buscar
la opción para mostrar los archivos ocultos y del sistema.
Si usas Windows 2000, XP ó superior
1. Ve hacia el Panel de Control, haz clic en el icono Sistema y continuación
en la ficha Opciones avanzadas
92
2. Haz clic en el botón Variables de entorno y fíjate en el cuadro Variables
del sistema
3. Selecciona la variable Path y pulsa el botón Modificar, ve al final del
cuadro Valor de la variable y pega lo siguiente ahí:
;C:\DJGPP\BIN
4. Haz clic en Aceptar:
93
Nota que se añade un punto y coma antes de todo, esto es para separar las
variables del sistema que ya están creadas, producto de la instalación del resto de
programas de tu PC
5. Del mismo modo en Variables del sistema, haz clic ahora en el botón
Nueva, en el cuadro Nombre de la variable escribe: DJGPP y en el cuadro
Valor de la variable escribe: C:\DJGPP\DJGPP.ENV, luego haz clic en el
botón Aceptar, para grabar los cambios.
Esto crea una nueva variable del sistema, para que puedas compilar tus
programas desde cualquier directorio.A partir de aquí puedes compilar los
programas usando el DJGPP en Windows.
Recuerda: Se recomienda trabajar en líneas de comandos antes de usar
editores gráficos.
94
ARCHIVOS DEL DJGPP
La Distribución
La siguiente información se extrajo del documento readme.1st del DJGPP:
La distribución
de
DJGPP
esta dividida
en
algunos
subdirectorios,
diferenciados por su contenido. Cada subdirectorio contiene un documento
llamado 00_index.txt que
contiene las descripciones de cada uno de los
archivos en ese directorio.
Los archivos comprimidos "zip" cuyo nombre
finaliza en 'b' contienen
los
"binarios" y la documentación preparada para consulta inmediata. Los paquetes
que contiene son (para el momento en que el documento readme fue escrito):
FAQ
Un breve
documentos que
preguntas
documento
deberías
frecuentes
que le informa
leer (esto
sobre otros
incluye la
lista de
y sus respuestas "FAQ")
v2/
unzip386 Un programa de ordenador gratuito que puede
descomprimir archivos zip (este programa es semejante al
PKUNZIP).
djdev202 Equipo de desarrollo, DJGPP V2
djlsr202 Fuentes(**) de la biblioteca básica, DJGPP V2
djtst202 Programas de prueba (para verificar la biblioteca C),
DJGPP V2
95
djcrx202 Documentos de apoyo para compilación cruzada a
DOS (tomados de djlsr y djdev), DJGPP V2
djtzn202 Documentos para Zonas horarias, DJGPP V2
djtzs202 Fuentes correspondientes al archivo de zonas
horarias, DJGPP V2
faq*b
Lista completa de preguntas frecuentes y sus
respuestas en diferentes formatos (info, ASCII, HTML, ...).
faq*s
Fuentes en Texinfo y herramientas utilizadas para
crear los documentos contenidos en faq*b
frfaq*
Traducción al Francés de la lista de preguntas
frecuentes.
v2apps/
(contiene varios programas
DJGPP
de ordenador construidos con el
o para ser usados con el, como por ejemplo RHIDE y
TeX)
v2gnu/
(programas del FSF/GNU que han sido adaptados para DJGPP,
como por ejemplo gcc y los binutils)
v2tk/
(varios "paquetes de herramientas" para ser usados
con el
DJGPP, como por ejemplo Allegro y libsocket)
96
v2misc/
csdpmi* CWSDPMI es el proveedor gratuito de DPMI creado por
Charles
Sandmann.
documentación.
Se
incluyen
binarios,
fuentes
y
mlp* ML es un "compresor" de binarios ("djp")
pmode* agregado de PMODE para DJGPP V2.
simulador de 387 para DJGPP V2
wmemu*
(y otras tantas cosas para
usar con DJGPP)"
Para ayudarse en la tarea de seleccionar que piezas
puede
recurrir
al
"zip-picker",
este
se van a instalar se
se
encuentra
en:
http://www.delorie.com/djgpp/zip-picker.html
Una vez hayas seleccionado los archivos que necesitas, los puedes descargar de:
•
•
•
del mirror ftp://ftp.rediris.es/volumes/vol1/ftp.delorie.com/pub/djgpp/ ,
el cual presenta todas las versiones y archivos del DJGPP;
Una breve selección de archivos es presentada en la página:
http://www.engmath.dal.ca/courses/djgpp/index.html , o
visita la página http://www.delorie.com/djgpp/v2faq/faq4.html la cual
presenta el capítulo 4 de las FQA en el que se describe dónde y
cómo descargar el DJGPP, además de incluir recomendaciones de
cuáles archivos deberías descargar dependiendo de las
necesidades, (página en inglés).
Recuerda: los archivos básicos recomendados son:
Para poder compilar programas en C se necesita:
djdev202.zip,
gcc*b.zip y
bnu*b.zip.
97
Para compilar C++ necesitará también
gpp*b.zip y
lgp*.zip
El * sustituye al número de versión, el cual dependerá de la existente para el
momento de la descarga.
Nota: Si
desea
poder leer la
documentación
para consulta
inmediata,
provéase también de txi*b.zip y cuando quiera consultar la documentación
"ejecute" 'info'. Si no cuenta con un proveedor de DPMI (como por ejemplo
Windows) entonces deberá de obtener también una copia de csdpmi*b.zip.
Un archivo importante para principiantes es faq*b.zip el cual contiene un listado
de las preguntas más frecuentes con sus respuestas. Si desea una explicación
más completa sobre el DJGPP puede descargar
el archivo readme.1st (en
inglés), también puedes revisar la documentación en castellano al respecto en
http://www.elrincondelc.com/djgpp/index.html.
COMPILAR PROGRAMAS EN C CON LÍNEAS DE
COMANDO GCC
Recuerda: Se recomienda trabajar en líneas de comandos antes de usar
editores gráficos.
Compilación de un programa C con un único fichero fuente
Desde el directorio donde tenemos guardado el archivo .c (por ejemplo
C:\Programas) tecleamos:
gcc archivo.c -o archivo.exe
En el mismo directorio aparecerá el programa archivo.exe listo para ser ejecutado.
98
Compilación de un programa C que usa alguna librería
Si el programa usa una librería, para compilarlo escribimos:
gcc archivo.c -o archivo.exe -lm
La opción -lm enlaza con la librería,
-lm debe ponerse al final de la línea de comando.
Compilar un programa con varios ficheros fuente
1.- Crear Ficheros objeto:
Para compilar un fichero de código fuente de C o C++ y dejarlo como fichero
objeto, usa la siguiente línea de comando:
gcc -c -Wall archivo.c (para código fuente C)
o
gxx -c -Wall archivo.cc (para código fuente C++)
Con esto obtienes el fichero archivo.o. La opción '-Wall' activa muchos mensajes
de aviso (warnings) que son especialmente útiles para nuevos usuarios de GCC.
También se pueden usar otras extensiones, comp .cpp.
2.- Enlazar ficheros objeto
Para enlazar varios ficheros objeto en un programa ejecutable, usa algo parecido
a esto:
gcc -o miProg.exe miMain.o miSub1.o miSub2.o
Con esto obtienes miProg.exe que ya puede ser ejecutado.
Si en vez de un programa C, tenemos un programa C++, usa algo como esto:
gxx -o myprog.exe miMain.o miSub1.o miSub2.o
99
gxx buscará automáticamente las bibliotecas C++, de manera que no tienes que
incluirlas en la línea de comando.
3.- Compilación y enlazado en un solo paso
Puedes combinar los pasos de compilación y enlazado de la siguiente manera:
gcc -Wall -o miProg.exe miMain.c miSub1.c miSub2.c
Se presenta una lista de argumentos útiles a usar al momento de compilar, para
mayor información leer la documentación que viene con el compilador GCC.
· -ansi: Indica (si estamos compilando un archivo fuente c) que queremos que
compile según el standard ANSI-C ’89.
· -c: Solamente genera el código objeto, no enlaza.
· -g: Compila a nuestro programa guardando información para depurar.
· --help: Esta opción nos muestra la ayuda de los argumentos que toma el
programa.
· -lm: Enlaza la biblioteca matemática (esto no se hace por defecto para
economizar espacio).
· -o: (output) Indica que el siguiente argumento será el nombre con el cual
queremos que se
compile nuestro programa... el .exe no es necesario.
· -Os: Optimiza la compilación para que el ejecutable ocupe menos espacio.
· -O3: (excluyente con el anterior) Optimiza la compilación para velocidad.
· -pedantic: Indica que queremos que el código se compile según el standard
ISO-C.
· -S: Solamente genera el código assembler, no compila.
· -Wall: Indica que queremos que el compilador nos muestre todas las
advertencias que considere necesarias respecto de nuestro fuente.
· -x c: Obliga al compilador a compilar el archivo como en C. Esto se debe a que el
GCC compila muchos otros lenguajes y se vale de la extensión para saber en cuál
compilar, al colocar .c lo reconoce como un programa en lenguaje C.
Un Paso a Paso de las bases de cómo hacer y compilar un programa en Linux
usando el vi como editor de texto, lo puedes conseguir en:
http://www.chuidiang.com/clinux/herramientas/basico/hola_mundo.php.
Para mayor información sobre el GCC revisar las páginas oficiales:
http://gcc.gnu.org/
Un completo tutorial del GCC puedes encontrarlo en la página Web
http://iie.fing.edu.uy/~vagonbar/gcc-make/gcc.htm
100
ENTORNO GRÁFICO (IDE)
El IDE o entorno de desarrollo es un programa que te permite compilar programas
de manera gráfica dado que se encarga de todas las fases del desarrollo: edición,
generación de makefiles, compilación y depuración. Así pues, el entorno de
desarrollo es una herramienta que nos facilita el trabajo lo que la hace muy
conveniente pero se recomienda su uso luego de haber trabajado los programas a
través de líneas de comando.
Aclarando conceptos:
Edición: el programa puede usarse como editor de textos y está orientado a la
programación.
Generación de makefiles: cuando tenemos varios ficheros fuente es conveniente
que el IDE genere automáticamente el makefile que es el fichero que da
instrucciones al compilador sobre lo que debe hacer.
Compilación: el IDE debe permitir compilar y ejecutar el programa que estamos
desarrollando sin necesidad de salir al DOS.
Depuración: es conveniente que depure los programas y nos muestre los errores
y warnings que se produzcan.
Se presentan tres editores gráficos para el uso del compilador GNU GCC.
EDITOR GRÁFICO DEL DJGPP
Actualmente, DJGPP no viene con un entorno de desarrollo integrado propio.
Puedes usar cualquier editor que pueda ejecutar programas DOS y examinar su
salida, para que haga las veces de IDE. En este anexo se presentan los paso a
paso para instalar y usar dos de los más comunes en el mercado para la fecha.
El más sencillo es el IDE del DJGPP que viene en el archivo djgpp_ide.zip, e
instalas de la misma forma que los archivos del DJGPP. Si prefieres un entorno
101
para MS-DOS al estilo Borlan C o Turbo C, el más recomendado es el RHIDE. El
Kdevelop es muy útil en Linux y ahora tiene una versión para Windows.
A continuación se incluye el paso a paso para cada uno de éstos editores gráficos.
Si tienes dudas cual elegir comenta con tu asesor o instalalos y decide luego de
que los pruebes.
IDE del DJGPP
Instalación
El ide del DJGPP es un editor gráfico tipo ventanas de Windows y puede ser
instalado de la siguiente forma:
1. Descomprime el archivo: djgpp_ide.zip, en el directorio siguiente:
C:\DJGPP\bin, verás que aparecen los archivos: Sc1.exe y
SciTEGlobal.properties, el primero es el programa ejecutable, el segundo
tiene las opciones de configuración del programa (no modifiques el
contenido de este archivo).
2. Ahora ejecuta el programa Sc1.exe, verás el entorno desde el cual puedes
programar y ejecutar los programas de manera gráfica.
102
Compilar un programa
1. Abre el Sc1.exe escribe un sencillo programa de saludo y guárdalo como
hola en la dirección donde guardas tus programas, ejemplo C:\programas
#include <stdio.h>
void main( ) {
printf("Hola mundo");
getchar();
}
2. Presiona CTRL+ F7 o usa del menú Tools para seleccionar Compile, para
compilar el programa. Si presionas View en el menú principal y seleccionas
103
Output (F8) podrás observar los resultados de la compilación en la parte
baja de la ventana.
Navega por el explorador hasta la carpeta C:\programas y observa que se
ha generado un archivo . exe que lleva el mismo nombre que le colocaste
al programa (hola.exe)
3. Ahora ejecuta el programa hola.exe que se encuentra en C:\programas,
desde el Explorador de Windows
104
Funciona!
Entorno RHIDE
Es un entorno de desarrollo para MS-DOS al estilo Borland C o Turbo Pascal. El
RHIDE tiene las siguientes características:
•
•
•
•
•
tiene auto-indentación,
llama automáticamente al compilador DJGPP,
genera los Makefiles automáticamente (lo que facilita la vida a los
principiantes),
incorpora la posibilidad de depurar (debug) programas y
facilita el acceso a la documentación OnLine de DJGPP.
Para obtenerlo debes descargar de la Internet el archivo rhide*b.zip e instalarlo
en el directorio bin del directorio que creaste para el djgpp, ejemplo
C:\DJGPP\bin.
Aquí podemos descargar el Rhide para Windows, Linux Debian o Suse:
http://www.rhide.com/download/main.html
Para ejecutarlo simplemente entra en tu directorio de programas (por ejemplo
C:\misprog) y teclea rhide desde DOS o ejecuta el rhide.exe en el directorio bin del
DJGPP. Se abrirá el entorno de desarrollo (tipo Borlan C)
105
Para crear un programa entra en el menu 'File' -> 'New'. Escribe el código fuente
de tu programa.
Luego entra en el menu 'Run' -> 'Run' o pulsa directamente CTRL-F9 para
compilar el programa.
ENTORNO GRÁFICO KDEVELOP
El Proyecto KDevelop surgió en 1998 con el fin de desarrollar un IDE (Entorno de
desarrollo integrado) que fuera fácil de usar. El IDE KDevelop está públicamente
disponible bajo licencia GPL y soporta varios lenguajes de programación.
Visita su página oficial donde puedes descargar la última versión estable:
http://www.kdevelop.org/ .
A pesar de que Kdevelop nació para Linux, se ha abierto un proyecto para
desarrollar Kdevelop para Windows, mayor información la podemos encontrar en:
ftp://sunsite.dk/projects/cygwinports/ , el cual, para la fecha, lo puedes instalar
directamente de: ftp://sunsite.dk/projects/cygwinports/
de donde se obtiene un
entorno de desarrollo estilo MS/DOS como la figura siguiente:
106
Una explicación detallada del uso del IDE Kdevelop escapa de los objetivos de
esta guía. Si deseas puedes acceder a un tutorial proporcionado por la página
oficial (en inglés) en: http://docs.kde.org/development/en/kdevelop/kdevelop/ .
Para darnos una idea de cómo luce este IDE para Linux, se incluye a continuación
una imágen de la ventana inicial del Kdevelop.
107
Ejercicios Propuestos
1. Se leen tres números enteros. Calcular la suma de ellos.
2. Dados dos números. Calcular su diferencia y su multiplicación.
3. Algoritmo que lee una cantidad en Kgs y la convierte en gramos.
4. Se desea determinar el promedio de un alumno que presento 4 exámenes.
Como dato se tiene el nombre y las cuatro notas.
5. Se tiene determinado capital. Determina cual es el 20% de ese capital
6. Calcule el salario neto de un empleado de un empleado de una compañía,
teniendo como datos de entrada la cantidad que se paga por horas de
trabajo, el número de horas trabajadas y la cantidad deducidas por
concepto de impuestos.
7. Para un alumno se tiene como entrada: Nombre, nota práctica y nota de
laboratorio. Calcular el promedio de las notas.
8. La compañía ABC paga a su personal paga a su personal de ventas un
salario de Bs. 450.000 más una comisión de 25.000 por cada automóvil
vendido, más el 15% del total de las ventas. Diseño un algoritmo que lea el
nombre del vendedor, el número de autos vendidos y el total de sus ventas.
Calcule e imprima el salario del vendedor.
9. Se cuenta con los datos de un empleado: Nombre, sueldo base, número de
días de vacaciones, días trabajados. Se desea calcular el monto a pagar,
sabiendo que: cada día de vacaciones se cancela a 5.000 Bs. Los días
trabajados se cancelan a razón de 10.000 Bs.
10. Leer una cantidad en bolívares y escribir el equivalente en dólares,
11. Se tiene como entrada el nombre del vendedor y su sueldo base. Si el es
menor o igual a 1.000.000 se le dará una comisión de 5% sobre su sueldo.
Si el sueldo es mayor a 1.000.000 la comisión será del 8%. Calcule la
comisión y el sueldo neto a pagar.
108
12. Se tiene como entrada nombre del alumno y nota. Determinar si esta
aprobado o aplazado.
13. Se tiene como entrada un número, generar como salida un mensaje que
indique si el número es par o impar.
14. Se tiene como entrada el nombre del empleado y su sueldo. Si el sueldo es
mayor a 150.000 se le dará un bono de 10% del sueldo y se le descuenta
del S:S.O. El 20% de su sueldo. Si el sueldo es menor o igual a 150.000, el
bono será de 5% del sueldo y se les descuenta de S.S.O. 10% del sueldo.
Determinar el sueldo neto.
15. Realizar un programa que lea tres número y determine cual es el menor y el
mayor entre ellos.
16. Leer dos números que representan el costo de una mercancía y el billete
para cancelar. Si son iguales, imprimir “no debe nada”, si es mayor el billete
que el costo imprimir la cantidad a ser devuelta y en caso contrario imprimir
la cantidad que falta para cancelar.
17. Se tiene como información: número de cuenta, saldo, tipo de transacción.
Calcular el nuevo saldo.
18. Se tiene la siguiente información de un estudiante de la universidad:
Cedula, Nombre, Semestre que cursa, número de materia que cursa,
promedio actual. Escribir el nombre del alumno si estudia noveno semestre.
Si el promedio es mayor que 18.2 escribir su número de cedula.
19. Se tiene como dato de entrada para un paciente de la clínica: número de
historia, nombre del medico tratante, fecha, diagnostico, tratamiento, monto
a cobrar. Escribir el nombre del paciente, diagnostico y tratamiento del
paciente que tiene que cancelar más de 1.000.000 Bs.
20. Dada la siguiente información por alumno: Nombre, nota final. Se desea dar
clasificación al alumno, de acuerdo a lo siguiente:
109
NOTA FINAL
CLASIFICACION
MAYOR A 18
EXCELENTE
ENTRE 15 Y 18
BUENA
ENTRE 11 Y 15
REGULAR
MENORES A 10
DEFICIENTE
Si al realizar los ejercicios obtuviste una clasificación de excelente o buena
Felicitaciones estas preparado para poder realizar el taller 3 “Estructuras de
Datos Dinámicas.” Sigue adelante.
De lo contrario debes reforzar conceptos con otras guías de estudio sobre
lenguajes C y retomar los talleres uno y dos, “Conceptos básicos de
programación” y “Estructuras de Datos estáticos “para que puedas tener una base
sólida, y poder realizar el tercer taller “Estructuras de Datos dinámica” sin
complejidad
110
Descargar