Вы находитесь на странице: 1из 18

2015

UNIDAD V: Tutorial Dev-C ++

PROGRAMACION DE COMPUTADORAS

Unidad V: Tutorial Dev-C ++

UNIDAD V: Tutorial Dev-C ++


5.1 INTRODUCCIN
El presente tutorial, es para el uso de un entorno de desarrollo de cdigo como lo es Dev-C++ y por lo
tanto no hay ayudas sobre la referencia del lenguaje ni explicacin de la sintaxis. Presenta las facilidades
de esta herramienta para el desarrollo de cdigo.
Dev-C++ es un Entorno de Desarrollo Integrado (IDE) para el lenguaje de Programacin C/C++ que usa
Mingw de GCC (GNU Compiler Collection) como Compilador y permite crear:

Programas ejecutables para Win32.


Programas ejecutables para consola.
Construccin de DLLs y bibliotecas estticas.
Adems, se puede utilizar en combinacin con otros compiladores basados en GCC.

Dev-C++ es un software de libre distribucin sujeto a los trminos de la Licencia Pblica General (GPL)
que facilita la escritura de programas en lenguaje C++ para brindar las facilidades de creacin de
programas (ejecutables *.exe), se apoya en diversos compiladores, entre ellos MinGW (Minimalist Gnu
Windows), el cual es tambin software libre bajo la licencia GNU.
Las caractersticas de Dev-C++ son:

Soporta mltiples lenguajes (el espaol es uno de ellos).


Mantiene una lista con las clases utilizadas en el desarrollo de un programa.
Mantiene la lista de funciones definidas en el desarrollo del programa.
Tiene un manejador de proyectos (se usa cuando el programa se compone de ms de un archivo
fuente).
Tiene un editor que resalta la sintaxis del cdigo y el cual que es configurable.
Soporta plantillas para la creacin de sus propios tipos de proyectos.
Permite la creacin de Makefile para la compilacin separada de archivos fuente.
Edita y compila archivos de recursos.
Soporta la actualizacin del software y bibliotecas a travs de Internet.

Unidad V: Tutorial Dev-C ++

5.1 Entorno de Trabajo


Dev-C++ es un Entorno Integrado de Desarrollo para el lenguaje de programacin C/C++ que usa Mingw
(Minimalist GNU for Windows, www.mingw.org) de GCC (GNU Compiler Collection
www.gnu.org/home.es.html). Es un software de libre distribucin (www.bloodshed.net) sujeto a los
trminos de la Licencia Pblica General (GPL) de GNU.

Entraremos a hacer una breve descripcin de cada una de las partes que conforman el entorno de
trabajo.
5.1.1

Editor

El Editor es la parte donde escribiremos los programas fuente. Este se comporta como cualquier otro
editor, sin embargo, ofrece una serie de ayudas que nos apoyarn al momento de escribir un programa.

Unidad V: Tutorial Dev-C ++

Para crear un archivo fuente nuevo:


Archivo Nuevo Cdigo Fuente (Ctrl+N)
Se dispone de una ventana en la que se edita el texto y escribiremos nuestros programas.
5.1.2

Men y barra de herramientas

Son los tpicos comandos de Windows (abrir, guardar, copiar y pegar) Tambin tenemos una serie de
conos en las barras de herramientas que no son ms que una parte de las opciones que tenemos en los
mens, se puede dejar el ratn encima de un icono durante unos segundos y aparecer una ayuda
emergente. Explicativa de lo que se ejecuta cuando se hace clic sobre la figura.

5.1.3

Area de edicin

Aqu aparecern los Archivo de cdigo que se abran. Se Pueden tener abierto ms de un Archivo a la
vez, y seleccionarlo por medio del men Windows.

Unidad V: Tutorial Dev-C ++

5.1.4

Tipos de archivo

La extensin para cada archivo depende de la funcin que tenga. Algunos sern puestos
automticamente por el sistema, otros sern seleccionados por nosotros al momento de guardar el
archivo:

Como se puede ver an la grfica, habr una extensin para archivos de tipo C y otras para archivos de
tipo C++.

Fuente (.c .cpp .cc .cxx .c++ .cp):


Uno o ms archivos escritos en ASCII con las instrucciones del programa.

