84
Algoritmo Nociones fundamentales

Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Embed Size (px)

Citation preview

Page 1: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

Nociones fundamentales

Page 2: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo

• Objetos y acciones elementales

• Esquemas condicionales

• Iteraciones

• Noción de algoritmo

• Objetos y acciones elementales

• Esquemas condicionales

• Iteraciones

Est

a p

rese

nta

ció

n

Page 3: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

Page 4: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

Preparación de un omelette de 6 huevos

a: romper seis huevos en un plato;

b: batir las claras y las yemas con un tenedor;

c: calentar aceite en una sartén al fuego;

d: cuando el aceite esté caliente, verter el contenido del plato;

e: quitar la sartén del fuego cuando la preparación esté hecha.

Cálculo de la media de tres números con una calculadora

a: pulsar la tecla C;

b: ingresar el primer número;

c: pulsar la tecla + ;

d: ingresar el segundo número;

e: pulsar la tecla +;

f: ingresar el tercer número;

g: pulsar la tecla / ;

h: pulsar la tecla 3;

i: pulsar la tecla = .

Enunciado 1 Enunciado 2

Page 5: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

Los enunciados 1 y 2 describen cada uno un cierto trabajo

Toda entidad capaz de entender un enunciado y de ejecutar el trabajo indicado

Proce

sador

En el caso de los enunciados 1 y 2, una persona que sepaleer y disponga de los utensilios necesarios, puede ser

un procesador adecuado

Page 6: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

El conjunto de utensilios necesarios para la ejecución del trabajo.

Entorn

o

Dado un procesador, el entorno es específico del trabajoa ejecutar. Sin embargo, la forma de realizar el trabajo,

depende a menudo de los utensilios puestos a disposición del procesador

Page 7: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

27,5027,50

a b

Entorno

11

11

11

11

11

11

1010

1010

1010

1010

1010

1010

10

NO

505050505050505050505050

505050505050505050505050

505050505050505050505050

505050505050505050505050

505050505050505050505050

1

Ejemplo:

b c

5020202020101010101010

5555555552222222222221111111111111

505050

50

101010101010101010101010101010101010

5555555555555

25252525252525252525

n

c

50

Tarea: Dar vuelto.

Page 8: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

La ejecución de un trabajo no elemental, supone ciertaprogresión hacia el fin deseado.

En los Enunciados 1 y 2 se distinguen las etapas a, b, c,...

Un suceso que modifica el entorno

Acció

n

Dada la acción a del Enunciado 1:

romper seis huevos en un plato.

Antes de ejecutar la

acción, el plato está vacío.

Después de ejecutar la acción, el plato contiene 6 yemas y 6 claras.

Page 9: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

La ejecución de una acción puede necesitar una observación del entorno (Ej.:Acción d, Enunc.1)

El procesador, en general, respeta la secuencia de las acciones. (Se verá cómo es posible romper

esa secuencia)

Ciertas acciones podrían ejecutarse al mismo tiempo (en paralelo). Ventaja: ganancia de tiempo.

Requeriría varios procesadores.

El enunciado de una acción puede aparecer varias veces en la descripción de un trabajo.

(Acciones c y e, Enunciado 2)

Sin embargo, el número de apariciones de una acción, no corresponde forzosamente a la

cantidad de ejecuciones de la misma.

Page 10: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Procesador, entorno, acciones

Sin embargo, el número de apariciones de una acción, no corresponde forzosamente a la

cantidad de ejecuciones de la misma.

Enunciado 3

x

y

repetir x 5 veces

y

z

22

Ejecución:

x 6y 2

Page 11: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

Page 12: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Acciones primitivas

En los Enunciados 1 y 2 se ha supuesto que el procesador sabía ejecutar las acciones enumeradas.

Para ese procesador, éstas son acciones primitivas.

Aquella cuyo enunciado es suficiente para que el procesador pueda ejecutarla sin

información adicional. Acc

ión

primiti

va

Page 13: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Acciones primitivas

En el Enunciado 3, el procesador no sabrá ejecutar la acción repetir 5 veces, si ésta no es una primitiva.

En caso de que sea una primitiva, ejecutará la secuencia: x, x, x, x, x.

Si no lo fuera, habrá que reemplazarla por la secuencia x, x, x, x, x.

Toda acción no primitiva, habrá de descomponerse en acciones primitivas.

