teoría nº 3 - universidad nacional de san...
TRANSCRIPT
1
Teoría Nº 3
ü Conceptos Básicos de Algoritmia
ü Estructuras de Control
ü Diagrama de Flujo
Primer Cuatrimestre 2020
2
Conceptos Previos de Algoritmia ParadigmasdeProgramación
Los lenguajes de programación proporcionan un modelo abstracto de lacomputadoraque lepermitenal programador concentrarse en el diseñode losalgoritmos independientemente de las características de la arquitectura de lacomputadora.
Sehandesarrolladovariosparadigmasdeprogramaciónqueofrecendiferentesmodelospara visualizar qué es unproblemay cómo representar el procesodesoluciónatravésdeunprograma.
De acuerdo al paradigma seleccionado, el programador modifica suconceptualizacióndelosproblemasaresolver,delosresultadosesperadosydelosposiblesalgoritmos.
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
3
Conceptos Previos de Algoritmia ParadigmasdeProgramación
• Programación Estructurada
• Programación Orientada a Objetos
• Programación Orientada a eventos
• Programación a aspectos
• Programación Concurrente
• Programación Funcional
• Programación Lógica
Estructuras de Control
Secuencia
Repetición
Selección
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
4
Conceptos Previos de Algoritmia EstructurasdeControl
• Secuencia
Instrucciones ordenadas en una sucesión, es decir, después de ejecutar la acción n se continua con la acción n+1
• Selección (Condicional)
Permite o impide la ejecución de instrucciones según el valor que se obtiene al evaluar una condición
• Repetición (Iteración)
Permite ejecutar instrucciones repetidamente dependiendo del valor de una condición que se evalúa también repetidamente.
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
5
Conceptos Previos de Algoritmia EstructurasdeControl-Ejemplo
Escriba la primer nota (A) Escriba la segunda nota (B)
Escriba la tercer nota (C)
• Hacer un algoritmo que calcule el promedio de 3 notas de un alumno
Sumar A, B y C (SUMAR) Dividir al resultado SUMAR por 3 (PROMEDIO) • Modificar el algoritmo de manera
tal que informe si aprueba o no Si PROMEDIO es mayor o igual que 7 entonces
Informar “APRUEBA” • Modificar el algoritmo de manera
tal que, para cada uno de los alumnos del curso, calcule el promedio e informe si aprueba.
Mientras haya alumno del curso a quien considerar
Repita desde “Mientras”
¿Estructuras de Control?
Sino Informar “NO APRUEBA”
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
6
Cuando se formula la resolución de un problema, no sólo se expresa el conjunto de tareas a realizar sino que también se define implícitamente un orden en ellas. Dicho orden se puede bosquejar gráficamente y de esta manera abstraerse del detalle de las tareas y concentrarse en el orden en que estas deberían realizarse.
DIAGRAMA DE FLUJO DEL ALGORITMO
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
7
El diagrama de flujo de un algoritmo muestra gráficamente la estructura de la resolución del problema.
Estructura que adquieren el conjunto de tareas o acciones a realizar para la resolución de un problema.
ESTRUCTURAS DE CONTROL
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
8
AKKleasigno2
IngresounvalorenI
APP[K]leasignoI
AIleasigno15
I<=20
MuestrePP[I]
AIleasignoI+2
V
F
C
F
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
9
Tipos de estructuras de Control
4 Secuencial: las tareas (acciones) se deben realizar en el orden en que se escriben, es decir primero una, luego otra desde la primera hasta la última (o de arriba hacia abajo).
Gráfica asociada:
tarea i
tarea i+1
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
10
4 Condicional: las tareas (acciones) se realizaran dependiendo de cierta situación, estado previo o condición que se debe cumplir.
Gráfica asociada:
tarea i tarea j
? F V
Tipos de estructuras de Control
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
11
4 Repetición (Iteración): una tarea o conjunto de tareas (acciones) se deben realizar en forma repetitiva.
tarea i
? V
F
Gráfica asociada:
Tipos de estructuras de Control
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
12
Ejemplo: Dibujar la figura.
Dibujar la base, que es un rectángulo.
Dibujar el poste, que es una línea.
Dibujar el farol, que es un rombo.
C
F
Algoritmo: t1 - Dibujar la base, que es un rectángulo. t2 - Dibujar el poste, que es una línea. t3 - Dibujar el farol, que es un rombo.
Tipos de estructuras de Control
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
13
t1 - Repetir 2 veces, (t111 - t112 - t121 - t122). t211 - Girar a la derecha 90 grados. t212 - Avanzar 20 pasos. t213 - Girar a la izquierda 90 grados. t22 - Avanzar 30 pasos. t31 - Dibujar el borde inf. derecho del rombo. t32 - Dibujar el borde sup. derecho del rombo. t33 - Dibujar el borde sup. izquierdo del rombo. t34 - Dibujar el borde inf. izquierdo del rombo.
Algoritmo:
Repetir 2 veces, (t111 - t112 - t121 - t122).
Girar a la derecha 90 grados.
C
F
Avanzar 20 pasos.
Girar a la izquierda 90 grados.
Avanzar 30 pasos.
Dibujar el borde inf. derecho del rombo.
Dibujar el borde inf. izq. del rombo.
Dibujar el borde sup. izq. del rombo.
Dibujar el borde sup. derecho del rombo.
Diagrama de Flujo
No corresponde
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
14
t1 - Repetir 2 veces, (t111 - t112 - t121 - t122). t211 - Girar a la derecha 90 grados. t212 - Avanzar 20 pasos. t213 - Girar a la izquierda 90 grados. t22 - Avanzar 30 pasos. t31 - Dibujar el borde inf. derecho del rombo. t32 - Dibujar el borde sup. derecho del rombo. t33 - Dibujar el borde sup. izquierdo del rombo. t34 - Dibujar el borde inf. izquierdo del rombo.
Versión 4:
Diagrama de Flujo C
t111
2 V
F
t112
t121
t122
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
15
Ejemplo: Dados cuatro números A,B,C y D determinar cual es el mayor de ellos e informarlo. Algoritmo t1 - Si A es mayor que B, C y D, informar A. t2 - Si B es mayor que A, C y D, informar B. t3 - Si C es mayor que A,B y D, informar C. t4 - Si D es mayor que A,B y C, informar D.
Si A es mayor que B, C y D, informar A.
Si B es mayor que A,C y D, informar B.
C
F
Si C es mayor que A,B y D, informar C.
Si D es mayor que A,B y C, informar D.
Diagrama de Flujo
No corresponde
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
16
informar A A > (B,C y D)
C
B > (A,C y D) informar B
F
V F
V F
C > (A,B y D) informar C
V F
D > (A,B y C) informar D
V F
Diagrama de Flujo
UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación
17 UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación