47
2. Algoritmos 1. Análisis de problemas. 2. Representación de algoritmos: gráfica y pseudocódigo. 3. Diseño de algoritmos aplicados a problemas. 4. Diseño algorítmico de funciones Actividades de Aprendizaje Explicar los conceptos básicos para la formulación de algoritmos, así como sus ventajas y desventajas. Generar un catalogo de problemas para su análisis y solución. Resolver y analizar problemas cotidianos. Investigar los diferentes métodos para representar un algoritmo: diagrama de flujo, N-S (Nassi-Shneiderman), Pseudocódigo, Descripción Narrada. nalizar problemas y representar su solución mediante algoritm

Unidad+2+Algoritmos

  • Upload
    basilio

  • View
    1.905

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Unidad+2+Algoritmos

2. Algoritmos

1. Análisis de problemas.2. Representación de

algoritmos: gráfica y pseudocódigo.

3. Diseño de algoritmos aplicados a problemas.

4. Diseño algorítmico de funciones

Actividades de Aprendizaje• Explicar los conceptos básicos para la

formulación de algoritmos, así como sus ventajas y desventajas.

• Generar un catalogo de problemas para su análisis y solución.

• Resolver y analizar problemas cotidianos.• Investigar los diferentes métodos para

representar un algoritmo: diagrama de flujo, N-S (Nassi-Shneiderman), Pseudocódigo, Descripción Narrada.

Analizar problemas y representar su solución mediante algoritmos.

Page 2: Unidad+2+Algoritmos

IntroducciónClases.• En el contexto del análisis y el diseño, una clase es una

categoría o grupo de cosas que tienen atributos y comportamientos comunes.

• La acción de agrupar los objetos de acuerdo a sus características comunes se llama clasificación y es una habilidad que utilizamos los humanos para organizar el conocimiento.

• La clasificación puede verse como la acción de colocar cada objeto en un casillero etiquetado exprofeso para alojar a todos los objetos de esa clase.

Page 3: Unidad+2+Algoritmos

Objetos.• Un objeto es una instancia o caso particular de una clase. • Un objeto contiene atributos y métodos.• Los atributos identifican el estado del objeto (su identidad) y

los métodos establecen su comportamiento (funcionamiento).

• Normalmente un objeto tiene una identidad personal que lo distingue de los demás objetos. De esta forma, un objeto tiene estado, comportamiento e identidad.

Page 4: Unidad+2+Algoritmos
Page 5: Unidad+2+Algoritmos

• UML ( Lenguaje Unificado de Modelado ) es un lenguaje de modelado estándar que se usa para describir los planos del software.

• UML permite a los creadores de sistemas generar diseños que capturen sus ideas en una forma convencional y fácil de comprender, para comunicarlas a otras personas.

Page 6: Unidad+2+Algoritmos

Diagramas de UML

http://en.wikipedia.org/wiki/Unified_Modeling_Language

Page 7: Unidad+2+Algoritmos

Diagramas de UML

• Tarea: – Buscar cuantos tipos de diagramas diferentes

existen en UML– Buscar ejemplos de los diagramas en UML

Page 8: Unidad+2+Algoritmos

Diagramas UML de clases

• Una clase es una categoría o grupo de cosas que tiene atributos y acciones similares.

• El símbolo que representa a la clase es un rectángulo dividido en tres áreas. El área superior contiene el nombre, el área central contiene los atributos, y el área inferior las acciones.

CLASE

Nombre

Atributos

Métodos

Page 9: Unidad+2+Algoritmos

• Al modelar un sistema orientado a objetos, el mundo puede dividirse al menos en un par de formas. En primer lugar está la división entre clase y objeto.

• Una clase es una abstracción y un objeto es una manifestación de una clase.

CLASEOBJETO

Page 10: Unidad+2+Algoritmos

• Los diagramas de clases facilitan las representaciones a partir de las cuales los desarrolladores podrán trabajar.

• Los diagramas de clases colaboran en lo referente al análisis. Permite al analista hablarle a los clientes en su propia terminología, lo cual hace posible que los clientes indiquen importantes detalles de los problemas que requieren ser resueltos.

Page 11: Unidad+2+Algoritmos

Ejemplo de un Diagrama de clases

Page 12: Unidad+2+Algoritmos

Ejemplo de la relación de dependencia

Page 13: Unidad+2+Algoritmos

Ejemplo de la relación de generalización

Page 14: Unidad+2+Algoritmos

Ejemplo de la relación de agregación

Page 15: Unidad+2+Algoritmos

Ejemplo de un diagrama de estado

Page 16: Unidad+2+Algoritmos

2.1 Análisis de problemas.

• Analizar el enunciado del problema• Identificar funciones del sistema.

Page 17: Unidad+2+Algoritmos