Page 14: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Acciones primitivas

En el Enunciado 1, si el procesador es un niño, la acción a, romper seis huevos en un plato, puede no ser

suficientemente explícita. Será necesario descomponerla:

a: romper seis huevos en un

plato

Ejemplo:

a1 : poner seis huevos sobre la mesada

repetir

a2: tomar un huevo de la mesada

a3: romperlo y verter su contenido en el plato

a4: tirar las cáscaras a la basura

hasta que no queden huevos sobre la mesada.

En el Enunciado 1, si el procesador es un niño, la acción a, romper seis huevos en un plato, puede no ser

suficientemente explícita. Será necesario descomponerla:

Page 15: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Acciones primitivas

La descomposición efectuada utiliza un esquema repetitivo, que permite simplificar la representación de

la repetición de una secuencia de acciones.

Observación:

repetir acciones

hasta que condición

ejecutar acciones

evaluar condición

condición no realizada

condición realizada

Page 16: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

Page 17: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Uno de los métodos para obtener la descomposi-ción de una acción en acciones primitivas es el

Análisis descendente.

Metodología:

Dado un trabajo T descripto por un enunciado no primitivo, el análisis

descendente de T consiste en encontrar una descomposición formada por una

secuencia de enunciados, cuya ejecución realiza el trabajo T.

Anális

is

des

cenden

te

Page 18: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Representación:

(Ei) T (Ef)

(Ei 1) t1 (Ef 1) (Ei n) tn (Ef n)(Ei k) tk (Ef k). . . . . .

(Ef k-1) = (Ei k) (Ef k) = (Ei k+1)

Cada trabajo t k, pasa el entorno

de un estado (Ei k) a un estado (Ef k)

Para cada enunciado t k, hay dos posibilidades:

o bien t k es una acción primitiva, y se

detiene el análisis descendente para t k ;

o bien t k no es una acción primitiva, y se

descompone nuevamente t k.

t 1 1 t 1 2 t k 1 t k 2 t k 3

Page 19: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Ejemplo:

Tarea: Realizar la agrupación de cierto número de ejemplares de un documento de diez páginas que ha sido enviado a un servicio de fotocopiado. Para cada una de las páginas se ha reproducido aproxi-madamente una centena de ejemplares.

Entorno:

. Diez paquetes de hojas numeradas, apilados sobre un escritorio.

. Una grapadora

. Diez mesas numeradas de 1 a 10.

Page 20: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Page 21: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Competencias del procesador:

. Tomar y poner

. Ir de una mesa a otra (pasar de la mesa i a la mesa i + 1)

. Ir a una mesa de un número dado (reconocer igualdad de valores numéricos)

. Reconocer la presencia o ausencia de hojas sobre una mesa

. Grapar

Page 22: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Enunciado:

A partir de la pila que se encuen-tra en el escritorio, agrupar las

fotocopias.A

AB C

Repartir los paquetes a razón de un paquete por

mesa, tal que el paquete de hojas i quede en la mesa i.

Reunir y grapar los ejemplares y ponerlos

sobre el escritorio.

A

B C

Page 23: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

Page 24: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

A

B

C

Repetir B1: tomar el paquete situado encima de la pila sobre el escritorio B2: ir a la mesa cuyo número es el mismo que el de las hojas del paquete B3: poner el paquete sobre la mesahasta que (B4) se acabe la pila que hay sobre el escritorio.

Repetir C1: tomar las hojas necesarias para un ejemplar C2: grapar el ejemplar C3: ponerlo sobre el escritoriohasta que (C4) una de las mesas quede sin hojas.

C1

C11: colocarse en la mesa Nº 1C12: tomar una hoja de esa mesaRepetir C13: ir a la mesa siguiente C14: tomar una hoja de esa mesa hasta que la mesa sea la Nº 10

B

C1C

A

Page 25: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo – Análisis descendente

InicioRepetir tomar el paquete situado encima de la pila sobre el escritorio ir a la mesa cuyo número es igual al de las hojas del paquete poner el paquete sobre la mesahasta que se acabe la pila que hay sobre el escritorio.Repetircolocarse en la mesa Nº 1tomar una hoja de esa mesa Repetir ir a la mesa siguiente tomar una hoja de esa mesa hasta que la mesa sea la Nº 10grapar el ejemplarponerlo sobre el escritoriohasta que una de las mesas quede sin hojasFin

