You are on page 1of 7

Ejemplo de solucin de un problema 1.

Definicin del problema Introducir a travs del teclado tres notas, calcular el promedio y el 70% del mismo imprimir el promedio y el porcentaje. 2. Anlisis del problema Plan de solucin Datos de entrada: nota1, nota2, nota3 Datos de salida: promedio, porcentaje Datos adicionales: 70% Solucin Aplicar las siguientes frmulas: Promedio=(nota1+nota2+nota3)/3 Porcentaje=0.7*Promedio Variables a utilizarse: nota1, nota2, nota3, promedio, porcentaje 3. Diseo del algoritmo Procedemos a disear el algoritmo utilizando pseudocdigos Algoritmo pro_porcentaje variables nota1,nota2,nota3: enteros promedio, porcentaje: reales inicio escribir(Ingrese notas:) leer (nota1,nota2,nota3) promedio=(nota1+nota2+nota3)/3 porcentaje=0.7*Promedio escribir(promedio=,promedio) escribir(porcentaje=,porcentaje) fin 4. Prueba de escritorio Realizamos la prueba de escritorio para las siguientes notas: 12,18 y 20 y luego para las notas 15,11 y 19; obteniendo los resultados respectivos: Nota1 Nota2 Nota3 promedio Porcentaje 12 18 20 16.67 11.67 15 11 19 15 10.5

5. Codificacin Procedemos a codificar en papel el algoritmo diseado en pseudocdigos utilizando el lenguaje de programacin c++ //programa promedio.porcentaje #include<iostream.h> #include<conio.h> void main() { int nota1,nota2,nota3; float promedio,porcentaje; clrscr(); cout<<"Ingrese 3 notas: "; cin>>nota1>>nota2>>nota3; promedio=((float)(nota1+nota2+nota3)/3); porcentaje=0.7*promedio; cout<<"promedio: "<<promedio; cout<<"porcentaje: "<<porcentaje; getch(); } 6. Compilacin

7. Ejecucin

8. Documentacin Externa

Preparar una carpeta conteniendo: 1 Enunciado del problema 2 Narracin de la solucin 3 Definicin de variables VOCABULARIO TCNICO Compilacin

4 Diseo del algoritmo 5 Listado del programa fuente 6 Dispositivos o perifricos utilizados 7 Listado de la salida producida

Proceso de convertir un programa escrito en un lenguaje de alto nivel en un lenguaje maquina Diagrama de flujo Representacin grfica de un algoritmo utilizando un conjunto de smbolos geomtricos unidos por flechas, que indican la secuencia en que se deben ejecutar las instrucciones para resolver un problema. Editor En informtica nombre que recibe la aplicacin que nos permite visualizar y modificar archivos de texto. Ejercicios previos: Construir un diagrama de flujo tal, que dados los datos A,B,C que representan nmeros enteros , visualice los mismos en orden inverso. Construya un diagrama de flujo tal, que dado los datos enteros A y B, escriba el resultado de la siguiente expresin: (A+B)/2. Dada la matricula y 2 notas quimestrales; elaborar un diagrama de flujo que imprima la matricula del alumno y el promedio. Elaborar un diagrama de flujo tal, que dados como datos el lado1 y el lado2 de un rectngulo, calcule la superficie y el permetro.