Objeto (.o o .obj):


Son archivos intermedios creados a partir de la compilacin, entendibles por el encadenador y
transparentes al programador. Se encuentran en cdigo de mquina. Tambin conocidos como
archivos objeto.

Librera (.a o .lib):


Rene varios archivos objeto en uno solo. Suelen agrupar funciones estndar y se encuentran
en cdigo mquina.

Cabecera (.h):
Contienen definiciones y declaraciones compartidas por varios archivos fuente, as como las
correspondientes a las funciones estndar de las libreras.

Ejecutables (.exe):
Se almacena en un nico archivo todo el cdigo mquina encadenando todos los archivos objeto
asociados al programa, ya en un formato ejecutable. Es el programa que se ejecutar en la
computadora.

Unidad V: Tutorial Dev-C ++

5.1.5

Proceso de compilacin

5.1.6

Compilacin y Ejecucin

Primero definiremos Qu es compilar? y Qu es ejecutar? en programacin.


Compilar se refiere a la accin por medio de la cual, una serie de instrucciones escritas o codificadas en
lenguaje de programacin (cdigo fuente) son convertidas a lenguaje mquina (binario) de tal forma
que puedan ser ejecutadas por medio de un programa informtico.
Ejecutar es la accin de iniciar la carga de un programa o de cualquier archivo ejecutable. En otras
palabras, la ejecucin es el proceso mediante el cual una computadora lleva a cabo las instrucciones de
un programa informtico, ejecutando en la computadora la tarea para la que fue creado.
Para compilar un archivo fuente:
Generar Compilar (F9)
Para ejecutar:
Generar Ejecutar (F10)
Los dos pasos anteriores se deben llevar en ese estricto orden cada vez que se modifica el archivo
fuente. Si se ejecuta un programa que se modific, y no se compila, Dev-C ++ tomar el ltimo archivo
objeto creado en una compilacin anterior y el programa no reflejar la modificacin. Claro est, que si
es la primera vez que se va a ejecutar el programa, entonces Dev-C ++ har primero una compilacin. Sin
embargo, como buena prctica, es bueno siempre hacer la compilacin.
Para compilar y ejecutar:
Generar Compilar y Ejecutar (F11)

Unidad V: Tutorial Dev-C ++

5.1.7

Depuracin

La depuracin es la tcnica que se utiliza para ejecutar el programa paso a paso. Se puede llevar a cabo
para dos tareas, conocer el funcionamiento de un programa del que se tiene el cdigo fuente, o
encontrar errores en un programa que hasta ahora estamos desarrollando.
Durante el proceso de depuracin, se puede hacer correr el programa hasta una lnea en particular y a
partir de all, seguir ejecutando paso a paso. Una de las bondades de este proceso, es que se puede ir
evaluando el estado de las variables que intervienen en el programa.

Cmo Depurar programas


Un Depurador nos permite ejecutar paso a paso un programa, viendo en cualquier momento el
valor de las variables que ms nos interesen. Por lo tanto es una herramienta muy til para
detectar errores lgicos que de otro modo resultaran muy difciles de localizar.
Utilizaremos el depurador integrado en el entorno Dev-C++.
Antes de compilar, y para que se aada al archivo ejecutable cierta informacin que luego
utilizar el depurador de programas, debemos comprobar que est seleccionada la siguiente
opcin:
Herramientas Opciones de Compilador Configuracin Enlazador
Generar Informacin de depuracin (-g3) : Yes.

Comenzar la depuracin
1. Colocar el cursor sobre la primera instruccin de main.
2. Dar click de ratn sobre la parte ms izquierda de una lnea de cdigo (sobre el nmero de
lnea), pulsar el botn izquierdo del ratn en dicha posicin, o en cualquier otro lugar de
la lnea pulsar el botn izquierdo y en el men, tomar Aadir/Quitar punto de interrupcin
(F4). Esto har que quede marcada la instruccin, indicando que se ha insertado un punto
de interrupcin (la lnea quedar marcada en rojo) que obligar al depurador a detenerse en
este punto. Para eliminar los puntos de ruptura se realiza la misma operacin que para
marcarlos.

Unidad V: Tutorial Dev-C ++