Page 26: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Noción de AlgoritmoPrimera definición:

Dado un procesador bien definido y un tratamiento a ejecutar por ese procesador,

un algoritmo de tratamiento es el enunciado de una secuencia de acciones primitivas que realizan ese tratamiento.

Algorit

mo

Page 27: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

• Noción de algoritmo:– Procesador, entorno, acciones– Acciones primitivas– Análisis descendente– Objetivo de la programación

Page 28: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Objetivo de la programación

Dado un trabajo que se desea efectuar con la ayuda de un procesador determinado:

Establecer una secuencia de acciones que puedan ser ejecutadas por el procesador y

que realicen dicho trabajo.Objetiv

o

Fase 1 Fase 2

Resolución del problema: determinación de un algo-ritmo que realice el tratamiento.

Adaptación del algoritmo al procesador: codificación.

Page 29: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Objetivo de la programación

Fase 1 Fase 2

Resolución del problema: determinación de un algo-ritmo que realice el tratamiento.

Adaptación del algoritmo al procesador: codificación.

Etapa más difícil

Herramientas

Inteligencia

Intuición

Soluciones elegantes y eficientes

Lenguaje de programación

No presenta mayores dificultades

Mecanismos de

traducción

Inteligencia

Page 30: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Noción de algoritmo

• Objetos y acciones elementales

• Esquemas condicionales

• Iteraciones

• Noción de algoritmo

• Objetos y acciones elementales

• Esquemas condicionales

• Iteraciones

Page 31: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

Page 32: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

ACCIONES:

* colocarse en la mesa Nº 1* tomar el paquete situado encima de la pila* ir a la mesa siguiente* ingresar el primer número* pulsar la tecla 3* pulsar la tecla +

Repaso:

La mesa Nº 1

Intervienen distintos objetos:

El paquete deencima de la

pila

La mesa siguiente

El primernúmero

La tecla 3 La tecla +

Page 33: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Características de la noción de objeto:

La mesa Nº 1El paquete deencima de la

pila

La mesa siguiente

El primernúmero

La tecla 3 La tecla +

Nombre Lo designa sin ambigüedad

Cada objeto tiene una utilización particular.Las utilizaciones no son intercambiables.

TipoIndica los caracteres comunes a todos los

estados posibles del objeto

Dos de los objetos citados son del tipo mesa.

Representan, en cada instante, una de las mesasdel grupo de 10 mesas del problema.

Valor En cada instante, todo objeto del entorno tiene un valor susceptible de variar

después de la ejecución de una acción

Page 34: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Nombre

Tipo

Valor

1

6

7

3

5

Valor

1

6

7

3

Objeto: el paquete encima de la pila

Acción: tomar el paquete de encima de la pila

Antes de la ejecución de la acción

Después de la ejecución de la acción

Se ejecutala acción

Page 35: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Ejemplo: Utilización de objetos

Tarea: Elaborar un algoritmo que determine la suma de los n primeros números naturales.

Pasos:Conocer el procesador

Describir el entorno

Generar el algoritmo

Page 36: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Conocer el procesador

Competencias del procesador:

. Dar un valor a un objeto,

. Calcular la suma de dos valores numéricos,

. Comparar dos valores numéricos (constatar su igualdad o diferencia)

. Ejecutar un esquema repetitivo del tipo repetir…hasta que

Page 37: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

objeto que contiene un valor numérico entero n ( n >= 1 )

Describir el entorno

NUM

El valor inicial de este objeto está determinado y servirá para controlar el cálculo

Si es 3Se ejecutará

1 + 2 + 3 = 6

Si es 5 1 + 2 + 3 + 4 + 5 = 15 etc. …

Page 38: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

objeto que contiene un valor numérico entero n ( n >= 1 )

Describir el entorno

NUM

El valor del resultado tiene que figurar en el estado finaldel entorno.

Se requiere:

objeto que contiene el valor del resultadoS

En este objeto se hará la acumulación de los enteros su-cesivos (que también tienen que estar representados).

Hay 2 posi-bilidades:

Utilizar n objetos, que contengan cada uno de los valores enteros necesarios (1, 2, ...n)

Utilizar un solo objeto, al que se haga variar para representar todos los valores de 1 a n

Page 39: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

