Teoría Nº 3 - Departamento de Informática

18
Fund. de la Informática -Int. a la Computación - Int.a la Programación 1 Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control Diagramas de Flujo Primer Cuatrimestre 2016 En la vida no hay cosas que temer, sólo hay cosas que comprender Marie Curie

Transcript of Teoría Nº 3 - Departamento de Informática

Page 1: Teoría Nº 3 - Departamento de Informática

Fund. de la Informática -Int. a la Computación - Int.a la Programación 1

Teoría Nº 3

ü Conceptos Básicos de Algoritmia

ü Estructuras de Control

ü Diagramas de Flujo

Primer Cuatrimestre 2016

En la vida no hay cosas que temer, sólo hay cosas que comprender

Marie Curie

Page 2: Teoría Nº 3 - Departamento de Informática

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 - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 3: Teoría Nº 3 - Departamento de Informática

3

Conceptos Previos de Algoritmia

• Escribir un guión

• Elegir el director

• Buscar los actores

• Buscar los expertos

• Rodar la película

Analogía

Hacer  una  película   Hacer  un  programa  para  computadora  

• Escribir un guión

Entrada Salida

Proceso

Algoritmo

Programa Selección del Lenguaje de Programación

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 4: Teoría Nº 3 - Departamento de Informática

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.

En  términos  llanos,  un  Algoritmo  es  una  sucesión  de  instrucciones  o  pasos  que  permiten  resolver  un  problema.  

Un   Programa   es   la   especi=icación   de   un   algoritmo   en   un   lenguaje   de  programación  para  que  pueda  ser  ejecutado  por  un  procesador  

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 5: Teoría Nº 3 - Departamento de Informática

5

Conceptos Previos de Algoritmia Paradigmas  de  Programación  

Los   lenguajes   de   programación   proporcionan   un   modelo   abstracto   de   la  computadora  que   le  permiten  al   programador   concentrarse   en   el   diseño  de   los  algoritmos   independientemente   de   las   características   de   la   arquitectura   de   la  computadora.    

Se   han   desarrollado   siete   paradigmas   de   programación   que   ofrecen   diferentes  modelos  para   visualizar   qué   es   un  problema  y   cómo   representar   el   proceso  de  solución  a  través  de  un  programa.      

De   acuerdo   al   paradigma   seleccionado,   el   programador   modi=ica   su  conceptualización  de  los  problemas  a  resolver,  de  los  resultados  esperados  y  de  los  posibles  algoritmos.  

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 6: Teoría Nº 3 - Departamento de Informática

6

Conceptos Previos de Algoritmia Paradigmas  de  Programació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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 7: Teoría Nº 3 - Departamento de Informática

7

Conceptos Previos de Algoritmia Estructuras  de  Control  

•  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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 8: Teoría Nº 3 - Departamento de Informática

8

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 9: Teoría Nº 3 - Departamento de Informática

9

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 10: Teoría Nº 3 - Departamento de Informática

10

A  KK  le  asigno  2  

Ingreso  un  valor  en    I  

A  PP[K]  le  asigno  I

A  I  le  asigno  15

I  <=  20

Muestre  PP[I]  

A  I  le  asigno  I  +  2  

V

F

C

F

Diagrama de Flujo

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 11: Teoría Nº 3 - Departamento de Informática

11

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 12: Teoría Nº 3 - Departamento de Informática

12

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 13: Teoría Nº 3 - Departamento de Informática

13

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 14: Teoría Nº 3 - Departamento de Informática

14

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 15: Teoría Nº 3 - Departamento de Informática

15

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

UNSL - Fund. de la Informática -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 16: Teoría Nº 3 - Departamento de Informática

16

C

t111 - t112 - t121 - t122

2

V

F 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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 17: Teoría Nº 3 - Departamento de Informática

17

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)

Page 18: Teoría Nº 3 - Departamento de Informática

18

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 -Introd.a la Computación -Introd.a la Programación (1er Cuatrimestre 2016)