You are on page 1of 9

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

Sesin

Conceptos bsicos y Metodologa para la solucin de problemas por medio de la computadora


I OBJETIVOS

. Conocer la terminologa relacionada con los lenguajes y los lenguajes de programacin y los programas. . Conocer la terminologa referente con los algoritmos y los lenguajes algortmicos. . Conocer la importancia de aplicar tcnicas adecuadas de programacin . Conocer las fases en la solucin de problemas por medio de la computadora. . Elaborar los primeros algoritmos sencillos

II SUMARIO
Introduccin. Definicin de lenguaje, lenguaje de programacin Definicin de algoritmo, tipos de algoritmos Lenguajes algortmicos, tipos de lenguajes algortmicos. Metodologa para la solucin de problemas en la computadora.

III DESARROLLO
Introduccin
La computadora no solamente es una mquina que puede realizar procesos para darnos resultados, sin que tengamos la nocin exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora adems de lo anterior tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten. Mas aun, si estos involucran operaciones matemticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos. El diseo de soluciones a la medida de nuestros problemas, requiere como en otras disciplinas una metodologa que nos ensee de manera gradual, la forma de llegar a estas soluciones.

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

A las soluciones creadas por computadora se les conoce como programas y no son mas que una serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos especficos. Lo anterior nos lleva al razonamiento de que un programa nos sirve para solucionar un problema especifico. Para poder realizar programas, adems de conocer la metodologa mencionada, tambin debemos de conocer, de manera especifica las funciones que puede realizar la computadora y las formas en que se pueden manejar los elementos que hay en la misma.

Definicin de Lenguaje
Lenguaje, es una serie de smbolos que sirven para transmitir uno o ms mensajes (ideas) entre dos entidades diferentes. A la transmisin de mensajes se le conoce comnmente como comunicacin. La comunicacin es un proceso complejo que requiere una serie de reglas simples, pero indispensables para poderse llevar a cabo. Las dos principales reglas son las siguientes: Los mensajes deben correr en un sentido a la vez. Debe forzosamente existir 4 elementos: Emisor, Receptor, Medio de comunicacin y Mensaje.

Lenguajes de Programacin
Un lenguaje de programacin es un conjunto de smbolos, caracteres y reglas (programas) que le permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida, clculo, ma nipulacin de textos, lgica/comparacin y almacenamiento/recuperacin. Los lenguajes de programacin se clasifican en: Lenguaje mquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje mquina se expresan en trminos de la unidad de memoria ms pequea el bit (dgito binario 0 o 1 ). Lenguaje de bajo nivel (Ensamblador) En este lenguaje las instruccio nes se escriben en cdigos alfabticos conocidos como mnemotcnicos para las operaciones y direcciones simblicas. Lenguaje de alto nivel Los lenguaje de programacin de alto nivel (BASIC, pascal, cobol, FORTRAN, C/C++. etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingls), lo que facilita la escritura y comprensin del programa.

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

Definicin de Algoritmo
La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi , nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico. Es un conjunto determinado de instrucciones que, al seguirse, desempean una trae particular. Un algoritmo debe satisfacer los siguientes criterios: Entrada: se le brindan los datos con los cuales trabajar. Salida: se obtiene un valor o un efecto al finalizar. Definicin clara: no puede haber instrucciones ambiguas. Limitacin de alcance: el algoritmo debe terminar en un nmero finito de pasos. Eficiencia: se busca la solucin en la menor cantidad de pasos posibles utilizando la menor cantidad de recursos posibles.

Tipos de Algoritmos
Cualitativos: son aquellos en los que se describen los pasos utilizando palabras. Cuantitativos: son aquellos en los que se utilizan clculos numricos para definir los pasos del proceso.

Lenguajes Algortmicos
En una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso.

Tipos de Lenguaje Algortmicos


Grficos: es la representacin grfica de las operaciones que realiza un algoritmo (diagramas de flujo). No grficos: representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocdigo).

Metodologa para la solucin de problemas por medio de la computadora