objeto que contiene un valor numérico entero n ( n >= 1 )

Describir el entorno

NUM

objeto que contiene el valor del resultadoS

Hay 2 posi-bilidades:

Utilizar n objetos, que contengan cada uno de los valores enteros necesarios (1, 2, ...n)

Utilizar un solo objeto, al que se haga variar para representar todos los valores de 1 a n

Desventajas de la primera alternativa:

Requiere muchos objetos

El número de objetos es variable

objeto que contiene los valores sucesivos de 1 a nENTERO

Page 40: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Observación:

Se acaban de crear dos objetos numéricos (S y ENTERO).

S ENTERO

Un objeto tiene siempre un valor; pero, en el momento de la creación del objeto, su valor no puede ser conocido.

se dice que es . . . indeterminado

Si se desea dar un valor al objeto,es necesario ejecutar una acción

Page 41: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Descripción del entorno del problema:

Objeto Función Estado inicial Estado final

NUMObjeto de valor entero >=

1, que indica el entero más grande a acumular

n n

SObjeto en el cual se

calcula la suma de los n primeros enteros

valor indeterminado

1 + 2 + . . . +(n –1) + n

ENTEROObjeto que contendrá los

sucesivos enteros de 1 a n

valor indeterminado

Page 42: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

dar a ENTERO los valores sucesivos de 1 a n y

acumular esos valores en S

Generar el algoritmo

Idea

Determinar las acciones a ejecutar para trasladar el entorno del estado inicial al estado final deseado.

S

ENTEROel primer entero a acumular es 1; para lo que

habrá que dar inicialmente a ENTERO el valor 1

análogamente, para obtener, por acumulación, el valor deseado en S, es necesario dar, pre-viamente un valor determinado a este objeto

el valor de un objeto que acaba de ser definido es siempre indeterminado

sea s el valor (indeterminado) de S en la creación de este objeto, una acumulación en S de todos los enteros de 1 a n, no producirá el resultado esperado, sino el valor s+1+2+...+n

será necesario, por lo tanto, antes de la acumulación, dar a S el valor 0

Page 43: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

* acumular el valor de ENTERO en S* pasar al entero siguiente, volver a em- pezar, etc., hasta que se hayan acumu- lado todos los enteros necesarios

Es posible, entonces, redactar una solución. En ella todas las acciones expresadas serán acciones

primitivas o composiciones de primitivas.

Para cada valor de ENTERO, es suficiente a continuación:

Page 44: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

algoritmo suma_de_enterosInicio1: dar a S el valor 02: dar a ENTERO el valor 13: Repetir 3a: sumar el valor de ENTERO y el valor de S y asignar el resultado como nuevo valor de S 3b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO hasta que 3c: el valor de ENTERO sea igual al de NUM aumentado en 1 Fin

Composición de primitivas

Expresado el algoritmo, es posible precisar el valor final de ENTERO.

Es el que hace finalizar la repetición: n+1 (siendo n el valor de NUM)

Page 45: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

La importancia del algoritmo elaborado no reside en ser utilizado una sola vez para calcular, por ejemplo, la

suma de los diez primeros enteros.Sería más rápido calcular la suma a mano que generar

un algoritmo y utilizar un procesador.

El algoritmo permite al procesador “aprender” a calcular la suma de los n primeros enteros, cualquiera sea n, y está

destinado a ser ejecutado por el procesador, un gran número de veces, para distintos valores del objeto NUM.

Page 46: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

Ejecución paso a paso

Ejecución del algoritmo por el procesador:algoritmo suma_de_enterosInicio1: dar a S el valor 02: dar a ENTERO el valor 13: Repetir 3a: sumar el valor de ENTERO y el valor de S y asignar el resultado como nuevo valor de S 3b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO hasta que 3c: el valor de ENTERO sea igual al de NUM aumentado en 1 Fin

Acción ejecutada ocondición evaluada NUM S ENTERO

Estado del entorno después de la ejecución de la acción

3 indeterminado indeterminadoInicialmente

3 0 indeterminado1

3 0 123 1 13a3 1 23b

3c 2 <> 3+1,sigue3 3 23a3 3 33b

3c 3 <> 3+1,sigue3 6 33a3 6 43b

3c

S ENTERONUM3

4 = 3+1, terminala ejecución

4 = 3+1, terminala ejecución