Analizar el enunciado del problema

• La parte más difícil en el desarrollo de un sistema es comprender, con suficiente grado de detalle, el problema a resolver.

• La descripción inicial del problema, generalmente, suele ser incierta e insuficiente para realizar un análisis adecuado de los requisitos de los usuarios.

• El análisis de requisitos es complejo.

Page 18: Unidad+2+Algoritmos

Complejidad del análisis de requisitos

• Diferentes usuarios tienen distintas prioridades, a veces en conflicto.

• Los usuarios no suelen tener una visión clara y fácilmente expresable de lo que quieren. Por ejemplo, les resulta difícil distinguir entre lo que hace un sistema existente y lo que tiene que hacer un sistema adecuado.

• Es difícil imaginar un sistema del cual sólo se ha visto su descripción, por lo que los usuarios pueden pensar que la descripción es correcta cuando en realidad falta algo vital.

• Los encargados de hablar con los desarrolladores pueden no tener experiencia directa en el trabajo que realizan los usuarios del sistema.

Page 19: Unidad+2+Algoritmos

Ejemplo:

• "El Tecnológico X nos ha contratado para desarrollar un sistema de software para administrar su biblioteca. La biblioteca utiliza un programa que data de 1960, escrito en un lenguaje obsoleto. Con ese programa se llevan a cabo algunas tareas sencillas de gestión de libros y la búsqueda de usuarios por medio de un índice de credenciales. Se requiere construir un sistema que mantenga estos dos aspectos en línea"

Page 20: Unidad+2+Algoritmos

• Debido a que la información que arroja la narrativa anterior es muy escasa, se hace una investigación más detallada para averiguar hechos que ayuden a desarrollar un mejor sistema.

• Como podrías obtener mas información?• Quien es el responsable de proporcionar la

información?• Como almacenaras la información?• Como organizaras la información?

Page 21: Unidad+2+Algoritmos

Para el problema anterior:

• Enumera los objetos que están presentes en el dominio del problema

• Enumera los atributos y métodos de los objetos• Enumera los procesos que se efectúan en el sistema• Enumera los actores que interactúan con el sistema• Enumera las relaciones entre los objetos

Page 22: Unidad+2+Algoritmos

Identificar funciones del sistema.

• Describir por escrito a nivel técnico los procesos relacionados con el sistema y la forma en que este será utilizado.

• La documentación que se obtenga debe ser entendible para todos los involucrados en el proceso de desarrollo.

• ¿Quién usará la documentación? – Los usuarios requieren un manual que describa la forma en como se

usa el sistema.– Los programadores requieren un manual con las especificaciones de

los programas que implementaran.

Page 23: Unidad+2+Algoritmos

Tarea

• Traer un manual de usuario para compartirlo en la clase.

• Describir:– Que contiene?– Como esta organizado?– Para que sirve?– Quienes deben leerlo?– Quien lo elaboro?

Page 24: Unidad+2+Algoritmos

2.1 Representación de algoritmos: gráfica y pseudocódigo.

Definiciones:• Un algoritmo es un conjunto finito de

instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema.

• Un algoritmo es una secuencia finita de operaciones realizables, no ambiguas, cuya ejecución da una solución de un problema.

Page 25: Unidad+2+Algoritmos

En la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas.

Ejemplos:– Usar de una lavadora (se siguen las instrucciones).– Cocinar un platillo (se siguen los pasos de la receta).– Lavarse los dientes. – Calcular el cociente de dos números.– Calcular el máximo común divisor de dos enteros positivos.– Encontrar la ruta mas corta entre dos ciudades– Etc.

Page 26: Unidad+2+Algoritmos

Elementos y reglas de la representación gráfica de los algoritmos

Elementos básicos de un algoritmo

Lectura de datos

Pasos en los que se efectúa la lectura de un valor como un dato de entrada al problema.

Escritura de datos

Pasos en los que se escribe algún resultado parcial o final del problema.

Asignación ó cálculos

Pasos en los que se asigna un valor a una variable del problema, se efectúa un cálculo o se le da un valor a una variable.

Estructuras selectivas

Pasos que permiten ejecutar acciones de acuerdo a determinadas opciones.

Estructuras repetitivas

Pasos que se repiten hasta que se cumpla cierta condición, o mientras cierta condición se está cumpliendo.

Page 27: Unidad+2+Algoritmos

Descripción Narrada • Este algoritmo describe textualmente cada una de

las actividades a realizar. • Ejemplo 1 Algoritmo para asistir a clases:

1. Levantarse2. Bañarse3. Vestirse4. Desayunar5. Cepillarse los dientes6. Salir de casa7. Tomar el autobús8. Llegar al ITC9. Buscar el aula10. Ubicarse en un asiento

Page 28: Unidad+2+Algoritmos