Etimolgicamente, la palabra problema deriva del griego proballein que significa algo lanzado hacia delante. Un problema es un asunto o un conjunto de cuestiones que se plantean para ser resueltas. La naturaleza de los problemas varan con el mbito con el contexto donde estn planteados, as, existen problemas matemticos, qumicos, filosficos, etc. Consideremos aqu slo aquellos cuya solucin se puede calcular utilizando una serie de reglas introducidas en la computadora. No existe un mtodo universal que permita resolver cualquier problemas. En general, la resolucin de problemas es un procesos creativo donde el conocimiento, la habilidad y la experiencia tiene un papel importante. El proceso de manera sistemtica (sobre todo si se trata de problemas complejos) puede ayudar en la solucin.

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

En general, la solucin de problemas con la computadora se puede dividir en 7 etapas, (aunque hay autores que consideran slo tres): Definicin del problema Anlisis del problema Diseo del algoritmo Codificacin Prueba y depuracin Documentacin Mantenimiento

1.1 Definicin del problema Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora, mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. En esta etapa es fundamental establecer con claridad que har el programa que se pretende construir. No se puede abordar una solucin mientras no se sepa a donde se quiere llegar. 1.2 Anlisis del problema El anlisis del problema es la segunda fase en la resolucin de un problema con la computadora. El objetivo del anlisis es comprender claramente la naturaleza del problema. En esta etapa se requiere especificar con detalle cuales sern los datos de entrada y cuales los datos de salid a. La forma como se procesar la informacin de entrada para producir los datos de salida es tarea de la etapa del dise del algoritmo, pero, en esta etapa puede establecerse un esbozo de la solucin. Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada Cul es la informacin que se desea producir (salida) Los mtodos y frmulas que se necesitan para procesar los datos Una recomendacin muy prctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia, para producir los resultados esperados. 1.3 Diseo del algoritmo En esta etapa se construye un algoritmo que resuelva el problema analizado utilizando una herramienta algortmica como el pseudocdigo. Aqu se decide como har el algoritmo para producir los datos de salida sobre la base de los datos de entrada. Esto puede requerir de acciones secuenciales, tomas de decisiones y repeticiones de procesos.

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

En esta etapa, es necesario centrar la atencin en el algoritmo y las caractersticas que debe de cumplir para que se bueno, las cuales son: Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayora de las variantes que se puedan presentar en la definicin del problema. Debe ser finito en tamao y tiempo de ejecucin. 1.4 Codificacin La codificacin es la operacin de escribir la solucin del problema el algoritmo (de acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de instrucciones detalladas, escritas siguiendo las reglas sintcticas y semnticas de un determinado lenguaje de programacin (cdigo reconocible por la computadora). A la serie de instrucciones detalladas se le conoce como cdigo fuente o programa fuente. Luego de ello el programa fuente debe ser ejecutado y probado para verificar si los resultados obtenidos son los esperados. 1.5 Prueba y depuracin Los errores humanos dentro de la programacin de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin errores se le conoce como depuracin. La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la solucin, por ellos se debe considerar con el mismo inters y entusiasmo. La verificacin del programa se efecta con una amplia variedad de datos de entrada, llamados datos de test o datos de prueba, que determinarn si el programa tiene errores (bugs). Los datos de prueba comprenden: valores normales de entrada, valores extremos de entrada que comprueben los lmites del programa y valores de entrada que comprueben aspectos especiales del programa. Si los resultados obtenidos no son los esperados se procede a depurar el programa. La depuracin consiste en encontrar los errores del programa para efectuar las correcciones pertinentes. 1.6 Documentacin Es la gua o comunicacin escrita en sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ellos la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes: a) Documentacin interna b) Documentacin externa c) Manual del usuario

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

a) Documentacin interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso. b) Documentacin externa: Se define en un documento escrito, en el que se consideran los siguientes puntos: Descripcin del problema Nombre del autor Algoritmo (diagrama de flujo o pseudocdigo) Diccionario de datos Cdigo fuente (programa) c) Manual del usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado. 1.7 Mantenimiento Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado. Ejemplo: Se desea calcular el monto bruto, el monto del impuesto y el monto a pagar por la compra de cierta cantidad de unidades de un mismo tipo de producto cuyo costo por unidad (libre de impuestos) es de S/. 25.45, la compra esta sujeta al impuesto del I.G.V. (18%). Solucin 1. Definiendo el problema: La definicin del problema est dada por el enunciado, que se encuentra lneas arriba, que consiste en calcular el monto bruto, el monto del impuesto y el monto que se debe pagar al realizar una compra de una cantidad de un determinado producto. 2. Anlisis del problema: De la lectura del problema encontramos los siguientes datos de entrada y datos de salida. Datos de entrada Nmero de unidades adquiridas: unidades Costo del producto: S/. 25.45 Impuesto: 18% Datos de salida Monto bruto: montobruto Monto del impuesto: montoimpuesto Monto a pagar: montopagar

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

