Download pdf - Clase 3-algoritmos

Transcript
Page 1: Clase 3-algoritmos

Resolución de problemas con la computadora

Prof.Santiago Mena Zorrilla

Page 2: Clase 3-algoritmos

ALGORITMOS Y PROGRAMAS

La principal razón por la cual las personas aprenden lenguajesde programación es utilizar un ordenador como unaherramienta para la resolución de problemas complejos eincrementar la productividad en sus tareas.

Puesto que las computadoras por si solas no pueden resolverlos problemas diarios el ser humano a creado mecanismosy código que le permitan comunicarse con la maquina yobtener lo que desea. Para esto desarrollo los llamadosalgoritmos que simplifica el pensamiento humano a nivelde códigos que van a ser interpretados por la computadora

Page 3: Clase 3-algoritmos

Algoritmos

• Conjunto prescrito de instrucciones o reglas biendefinidas, ordenadas y finitas que permite realizaruna actividad mediante pasos sucesivos que nogeneren dudas a quien lo ejecute.

• Conjunto de reglas completamente definidas yprocedimientos para resolver un problema medianteun número finito de pasos.

• Conjunto de pasos ordenados que son necesariosrealizar para la resolución de un problema sea ennuestra vida diaria o en la computadora.

Page 4: Clase 3-algoritmos

Para crear el algoritmo en la resolución delproblema debemos pasar por las siguientesetapas.

1. Análisis del problema

2. Definicion del problema

3. Especificaciones de entradas

4. Especificaciones de salidas

5. Diseño de la solución

6. Herramientas de programación

7. Codificación

8. Compilación

9. Prueba (verificación) y depuración

10. Documentación y mantenimiento

Page 5: Clase 3-algoritmos

Análisis del problema• Requiere que el problema sea comprendido claramente.

• El propósito del análisis de un problema es ayudar en la comprensión de lanaturaleza del problema.

Definición del problema• Realizar una clara definición, donde se contemple exactamente lo que debe

hacer el programa y el resultado o solución deseada.

• La computadora requiere especificaciones detalladas de Entrada y Salida.¿Qué entradas se requieren? (tipo y cantidad) ¿Cuál es la salida deseada? (tipoy cantidad) ¿Qué método produce la salida deseada?.

• Diseño de la solución

• Establecer cómo hace el programa la tarea solicitada. Los métodos máseficaces para el proceso de diseño se basan en el conocido por divide yvencerás. Es decir, la resolución de un problema complejo se realiza dividiendoel problema en subproblemas (módulos).

• Herramientas de programación

• Las más comunes son los diagramas de flujo (flowchart) y pseudocódigo.

• Los primeros es una representación gráfica de un algoritmo.

• Los segundos son donde las instrucciones se escriben en palabras similares alinglés o español, que facilitan tanto la escritura como la lectura de programas.

Page 6: Clase 3-algoritmos

Codificación

• Es la escritura en un lenguaje de programación de la representación dealgoritmos desarrollada en las etapas precedentes.Dado que el diseño deun algoritmo es independiente del lenguaje de programación utilizadopara su implementación, el código puede ser escrito con igual facilidad enun leguaje o en otro.

Compilación

• El programa fuente debe ser traducido a lenguaje máquina, este procesose realiza con el compilador y el sistema operativo que se encargaprácticamente de la compilación.

• Prueba (verificación) y depuración. La verificación de un programa es el proceso de ejecución

• Documentación y mantenimiento.

Page 7: Clase 3-algoritmos

1. Debe ser preciso e indicar el orden de realización de cada paso.

2. Debe estar definido.

3. Debe ser finito.

Diseño descendente Descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples que puedan ser implementados para su solución en la computadora. Los problemas complejos se pueden resolver eficazmente con la computadora cuando se dividen en subproblemas que sean más fáciles de solucionar que el original.

Refinamiento por pasos El problema se comprende más fácilmente al dividirse en partes más simples. Las modificaciones son más fáciles.

Características de los algoritmo

Page 8: Clase 3-algoritmos

Herramientas de programación Diagrama de flujo Es una de las técnicas de representación gráfica de algoritmos. Utiliza símbolos. Los pasos del algoritmo son escritos en esos símbolos unidos por flechas [líneas de flujo] que indican la secuencia en que se deben ejecutar.

Pseudocódigo Es un lenguaje de especificación [descripción] de algoritmos. Hace el paso de codificación final.

Page 9: Clase 3-algoritmos

Recomendaciones para el diseño de Diagramas de Flujo

