Você está na página 1de 7

Algoritmos y estructura de datos I

Pgina 1

UNIVERSIDAD CATLICA DE SANTA MARA PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS

SESIN 01:

INTRODUCCIN A LOS ALGORITMOS

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 TEMAS A TRATAR
Como resolver un problema Algoritmos Caractersticas Tipos Algoritmia Algoritmo-Maquina Lenguajes de Programacin Metodologa para la solucin de problemas por medio de un ordenador

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Algoritmos y estructura de datos I

Pgina 2

III MARCO TEORICO


METODOLOGA PARA LA SOLUCIN DE PROBLEMAS POR MEDIO DE UN ORDENADOR

1Definicin 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 el computador; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

2 Anlisis del Problema


Una vez que se ha comprendido lo que se desea del computador, es necesario definir: Los datos de entrada. Los algoritmos son para solucionar tipos de problemas Es imprescindible poder entregar entradas distintas en cada ejecucin La entrada de datos se realiza mediante algn dispositivo

Los datos de Salida.


De nada sirve implementar un algoritmo si no podemos saber su resultado. Al finalizar el algoritmo (o durante), es imprescindible obtener la informacin resultante de su ejecucin. La salida de datos se realiza mediante dispositivos

Los mtodos y frmulas que se necesitan para procesar los datos.


Una recomendacin muy practica es el que nos pongamos en el lugar del computador y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

3 Diseo del Algoritmo


Las caractersticas de un buen algoritmo 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.

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Algoritmos y estructura de datos I

Pgina 3

4 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudo-lenguaje), en una serie de instrucciones detalladas, en un cdigo reconocible por el computador, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.

5 Prueba y Depuracin
Los errores humanos dentro de la programacin de computadores 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 llama depuracin. La depuracin o prueba resulta una tarea tan creativa como el mismo desarrollo de la solucin, por ello se debe considerar con el mismo inters y entusiasmo. Resulta conveniente observar los siguientes principios al realizar una depuracin, ya que de este trabajo depende el xito de nuestra solucin.

6 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes:

Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer mas claro el entendimiento de un proceso. Documentacin Externa: Se define en un documento escrito los siguientes puntos:
Descripcin del Problema Nombre del Autor Algoritmo (diagrama de flujo o pseudolenguaje) Diccionario de Datos Cdigo Fuente (programa)

Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el
fin de que el usuario obtenga el resultado deseado.

7 Mantenimiento
Se lleva acabo 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.

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Algoritmos y estructura de datos I NOTACIONES PARA DESCRIBIR ALGORITMOS Mtodo informal Lenguaje natural Ventajas: comprensible e intuitivo Inconveniente: impreciso Mtodos formales

Pgina 4

Pseudocdigo Lenguaje natural limitado y sin ambigedad Diagramas Diagramas de flujo u organigramas Utiliza un conjunto de smbolos para representar cada estructura de control y mediante lneas de flujo se indica el orden en que se realiza el flujo lgico del algoritmo Diagramas de Nassi-Schneiderman o Diagramas N-S Los pasos sucesivos se escriben en cajas con distintas formas segn la estructura de control que representen

IV
(La prctica tiene una duracin de 2 horas)
EJEMPLO 1 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 salida. Datos de entrada
Nmero de unidades adquiridas: Unidades Costo del producto: S/. Impuesto: 18%

ACTIVIDADES

Anlisis del problema: De la lectura del problema encontramos los siguientes datos de entrada y datos de

25.45

Datos de salida
Monto bruto: MontoBruto Monto del impuesto: MontoImpuesto Monto a pagar: MontoPagar

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.

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Algoritmos y estructura de datos I Inicio 1. Leer unidades 2. Clculo de montos 3. Imprimir MontoBruto, MontoImpuesto, MontoPagar Fin

Pgina 5

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 definitivo: 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, MontoImpuesto, MontoPagar Fin

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: Ejemplo.cpp #include <conio.h> #include <iostream.h> void main() { //Declaracion de variables int unidades; double MontoBruto, MontoImpuesto, MontoPagar; //Declaracion de constantes const double PRECIO = 25.45; const double IGV = 0.18; cout<<endl; cout<<"****************COMPRAS 2007***************"<<endl<<endl; //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(); } Ing. Karim Guevara, Ing. lvaro Fernndez Sesin 01