Page 47: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Formalización – Objetos en un entorno

El creador del algoritmo sustituye al procesador para ejecutarlo a partir de los valores iniciales dados.

El ejemplo anterior muestra que, para el valor inicial 3 del objeto NUM, el algoritmo funciona correctamente

Ejecución paso a paso (Prueba de escritorio)

Ello no implica que funcione correctamente para cualquier valor de NUM

Lo único que se puede probar a partir de la prueba de escritorio, es el mal funcionamiento de un algoritmo:

Si el resultado obtenido con un seguimiento paso a paso es incorrecto, entonces el algoritmo no funciona correctamente

Page 48: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

Page 49: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Acciones y algoritmos

Dado un entorno descrito formalmente como un conjunto de objetos, es un suceso de duración

finita que, a partir de un estado inicial particular del entorno, tiene como consecuencia un nuevo estado

bien definido.

Precisiones en la definición de acción:

Acció

n

Page 50: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Acciones y algoritmos

Precisiones en la definición de algoritmo:

Un algoritmo está compuesto de acciones, y tiene, sobre el entorno, un efecto de la misma naturaleza que

la de una acción.

Entorno

Estado inicial

Estado final

Algoritmo

--------------------------------------------------------------------------------------------------------

Page 51: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Acciones y algoritmos

La construcción de un algoritmo parte siempre de la descripción de un problema.

Un problema está bien planteado si se ha descripto:

Lo que se ha de realizarLo que se ha de realizarde dónde se partede dónde se parte

a dónde se quiere llegara dónde se quiere llegar

(Ei)

(Ef)

El instrumento de larealización

El instrumento de larealización

el procesador, del quese han de conocer lasacciones primitivas

el procesador, del quese han de conocer lasacciones primitivas

Page 52: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Acciones y algoritmos

Precisiones en la definición de algoritmo:

Dado un problema x y un procesador P, un

algoritmo de x para P es la descripción de

una solución de x realizable con P. Esta descripción comprende dos partes:

Algorit

mo

El entorno, que determina los objetos utilizables por

P, su función, su estado inicial y su estado final.

La sucesión de operaciones a ejecutar, para hacer pasar el entorno de su estado inicial a su estado final.

Una sucesión tal que cada operación sea:* una acción primitiva o bien* la llamada de un algoritmo ya conocido y descripto

Page 53: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Acciones y algoritmos

Importante:

Para ambos algoritmos, si a, b, c y d son acciones primitivas, la acción B dentro del algoritmo A se

denomina una llamada al algoritmo B.

Un algoritmo puede llamar a otro algoritmo.

( Es mejor que volver a formular todas sus acciones primitivas ).

Ejemplo: Algoritmo A

abcBd

Algoritmo B

abba

Si se ejecuta el algoritmo A, las acciones ejecutadas estarán en el orden

a, b, c, a, b, b, a, d

Page 54: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

Page 55: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Constantes y variables

Hace intervenir dos objetos:

La acción:

1

ENTERO

3b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO

del algoritmo suma_de_enteros . . .

Su valor varía de 1 en 1 durante la ejecución del algoritmo:El objeto ENTERO es una variable

Page 56: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Constantes y variables

Es un objeto cuyo valor cambia (no es invariable)

Varia

ble

Además del valor, toda variable posee otros dos atributos:

Nombre

Tipo

(invariable) que sirve para designarla

(invariable) que describe la posible utilización de la variable

Definir una variable es, de hecho, crear un objeto para el procesador.

Toda variable que acaba de ser definida, tiene un valor indeterminado

Page 57: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Constantes y variables

Hace intervenir dos objetos:

Volviendo a la acción:

1

ENTERO

3b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO

del algoritmo suma_de_enteros . . .

El objeto 1 es un objeto particular: su valor es invariable

El propio valor es utilizado para designar al objetoEl objeto 1 es una constante

Page 58: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Constantes y variables

Es un objeto de valor invariable. Es la realización de un valor de un tipo

particular.Const

ante

Una constante no requiere forzosamente un nombre.

Sin embargo, con frecuencia es conveniente dar nombre a la constante, y emplear sistemáticamente el

nombre elegido para designarla.

Page 59: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

Page 60: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipos de objetos

Tipos que se utilizarán para calificar las dos categorías (constantes y variables) de objetos vistos :

. Tipo numérico

