Unidad 5 - Tutorial Dev-C ++ (1)

18
2015 UNIDAD V: Tutorial Dev-C ++ PROGRAMACION DE COMPUTADORAS

description

tutorial de dev c++ sentencia while

Transcript of Unidad 5 - Tutorial Dev-C ++ (1)

  • 2015

    UNIDAD V: Tutorial Dev-C ++

    PROGRAMACION DE COMPUTADORAS

  • Unidad V: Tutorial Dev-C ++

    2

    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 ++

    3

    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 ++

    4

    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

    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 ++

    6

    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 ++

    7

    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 ++

    8

    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 ++

    9

    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

  • Unidad V: Tutorial Dev-C ++

    10

    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

    #include

    using namespace std;

    int main (){

    float precio, npr;

  • Unidad V: Tutorial Dev-C ++

    11

    cout > precio;

    if (precio

  • Unidad V: Tutorial Dev-C ++

    12

    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.

  • Unidad V: Tutorial Dev-C ++

    13

    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

  • Unidad V: Tutorial Dev-C ++

    14

    Diagrama de flujo

    Cdigo fuente en C++

    //

    // mientras_ejemplo2.cpp

    //

    #include

    #include

    using namespace std;

    int main (){

  • Unidad V: Tutorial Dev-C ++

    15

    int contador, num, valor_mayor;

    cout > valor_mayor;

    contador = 2;

    while (contador valor_mayor){

    valor_mayor = num;

    }

    contador = contador + 1;

    }

    cout

  • Unidad V: Tutorial Dev-C ++

    16

    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

    #include

    int Main() { /* inicio del programa */

    system("PAUSE");

    return 0;

    }

    Uso Correcto

    #include

    #include

    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 #include

    int main() { /* inicio del programa */

    cout

  • Unidad V: Tutorial Dev-C ++

    17

    5.3.4 Olvidar el signo punto y coma (;) despus de una instruccin que lo requiera

    Uso Incorrecto

    #include #include

    int main() { /* inicio del programa */

    cout

  • Unidad V: Tutorial Dev-C ++

    18

    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.