Algoritmos y estructura de datos I

Pgina 6

Prueba y depuracin: Una de las pruebas con un valor como entrada se muestra 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.

PROPUESTOS Utilizando la metodologa para la resolucin de problemas por medio de un ordenador: 1 Determinar si un alumno aprueba a reprueba un curso, sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 70; reprueba en caso contrario. 2 Calcular el valor de

(k + 1)(2k 3)
k =n

V EJERCICIOS
Para los siguientes enunciados, describa las fases 1, 2, 3, 4 y 5 de la metodologa para la resolucin de problemas por medio de un ordenador:

1. Disear un algoritmo, que permita convertir un nmero real, que represente horas, a su equivalente en horas, minutos, segundos y decimos de segundos. (3 Puntos) 2. Estimar el nmero de pginas de un texto que puede almacenarse en la memoria de un computador, considerando un promedio de 300 palabras por pgina y 10 caracteres por palabra. Asumir que un caracter ocupa un (1) byte. El tamao de la memoria del computador debe ingresarse expresado en Kbytes. (3 Puntos) 3. Distribuir una cantidad expresada en nuevos soles, en billetes de 20, 10, 5 y 1 sol; y para los decimales en monedas de 0.50, 0.20, 0.10 y 0.05 cntimos. (3 Puntos)

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Algoritmos y estructura de datos I

Pgina 7

4. Un trabajador del Estado percibe un sueldo Bsico, mensual de 450 nuevos soles; adems recibe incrementos de sueldo de acuerdo a los siguientes conceptos:
Instruccin Hasta 5 Secundaria Tcnico Profesional Porcentaje 5% 10% 20%

Condicin social Casado Por cada hijo sin vivienda

Porcentaje 3% 2% 5%

Tambin por ley est sujeto a un descuento de 10% si su sueldo excede de 700 nuevos soles. Determinar el sueldo neto que recibe un trabajador. (4 Puntos) 5. El dueo de una empresa desea planificar las decisiones financieras que tomara en el siguiente ao. La manera de planificarlas depende de lo siguiente: Si actualmente su capital se encuentra con saldo negativo, pedir un prstamo bancario para que su nuevo saldo sea de $10 000. Si su capital tiene actualmente un saldo positivo pedir un prstamo bancario para tener un nuevo saldo de $20 000, pero si su capital tiene actualmente un saldo superior a los $20 000 no pedir ningn prstamo. Posteriormente repartir su presupuesto de la siguiente manera. $5 000 para equipo de computo $2 000 para mobiliario y el resto la mitad ser para la compra de insumos y la otra para otorgar incentivos al personal. Desplegar que cantidades se destinaran para la compra de insumos e incentivos al personal y, en caso de que fuera necesario, a cuanto ascendera la cantidad que se pedira al banco.

VI CUESTIONARIO
1. Averiguar recientes dispositivos de entrada ? 2. Averiguar recientes dispositivos de salida ?

VII BIBLIOGRAFIA Y REFERENCIAS


BIBLIOGRAFA BSICA D.S.Malik, DATA STRUCTURES USIGN C++, Thomson Learning, 2003 J. Galve. ALGORITMIA, Ed.Adisson Wesley, Espaa, 2000. Brassard, ANLISIS DE ALGORITMOS, Ed. Mc. Graw Hill., Espaa, 1999., BIBLIOGRAFA COMPLEMENTARIA Wirth M., ALGORITMOS Y ESTRUCTURA DE DATOS, Ed. Addison Wesley, Mxico, 1997 Aho. DISEO Y ANLISIS DE ALGORITMOS, Ed. Addison Wesley. USA, 1999. Deitel & Deitel COMO PROGRAMAR EN C/C++. Editorial Prentice Hall, 1995.

Ing. Karim Guevara, Ing. lvaro Fernndez

Sesin 01

Você também pode gostar