Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de...

20
1 Teoría Nº 4 üConceptos Básicos de Algoritmia üEstructuras de Control üDiagrama de Flujo Primer Cuatrimestre 2019

Transcript of Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de...

Page 1: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

1

Teoría Nº 4

ü Conceptos Básicos de Algoritmia

ü Estructuras de Control

ü Diagrama de Flujo

Primer Cuatrimestre 2019

Page 2: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

2

Una computadora es, esencialmente, una HERRAMIENTA.

Una herramienta sirve para operar la conversión de una materia prima en un producto mediante un dispositivo que desarrolla un proceso; el proceso a su vez, lo determina una persona.

Conceptos Previos de Algoritmia

• materia prima

• producto

• dispositivo

• proceso

datos

información

componentes de la computadora

PROBLEMA

PROBLEMA RESUELTO

?

Analogía

UNSL – Resolución de Problemas y Algoritmos - 2019

Page 3: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

3

Conceptos Previos de Algoritmia

• Escribir un guión

• Elegir el director

• Buscar los actores

• Buscar los expertos

• Rodar la película

Analogía

Hacerunapelícula Hacerunprogramaparacomputadora

• Escribir un guión

Entrada Salida

Proceso

Algoritmo

Programa Selección del Lenguaje de Programación

UNSL – Resolución de Problemas y Algoritmos - 2019

Page 4: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

4

Conceptos Previos de Algoritmia Algortimo

Algoritmo (del árabe al-Khowârizmî sobrenombre del célebre matemático árabe Mohámed ben Musa) según la Real Academia Española (http://www.rae.es/):

•  Conjunto ordenado y finito de operaciones que permite hallar la solución a un problema.

•  Método y notación en las distintas formas del cálculo.

Entérminosllanos,unAlgoritmoesunasucesióndeinstruccionesopasosquepermitenresolverunproblema.

Un Programa es la especificación de un algoritmo en un lenguaje deprogramaciónparaquepuedaserejecutadoporunprocesador

UNSL – Resolución de Problemas y Algoritmos - 2019

Page 5: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

5

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 – Resolución de Problemas y Algoritmos - 2019

Page 6: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

6

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 – Resolución de Problemas y Algoritmos - 2019

Page 7: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

7

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 – Resolución de Problemas y Algoritmos - 2019

Page 8: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

8

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 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?

UNSL – Resolución de Problemas y Algoritmos - 2019

Page 9: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

9

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 – Resolución de Problemas y Algoritmos - 2019

Page 10: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

10

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 – Resolución de Problemas y Algoritmos - 2019

Page 11: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

11

AKKleasigno2

IngresounvalorenI

APP[K]leasignoI

AIleasigno15

I<=20

MuestrePP[I]

AIleasignoI+2

V

F

C

F

Diagrama de Flujo

UNSL – Resolución de Problemas y Algoritmos - 2019

Page 12: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

12

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 – Resolución de Problemas y Algoritmos - 2019

Page 13: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

13

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 – Resolución de Problemas y Algoritmos - 2019

Page 14: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

14

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 – Resolución de Problemas y Algoritmos - 2019

Page 15: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

15

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 – Resolución de Problemas y Algoritmos - 2019

Page 16: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

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.

16

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:

Diagrama de Flujo

UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación – Res. De Problemas y Algortimos

No corresponde

Page 17: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

17

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

UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación – Res. De Problemas y Algortimos

C

t111

2 V

F

t112

t121

t122

Page 18: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

18

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

UNSL - Fund. de la Informática -Int. a la Computación - Int.a la Programación – Res. De Problemas y Algortimos

No corresponde

Page 19: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

19

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 – Resolución de Problemas y Algoritmos - 2019

Page 20: Teoría Nº 4 - Universidad Nacional de San Luis · Conceptos Previos de Algoritmia Paradigmas de Programación Los lenguajes de programación proporcionan un modelo abstracto de

20 UNSL – Resolución de Problemas y Algoritmos - 2018