Libreras o bibliotecas Junto con los compiladores de C y C++, se incluyen ciertos ficheros llamados bibliotecas. Las bibliotecas contienen el cdigo objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar nmeros, realizar funciones matemticas, etc. Las bibliotecas estn clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemticas, de manejo de memoria, de manejo de textos, etc. Nota: Existe una discusin permanente sobre el nombre genrico de estos ficheros. Una gran parte de personas consideran que el nombre adecuado es ficheros de biblioteca. Sin embargo, la mayora llamamos a estos ficheros libreras. El equvoco proviene del nombre en ingls, que es ficheros library. Este trmino se traduce como biblioteca, y no como librera, que es la palabra en espaol ms parecida fonticamente. Sin embargo esta discusin es poco importante, desde nuestro punto de vista, ya que nos entendemos igualmente con las dos palabras. Hay un conjunto de bibliotecas (o libreras) muy especiales, que se incluyen con todos los compiladores de C y de C++. Son las libreras (o bibliotecas) ANSI o estndar. Pero tambin las hay no estndar, y dentro de estas las hay pblicas y comerciales. En este curso slo usaremos bibliotecas (o libreras) ANSI. Ficheros ejecutables y enlazadores Cuando obtenemos el fichero objeto, an no hemos terminado el proceso. El fichero objeto, a pesar de ser comprensible para el ordenador, no puede ser ejecutado. Hay varias razones para eso: 1. Nuestros programas usaran, en general, funciones que estarn incluidas en bibliotecas externas, ya sean ANSI o no. Es necesario combinar nuestro fichero objeto con esas bibliotecas para obtener un ejecutable. 2. Muy a menudo, nuestros programas estarn compuestos por varios ficheros fuente, y de cada uno de ellos se obtendr un fichero objeto. Es necesario unir todos los ficheros objeto, ms las bibliotecas en un nico fichero ejecutable. 3. Hay que dar ciertas instrucciones al ordenador para que cargue en memoria el programa y los datos, y para que organice la memoria de modo que se disponga de una pila de tamao adecuado, etc. La pila es una zona de memoria que se usa para que el programa intercambie datos con otros programas o con otras partes del propio programa. Veremos esto con ms detalle durante el curso. 4. No siempre obtendremos un fichero ejecutable para el cdigo que escribimos, a veces querremos crear ficheros de biblioteca, y en ese caso el proceso ser diferente. Existe un programa que hace todas estas cosas, se trata del "linker", o enlazador. El enlazador toma todos los ficheros objeto que componen nuestro programa, los combina con los ficheros de biblioteca que sean necesarios y crea un fichero ejecutable.

Una vez terminada la fase de enlazado, ya podremos ejecutar nuestro programa. Errores Por supuesto, somos humanos, y por lo tanto nos equivocamos. Los errores de programacin pueden clasificarse en varios tipos, dependiendo de la fase en que se presenten. Errores de sintaxis: son errores en el programa fuente. Pueden deberse a palabras reservadas mal escritas, expresiones errneas o incompletas, variables que no existen, etc. Los errores de sintaxis se detectan en la fase de compilacin. El compilador, adems de generar el cdigo objeto, nos dar una lista de errores de sintaxis. De hecho nos dar slo una cosa o la otra, ya que si hay errores no es posible generar un cdigo objeto. Avisos: adems de errores, el compilador puede dar tambin avisos (warnings). Los avisos son errores, pero no lo suficientemente graves como para impedir la generacin del cdigo objeto. No obstante, es importante corregir estos errores, ya que ante un aviso el compilador tiene tomar decisiones, y estas no tienen por qu coincidir con lo que nosotros pretendemos hacer, ya se basan en las directivas que los creadores del compilador decidieron durante la creacin del compilador. Errores de enlazado: el programa enlazador tambin puede encontrar errores. Normalmente se refieren a funciones que no estn definidas en ninguno de los ficheros objetos ni en las bibliotecas. Puede que hayamos olvidado incluir alguna biblioteca, o algn fichero objeto, o puede que hayamos olvidado definir alguna funcin o variable, o lo hayamos hecho mal. Errores de ejecucin: incluso despus de obtener un fichero ejecutable, es posible que se produzcan errores. En el caso de los errores de ejecucin normalmente no obtendremos mensajes de error, sino que simplemente el programa terminar bruscamente. Estos errores son ms difciles de detectar y corregir. Existen programas auxiliares para buscar estos errores, son los llamados depuradores (debuggers). Estos programas permiten detener la ejecucin de nuestros programas, inspeccionar variables y ejecutar nuestro programa paso a paso (instruccin a instruccin). Esto resulta til para detectar excepciones, errores sutiles, y fallos que se presentan dependiendo de circunstancias distintas. Errores de diseo: finalmente los errores ms difciles de corregir y prevenir. Si nos hemos equivocado al disear nuestro algoritmo, no habr ningn programa que nos pueda ayudar a corregir los nuestros. Contra estos errores slo cabe practicar y pensar. Tipos de variables Tipo "char" o carcter: [signed|unsigned] char <identificador>[,<identificador2>[,<identificador3>]...]; Es el tipo bsico alfanumrico, es decir que puede contener un carcter, un dgito numrico o un signo de puntuacin. Desde el punto de vista del ordenador, todos esos valores son caracteres. En C++ este tipo siempre contiene un nico carcter del cdigo ASCII. El tamao de

