Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE..................................................................................................................................................................... 1 1. Introducción................................................................................................................................................. 1 1.1 Ejercicio 1: Mi primer programa en C++............................................................................................. 1 1.2 Ejercicio 2: Una conversación en C++................................................................................................. 2 1.3 Ejercicio 3: Una pequeña operación aritmética.................................................................................... 2 1.4 Ejercicio 4: Conversor de €uros a pesetas y dólares. ........................................................................... 3 1.5 Ejercicio 5: Solución de la ecuación de segundo grado. ...................................................................... 3 1.6 Ejercicio 6: Ejecutar con el Debugger el programa anterior ................................................................ 4 1.7 Ejercicio 7: Conversor de Temperatura ............................................................................................... 4 1. Introducción. Comienza Informática II y Fundamentos de Programación, y comienza con algunos ejemplos sencillos referidos a la programación en C++. Programar en C++ es un poco distinto a programar en Matlab o en Visual Basic. El aprender a programar significa aprender a pensar, o mejor, aprender a describir qué pasos hay que dar para hacer una determinada tarea. Así pues, les animamos a que, antes de enfrentarse a un programa, piensen muy bien como harían ese programa “a mano”, porque sino, difícilmente serán capaces de programar en el ordenador cómo se hace. No es importante que hagan todos los ejercicios durante la práctica, sino que entiendan muy bien cómo y por qué se hacen las cosas. Es preferible que entiendan muy bien un programa a que hayan acabado todo sin haberse enterado de nada. Los primeros ejercicios servirán para familiarizarse con el modo de programar y para que vayan entendiendo las cosas. Les animamos a que intenten hacer uds. mismos modificaciones y variaciones, incluso hay veces que un mismo problema puede resolverse de varias maneras diferentes que son igualmente correctas. Para realizar los Ejercicios de esta práctica debe apoyarse en el entorno de programación de Visual C++ 6.0, explicado en las clases de teoría. Para cada Ejercicio deberá crear un Proyecto en un subdirectorio especial. Todos estos subdirectorios estarán dentro de un directorio de tus disco G:\. 1.1 Ejercicio 1: Mi primer programa en C++. Para que su debut como programador en C++ sea todo un éxito, le hemos preparado un sencillo programa de bienvenida. /* fichero Ejer1.cpp */ // este programa sólo te saluda #include <iostream.h> void main (void){ cout << "Hola futuro(a) programador de C++" << endl; cout << "Como estas?" << endl; } /* fin de main() */ Deberá copiar este programa en el editor del Visual C++, compilarlo y ejecutarlo para comprobar su funcionamiento. El nombre del proyecto será Ejer1 y el del programa será Ejer1.cpp. Para compilar y linkar el programa debe utilizar el menú Build y las opciones Compile File (para compilar), Build (para linkar) y Execute (para ejecutar). Cada opción Escuela Superior de Ingenieros – Tecnun – Universidad de Navarra Prácticas de Programación en C++ Pág. 2 comprende las anteriores, esto es, si se quiere ejecutar y no se ha compilado y linkado, se realizan primero estas operaciones. Si ha olvidado cómo se crea un proyecto en C++, recurra a la documentación del entorno que se le dio en clase. 1.2 Ejercicio 2: Una conversación en C++. Seguro que el programa del ejercicio anterior le ha dejado con ganas de responder a la pregunta que aparece en la pantalla. Para ello es necesario introducir el flujo cin, el cual permite leer tanto números como cadenas de caracteres. Pero cuando encuentra blancos, tabuladores o espacios, termina de leer. 1.- Crear un proyecto llamado Ejer02, en el cual debe escribir el siguiente programa, al que llamará Ejercicio.cpp: /* fichero Ejercicio.cpp */ // Este programa le saluda más formalmente #include <iostream.h> void main (void){ char nombre[30]; int edad; cout << "Hola! Como te llamas?"; cin >> nombre; cout << "Cuantos anyos tienes?"; cin >> edad; cout << "Hola " << nombre ; cout << ",tienes " << edad << " anyos" << endl; } 2.- Compile el programa y ejecútelo. Recuerde que al responder a la pregunta sólo podrá teclear una sola palabra. Todos aquellos que tengan nombre compuesto -Luis Alfredo, Ana Silvia, Marco Antonio y demás- tendrán que esperar a la siguiente práctica para conocer nuevas funciones de lectura. 1.3 Ejercicio 3: Una pequeña operación aritmética. Estará pensando que el C++ ha de servir para algo más que mantener una aburrida conversación con la pantalla. En el siguiente programa le presentamos un avance de las “complicadas” operaciones que puede realizar el C++. Escriba el programa y sálvelo como maraton.cpp. /* fichero maraton.cpp */ /* --------------------------*/ /* Un marathon tiene 26 millas y 385 yardas */ /* Calcula la distancia del marathon en Kilómetros */ /* Una milla tiene 1760 yardas */ #include <iostream.h> void main (void){ int millas,yardas; float kilometros; } millas = 26; yardas = 385; /* fórmula de conversión */ kilometros = 1.609 * (millas + yardas / 1760); // salida de datos cout <<"Un marathon tiene "<< kilometros << " kilometros" << endl; Escuela Superior de Ingenieros – Tecnun – Universidad de Navarra Prácticas de Programación en C++ Pág. 3 Debe crear un proyecto llamado Ejer03 y luego compilarlo y ejecutarlo; apunte el resultado. Ahora modifique el programa sustituyendo 1760 por 1760.0 en la línea que calcula el número de kilómetros. Vuelva a compilar y a ejecutar. ¿Sale lo mismo que antes? ¿Qué ha podido pasar? 1.4 Ejercicio 4: Conversor de €uros a pesetas y dólares. Por fin ha llegado el momento que realice un programa usted solo(a), para lo cual puede echar mano de los apuntes y demás ejercicios dados en clase. En este ejercicio se pide que realice un programa que le pregunte los €uros que desea convertir y como salida dará cuantas pesetas y dólares son. Recuerda que 1€ son 166.386 pesetas y aproximadamente (en el momento de la redacción de la práctica) 1.27 dólares. Debe crear un proyecto Ejer4 y al nombre del fichero fuente llámele conversor.cpp. 1.5 Ejercicio 5: Solución de la ecuación de segundo grado. Dada la ecuación de segundo grado: ax2 + bx + c = 0 hay que calcular el discriminante: discr = b2 - 4ac si discr > 0.0 las dos raíces son reales y distintas, y valen: − b + discr − b − discr x1 = x2 = 2a 2a si discr = 0.0 las dos raíces son reales e iguales y valen: −b x1 = x2 = 2a Finalmente, si discr < 0.0 las dos raíces son complejas conjugadas. Las partes real e imaginaria valen: −b − discr xr = xi = 2a 2a Edite el siguiente programa para resolver la ecuación de segundo grado. Llame Ejer05 al proyecto y ec2.cpp al siguiente fichero: /* fichero ec2.cpp */ /* Resolución de la ecuación de segundo grado */ #include <iostream.h> #include <math.h> //para sqrt() void main(void) { double a, b, c; double discr, x1, x2, xr, xi; cout << "Escribe los valores de los coeficientes A, B y C: "; cin >> a >> b >> c; discr = ... ; if (discr > 0.0) { x1= . . .; x2= . . .; cout << "Las dos raices reales son: "; cout << x1 << " y " << x2 << endl; } else if (discr < 0.0) { Escuela Superior de Ingenieros – Tecnun – Universidad de Navarra Prácticas de Programación en C++ xr= . . xi= . . cout << cout << cout << } Pág. 4 .; .; "Raices complejas: " << endl; "(" << xr << ", " << xi << "i) y "; "(" << xr << ", " << -xi << "i)" << endl; } else { x1= . . .; cout << "Las dos raices son iguales y valen: " << x1 << endl; } Compile y ejecute este programa, cambiando los valores de a, b y c, de modo que se prueben los tres casos que pueden presentarse en el programa. Puede probar con los siguientes valores, para que se den los 3 casos: A B C Resultado 1 4 4 Raíces iguales 1 5 4 Raíces reales 1 3 6.25 Raíces imaginarias 1.6 Ejercicio 6: Ejecutar con el Debugger el programa anterior En este ejercicio deberá ejecutar paso a paso el programa que calcula las raíces de la ecuación de segundo grado. Deberá colocar el cursor en una línea (por ejemplo la discr = b*b - 4.0*a*c;) y presionar la tecla F9 (con esto pondrá un breakpoint). Ahora ejecute el programa en modo debug, dando directamente a la tecla F5 (sino Build->Start debug->Go del menú). El programa empezará a ejecutarse y se detendrá en la citada línea. A partir de aquí podrá ver cómo varían las distintas variables del programa, ejecutando el programa paso a paso (tecla F10). En especial tiene que observar cómo van cambiando las variables x1, x2, xr y xi, por medio de la ventana Watch. 1.7 Ejercicio 7: Conversor de Temperatura En el siguiente ejercicio debe hacer un conversor de temperatura, de ºC →ºF y ºF →ºC, según la siguiente fórmula: 9.0 ºF = * (º C ) + 32 5.0 El programa debe pedir al usuario qué tipo de conversión debe hacer y luego el dato de la temperatura a convertir. Para este ejercicio debe crear un proyecto Ejer07 en su disco de usuario, y el nombre del programa será Temp.cpp. Si no ha llegado a terminar este ejercicio en las dos horas de prácticas, debe tratar de hacerlo en las horas libres de ordenador o en casa. Notas: - No olvide poner siempre “;” al final de cada sentencia. - No olvide cerrar las comillas, los paréntesis y las llaves ( { }). - Por último, recuerde que C++ distingue de minúsculas y mayúsculas. Escuela Superior de Ingenieros – Tecnun – Universidad de Navarra