Descripción en Pseudocódigo

• El pseudocódigo es una imitación y versión abreviada de instrucciones reales para las computadoras.

• Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programación.

Page 29: Unidad+2+Algoritmos

Ejemplo Algoritmo que acepta como entrada cuatro valores

numéricos y calcula e imprime su producto, suma y media aritmética.

inicio leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- (a + b + c + d) / 4 escribir (producto, suma, media)fin

Page 30: Unidad+2+Algoritmos

Diagramas N-S • Son una herramienta que favorece la programación

estructurada y reúne características gráficas propias de diagramas de flujo y lingüísticas propias de pseudocódigos. Constan de una serie de cajas contiguas que se leerán siempre de arriba-abajo.

Page 31: Unidad+2+Algoritmos

Estructuras selectivas

Page 32: Unidad+2+Algoritmos

Estructuras de repetición

Page 33: Unidad+2+Algoritmos

Ejemplo Algoritmo que acepta como entrada cuatro valores

numéricos y calcula e imprime su producto, suma y media aritmética.

Page 34: Unidad+2+Algoritmos

Diagramas de Flujo

• Son la representación gráfica de la solución algorítmica de un problema. Se utilizan símbolos o figuras que representan a cada una de las acciones de un proceso, los cuales están unidos por flechas que indican el flujo de ejecución.

• Se dibujan de arriba hacia abajo y de izquierda a derecha.

• Siempre se usan flechas verticales u horizontales• Evitar cruce de flujos• Cada paso expresa una acción concreta

Page 35: Unidad+2+Algoritmos

Símbolos gráficos

Page 36: Unidad+2+Algoritmos

Algoritmo que acepta como entrada cuatro valores numéricos y calcula e imprime su producto, suma y media aritmética.

Page 37: Unidad+2+Algoritmos

2.3 Diseño de algoritmos aplicados a problemas

• Algoritmos secuenciales• Algoritmos con selección de alternativas• Algoritmos con repetición de acciones

Page 38: Unidad+2+Algoritmos

Algoritmos secuenciales

• Ejercicios de conversiones– Monedas- Pesos a dólares– Temperaturas- Grados Celsius a Fahrenheit – Distancia- Metros a pies– Pesos- Kilogramos a libras– Etc.

• Cálculos de figuras geométricas– Perímetros– Áreas– Volumen

Page 39: Unidad+2+Algoritmos

Ejercicios

• La empresa “Todo a $10” vende a sus clientes artículos al mismo precio. Escribe un algoritmo que lea la cantidad de artículos a vender y obtenga el total a pagar, agregando el 10% de iva.

• Escribe un algoritmo para la CFE que reciba como entrada la cantidad de kw consumidos por un usuario y obtenga la cantidad a pagar. Para obtener la cantidad a pagar cada kw tiene un costo de $0.68

• Escribe un algoritmo para obtener la cantidad a pagar de un usuario de la JAPAC, toma como entrada la cantidad de m3 de agua consumidos (cada m3 se cobra a $4.50 y se agrega el 15% de iva)

Page 40: Unidad+2+Algoritmos

Conversiones

Multiplicar Por Para Obtener

Pulgadas X 2.54 = Centímetros

Pulgadas X 25.4 = Milímetros

Libras X 0.45392 = Kilogramos

Libras X 453.592 = gramos

Kilogramos X 2.20462 = Libras

Kg/cm² X 14.22 = Lbs/Pulg²

Lbs/Pulg² X 0.7031 = Kg/cm² .

Multiplicar Por Para Obtener

Metros X 3.28 = Pies

Metros X 39.37 = Pulgadas

Centímetros X 0.3937 = Pulgadas

Milímetros X 0.0394 = Pulgadas

Pies X 0.3048 = Metros

Pies X 30.48 = Centímetros

Pies X 300.48 = Milímetros

Page 41: Unidad+2+Algoritmos

Algoritmos con selección de alternativas

• Escribe un algoritmo que lea de teclado un numero entero y determine si es par o impar.

• Escribe un algoritmo que lea una calificación de un alumno y obtenga como salida un mensaje si fue aprobado o reprobado (70 o mas es aprobado).

• Escribe un algoritmo que reciba un número del 0 al 10 y regrese como resultado el número en letras.

• Escribe un algoritmo que lea un numero y si este es par obtenga su mitad, si es impar, obtenga su cuadrado.

• Escribe un algoritmo que lea un dato numérico y dependiendo del rango donde se encuentre obtenga el resultado:

Rango resultado 0-5 Malo 6-7 Regular 8-9 Bueno 10 Excelente

Page 42: Unidad+2+Algoritmos

Algoritmos con repetición de acciones

• Lee de teclado x números enteros hasta que el número leído sea 0.• Lee de teclado la edad de 10 personas y obtén como resultado el