Observe que el costo del producto y el porcentaje del impuesto ya tienen valores preestablecidos. Segn esto, estos datos no requerirn ser ingresados. 3. Diseando el algoritmo: Primer diseo descendente En un primer momento el problema puede descomponerse de manera bastante general. En este caso se ha descompuesto en tres pasos. Inicio 1. Leer unidades 2. Clculo de montos 3. Imprimir MontoBruto, MmontoImpuesto, MontoPagar Fin Primer refinamiento Luego de un refinamiento en el subproblema Clculo de montos llegamos al siguiente diseo: Inicio 1. Leer unidades 2. Clculo de montos 2.1 Calcular el monto bruto 2.2 Calcular el monto del impuesto 2.3 Calcular el monto a pagar 3. Imprimir MontoBruto, MmontoImpuesto, MontoPagar Fin Segundo refinamiento Finalmente llegamos al algoritmo definitvo: Inicio //Ingreso de datos Leer unidades //Clculo de montos MontoBruto = unidades * 25.45 MontoImpuesto = MontoBruto * 0.18 MontoPagar = MontoBruto + MontoImpuesto //Salida de resultados Imprimir MontoBruto, MmontoImpuesto, MontoPagar Fin

4. Codificando el algoritmo: A continuacin se muestra la codificacin del algoritmo, en este caso hemos utilizado el lenguaje de programacin C, pero muy bien se pudo haber hecho en cualquier otro lenguaje: #include <conio.h> #include <iostream.h>
Ing. Karim Guevara Puente de la Vega Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

void main() { //Declaracion de variables int unidades; double MontoBruto, MontoImpuesto, MontoPagar; //Declaracion de constantes const double PRECIO = 25.45; const double IGV = 0.18; //Ingreso de datos cout<<"Ingrese la cantidad de unidades: "; cin>>unidades; //Calculo de montos MontoBruto=unidades * PRECIO; MontoImpuesto=MontoBruto * IGV; MontoPagar= MontoBruto+MontoImpuesto; //Salida de resultados cout<<"\n\nMonto bruto : \t\tS/ "<<MontoBruto<<"\n"; cout<<"\nMonto del Impuesto :\tS/ "<<MontoImpuesto<<"\n"; cout<<"\nMonto a pagar : \tS/ "<<MontoPagar<<endl; getch(); } 5. Prueba y depuracin: Una de las pruebas con un valor como entrada se muestran en la siguiente pantalla:

Dado los resultados se debe o no procedes con la depuracin 6. Documentacin: La documentacin interna se observa en el cdigo escrito lneas arriba.

IV EJERCICIOS
Para los siguientes enunciados, describa las fases 1, 2, 3 y 4 de la metodologa para la resolucin de problemas por medio de la computadora:

Ing. Karim Guevara Puente de la Vega

Sesin I

Laboratorio Algoritmia y Estructura de Datos I

Pgina:

10

01. Suponga que un individuo desea invertir su capital en un banco y desea saber cunto dinero ganar despus de un mes si el banco paga a razn de 2% mensual. 02. Un vendedor recibe un sueldo base ms un 10% extra por comisin de sus ventas. El vendedor desea saber cunto dinero obtendr por concepto de comisiones por las tres ventas que realiza en el mes y el total que recibir en el mes tomando en cuenta su sueldo base y comisiones. 03. Una tienda ofrece un descuento del 15% sobre el total de la compra y un cliente desea saber cunto deber pagar finalmente por su compra. 04. Un alumno desea saber cul ser su calificacin final en la materia de Algoritmos. Dicha calificacin se compone de los siguientes porcentajes: 55% del promedio de sus tres calificaciones parciales. 30% de la calificacin del examen final. 15% de la calificacin de un trabajo final. 05. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes. 06. Se desea calcular la edad de un persona, en aos, meses y das. Considere Ud. los aos bisiestos.

Ing. Karim Guevara Puente de la Vega

Sesin I

You might also like