memoria es de 1 byte u octeto. Hay que notar que en C un carcter es tratado en todo como un nmero Este tipo de variables es apto para almacenar nmeros pequeos, como los dedos que tiene una persona, o letras, como la inicial de mi nombre de pila. El tipo char es, adems, el nico que tiene un tamao conocido y constante. Para el resto de los tipos fundamentales que veremos, el tamao depende de la implementacin del compilador, que a su vez suele depender de la arquitectura del procesador o del sistema operativo. Sin embargo el tipo char siempre ocupa un byte, y por lo tanto, podemos acotar sus valores mximo y mnimo. As, el tipo char con el modificador signed, puede tomar valores numricos entre -128 y 127. Con el modifiador unsigned, el rango est entre 0 y 255. El hecho de que se trate de un tipo numrico entero nos permite usar variables de char para trabajar con valores pequeos, siempre que lo consideremos necesario. Tipo "int" o entero: [signed|unsigned] [short|long] int <identificador>[,<identificador2>[,<identificador3>]...]; [signed|unsigned] long [int] <identificador>[,<identificador2>[,<identificador3>]...]; [signed|unsigned] short [int] <identificador>[,<identificador2>[,<identificador3>]...]; Las variables enteras almacenan nmeros enteros dentro de los lmites de cada uno de sus tamaos. A su vez, esos tamaos dependen de la plataforma, del compilador, y del nmero de bits que use por palabra de memoria: 8, 16, 32... No hay reglas fijas para saber el tamao, y por lo tanto, el mayor nmero que podemos almacenar en cada tipo entero: short int, int o long int; depende en gran medida del compilador y del sistema operativo. Slo podemos estar seguros de que el tamao de un short int es menor o igual que el de un int, y ste a su vez es menor o igual que el de un long int.

Tipo "float" o coma flotante: float <identificador>[,<identificador2>[,<identificador3>]...]; Las variables de este tipo almacenan nmeros en formato de coma flotante, esto es, contienen un valor de mantisa y otro de exponente, que, para entendernos, codifican nmeros con decimales. Aunque el formato en que se almacenan estos nmeros en un ordenador es binario, podemos ver cmo es posible almacenar nmeros muy grandes o muy pequeos mediante dos enteros relativamente pequeos, usando potencias en base 10. Por ejemplo, tenemos para la mantisa un valor entero, m, entre -0.99 y 0.99, y para el exponente un valor, e entre -9 y 9. Los nmeros se interpretan como m x 10e.

Este formato nos permite almacenar nmeros entre -0.99 x 109 y 0.99 x 109. Es decir, entre 990000000 y 99000000. Y tambin nmeros tan pequeos como 0.01 x 10-9 -0.01 x 10-9. Es decir, como 0,00000000001 -0,00000000001.

Ejercicios: Elaborar los pasos para solucin de problema de: 1. La capacidad de una computadora viene dado en Megabytes, transformar a Gigabytes y Kilobytes. 2. Dado la distancia entre dos ciudades en kilmetros y la velocidad promedio de un vehculo en Km/hora. Calcular el tiempo que se demora para llegar de una ciudad a la otra en horas y minutos. 3. Dado un nombre y edad en aos, calcule el nro. de pulsaciones que debe tener por cada 10 segundos de ejercicio. Considere la siguiente frmula : numero de pulsaciones =(220-edad)/10.

You might also like