2015 UNIDAD V: Tutorial Dev-C ++
PROGRAMACION DE COMPUTADORA
Unidad V: Tutorial Dev-C ++
UNIDAD V: Tutorial Dev-C ++ 5.1 INTRODUCCIÓN El presente tutorial, es para el uso de un entorno de desarrollo de código como lo es Dev-C++ y por lo tanto no hay ayudas sobre la referencia del lenguaje ni explicación de la sintaxis !resenta las facilidades de esta herramienta para el desarrollo de código Dev-C++ es un Entorno de Desarrollo "ntegrado #"DE$ para el lenguaje de !rogramación C%C++ &ue usa 'ing( de )CC #)* Compiler Collection$ como Compilador y permite crear • • • •
!rogramas ejecutables para in.2 !rogramas ejecutables para consola Construcción de D//0s y bibliotecas est1ticas dem1s, se puede utili3ar en combinación con otros compiladores basados en )CC
Dev-C++ es un soft(are de libre distribución sujeto a los t4rminos de la /icencia !5blica )eneral #)!/$ &ue facilita la escritura de programas en lenguaje C++ para brindar las facilidades de creación de programas #ejecutables 6exe$, se apoya en diversos compiladores, entre ellos 'in) #'inimalist )nu indo(s$, el cual es tambi4n soft(are libre bajo la licencia )* /as caracter7sticas de Dev-C++ son • • • •
• • • • •
8oporta m5ltiples lenguajes #el espa9ol es uno de ellos$ 'antiene una lista con las clases utili3adas en el desarrollo de un programa 'antiene la lista de funciones definidas en el desarrollo del programa :iene un manejador de proyectos #se usa cuando el programa se compone de m1s de un archivo fuente$ :iene un editor &ue resalta la sintaxis del código y el cual &ue es configurable 8oporta plantillas para la creación de sus propios tipos de proyectos !ermite la creación de 'a;efile para la compilación separada de archivos fuente Edita y compila archivos de recursos 8oporta la actuali3ación del soft(are y bibliotecas a trav4s de "nternet
2
Unidad V: Tutorial Dev-C ++
5.1 Entorno de Trabao Dev-C++ es un Entorno "ntegrado de Desarrollo para el lenguaje de programación C%C++ &ue usa 'ing( #'inimalist )* for indo(s, (((ming(org$ de )CC #)* Compiler Collection (((gnuorg%homeeshtml$ Es un soft(are de libre distribución #(((bloodshednet$ sujeto a los t4rminos de la /icencia !5blica )eneral #)!/$ de )*
Entraremos a hacer una breve descripción de cada una de las partes &ue conforman el entorno de trabajo
5.1.1 Editor El Editor es la parte donde escribiremos los programas fuente Este se comporta como cual&uier otro editor, sin embargo, ofrece una serie de ayudas &ue nos apoyar1n al momento de escribir un programa
.
Unidad V: Tutorial Dev-C ++
!ara crear un archivo fuente nuevo rchivo = *uevo = Código >uente #Ctrl+*$ 8e dispone de una ventana en la &ue se edita el texto y escribiremos nuestros programas
5.1.! "en# $ barra de %erra&ienta' 8on los t7picos comandos de indo(s #abrir, guardar, copiar y pegar?$ :ambi4n tenemos una serie de 7conos en las barras de herramientas &ue no son m1s &ue una parte de las opciones &ue tenemos en los men5s, se puede dejar el ratón encima de un icono durante unos segundos y aparecer1 una ayuda emergente Explicativa de lo &ue se ejecuta cuando se hace clic sobre la figura
5.1.( Area de edi)i*n &u7 aparecer1n los rchivo de código &ue se abran 8e !ueden tener abierto m1s de un rchivo a la ve3, y seleccionarlo por medio del men5 indo(s
<
Unidad V: Tutorial Dev-C ++
5.1. Ti,o' de ar)%ivo /a extensión para cada archivo depende de la función &ue tenga lgunos ser1n puestos autom1ticamente por el sistema, otros ser1n seleccionados por nosotros al momento de guardar el archivo
Como se puede ver an la gr1fica, habr1 una extensión para archivos de tipo C y otras para archivos de tipo C++ •
•
•
•
•
!ue"te #$% $%&& $%% $%'' $%++ $%&(: no o m1s archivos escritos en 8C"" con las instrucciones del programa O)*eto #$o o $o)*(: 8on archivos intermedios creados a partir de la compilación, entendibles por el encadenador y transparentes al programador 8e encuentran en código de m1&uina :ambi4n conocidos como archivos objeto i)rer,a #$a o $li)(: Ae5ne varios archivos objeto en uno solo 8uelen agrupar funciones est1ndar y se encuentran en código m1&uina Ca)e%era #$(: Contienen definiciones y declaraciones compartidas por varios archivos fuente, as7 como las correspondientes a las funciones est1ndar de las librer7as E*e%uta)le. #$e'e(:
8e almacena en un 5nico archivo todo el código m1&uina encadenando todos los archivos objeto asociados al programa, ya en un formato ejecutable Es el programa &ue se ejecutar1 en la computadora
@
Unidad V: Tutorial Dev-C ++
5.1.5 ro)e'o de )o&,ila)i*n
5.1. Co&,ila)i*n $ Ee)u)i*n !rimero definiremos u4 es compilar y u4 es ejecutar en programación Compilar se refiere a la acción por medio de la cual, una serie de instrucciones escritas o codificadas en lenguaje de programación #código fuente$ son convertidas a lenguaje m1&uina #binario$ de tal forma &ue puedan ser ejecutadas por medio de un programa inform1tico Ejecutar es la acción de iniciar la carga de un programa o de cual&uier archivo ejecutable En otras palabras, la ejecución es el proceso mediante el cual una computadora lleva a cabo las instrucciones de un programa inform1tico, ejecutando en la computadora la tarea para la &ue fue creado !ara compilar un archivo fuente )enerar = Compilar #>F$ !ara ejecutar )enerar = Ejecutar #>GH$ /os dos pasos anteriores se deben llevar en ese estricto orden cada ve3 &ue se modifica el archivo fuente 8i se ejecuta un programa &ue se modificó, y no se compila, Dev-C ++ tomar1 el 5ltimo archivo objeto creado en una compilación anterior y el programa no reflejar1 la modificación Claro est1, &ue si es la primera ve3 &ue se va a ejecutar el programa, entonces Dev-C ++ har1 primero una compilación 8in embargo, como buena pr1ctica, es bueno siempre hacer la compilación !ara compilar y ejecutar )enerar = Compilar y Ejecutar #>GG$
B
You're Reading a Preview Unlock full access with a free trial.
Download With Free Trial
Unidad V: Tutorial Dev-C ++
. !ulsar >@, con lo &ue comen3ar1 la ejecución paso a paso del programa, indic1ndose en a3ul cu1l ser1 la siguiente l7nea &ue se ejecutar1 dem1s aparecer1 una ventana de '8-DK8 para &ue se realicen las entradas y salidas &ue el programa necesite durante su depuración •
•
Control de la depuración 8iguiente !aso Ejecuta la siguiente instrucción del programa #la marcada en color a3ul$ Cuando dicha instrucción contiene una llamada a una función%m4todo, dicha función%m4todo se ejecuta completamente tras seleccionar 8iguiente !aso Esta posibilidad es muy 5til cuando estamos seguros de &ue esa función%m4todo no contiene ning5n tipo de error
van3ar !aso a !aso Ejecuta la siguiente instrucción del programa 8i dicha instrucción contiene una llamada a una función o m4todo el 7ndice de ejecución #l7nea marcada en a3ul$ se situar1 en la primera sentencia de dicha función%m4todo para ejecutarlo paso a paso
8altar !aso Ejecuta instrucciones hasta alcan3ar el siguiente punto de interrupción Cuando no hay puntos de interrupción situados despu4s de la sentencia actual, se ejecutar1n todas las instrucciones hasta finali3ar el programa
!arar ejecución Detiene la ejecución paso a paso, sin necesidad de llegar al final del programa
Nisuali3ación del contenido de las variables !ara ello existe la ventana atch, &ue se activa pulsando la pesta9a Depuración situada en la parte i3&uierda del entorno Cuando &ueremos a9adir una variable a dicha ventana podemos hacerlo bien pulsando la opción 9adir atch, para despu4s escribir el nombre de la variable, ó bien seleccionando la variable con el ratón y pulsando 9adir atch !ara eliminar una variable de la ventana atch, la marcamos y pulsamos uitar atch
5.! Ee&,lo' Namos a tomar como referencia un ejercicio &ue hayamos resuelto en !se"nt
1. Construya un diagrama de flujo y pseudocódigo que, al recibir como dato el precio de un producto importado, incremente 11% del mismo si es inferior a $1,500 y que además escriba el nuevo precio del producto. Datos de entrada •
El precio del producto
Datos de salida •
El nuevo precio del producto
Definición de variables precio Nariable de tipo real &ue representa el precio del producto
M
Unidad V: Tutorial Dev-C ++
npr Nariable de tipo real &ue almacena el nuevo precio del producto
Pseudocódigo Proceso incrementoprecio //Incrementoprecio.psc //El programa, al recibir como dato el precio de un producto //importado, //incrementa 11% el mismo si éste es inferior a $1500. Definir precio, npr como real; Escribir "Introduzca el precio del producto:"; Leer precio; Si precio < 1500 Entonces npr <- precio * 1.11; Escribir "Nuevo precio: ",npr; FinSi FinProceso
Diagrama de flujo
F
Unidad V: Tutorial Dev-C ++
Prueba de escritorio
Salida
hora vamos a pasar este programa a C++
Código fuente en C++ %% %% "ncrementopreciocpp %% El programa, al recibir como dato el precio de un producto importado, %% incrementa GGO el mismo si 4ste es inferior a PG@HH %% Qinclude RiostreamS Qinclude RstdiohS using namespace stdT int main #$U float precio, nprT
GH
Unidad V: Tutorial Dev-C ++
cout RR V"ntrodu3ca el precio del productoVT cin SS precioT if #precioRG@HH$U nprWprecio 6 GGGT cout RR V*uevo precioV RR nprT X return#H$T X nalicemos el código l7nea por l7nea
a. l,"ea. 1 a 5, son los mismos comentarios &ue ten7amos en nuestro programa en !se"nt a l,"ea /, es el encabe3ado obligatorio para todo programa en C++, y es el &ue permite &ue los
m4todos de entrada y salida #cin%cout$ se puedan utili3ar l usar la directiva Qinclude estamos dici4ndole al compilador &ue bus&ue e int4rprete todos los elementos definidos en el archivo &ue acompa9a la directiva #en este caso, iostream $ !ara evitar sobrescribir los elementos ya definidos al ponerles igual nombre, se crearon los espacios de nombres o namespace del singular en ingl4s En este caso hay un espacio de nombres llamado std , &ue es donde se incluyen las definiciones de todas las funciones y clases &ue conforman la biblioteca est1ndar de C++ *o importa &ue esto sea un poco confuso, considerar por ahora &ue esa l7nea es obligatoria para nuestro programa en C++
GG
Unidad V: Tutorial Dev-C ++
a l,"ea , es un encabe3ado para utili3ar funciones de Entrada y 8alida de C, pero &ue en C++ no es necesario, sin embargo, la dejamos por si necesitamos alguna función de ese lenguaje
En la l,"ea 10, al incluir la sentencia using namespace std le estamos diciendo al compilador &ue usaremos el espacio de nombres std por lo &ue no tendremos &ue incluirlo cuando usemos elementos de este espacio de nombres, como pueden ser los objetos cout y cin, &ue representan el flujo de salida est1ndar #t7picamente la pantalla o una ventana de texto$ y el flujo de entrada est1ndar #t7picamente el teclado$ l igual &ue la l7nea I, consideremos esta l7nea obligatoria en todos nuestros programas /a l,"ea 12 tambi4n es obligatoria y es el comien3o de nuestro programa Esta l7nea la anali3aremos m1s adelante cuando veamos la l7nea 2G, sin embargo, se ver1 con mucho m1s detalle durante el curso, cuando veamos m4todos a l,"ea 1 e&uivale a nuestro Definir de !se"nt En C++, los tipos de datos Aeales, se pueden definir de dos formas float o double El segundo tipo de datos, supera al primero en la capacidad num4rica &ue puede almacenar, por eso su nombre double, &ue deja translucir &ue es de doble capacidad
Compare las l,"ea. 15 a 20 con su pseudocódigo en !se"nt y trate de entender la e&uivalencia /a l,"ea 21 est1 relacionada con la forma &ue se haya escrito la l7nea G2 Nolvamos atr1s a esa l7nea *ote &ue empie3a con una sentencia int , lo &ue significa &ue el main debe retornar un Entero #por eso int, abreviatura de "nteger en "ngl4s$ l colocar return(0), estamos indicando &ue el m4todo main retornar1 un entero H 8i se omite esta l7nea, el compilador sacar1 un error /a l,"ea 22 termina con una llave &ue cierra Jabr1 notado durante todo el programa, &ue hay llaves &ue abren y otras &ue cierran Con respecto a lo reali3ado en sus programas de !se"nt, cómo puede interpretar estas llaves !ara terminar, les hago notar &ue las l7neas en blanco, no son obligatorias, son para hacer ver el código con mayor claridad 2$ Realiar u" al3orit4o ue &or 4e6io 6e la e.tru%tura re&etitiva Mie"tra. o)te"3a el 4a7or valor ue .e a7a i"tro6u%i6o 6e u"a .erie 6e 10 "84ero. i"3re.a6o. &or el te%la6o$ Varia)le. a utiliar -
contador Nariable &ue llevar1 el control de las GH iteraciones Valor_mayor Nariable en la &ue se almacena el valor mayor ingresado por parte del
-
usuario num: 8e utili3ara para capturar los n5meros ingresados por parte del usuario
Dato. 6e e"tra6a: -
El usuario va a introducir los valores los cuales se van almacenando en la variable num
G2
Unidad V: Tutorial Dev-C ++
Dato. 6e .ali6a: -
l terminar la ejecución del algoritmo, se presentar1 el valor mayor de los introducidos por parte del usuario
Pro%e6i4ie"to:
-
8e solicitar1 al usuario el ingreso el primer elemento Este primer elemento se asume es el mayor, por lo tanto la variable valorYmayor tomar1 el valor de este primer elemento ingresado !or medio de un ciclo procederemos a pedir el restante de los elementos comparando cada uno con el valor de la variable valorYmayor y el elemento ingresado 8i el valor del elemento ingresado es mayor &ue el valor de la variable valorYmayor, se reempla3a el valor de este 5ltimo por el valor ingresado por el usuario
P.eu6o%96i3o Proceso mientras_ejemplo2 Definir contador, num, valor_mayor
Como Entero;
Escribir "Ingrese el elemento 1 "; Leer valor_mayor; contador<-2; Mientras contador <= 10 Hacer Escribir "Ingrese el elemento ", contador ; Leer num; Si num > valor_mayor Entonces valor_mayor <- num; FinSi contador <- contador + 1; FinMientras Escribir "El valor mayor introducido es: ", valor_mayor; FinProceso
G.
Unidad V: Tutorial Dev-C ++
Dia3ra4a 6e lu*o
Código fuente en C++ %% %% mientrasYejemplo2cpp %% Qinclude RiostreamS Qinclude RstdiohS using namespace stdT int main #$U
G<
Unidad V: Tutorial Dev-C ++
int contador, num, valorYmayorT cout RR V"ngrese el elemento G VT cin SS valorYmayorT contador W 2T (hile #contador RW GH$U cout RR V"ngrese el elemento V RR contadorT cin SS numT if #num S valorYmayor$U valorYmayor W numT X contador W contador + GT X cout RR VEl valor mayor introducido es V RR valorYmayorT return#H$T X Compare el pseudocódigo en !se"nt con el Código >uente en C++ Encuentre las analog7as 87 pudo identificar el ciclo repetitivo 'ientras en C++ Dónde empie3a y dónde termina
5.( Errore' Co&une' Evidentemente pueden producirse errores en el proceso /a ventana del compilador &ue se encuentra en la parte inferior de la pantalla, aparecer1 si ocurre alg5n error al compilar :ambi4n aparece si el compilador ve algo &ue &ui31s no sea un error, pero &ue es sospechoso un (arning
5.(.1 Olvidar ter&inar un )o&entario )on 0 /os comentarios se pueden escribir de dos formas
Con %% #doble slash$, en este caso no lleva terminación
G@
Unidad V: Tutorial Dev-C ++
Con %6 #slash y asterisco$, en este caso se debe cerrar con la pareja opuesta 6%
5.(.! U'o de letra' &a$#')ula' en ,alabra' re'ervada' C++ es un lenguaje &ue hace diferenciación entre las may5sculas y las min5sculas, por lo &ue sus palabras reservadas se deben escribir en min5sculas, tal y cual como fueron creadas U.o I"%orre%to
Qinclude RiostreamS Qinclude RstdlibhS int Mai"#( U %6 inicio del programa 6% system#V!8EV$T return HT X U.o Corre%to
Qinclude RiostreamS Qinclude RstdlibhS int 4ai"#( U %6 inicio del programa 6% system#V!8EV$T return HT X
5.(.( Olvidar la' doble' )o&illa' en un te2to o )adena de )ontrol U.o I"%orre%to #include #include int main() U %6 inicio del programa 6% %out;;<=ola 4u"6o >"? system #V!8EV$T return HT X
U.o Corre%to #include #include int main() U %6 inicio del programa 6% %out;;<=ola 4u"6o >"@? system #V!8EV$T return HT X
GB
Unidad V: Tutorial Dev-C ++
5.(. Olvidar el 'i3no ,unto $ )o&a 46 de',u7' de una in'tru))i*n 8ue lo re8uiera U.o I"%orre%to #include #include int main() U %6 inicio del programa 6% %out;;<=ola 4u"6o >" system #V!8EV$T return HT X
U.o Corre%to #include #include int main() U %6 inicio del programa 6% %out;;<=ola 4u"6o >"@? system #V!8EV$T return HT X
5.(.5 Ca&biar el 'i3no 9 ,or 9; de',u7' de una 'enten)ia Este error tiene el inconveniente &ue no indica en cual l7nea de código est1 el error, ya &ue generalmente indica la siguiente l7nea
5.(. Olvidar )olo)ar la' llave' en una 'enten)ia )o&,ue'ta plica para las sentencias for, if, do, s(itch y (hile Este inconveniente no indica en cual l7nea de código est1 el error Esto es debido a &ue reali3a la comprobación completa de par4ntesis &ue abren y cierran, solo el programador deber1 determinar dónde falta la llave
5.(./ Olvidar de
5.(.= U'ar 9; en lu3ar de 9 dentro de un )i)lo re,etitivo
GI
Unidad V: Tutorial Dev-C ++
5. Ti,o' de Errore'
Errore. .i"t%ti%o. /os lenguajes de programación tienen una sintaxis determinada para la escritura de las sentencias de forma &ue puedan ser interpretados por el compilador El compilador detecta estas anomal7as en la escritura y muestra este tipo de errores !or ejemplo *o colocar un punto y coma al acabar una instrucción
Errore. e" el e"%a6e"a4ie"to 8e suele tratar de errores a la hora de nombrar las funciones, en los tipos o n5mero de par1metros o del lugar donde se encuentran al llamar a una función Este error tambi4n se produce por la falta de un archivo de encabe3ado /os archivos de encabe3ados definen los par1metros para los m4todos escritos en las librer7as
Errore. .e4"ti%o. 8on los m1s dif7ciles de detectar y el entorno no puede ayudarnos, puesto &ue se tratan de discrepancias entre lo &ue hace el programa y lo &ue se pretende &ue haga
Errore. e" e*e%u%i9" Estos errores se dan por&ue en la ejecución de los programas ciertos valores pueden ser ilegales
para ciertas operaciones !or ejemplo División por cero, la ra73 cuadrada de un valor negativo, etc
5.5 Eer)i)io' ,ro,ue'to' Compilar y Ejecutar en Dev-C ++, todos los programas desarrollados hasta ahora en !se"nt
GM