3. Pulsar F5, con lo que comenzar la ejecucin paso a paso del programa, indicndose en azul
cul ser la siguiente lnea que se ejecutar. Adems aparecer una ventana de MS-DOS
para que se realicen las entradas y salidas que el programa necesite durante su depuracin.

Control de la depuracin.
Siguiente Paso: Ejecuta la siguiente instruccin del programa (la marcada en color azul).
Cuando dicha instruccin contiene una llamada a una funcin/mtodo, dicha
funcin/mtodo se ejecuta completamente tras seleccionar Siguiente Paso. Esta posibilidad
es muy til cuando estamos seguros de que esa funcin/mtodo no contiene ningn tipo de
error.
Avanzar Paso a Paso: Ejecuta la siguiente instruccin del programa. Si dicha instruccin
contiene una llamada a una funcin o mtodo el ndice de ejecucin (lnea marcada en azul)
se situar en la primera sentencia de dicha funcin/mtodo para ejecutarlo paso a paso.
Saltar Paso: Ejecuta instrucciones hasta alcanzar el siguiente punto de interrupcin. Cuando
no hay puntos de interrupcin situados despus de la sentencia actual, se ejecutarn todas
las instrucciones hasta finalizar el programa.
Parar ejecucin: Detiene la ejecucin paso a paso, sin necesidad de llegar al final del
programa.

Visualizacin del contenido de las variables.


Para ello existe la ventana Watch, que se activa pulsando la pestaa Depuracin situada en la
parte izquierda del entorno.
Cuando queremos aadir una variable a dicha ventana podemos hacerlo bien pulsando la
opcin Aadir Watch, para despus escribir el nombre de la variable, bien seleccionando la
variable con el ratn y pulsando Aadir Watch.
Para eliminar una variable de la ventana Watch, la marcamos y pulsamos Quitar Watch.

5.2 Ejemplos
Vamos a tomar como referencia un ejercicio que hayamos resuelto en PseInt:
1. Construya un diagrama de flujo y pseudocdigo que, al recibir como dato el
precio de un producto importado, incremente 11% del mismo si es inferior a
$1,500 y que adems escriba el nuevo precio del producto.
Datos de entrada
El precio del producto.
Datos de salida
El nuevo precio del producto.
Definicin de variables
precio: Variable de tipo real que representa el precio del producto.

Unidad V: Tutorial Dev-C ++

npr: Variable de tipo real que almacena el nuevo precio del producto.
Pseudocdigo
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

Unidad V: Tutorial Dev-C ++

Prueba de escritorio

Salida

Ahora vamos a pasar este programa a C++.


Cdigo fuente en C++
//
// Incrementoprecio.cpp
// El programa, al recibir como dato el precio de un producto importado,
// incrementa 11% el mismo si ste es inferior a $1500.
//
#include <iostream>
#include <stdio.h>
using namespace std;
int main (){
float precio, npr;

10

Unidad V: Tutorial Dev-C ++

cout << "Introduzca el precio del producto:";


cin >> precio;
if (precio<1500){
npr=precio * 1.11;
cout << "Nuevo precio:" << npr;
}
return(0);
}
Analicemos el cdigo lnea por lnea:

Las lneas 1 a 5, son los mismos comentarios que tenamos en nuestro programa en PseInt.
La lnea 7, es el encabezado obligatorio para todo programa en C++, y es el que permite que los
mtodos de entrada y salida (cin/cout) se puedan utilizar. Al usar la directiva #include estamos
dicindole al compilador que busque e intrprete todos los elementos definidos en el archivo
que acompaa la directiva (en este caso, iostream ). Para evitar sobrescribir los elementos ya
definidos al ponerles igual nombre, se crearon los espacios de nombres o namespace del
singular en ingls.
En este caso hay un espacio de nombres llamado std , que es donde se incluyen las definiciones
de todas las funciones y clases que conforman la biblioteca estndar de C++. No importa que
esto sea un poco confuso, considerar por ahora que esa lnea es obligatoria para nuestro
programa en C++.

11

Unidad V: Tutorial Dev-C ++

