PROGRAMACIÓN DE COMPUTADORES GRUPO 17 TALLER #1 Agosto 20 de 2009 PARTE I Proponga una solución algorítmica para los siguientes problemas, usando la metodología presentada en la clase anterior (análisis, especificación, diseño en diagrama de flujo y una prueba de escritorio): • • Calcular el promedio de n números enteros Determinar si una fecha, especificada mediante tres números (día, mes y año), es una fecha válida o no PARTE II El propósito es que el estudiante conozca el ambiente de DEV C++ a través de la utilización del editor y la depuración de un programa en forma guiada. Este ambiente será el que se utilizará en el desarrollo del curso. Además, que el estudiante utilice por primera vez el ambiente de desarrollo, identifique dónde y cómo se muestran los errores que tiene el programa, y establezca cuáles son los errores más comunes y cómo se solucionan. PRELIMINARES Se debe verificar que el DevC++ está instalado (Ver página 8 del documento Ambiente integrado C). Se HACE CLIC sobre INICIO (START) de WINDOWS (abajo a la izquierda), se HACE CLIC sobre EJECUTAR (RUN). En la ventana que aparece teclear: C:\Dev-Cpp\devcpp.exe y hacer CLIC sobre ACEPTAR (OK) o presionar INTRO (ENTER). Se puede también buscar el archivo (DevCpp.EXE), con las opciones de búsqueda que brinda Windows, (las mismas que se utilizaron anteriormente) y dar doble CLIC sobre el nombre del archivo. PROCEDIMIENTO Copiar exactamente el programa que a continuación se presenta (SI NO SE HACE UNA COPIA EXACTA EL EJERCICIO NO PODRÁ DESARROLLARSE SIGUIENDO LOS PASOS QUE SE INDICAN) y seguir las instrucciones para depurar el programa y posteriormente ejecutarlo, para identificar lo que hace. El estudiante debe tener activo DEV C++, consultando el documento AMBIENTE INTEGRADO C, utilizar el editor y copiar el siguiente texto EXACTAMENTE (TENER EN CUENTA TODOS Y CADA UNO DE LOS DETALLES DEL ORIGINAL) /* Ejemplo programa en C++ */ /* Programa que calcula e imprime la diferencia entre el volumen del cilindro y el volumen del cono contenido en él */ #include <iostream.h> #include <stdio.h> #include <conio.h> main() { float r, h, ac ae, as; cout<<"Digite el radio \n"; cin>>r; cout<<"Digite la altura \n"; cin>>h; if r<=0 || h<=0 || 2*r>h { cout<<"Datos invalidos \n"; } else { ac=3.14*r*r*h; ae=4*(3.14*r*r*r)/3 as=ac-ae; cout<<as; } cout<<"\nFin Programa"; getch(); } DESPUÉS DE TENER EDITADO EL PROGRAMA EXACTAMENTE IGUAL AL AQUÍ INCLUIDO, deben seguirse los siguientes pasos: Guardar el programa en una memoria USB (u otro tipo de dispositivo de almacenamiento removible), con un nombre cualquiera y extensión cpp (Ejemplo f:\prog1.cpp). El documento AMBIENTE INTEGRADO C incluye las instrucciones para guardar. Se procede a compilar el programa, lo cual se puede hacer de varias maneras, entre las cuales está: presionar la tecla Ctrl (en la esquina inferior izquierda del teclado) y manteniéndola oprimida, presionar la tecla F9. Al compilar el ejemplo se presentan 5 errores en la ventana Compiler (en la parte inferior de la pantalla, después del renglón que no tiene número de línea, aparece el nombre del programa y en la columna mensaje aparece “in function “int main()”:). El primer error sobre la línea 10 (expected init-declarator defore “ae”) se debe a la falta de una coma entre el nombre de las variables que se han definido de tipo float. Coloque una coma ( , ) entre las palabras ac y ae y a continuación compile nuevamente. Aparecen ahora 3 errores. El siguiente error se encuentra en la línea 16 (expected '(' before "r") y se debe a que toda la condición que hemos escrito después del if debe estar entre paréntesis. Coloque un paréntesis inicial ‘(‘ entre if y r, dejando un espacio después del if, y un paréntesis final ‘)’ al terminar la sentencia. Vuelva a compilar. Aparece ahora sólo 1 error. Este se encuentra sobre la línea 24 (expected ‘;’ before “as”). Aunque el error se encuentra referenciado en esta línea, la que debe corregirse es la línea anterior (línea 23) y se produjo porque se omitió un punto y coma ( ; ) al final de esta sentencia. Coloque punto y coma al final de la sentencia ae=4*(3.14*r*r*r)/3 y vuelva a compilar. Sí se han seguido estos pasos, el programa compilará sin errores (Aparecerá en la ventana Compiler Progress el mensaje Status: Done), se indicará que hay 0 errores). Como el programa ya está depurado en lo que respecta a su escritura, se debe proceder a ejecutarlo. Ejecutar el programa. Ver en el documento AMBIENTE INTEGRADO C, para saber cómo realizarlo (puede ser Control+F10). Cuando le pida Digite el radio, teclee un número para el radio del cilindro (por ej. 3) y presione ENTER. Cuando le pida Digite la altura, teclee un número para la altura del cilindro (por ej. 45) y presione ENTER. Observe lo que sucede en la ejecución del programa (¿qué se visualiza en la pantalla?), para deducir lo que está haciendo el programa. Ensaye ingresar números negativos para el radio o la altura. ¿Qué sucede? En las sentencias cout<<"Digite el radio \n"; y cout<<"Digite la altura \n"; suprima los caracteres \n, compile y ejecute nuevamente ¿Qué sucede? Ahora la sentencia cout<<"Digite la altura "; cámbiela por cout<<" \t Digite la altura "; compile y ejecute nuevamente ¿Qué pasa en este caso?