promedio de las edades.• Escribe un algoritmo que reciba como parámetro un entero y determine si

este es o no un número primo. Los números primos son aquellos que solo tienen dos divisores (ellos mismos y la unidad)

• Lee de teclado nombre y sexo de 10 personas y obtén como resultado el numero de mujeres.

• Lee de teclado nombre y edad de 10 personas y obtén como resultado el promedio de edad de los hombres.

• Lee de teclado nombre, edad y sexo de 10 personas y obtén como resultado el numero de mujeres, el promedio de edad de las mujeres y el nombre de la mas joven.

Page 43: Unidad+2+Algoritmos

2.4 Diseño algorítmico de las funciones

• En la fase de análisis en el proceso de programación se determina que hace el programa.

• En la fase de diseño se determina como hace el programa la tarea solicitada .

• Los métodos utilizados para el proceso del diseño se basan en el conocido divide y vencerás, donde la solución de un problema complejo se realiza dividiendo el problema en subproblemas y a continuación dividir estos subproblemas en otros mas pequeños hasta completar la solución.

Page 44: Unidad+2+Algoritmos

• En la POO los programas son clases que contienen atributos que describen a los objetos, métodos que definen la funcionalidad de los objetos y constructores que se utilizan para generar nuevos objetos.

• En la programación estructurada un programa se compone de un bloque inicial (donde inicia la ejecución del programa) que llama a subprogramas (funciones o procedimientos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas para solucionar un problema.

Page 45: Unidad+2+Algoritmos

Ejercicios propuestos1. La empresa “Todo a $10” vende artículos al mismo precio. Escribe un

algoritmo que lea la cantidad de artículos a vender y obtenga el total a pagar, agregando el 10% de iva, lea la cantidad pagada y obtenga en cambio que debe recibir el cliente.

2. Escribe un algoritmo para obtener la cantidad a pagar de un usuario de la CFE, la tarifa depende de los Kw consumidos (ve un recibo de CFE)

3. Escribe un algoritmo para obtener la cantidad a pagar de un usuario de la JAPAC, la tarifa depende de los m3 consumidos (ve un recibo de JAPAC)

4. Escribe un algoritmo que lea de teclado un numero entero y determine si es par o impar.

5. Escribe un algoritmo que obtenga el número de letras que contiene un string.

6. Lee de teclado la edad de 50 personas y obtén como resultado el promedio de las edades.

Page 46: Unidad+2+Algoritmos

7. Escribe un algoritmo que lea de teclado nombre y edad de 20 personas y obtenga el nombre de la persona mayor.

8. Lee de teclado x números enteros hasta que el número leído sea 0.9. Escribe un algoritmo que lea de teclado un string y obtenga el total de caracteres

que son dígitos.10. Escribe un algoritmo que reciba como parámetro un número entero y obtenga

como resultado un valor boolean, verdadero si el número es par y falso si es impar.

11. Escribe un algoritmo que reciba como parámetro un entero y determine si este es o no un número primo. Los números primos son aquellos que solo tienen dos divisores (ellos mismos y la unidad)

12. Escribe un algoritmo que reciba un número del 0 al 10 y regrese como resultado el número en letras.

13. Escribe una clase Alumno que contenga atributos para nombre, apellido, sexo, promedio y métodos getNombre, getSexo, getEdad.

14. Escribe un algoritmo que lea de teclado los datos de 50 objetos tipo Alumno y regrese como resultado el numero de mujeres que hay en el grupo.

Page 47: Unidad+2+Algoritmos

15. Escribe un algoritmo que lea de teclado los datos de 50 objetos de tipo Alumno y regrese el promedio de todo el grupo.

16. Escribe un algoritmo que lea de teclado los datos de 50 objetos de tipo Alumno y regrese como resultado el total de alumnos reprobados con promedio menor que 70.

17. Escribe un algoritmo que lea de teclado un entero entre 0 y 99 y obtenga el número de decenas que contiene.

18. Escribe un algoritmo que lea de teclado una cantidad en pesos y regrese como resultado la cantidad en dólares, el tipo de cambio es 11.17 pesos por dólar.

19. Escribe un algoritmo que reciba lea de teclado una cantidad en dólares y regrese como resultado la cantidad en pesos, el tipo de cambio es 11.17 pesos por dólar.

20. Escribe un algoritmo que lea de teclado un numero y regrese como resultado un mensaje indicando si el número esta en el rango de 0 a 100.

21. Escribe un algoritmo que lea de teclado un string y regrese un mensaje indicando si el string es un palíndromo.

22. Escribe un algoritmo que lea de teclado un string y obtenga como resultado el número de palabras que contiene.

23. Escribe un algoritmo que lea de teclado un número entero y regrese como resultado en pantalla todos sus divisores.