principios y herramientas de programaciónjac/rpaak/downloads/teorias/rpa clase 1 parte 1.pdf · *...

8
11/3/2019 1 Dra. Jessica Andrea Carballido [email protected] Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Acerca del Cuatrimestre Clases: LUNES de 14.00 a 18.00 hs. MIÉRCOLES de 14.00 a 18.00 hs. 1er PARCIAL: Lunes 22 de abril 2do PARCIAL: Lunes 3 de junio RECUPERATORIO: Lunes 24 de junio Acerca del Cuatrimestre 3 Acerca de la cursada 4 2 parciales (con un único recuperatorio) 1 ejercicio obligatorio en máquina (fecha a definir) Coloquio (los que estén en condiciones de promocionar) 5 Materias de Programación Reforzar y desarrollar Competencias generales Comunicarse en forma oral y escrita Aprender con autonomía Administrar el tiempo Trabajar en Equipo 6 Objetivos de las Materias de Programación

Upload: others

Post on 28-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

1

Dra. Jessica Andrea Carballido [email protected]

Dpto. de Ciencias e Ingeniería de la Computación

UNIVERSIDAD NACIONAL DEL SUR

Acerca del Cuatrimestre

Clases:

LUNES de 14.00 a 18.00 hs.

MIÉRCOLES de 14.00 a 18.00 hs.

1er PARCIAL: Lunes 22 de abril 2do PARCIAL: Lunes 3 de junio RECUPERATORIO: Lunes 24 de junio

Acerca del Cuatrimestre

3

Acerca de la cursada

4

2 parciales (con un único

recuperatorio)

1 ejercicio obligatorio en máquina

(fecha a definir)

Coloquio (los que estén

en condiciones de promocionar)

5

Materias de Programación

Reforzar y desarrollar Competencias generales

• Comunicarse en forma oral y escrita

• Aprender con autonomía

• Administrar el tiempo

• Trabajar en Equipo

6

Objetivos de las Materias

de Programación

Page 2: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

2

Objetivos de las Materias

de Programación

Aprender Contenidos Conceptuales

Algoritmo

Programa

Lenguaje de Programación

Estructuras de Control

7

Reforzar y desarrollar Competencias específicas

• Dividir problemas en sub-problemas

• Diseñar algoritmos

• Utilizar un lenguaje de programación

8

Objetivos de las Materias

de Programación

Principal Objetivo de RPA

Contenidos de RPA

Diseñar ¿algoritmos? para resolver problemas de pequeña

escala

e implementarlos en programas

escritos en el lenguaje de programación Pascal,

cumpliendo con algunos criterios de calidad.

• Conceptos, principios y técnicas de programación

estructurada, diseño top-down y refinamiento paso a

paso.

• El lenguaje de programación Pascal.

9

Diseñar algoritmos para resolver problemas de pequeña

escala

e implementarlos en programas

escritos en el lenguaje de programación Pascal,

cumpliendo con algunos criterios de calidad.

Principal Objetivo de RPA

10

Problema Algoritmo

Programa Secuencia de pasos

para obtener la solución Traducción del algoritmo

en un leng. de

programación

Discrepancia

entre un estado inicial y un estado final.

Ejemplos:

• Encontrar el camino más corto desde casa hasta la universidad.

• Ganar un partido de damas.

• Aprobar una materia.

• Armar un rompecabezas.

• Encontrar el valor de una variable en una ecuación.

Page 3: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

3

Con una única solución:

* Sumar los números del 1 al 100

Con varias soluciones:

* Nombrar a tres actores argentinos

Sin solución o con infinitas soluciones

* División por cero

* 2x-1 = 3x + 3 - x - 4

En todo problema se pueden distinguir: Los datos.

La incógnita.

Reglas que los vinculan.

La resolución de un problema

comienza con la correcta identificación de cada uno de estos elementos.

La figura está formada por un triángulo y un

rectángulo. El rectángulo tiene 84 cm de