- Se deben se usar solamente líneas de flujo horizontales y/o verticales.- Se debe evitar el cruce de líneas utilizando los conectores.- Se deben usar conectores solo cuando sea necesario.- No deben quedar líneas de flujo son conectar.- Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.- Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.

Page 10: Clase 3-algoritmos

• Pseudocódigo

• Es un lenguaje de especificación [descripción] de algoritmos.

• Hace el paso de codificación final.

• Utilización de palabras reservadas en inglés paraepresentar acciones sucesivas.

if‐then‐else

while‐end

repeat‐until

Page 11: Clase 3-algoritmos

Ejemplo Este ejemplo presenta el análisis del problema y el diseño del algoritmo.

• Leer el radio de un círculo , calcular su superficie y la longitud de la circunferencia. Análisis:

• Las entradas de datos en este problema se concretan en el radio del círculo. Las salidas serán la superficie y la circunferencia.

• Entradas: Radio del círculo [varible RADIO] • Salidas: Superficie del círculo [variable AREA] y Circunferencia del círculo [variable

CIRCUNFERENCIA] • Variables: RADIO, AREA, CIRCUNFERENCIA • Diseño del algoritmo:

Diseño descendente y Refinamiento por pasos • El problema de cálculo de la circunferencia y superficie de un círculo se puede

descomponer en subproblemas más simples: • Leer datos de entrada. • Calcular superficie y longitud de circunferencia. • Escribir resultados [datos de salida].

Page 12: Clase 3-algoritmos

Diseño descendente [Subproblemas] Refinamiento

Leer radio Leer radio

Calcular superficie Superficie = 3.141592 * radio ^ 2

Calcular circunferencia Circunferencia = 2 * 3.141592 * radio

Escribir resultados Escribir radio, superficie, circunferencia

Page 13: Clase 3-algoritmos

Diagrama de flujo

Page 14: Clase 3-algoritmos

Desarrolla el siguiente ejemplo

¿Qué hacer para ver la película “El Gladiador"?

Ir al cine

Comprar una entrada

Ver la película

Regresar a casa

1. Inicio

2. Ver la cartelera de cine en Internet

3. Sino proyectan “El Gladiador"

entonces decidir por otra película

4. Si proyectan “El Gladiador" ir al cine

5. Si hay fila entonces formarse

mientras haya personas delante hacer

avanzar en la fila

si existen asientos disponibles entonces

comprar una entrada

encontrar el asiento correspondiente

mientras proyectan la película hacer ver la película

5. Abandonar el cine

6. Volver a casa

7. Fin

Page 15: Clase 3-algoritmos

Tarea para la próxima clase 21 de Sept.

Elaborar utilizando las herramientas de diagrama de flujo un algoritmos para solucionar algún problema de las asignaturas de tu carrera

Realizar un algoritmo con la herramienta de diagrama de flujo utilizando la variable tiempo o reloj como principal para recibir la clase de computacion

Prepara tu explicación en Power Point y súbelo a tu pagina WEB en www.Mex.tl

Explicar en la proxima clase como se llego al resultado

Page 16: Clase 3-algoritmos

Diagramas ComplejosDiagrama de flujo que Rellena una matriz cuadrada de 7*7, y calcula la suma de cada renglón o fila, y cada columna, y luego las almacena en un vector.

Page 17: Clase 3-algoritmos

Algoritmos sencillos

Page 18: Clase 3-algoritmos

Suponga que un individuo desea invertir su capital en un banco ydesea saber ¿Cuánto dinero ahorra después de un mes, si elbanco paga a razón de 2% mensual?

Page 19: Clase 3-algoritmos

Un vendedor recibe un sueldo base mas un 10 % extra por comisión de susventas, el vendedor desea saber cuanto dinero obtendrá por concepto decomisiones por las tres ventas que realiza en el mes, y el total que recibirá enel mes.

Page 20: Clase 3-algoritmos

Una tienda ofrece un descuento del 15% sobre el total de lacompra, y un cliente desea saber cuanto deberá pagarfinalmente por su compra.

Page 21: Clase 3-algoritmos

Un maestro desea saber que porcentaje de hombres y queporcentaje de mujeres hay en un grupo de estudiantes.

Page 22: Clase 3-algoritmos

Indique si una persona puede participar o no en las eleccionesdel 2012.

Page 23: Clase 3-algoritmos

Imprime un conteo del 0 al 100

Page 24: Clase 3-algoritmos

La resolución de problemas con la computadorapor estos métodos ya sea los diagramas deflujos o por medio de seudocódigo es unaforma de pensar muy útil para resolverproblemas complejos en nuestra vida diaria yno solo aprender contenidos de memoria si nopor estos métodos descomponer elaprendizaje y asimilar correctamente loaprendido


Recommended