. Tipo carácter

. Tipo cadena

. Tipo lógico

. Tipo compuesto

Page 61: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo numérico

Es el conjunto de valores numéricos que el procesador sabe tratar.

Un valor numérico se escribe en su forma habitual, con o sin signo.

Ejemplo: 12

10.5

+32

-141.67

Page 62: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo carácter

Es el conjunto de caracteres que el procesador reconoce: letras mayúsculas,

letras minúsculas, cifras y signos especiales.

Una variable de tipo carácter tiene por valor uno y sólo un carácter.

Ejemplo:

‘E’ es un valor de un carácter que representa la letra E.

‘e’ es un valor de un carácter que representa la letra e.

Para representar valores de tipo carácter, se los delimita por un par de apóstrofos

E es el nombre de una variable.

Page 63: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo cadena

Es el conjunto de cadenas de caracteres que se pueden formar yuxtaponiendo caracteres.

Ejemplo:

‘libro’ está formada por 5 caracteres: ‘l’, ‘i’, ‘b’, ‘r’, ‘o’.

‘Apellido y Nombre, Nota’ está formada por 23 caracteres: 19 letras, 1 coma y 3 espacios.

El espacio, que permite separar palabras en una cadena, es -él mismo- un carácter.

Es el entero que indica el número de caracteres que componen la cadena.Longitu

d

de una

caden

a

Page 64: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo lógico

Es el conjunto de valores lógicos cierto y falso.

Una variable de tipo lógico tiene siempre uno de esos dos valores.

Puede ser definida para representar una condición determinada sobre el entorno utilizado.

Page 65: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo compuesto

Puede surgir la necesidad de agrupar varios valores para caracterizar una entidad particular.

Cada uno de los tipos vistos hasta ahora es un tipo elemental. (Los valores de estos tipos permiten

representar informaciones elementales)

Es la asociación de varias variables elementalesVar

iable

com

puesta

Page 66: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Tipo compuesto

Ejemplo:RESULTADO

APELLIDO ASIGNATURA NOTA

‘Moro’ ‘Informática’ 9

Una subdivisión puede ser ella misma una variable compuesta:

Las variables APELLIDO, ASIGNATURA y NOTA, son subdivisiones de la variable

compuesta RESULTADO.

RESULTADO

APELLIDO ASIGNATURA NOTA

‘Moro’

‘Informática’ 9

LETRAS NÚMEROS‘Nueve’

Page 67: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

• Objetos y acciones elementales:– Formalización

– Objetos en un entorno– Utilización de objetos

– Acciones y algoritmos– Constantes y variables– Tipos de objetos– Contexto y herramientas

• Acción leer, acción escribir, acción de asignación, expresiones aritméticas

Page 68: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas

Durante la ejecución de un programa puede requerirse o no la participación del usuario

Un contexto de trabajo en el que el usuario y el procesador están alternativamente en

actividad se denomina...

Inte

ract

ivo

Si interviene el usuario, se produce un “diálogo” entre éste y el procesador.

En cada instante, uno de los dos protagonistas del diálogo está a la espera de una información que el

otro suministra.

Page 69: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas

Durante la ejecución de un programa puede requerirse o no la participación del usuario

Un contexto en el que el usuario prepara el trabajo, lo deja ejecutando y, al cabo de un

tiempo, aparece la salida se denomina... Batch

Si no se requiere el suministro de información por parte del usuario, no hay interacción entre usuario y

trabajo mientras éste se está ejecutando.

Page 70: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas

El usuario requiere de una estación de trabajo que le permita comunicarse con el procesador.

La estación de trabajo puede estar directamente enlazada al procesador

COMPUTADORPERSONAL

o conectada a distancia a un computa-dor que sirve simultáneamente a va-

rios usuarios SERVIDOR

Page 71: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas

La estación de trabajo posee, en general, dos dispositivos de comunicación:

ENTORNO

PROCESADOR

Teclado

Pantalla

Leer

Escribir

Page 72: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Lectura

Permite asignar a una variable del entorno, un valor pulsado en el teclado. Acc

ión

leer

En entorno interactivo:

Notación: Leer ( N )Siendo N la variable considerada.

Page 73: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Lectura

• Para ejecutar la acción leer el procesador se pone a la espera y “observa” el teclado.

• Cada tecla que pulsa el usuario, comunica al procesador una parte de la información esperada.