La lnea 8, es un encabezado para utilizar funciones de Entrada y Salida de C, pero que en C++
no es necesario, sin embargo, la dejamos por si necesitamos alguna funcin de ese lenguaje.
En la lnea 10, al incluir la sentencia using namespace std le estamos diciendo al compilador
que usaremos el espacio de nombres std por lo que no tendremos que incluirlo cuando usemos
elementos de este espacio de nombres, como pueden ser los objetos cout y cin, que
representan el flujo de salida estndar (tpicamente la pantalla o una ventana de texto) y el flujo
de entrada estndar (tpicamente el teclado). Al igual que la lnea 7, consideremos esta lnea
obligatoria en todos nuestros programas.
La lnea 12 tambin es obligatoria y es el comienzo de nuestro programa. Esta lnea la
analizaremos ms adelante cuando veamos la lnea 21, sin embargo, se ver con mucho ms
detalle durante el curso, cuando veamos mtodos.
La lnea 13 equivale a nuestro Definir de PseInt. En C++, los tipos de datos Reales, se pueden
definir de dos formas: float o double. El segundo tipo de datos, supera al primero en la
capacidad numrica que puede almacenar, por eso su nombre double, que deja translucir que
es de doble capacidad.
Compare las lneas 15 a 20 con su pseudocdigo en PseInt y trate de entender la equivalencia.
La lnea 21 est relacionada con la forma que se haya escrito la lnea 12. Volvamos atrs a esa
lnea. Note que empieza con una sentencia int, lo que significa que el main debe retornar un
Entero (por eso int, abreviatura de Integer en Ingls). Al colocar return(0), estamos indicando
que el mtodo main retornar un entero 0. Si se omite esta lnea, el compilador sacar un error.
La lnea 22 termina con una llave que cierra. Habr notado durante todo el programa, que hay
llaves que abren y otras que cierran. Con respecto a lo realizado en sus programas de PseInt,
cmo puede interpretar estas llaves?
Para terminar, les hago notar que las lneas en blanco, no son obligatorias, son para hacer ver el
cdigo con mayor claridad.
2. Realizar un algoritmo que por medio de la estructura repetitiva Mientras obtenga el mayor
valor que se haya introducido de una serie de 10 nmeros ingresados por el teclado.
Variables a utilizar
-

contador: Variable que llevar el control de las 10 iteraciones.


Valor_mayor: Variable en la que se almacena el valor mayor ingresado por parte del
usuario
num: Se utilizara para capturar los nmeros ingresados por parte del usuario.

Datos de entrada:
-

El usuario va a introducir los valores los cuales se van almacenando en la variable num.

12

Unidad V: Tutorial Dev-C ++

Datos de salida:
-

Al terminar la ejecucin del algoritmo, se presentar el valor mayor de los introducidos


por parte del usuario.

Procedimiento:
-

Se solicitar al usuario el ingreso el primer elemento.


Este primer elemento se asume es el mayor, por lo tanto la variable valor_mayor
tomar el valor de este primer elemento ingresado.
Por medio de un ciclo procederemos a pedir el restante de los elementos comparando
cada uno con el valor de la variable valor_mayor y el elemento ingresado. Si el valor del
elemento ingresado es mayor que el valor de la variable valor_mayor, se reemplaza el
valor de este ltimo por el valor ingresado por el usuario.

Pseudocdigo
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

13

Unidad V: Tutorial Dev-C ++

Diagrama de flujo

Cdigo fuente en C++


//
// mientras_ejemplo2.cpp
//
#include <iostream>
#include <stdio.h>
using namespace std;
int main (){

14

Unidad V: Tutorial Dev-C ++

int contador, num, valor_mayor;


cout << "Ingrese el elemento 1 ";
cin >> valor_mayor;
contador = 2;
while (contador <= 10){
cout << "Ingrese el elemento " << contador;
cin >> num;
if (num > valor_mayor){
valor_mayor = num;
}
contador = contador + 1;
}
cout << "El valor mayor introducido es: " << valor_mayor;
return(0);
}
Compare el pseudocdigo en PseInt con el Cdigo Fuente en C++. Encuentre las analogas.
S pudo identificar el ciclo repetitivo Mientras en C++? Dnde empieza y dnde termina?

5.3 Errores Comunes


Evidentemente pueden producirse errores en el proceso.
La ventana del compilador que se encuentra en la parte inferior de la pantalla, aparecer si ocurre
algn error al compilar.
Tambin aparece si el compilador ve algo que quizs no sea un error, pero que es sospechoso: un
warning.