perímetro y la longitud de la base es el doble

que la altura. El triángulo es isósceles y tiene

64 cm de perímetro. ¿Cuál es el perímetro

de la figura completa?

La especificación es precisa.

La solución es única y objetiva.

El procedimiento puede variar, probablemente comience con un cambio de notación.

15

La figura está formada por un triángulo y un

rectángulo. El rectángulo tiene 84 cm de

perímetro y la longitud de la base es el doble

que la altura. El triángulo es isósceles y tiene

64 cm de perímetro. ¿Cuál es el perímetro

de la figura completa?

2a = b

2a + 2b = 84

b + 2c = 64

16

a

b

c

a

b

c

¿ 2c+2a+b ?

EL RESULTADO ES UNICO

La figura está formada por un triángulo y un

rectángulo. El rectángulo tiene N cm de

perímetro y la longitud de la base es el doble

que la altura. El triángulo es isósceles y tiene

M cm de perímetro. ¿Cuál es el perímetro de

la figura completa?

Es una generalización del problema anterior.

El problema ahora consiste en resolver el perímetro total para distintos valores de perímetros del rectángulo y del triángulo (esto es, de N y M respectivamente).

17

EL resultado DEPENDE de los valores de N y M

La figura está formada por un triángulo y un

rectángulo. El rectángulo tiene N cm de

perímetro y la longitud de la base es el doble

que la altura. El triángulo es isósceles y tiene

M cm de perímetro. ¿Cuál es el perímetro de

la figura completa?

2a = b

2a + 2b = N

b + 2c = M

18

a

b

c

a

b

c

¿ 2c+2a+b ?

Page 4: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

4

La figura está formada por un triángulo y un

rectángulo. El rectángulo tiene N cm de

perímetro y la longitud de la base es el doble

que la altura. El triángulo es isósceles y tiene

M cm de perímetro. ¿Cuál es el perímetro de

la figura completa?

2a = b

2a + 2b = N

b + 2c = M

19

a

b

c

a

b

c

¿ 2c+2a+b

? Despejando… N: perímetro del rectángulo.

M: perímetro del triángulo.

EL RESULTADO DEPENDE de los valores de N y M 20

¿ 2c+2a+b ?

N

Perimetro

M

N: perímetro del rectángulo.

M: perímetro del triángulo.

EL RESULTADO DEPENDE de los valores de N y M 21

¿ 2c+2a+b ?

N

Perimetro

M

Datos de entrada:

• N=18 y M=10.

Dato de salida?

Datos de entrada:

• N=6 y M=6

Dato de salida?

En RPA hallar la solución va a consistir en:

- Encontrar una secuencia de pasos que permitan pasar

de un estado inicial a un estado final (solución al

problema) de acuerdo a algunas restricciones.

- Traducir esa secuencia de pasos a un lenguaje

que la computadora pueda interpretar y ejecutar.

ALGORITMO

PROGRAMA

22

Problemas y

Soluciones

Algoritmos

Un algoritmo es una secuencia de instrucciones

que llevadas a cabo permiten resolver

una instancia de un problema.

• tiene que haber un problema bien especificado • tiene que haber un orden entre las instrucciones,

existe una única instrucción inicial y dada una instrucción en particular, es posible determinar con precisión, cuál es la que le sigue.

Es una definición general, no está ligada a la programación.

De acuerdo a esta definición una receta es un algoritmo,

una partitura musical o las instrucciones para armar un mueble

también lo son. 23

Algoritmo para preparar salsa Bechamel:

1. Derretir 50grs. de manteca con una pizca de sal en una ollita chiquita.

2. Agregar (fuera del fuego) 2 cucharadas de harina y ¼ litro de leche.

3. Revolver bien y colocar nuevamente sobre el fuego.

4. Cocinar 3 o 4 minutos hasta que espese, agregarle la pimienta y la nuez moscada.

5. Servir caliente.

Page 5: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

5

Algoritmo para activar una tarjeta de crédito:

1. Llama al 0-500-ACTIVAR (2284827)

2. Luego marca la opción 1, Activación y reactivación de tarjetas

3. Nuevamente la opción 1, Activación por primera vez, sustitución o reposición

4. Posteriormente la opción 3, para activación de Tarjeta de Crédito Persona Natural.

5. Ingresa los datos de seguridad que te solicita el operador automático y responde las preguntas de seguridad.

6. Colocando los datos correctos estarás activando en línea tu Tarjeta de Crédito Chip BBVA Banco Provincial.

7. Luego de ello, el servicio te permite opcionalmente asignar tu clave de cuatro dígitos para usarla en Cajeros Automáticos o para suscribirte a Provinet.

Desplazar un robot en un plano

desde una posición inicial hacia una posición destino.

26

Algoritmos

Qué sabe hacer?

Sabe moverse un bloque

hacia abajo, arriba,

izquierda, derecha.

Traza

izquierda izquierda izquierda

Traza

Traza

izquierda izquierda izquierda

Traza

izquierda izquierda izquierda

Page 6: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

6

Traza

¿Qué SABE hacer el robot?

izquierda n bloques

izquierda es una acción primitiva

n es un valor variable

32

Algoritmos

izquierda 3 bloques

abajo 2 bloques

Traza

izquierda 3 bloques

abajo 2 bloques

Traza

izquierda 3 bloques

abajo 2 bloques

Traza

izquierda 3 bloques

abajo 2 bloques

Traza

Page 7: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

7

izquierda 3 bloques

abajo 2 bloques

Traza

izquierda 3 bloques

abajo 2 bloques

Traza

¿Cuáles son las acciones primitivas?

izquierda n bloques

abajo m bloques

39

Algoritmos

Definición: Una primitiva es una acción

u operación, usada en un algoritmo o

programa, que es considerada básica.

izquierda 3 bloques

abajo 2 bloques

Si las primitivas fueran:

arriba, abajo, izq, der

que siempre se mueven

de a UN bloque

pero podemos repetir

Repetir 2 veces

abajo

Repetir 3 veces

izquierda

izquierda 1 bloque abajo 1 bloque derecha 2 bloques abajo 1 bloque izquierda 2 bloques arriba 1 bloque izquierda 2 bloques

abajo 1 bloque

42

Es una solución correcta pero ineficiente.

Buscamos soluciones correctas y eficientes.

Page 8: Principios y Herramientas de Programaciónjac/rpaAK/downloads/Teorias/RPA Clase 1 PARTE 1.pdf · * Sumar los números del 1 al 100 Con varias soluciones: * Nombrar a tres actores

11/3/2019

8

Notemos que para cada posición inicial y destino escribimos un algoritmo diferente.

Nuestra intención en el futuro será encontrar algoritmos generales.

Para este ejemplo un algoritmo general permitiría trasladar al robot desde cualquier posición origen O en el plano hacia cualquier posición destino D.

Un algoritmo es una secuencia de instrucciones,

comprensibles para quien tenga que ejecutarlas,

que permite resolver un problema.

• Tiene que haber un problema, • tiene que haber un orden entre las instrucciones, • y tiene que estar expresado a partir de un conjunto de

acciones primitivas. • Algunas acciones pueden depender de una condición, • y algunas acciones pueden ejecutarse iterativamente. En esta materia vamos a diseñar algoritmos que terminan en una cantidad finita de tiempo.

44

Aquellos que seran traducidos a un lenguaje

de programación se escriben en

PSEUDOCODIGO.

• Es un lenguaje bastante coloquial en español ó

inglés.

• Consta de un conjunto de frases y mínimas

restricciones.

• Provee un balance entre la precisión formal de un

lenguaje de programación y la informalidad y

legibilidad del lenguaje natural.

Len

gu

aje

N

atu

ral

Pseu

do C

ódig

o

Len

gu

aje

de

Pro

gra

mació

n