Algoritmos diagrama-de-flujo
Upcoming SlideShare
Loading in...5
×
 

Algoritmos diagrama-de-flujo

on

  • 361 views

 

Statistics

Views

Total Views
361
Views on SlideShare
361
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Algoritmos diagrama-de-flujo Algoritmos diagrama-de-flujo Presentation Transcript

  • Cognos Informática Educativa
  •  Es un conjunto finito de instrucciones que especifican una secuencia de operaciones a realizar en orden para resolver un problema específico. En otras palabras, un algoritmo es un método para la solución de problemas. Cognos Informática Educativa
  •  Secuencialidad Ausencia de Ambigüedades Generalidad Limitaciones Cognos Informática Educativa
  •  Se debe especificar sin lugar a dudas la secuencia a utilizar. Un algoritmo debe tener una instrucción inicial única y un sucesor único en cada secuencia. Las instrucciones son llevadas a cabo de arriba hacia abajo a menos que las mismas especifiquen lo contrario. Las entradas son las partidas de datos presentadas al algoritmo. Las salidas son partidas de datos procesados que son el resultado de la ejecución un programa basado en el algoritmo. Cognos Informática Educativa
  •  En algoritmo debe ser defino, claro, preciso y no ambiguo. La representación de cada paso de un algoritmo debe dar lugar a una sola interpretación posible. Esta condición significa que cada vez que se presente para su ejecución u algoritmo con los mismos datos de entrada, se obtendrán los mismos resultados. Las instrucciones de un algoritmo debe ordenar a la computadora que solo lleve a cabo tareas que sea capaz de hacer. Una computadora no puede efectuar una instrucción si tiene información insuficiente o si el comando no está definido. Cognos Informática Educativa
  •  Un algoritmo se puede realizar para varios problemas que se relacionan entre sí. Un algoritmo se aplica a un problema o clase de problemas específicos; el rango de las entradas o dominios se tiene que definir previamente, ya que está determinado el alcance o la generalidad del algoritmo. Cognos Informática Educativa
  •  Un algoritmo es finito en tamaño y tiempo. La ejecución de un algoritmo programado debe finalizar después de que se haya llevado a cabo una cantidad finita de operaciones. Cognos Informática Educativa
  •  La clase o el conjunto de datos y condiciones para las cuales un algoritmo trabaja concretamente se llama dominio. Cuando se trata de resolver cualquier problema es necesario definir el dominio del algoritmo y después verificar que trabaja para todos los casos que se encuentran dentro del dominio. Es necesario incluir en el dominio todas las situaciones similares, pero los casos remotos o poco probables se permiten omitir. Cognos Informática Educativa
  •  Errores del dominio: Se presentan cuando se no han especificado todas las situaciones que se pueden presentar en la práctica o se han descuidado la apreciación de su importancia. A medida que se presenta el problema, se tiene que clasificar y hay tres opciones:1. Ignorarlo porque es improbable y quizás nunca ocurra.2. Restringir el dominio del algoritmo para excluirlo.3. Corregir el algoritmo. Cognos Informática Educativa
  •  Son aquellos errores que se detectan, después que se ha definido en forma adecuada el dominio de un algoritmo, en la etapa de prueba o verificación. se deben principalmente a las siguientes causas:1. Etapas incorrectas.2. Secuencia incorrecta de etapas3. El criterio de elección de un algoritmo debe hacerse en base a criterios tales como:a) Que el algoritmo sea simple, es decir, fácil de entender y de escribir.b) Que el algoritmo sea eficiente. Cognos Informática Educativa
  •  La heurística proporciona un esquema o plan para abordar los problemas poco conocidos, mejora la capacidad de crear soluciones y asegura que el método que se va a usar sea eficiente. En la etapa de planificación es donde se tiene la oportunidad de comparar métodos y seleccionar el más adecuado. Cognos Informática Educativa
  •  ¿ Cómo se pueden resolver los problemas para los que no hay un método establecido o para los cuales conocemos un algoritmo?. Cognos Informática Educativa
  •  Un método heurística para diseñar algoritmo es el denominado DIVIDE AND CONQUER(Divide y Venceras), el cual es una técnica TOP- DOWN(Arriba-Abajo). Este método permite implementar la segmentación, descomposición de un problema largo y complejo en problemas independientes más pequeños y fáciles de resolver que el problema de partida. La técnica consiste en varias etapas. Cognos Informática Educativa
  • PP1 P2 P3 Cognos Informática Educativa
  •  Si un sub-problema es grande, por P1 descomposición y continuando hasta que resulten de la descomposición sub -problemas fácilmente resolubles. P1.1 P1.2 P1.3 Cognos Informática Educativa
  •  El diseño del algoritmo que resuelve un problema, realizado con esta técnica recibe el nombre de DISEÑO DESCENDENTE y resulta en algoritmo muy legibles, claros, fáciles de entender, seguir y corregir. El diseño de un algoritmo no se hace de una sola vez, sino que se va resolviendo en una secuencia de pasos ( llamados PASOS DE REFINAMIENTO). En cada paso el problema es refinado agregando detalles significativos, por lo que el método se conoce como: MÉTODO DE LOS REFINAMIENTOS SUCESIVOS. Cognos Informática Educativa
  • CONSTRUCCIÓN DEL EDIFICIOCONFECCICÓN CONTRATACIÓN DIRECCIÓN COMPRA DE DE LOS DEL DE LA MATERIALES PLANOS PERSONAL OBRA Cognos Informática Educativa
  • CONFECCIÓN DE LOS PLANOS APROBACIÓN ELABORACIÓN APROBACIÓN DISEÑO DEL DEL DE LOS DE LOSANTEPROYECTO ANTEPROYECTO PLANOS PLANOS Cognos Informática Educativa
  • CONTRATACIÓN DEL PERSONAL ANÁLISIS PEDIDO DE REDACCIÓN DE LOS ENTREVISTASCURRICULUM DE LOS CURRÍCULUM PERSONALES VITAE CONTRATOS VITAE Cognos Informática Educativa
  • COMPRA DE MATERIALES CÁLCULO PEDIDO SELECCIÓN DE DE DEMATERIALES PRECIOS PROVEEDORES Cognos Informática Educativa
  •  Al utilizar el refinamiento por pasos el diseñador de un algoritmo debe saber donde detenerse, es decir, debe saber cuando un paso específico del algoritmo es lo suficientemente claro para no necesitar más refinamiento. Se necesita CONOCER LAS CAPACIDADES DE UN PROCESADOR no sólo para terminar los refinamientos, sino para dirigir la forma en que el refinamiento avanza. Cognos Informática Educativa
  •  Una computadora puede interpretar cualquier cosa expresadas de manera adecuada en un lenguaje de programación. Así el diseñador de un algoritmo de computadora puede orientar los pasos y la terminación del refinamiento hacia el tipo de lenguaje que se trate. Cognos Informática Educativa
  •  Los principios metodológicos básicos de la programación estructurada son los de subdividir el problema inicial o de partida en partes manejables para su análisis y hacer de esta manera que se agilice el proceso de entender el problema y la solución. Cognos Informática Educativa
  • Básicamente, estas subdivisiones deseadas( llamadas módulos) deben satisfacer los siguientes requisitos:1. Los módulos deben estas jerarquizados.2. Deben ser pequeños y sencillos.3. Se deberán utilizar tantos módulos de menor jerarquía como sea necesario para cumplir con la restricción de ser pequeños y sencillos.4. Se deberán usar las estructuras de control y datos adecuadas para cumplir con el requisito de pequeños y sencillos.5. Los módulos deben ser legibles para cualquier persona aunque tenga solamente conocimientos elementales de programación. Cognos Informática Educativa
  • Como la meta es escribir algoritmos que sean procesados en una computadora, se va a producir un lenguaje de diseño adecuado.Se llamará LENGUAJE DE DESCRIPCIÓN DE PROGRAMAS a la herramienta que permitirá diseñar programas de codificación. Cognos Informática Educativa
  • Este pseudo- lenguaje tiene las siguientes características:1. Permite expresar de manera informal las estructuras de2. Permite expresar las ideas en frases del lenguaje propio o natural.3. Es similar al lenguaje de programación pero no está ligado a ninguna regla formal de sintaxis como aquellos.4. No es un lenguaje compilable5. Por convención se hace un sangrado en el texto que ayuda a la percepción visual de la lógica del diseño.6. Permite expresar diseños de fácil comprensión que podrá convertirse sin dificultad a código en el lenguaje de implementación.7. El pseudo- código generado es más fácil de cambiar y corregir que el código del programa. Cognos Informática Educativa
  •  Un diagrama de flujo es otra técnica de diseño de algoritmos. Consiste en una serie de símbolos que denotan acciones, decisiones o procedimientos que se unen mediante flechas y conectores. Esta representación nos ayudará a conocer la información que tenemos, donde la tenemos, que debemos hacer con ella y como presentarla. Debe tener las cualidades de sencillez, claridad y normalización en su diseño. Cognos Informática Educativa
  • • Un diagrama de flujo representa la esquematización gráfica de un algoritmo.• En realidad muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema.• Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún lenguaje de programación.• Si el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje de programación es relativamente simple y directo.• A continuación, presentamos los símbolos que utilizaremos y una explicación de los mismos. Estos satisfacen las recomendaciones de la ISO y la ANSI. Cognos Informática Educativa
  • Símbolo utilizado para marcar el inicio y el fin del diagrama flujo.Símbolo utilizado para introducir los datos de entrada. Expresalectura.Símbolo utilizado para representar un proceso. En su interior seexpresan asignaciones, operaciones aritméticas, cambios de valorde celdas en memoria, etc.Símbolo utilizado para representar una decisión. En su interior sealmacena una condición y dependiendo del resultado de laevaluación de la misma se sigue por una de las ramas o caminosalternativos: verdadero o falso. Cognos Informática Educativa
  • Símbolo utilizado para representar la impresión de unresultado. Expresa escritura.Símbolo utilizado para expresar conexión dentro de una mismapágina.Símbolos utilizados para expresar la dirección del flujo deldiagramaSímbolo utilizado para expresar conexión entre páginas diferentes. Cognos Informática Educativa
  • • Debemos recordar que un diagrama de flujo debe ilustrar gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema.• Los símbolos colocados adecuadamente, permiten crear una estructura gráfica flexible que ilustra los pasos a seguir para alcanzar un resultado específico.• El diagrama de flujo facilitará más tarde la escritura del programa en algún lenguaje de programación. Cognos Informática Educativa
  • 1. Todo diagrama de flujo debe tener un inicio y un fin.2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas, verticales y horizontales.3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben estar conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin de diagrama. Cognos Informática Educativa
  • 2. El diagrama de flujo debe ser construido de arriba hacia abajo (top-down) y de izquierda a derecha (right to left).3. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación.4. Es conveniente cuando realizamos una tarea compleja poner comentarios que expresen o ayuden a entender lo que hicimos.7. Si el diagrama de flujo requiere más de una hoja para su construcción, debemos utilizar los conectores adecuados y enumerar las páginas convenientemente.8. No puede llegar más de una línea a un símbolo. Cognos Informática Educativa
  • inicio Lectura de DatosProcesamiento de Datos Impresión de Resultados fin Cognos Informática Educativa
  • Diseñar un algoritmo correspondiente que dado como dato la calificación de un alumno en un examen escriba “Aprobado” si su calificación es mayor que 8 y “Reprobado” en caso contrario. inicio CAL CAL >8 Aprobado Reprobado fin Cognos Informática Educativa
  • Las estructuras lógicas básicas necesarias para confeccionar un programa se reduce en tres: SECUENCIALES, SELECTIVAS Y REPETITIVAS.1. Estructuras secuenciales Estructura DO - END ( INICIO - FIN) DO acción A acción B acción C END Cognos Informática Educativa
  • 2. Estructuras selectivasLas estructuras algorítmicas selectivas que se utilizan para la toma de decisiones lógicas las podemos clasificar de la siguiente manera:SI ENTONCES que es una estructura selectiva simple.SI ENTONCES / SINO que es una estructura selectiva dobleSI MÚLTIPLE que es una estructura selectiva múltiple. Aquí podemos observar una estructura SI ENTONCES/SINO la cual permite que el flujo del diagrama se bifurque por dos ramas diferentes en el punto de la toma de decisiones.Cognos Informática Educativa
  • A continuación se muestran las otras estructuras selectivas Cognos Informática Educativa
  • Estructuras repetitivasEstructura repetitiva DOWHILE (mientras - hacer) DOWHILE condición acción1 acción2 ......... END DO Cognos Informática Educativa
  •  Estructura REPETIR La estructura REPETIR es la estructura algorítmica adecuada para utilizar en un ciclo que se ejecutará un número definido de veces. Por ejemplo cuando calculamos las nóminas de una empresa, tenemos que sumar los sueldos de N empleados de la misma. Podemos calcular el promedio de calificaciones de un grupo de alumnos sumando todas las calificaciones y dividir entre el número de alumnos o también sacar el promedio de cada alumno según sus calificaciones mensuales. En todos los caso sabemos de antemano cuántas veces tenemos que repetir una determinada operación. Cognos Informática Educativa
  • Calcular los promedios de un numero X de alumnos, cada uno con 3 notas, se debe mostrar por pantalla si esta aprobado o reprobado (usaremos la escala que se usa en Chile, del 1 al 7,  de un 4 para arriba esta aprobado):1.- Vemos que procesos se deben realizar: a) Declarar (“nombrar”) variables a utilizar: Nota1,Nota2,Nota3,Suma,Promedio b) Ingresar notas c) Sumar las notas d) El resultado de la suma, dividirlo por 3 e) Ver si este nuevo resultado es mayor o igual a 4 f) Si es mayor, mostrar aprobado, de lo contrario mostrar reprobado e) Pregunta si se quieren ingresar las notas de otro alumno g) Si la respuesta es si, volver al paso “b” (no es necesario volver al a, ya que las variables están declaradas). Cognos Informática Educativa
  • Proceso Promedio NOTA1<-0; NOTA2<-0; NOTA3<-0; PROMEDIO<-0; SUMA<-0; Leer NOTA1; Leer NOTA2; Leer NOTA3; SUMA<-NOTA1+NOTA2+NOTA3; PROMEDIO<-SUMA/3; Si PROMEDIO>=4 Entonces Escribir APROBADO; Sino Escribir REPROBADO; FinSiFinProceso Cognos Informática Educativa