5.3.1

Olvidar terminar un comentario con */

Los comentarios se pueden escribir de dos formas:


Con // (doble slash), en este caso no lleva terminacin.

15

Unidad V: Tutorial Dev-C ++

Con /* (slash y asterisco), en este caso se debe cerrar con la pareja opuesta */.
5.3.2

Uso de letras maysculas en palabras reservadas


C++ es un lenguaje que hace diferenciacin entre las maysculas y las minsculas, por lo que sus
palabras reservadas se deben escribir en minsculas, tal y cual como fueron creadas.
Uso Incorrecto
#include <iostream>
#include <stdlib.h>
int Main() { /* inicio del programa */
system("PAUSE");
return 0;
}
Uso Correcto
#include <iostream>
#include <stdlib.h>
int main() { /* inicio del programa */
system("PAUSE");
return 0;
}

5.3.3

Olvidar las dobles comillas en un texto o cadena de control


Uso Incorrecto
#include <iostream>
#include <stdlib.h>
int main()
{ /* inicio del programa */
cout<<"Hola mundo \n;
system ("PAUSE");
return 0;
}

Uso Correcto
#include <iostream>
#include <stdlib.h>
int main()
{ /* inicio del programa */
cout<<"Hola mundo \n;
system ("PAUSE");
return 0;
}

16

Unidad V: Tutorial Dev-C ++

5.3.4

Olvidar el signo punto y coma (;) despus de una instruccin que lo requiera
Uso Incorrecto
#include <iostream>
#include <stdlib.h>
int main()
{ /* inicio del programa */
cout<<"Hola mundo \n
system ("PAUSE");
return 0;
}

Uso Correcto
#include <iostream>
#include <stdlib.h>
int main()
{ /* inicio del programa */
cout<<"Hola mundo \n;
system ("PAUSE");
return 0;
}

5.3.5

Cambiar el signo ; por , despus de una sentencia


Este error tiene el inconveniente que no indica en cual lnea de cdigo est el error, ya que
generalmente indica la siguiente lnea.

5.3.6

Olvidar colocar las llaves en una sentencia compuesta


Aplica para las sentencias for, if, do, switch y while. Este inconveniente no indica en cual lnea de
cdigo est el error. Esto es debido a que realiza la comprobacin completa de parntesis que
abren y cierran, solo el programador deber determinar dnde falta la llave.

5.3.7

Olvidar definir una variable


En C y C++, se hace obligatorio que toda variable que se vaya a utilizar, deber estar
previamente definida.

5.3.8

Usar , en lugar de ; dentro de un ciclo repetitivo for


Un ciclo repetitivo for requiere mnimo tres parmetros. La inicializacin, La condicin de
terminacin y el incremento. Estos tres parmetros debern ir separados con ;.

17

Unidad V: Tutorial Dev-C ++

5.4 Tipos de Errores


Errores sintcticos
Los lenguajes de programacin tienen una sintaxis determinada para la escritura de las
sentencias de forma que puedan ser interpretados por el compilador. El compilador detecta
estas anomalas en la escritura y muestra este tipo de errores. Por ejemplo: No colocar un punto
y coma al acabar una instruccin.
Errores en el encadenamiento
Se suele tratar de errores a la hora de nombrar las funciones, en los tipos o nmero de
parmetros o del lugar donde se encuentran al llamar a una funcin. Este error tambin se
produce por la falta de un archivo de encabezado. Los archivos de encabezados definen los
parmetros para los mtodos escritos en las libreras.
Errores semnticos
Son los ms difciles de detectar y el entorno no puede ayudarnos, puesto que se tratan de
discrepancias entre lo que hace el programa y lo que se pretende que haga.
Errores en ejecucin
Estos errores se dan porque en la ejecucin de los programas ciertos valores pueden ser ilegales
para ciertas operaciones. Por ejemplo: Divisin por cero, la raz cuadrada de un valor negativo,
etc.
5.5 Ejercicios propuestos
Compilar y Ejecutar en Dev-C ++, todos los programas desarrollados hasta ahora en PseInt.

18

Вам также может понравиться