• El usuario indica que la entrada de información ha terminado, pulsando una tecla:

Esta acción se puede utilizar con el algoritmo suma_de_enteros, al inicio de la ejecución, para

obtener el valor de NUM, que sirve de base al cálculo .

Page 74: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Escritura

Hace aparecer una información en la pantalla. Acc

ión

escr

ibir

En entorno interactivo:

Notación: Escribir ( i )Donde i puede ser una constante, el valor de una variable, o una serie de valores.

Page 75: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Escritura

• También se utiliza la acción escribir para indicar al usuario lo que se espera de él.

La ejecución del algoritmo abre el teclado de la estación para esperar el ingreso del valor de NUM...

algoritmo suma_de_enterosInicio leer (NUM)...

Ejemplo:

pero no da ninguna indicación al usuario, quien tendría que saber por sí mismo lo que ha de hacer.

algoritmo suma_de_enterosInicio escribir (‘Cálculo de la suma de los N primeros enteros’) escribir(‘Ingrese un valor entero’) leer (NUM)...

Page 76: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Escritura

• La acción escribir también se utiliza para comunicar resultados al usuario.

Las informaciones escritas en el ejemplo son una sucesión de cuatro valores: el primero y el tercero son

constantes, los restantes son valores de variables.

Ejemplo:

algoritmo suma_de_enterosInicio. . .. . . escribir(‘La suma de los ‘, NUM, ‘ primeros enteros es’, S)Fin

Page 77: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

• Las acciones primitivas leer y escribir permiten, respectivamente, hacer entrar un valor en el entorno o extraer uno.

• Hay otra forma de acción primitiva que permite modificar el valor de una variable internamente (sin intervención del usuario).

Dado un entorno, atribuye a una variable un valor que procede del mismo entorno.Acc

ión

asig

nació

n

Page 78: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

Notación: m eDonde

m es el nombre de la variable a la que el procesador ha de atribuir el valor.

caracteriza la acción de asignación.

e representa el valor a asignar

y puede ser: • una constante• el nombre de otra variable que contenga el valor• una expresión del mismo tipo que m (expresión lógica o aritmética)

Page 79: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

Las dos entidades que en una asignación aparecen a ambos lados del signo han de ser

del mismo tipo

Ejemplo:

a. ENTERO 1

b. APELLIDO ‘MORO’

c. TOTAL SUMA

d. NUM A + B

Page 80: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

Ejemplo:

• La acciòn a asigna a la variable numérica ENTERO el valor 1.

• La acción b asigna la cadena ‘MORO’ a la variable tipo cadena APELLIDO.

• En las acciones a y b el valor a asignar se indica por medio de una constante.

a. ENTERO 1

b. APELLIDO ‘MORO’

c. TOTAL SUMA

d. NUM A + B

Page 81: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

Ejemplo:

• La acción c representa una asignación en la que el valor a asignar está indicado por una variable.

Si antes de la ejecución de c, TOTAL y SUMA tienen los valores t y s, respectivamente. . .

después de la ejecución de c, TOTAL habrá tomado el valor s y SUMA habrá conservado su valor.

Sólo la variable cuyo nombre aparece a la izquierda del signo cambia de valor.

a. ENTERO 1

b. APELLIDO ‘MORO’

c. TOTAL SUMA

d. NUM A + B

Page 82: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas - Asignación

Ejemplo:

• La acción d asigna a la variable NUM el resultado de un cálculo aritmético.

Es necesario que las variables NUM , A y B sean del mismo tipo.

a. ENTERO 1

b. APELLIDO ‘MORO’

c. TOTAL SUMA

d. NUM A + B

La acción se ejecuta en dos tiempos:

Cálculo del valor de la expresión aritmética.1Asignación de ese valor a la variable NUM.2

Page 83: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Contexto y herramientas – Expresiones aritméticas

Para formar expresiones aritméticas, se utilizan las constantes o variables numéricas y los operadores:

suma

resta

multiplicación

división corriente

división euclidiana

+-*/

div

Page 84: Algoritmo Nociones fundamentales Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo

Algoritmo

Fin de la presentación

Bibliografía: Joëlle Biondi y Gilles Clavel.”Introducción a la programación”, Tomo I: Algorítmica y lenguajes. Ed. Masson S.A. Bs. A.s, 1988.