Algoritmo Nociones fundamentales Esta presentacin Algoritmo Nocin de

  • Slides: 84
Download presentation
Algoritmo Nociones fundamentales

Algoritmo Nociones fundamentales

Esta presentación Algoritmo • • Noción de algoritmo Objetos y acciones elementales Esquemas condicionales

Esta presentación Algoritmo • • Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones

Algoritmo • Noción de algoritmo: – Procesador, entorno, acciones – Acciones primitivas – Análisis

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

Algoritmo – Procesador, entorno, acciones Enunciado 1 Preparación de un omelette de 6 huevos

Algoritmo – Procesador, entorno, acciones Enunciado 1 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; Enunciado 2 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 + ; c: calentar aceite en una sartén al fuego; d: ingresar el segundo número; d: cuando el aceite esté caliente, verter el contenido del plato; f: ingresar el tercer número; e: quitar la sartén del fuego cuando la preparación esté hecha. h: pulsar la tecla 3; e: pulsar la tecla +; g: pulsar la tecla / ; i: pulsar la tecla =.

Algoritmo – Procesador, entorno, acciones Pr o ce sa do r Los enunciados 1

Algoritmo – Procesador, entorno, acciones Pr o ce sa do r Los enunciados 1 y 2 describen cada uno un cierto trabajo Toda entidad capaz de entender un enunciado y de ejecutar el trabajo indicado En el caso de los enunciados 1 y 2, una persona que sepa leer y disponga de los utensilios necesarios, puede ser un procesador adecuado

En to rn o Algoritmo – Procesador, entorno, acciones El conjunto de utensilios necesarios

En to rn o Algoritmo – Procesador, entorno, acciones El conjunto de utensilios necesarios para la ejecución del trabajo. Dado un procesador, el entorno es específico del trabajo a ejecutar. Sin embargo, la forma de realizar el trabajo, depende a menudo de los utensilios puestos a disposición del procesador

Algoritmo – Procesador, entorno, acciones Ejemplo: 50 Tarea: Dar vuelto. Entorno 27, 50 50

Algoritmo – Procesador, entorno, acciones Ejemplo: 50 Tarea: Dar vuelto. Entorno 27, 50 50 20 20 510 10 50 5 5 10 50 50 510510 50 50 1 10 5 50 50 50 5 50 10 55050 1 50 50 50 10 10 50 50 1 10 2 50 10 501 2 50 501010 50 2 50 10 2 50 501 502250 10 50 50 501 50 250 50 2 10 50 501 50 50 2 50 10 10 2 50 50 1050 50 50 10 1555 10 10 11 50 10 15 10 50 11 50 25 10 10 1555 25 11 10 25 10 11 25 155 10 25 10 11 25 10 55 25 10 11 50 25 10 55 25 10 10 a b c NO 1 n

Algoritmo – Procesador, entorno, acciones La ejecución de un trabajo no elemental, supone cierta

Algoritmo – Procesador, entorno, acciones La ejecución de un trabajo no elemental, supone cierta progresión hacia el fin deseado. A cc ió n En los Enunciados 1 y 2 se distinguen las etapas a, b, c, . . . Un suceso que modifica el entorno Dada la acción a del Enunciado 1: romper seis huevos en un plato. Después Antes de de ejecutar la acción, ejecutar la el plato el contiene acción, plato 6 yemas y 6 claras. está vacío.

Algoritmo – Procesador, entorno, acciones La ejecución de una acción puede necesitar una observación

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 una acción puede aparecer Sin embargo, eldenúmero de apariciones de una varias veces en la descripción de un trabajo. acción, no corresponde forzosamente a la (Acciones c y e, Enunciado 2) cantidad de ejecuciones de la misma.

Algoritmo – Procesador, entorno, acciones 2 x 2 y Enunciado 3 repetir x 5

Algoritmo – Procesador, entorno, acciones 2 x 2 y Enunciado 3 repetir x 5 veces Ejecución: x y y z Sin embargo, el número de apariciones de una acción, no corresponde forzosamente a la cantidad de ejecuciones de la misma. 6 2

Algoritmo • Noción de algoritmo: – Procesador, entorno, acciones – Acciones primitivas – Análisis

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

Algoritmo – Acciones primitivas En los Enunciados 1 y 2 se ha supuesto que

Algoritmo – Acciones primitivas En los Enunciados 1 y 2 se ha supuesto que el procesador sabía ejecutar las acciones enumeradas. A pr cc im ió iti n va Para ese procesador, éstas son acciones primitivas. Aquella cuyo enunciado es suficiente para que el procesador pueda ejecutarla sin información adicional.

Algoritmo – Acciones primitivas En el Enunciado 3, el procesador no sabrá ejecutar la

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. Si no lo fuera, habrá que reemplazarla por la secuencia x, x, x. Toda acción no primitiva, habrá de descomponerse en acciones primitivas.

Algoritmo – Acciones primitivas Ejemplo: En el Enunciado 1, si el procesador es un

Algoritmo – Acciones primitivas Ejemplo: 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 1 : poner seis huevos sobre la mesada repetir a 2: tomar un huevo de la mesada a: romper seis huevos en un plato a 3: romperlo y verter su contenido en el plato a 4: tirar las cáscaras a la basura hasta que no queden huevos sobre la mesada.

Algoritmo – Acciones primitivas Observación: La descomposición efectuada utiliza un esquema repetitivo, que permite

Algoritmo – Acciones primitivas Observación: La descomposición efectuada utiliza un esquema repetitivo, que permite simplificar la representación de la repetición de una secuencia de acciones. repetir acciones ejecutar acciones condición no realizada hasta que condición evaluar condición realizada condición

Algoritmo • Noción de algoritmo: – Procesador, entorno, acciones – Acciones primitivas – Análisis

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

Algoritmo – Análisis descendente de An sc ál en isi de s nt e

Algoritmo – Análisis descendente de An sc ál en isi de s nt e Metodología: Uno de los métodos para obtener la descomposición de una acción en acciones primitivas es el Análisis descendente. 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.

Algoritmo – Análisis descendente Representación: (Ei) T (Ef) (Ei 1) t 1 (Ef 1).

Algoritmo – Análisis descendente Representación: (Ei) T (Ef) (Ei 1) t 1 (Ef 1). . . (Ei k) tk (Ef k). . . (Ei n) tn (Ef n) (Ef k-1) = (Ei k) t 11 t 12 tk 1 (Ef k) = (Ei k+1) tk 2 tk 3 Para cada enunciado t k, hay dos posibilidades: o bien es unat acción Cadat ktrabajo k, pasaprimitiva, el entornoy se detiene el análisis para de un estado (Ei descendente k) a un estado (Ef kt )k ; o bien t k no es una acción primitiva, y se descompone nuevamente t k.

Algoritmo – Análisis descendente Ejemplo: Tarea: Realizar la agrupación de cierto número de ejemplares

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 aproximadamente una centena de ejemplares. Entorno: . Diez paquetes de hojas numeradas, apilados sobre un escritorio. . Una grapadora. Diez mesas numeradas de 1 a 10.

Algoritmo – Análisis descendente

Algoritmo – Análisis descendente

Algoritmo – Análisis descendente Competencias del procesador: . Tomar y poner. Ir de una

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

Algoritmo – Análisis descendente Enunciado: A A partir de la pila que se encuentra

Algoritmo – Análisis descendente Enunciado: A A partir de la pila que se encuentra en el escritorio, agrupar las fotocopias. B Repartir los paquetes a razón de un paquete por mesa, tal que el paquete de hojas i quede en la mesa i. A C Reunir y grapar los ejemplares y ponerlos sobre el escritorio.

Algoritmo – Análisis descendente

Algoritmo – Análisis descendente

Algoritmo – Análisis descendente B A C Repetir B 1: tomar el paquete situado

Algoritmo – Análisis descendente B A C Repetir B 1: tomar el paquete situado encima de la pila sobre el escritorio B 2: ir a la mesa cuyo número es el mismo que el de las hojas del paquete B 3: poner el paquete sobre la mesa hasta que (B 4) se acabe la pila que hay sobre el C 11: escritorio. colocarse en la mesa Nº 1 C 12: tomar una hoja de esa mesa Repetir C 13: ir a la mesa siguiente C 14: tomar una hoja de esa mesa las hojas hasta que necesarias la mesa sea lapara Nº 10 un ejemplar Repetir C 1: tomar C 2: grapar el ejemplar C 3: ponerlo sobre el escritorio hasta que (C 4) una de las mesas quede sin hojas.

Algoritmo – Análisis descendente Inicio Repetir tomar el paquete situado encima de la pila

Algoritmo – Análisis descendente Inicio Repetir 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 mesa hasta que se acabe la pila que hay sobre el escritorio. Repetir colocarse en la mesa Nº 1 tomar una hoja de esa mesa Repetir ir a la mesa siguiente tomar una hoja de esa mesa hasta que la mesa sea la Nº 10 grapar el ejemplar ponerlo sobre el escritorio hasta que una de las mesas quede sin hojas Fin

Noción de Algoritmo A lg or itm o Primera definición: Dado un procesador bien

Noción de Algoritmo A lg or itm o Primera 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.

Algoritmo • Noción de algoritmo: – Procesador, entorno, acciones – Acciones primitivas – Análisis

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

Objetivo de la programación O bj e tiv o Dado un trabajo que se

Objetivo de la programación O bj e tiv o 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. Fase 1 Resolución del problema: determinación de un algoritmo que realice el tratamiento. Fase 2 Adaptación del algoritmo al procesador: codificación.

Objetivo de la programación Fase 1 Resolución del problema: determinación de un algoritmo que

Objetivo de la programación Fase 1 Resolución del problema: determinación de un algoritmo que realice el tratamiento. Etapa más difícil Herramientas Inteligencia Intuición Soluciones elegantes y eficientes Fase 2 Adaptación del algoritmo al procesador: codificación. Lenguaje de programación No presenta mayores dificultades Mecanismos de traducción Inteligencia

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

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

Algoritmo • Objetos y acciones elementales: – Formalización – Objetos en un entorno –

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

Formalización – Objetos en un entorno Repaso: ACCIONES: * colocarse en la mesa Nº

Formalización – Objetos en un entorno Repaso: 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 + Intervienen distintos objetos: La mesa Nº 1 El paquete de encima de la pila La mesa siguiente El primer número La tecla 3 La tecla +

Formalización – Objetos en un entorno Características de la noción de objeto: La mesa

Formalización – Objetos en un entorno Características de la noción de objeto: La mesa Nº 1 El paquete de encima de la pila La mesa siguiente El primer número La tecla 3 La tecla + Nombre Lo designa sin ambigüedad Tipo Indica los caracteres comunes a todos los estados posibles del objeto En cadacitados instante, todo del entorno de los objetos son delobjeto tipo mesa. Valor. Dos Cada objeto tiene utilización particular. tiene una un valor susceptible de variar Las utilizaciones node son intercambiables. después la ejecución de una acción Representan, en cada instante, una de las mesas del grupo de 10 mesas del problema.

Formalización – Objetos en un entorno Objeto: el paquete encima de la pila Nombre

Formalización – Objetos en un entorno Objeto: el paquete encima de la pila Nombre Tipo Valor 5 3 3 7 7 6 6 1 Antes de la ejecución de la acción 1 Se ejecuta la acción Después de la ejecución de la acción Acción: tomar el paquete de encima de la pila

Formalización – Objetos en un entorno Ejemplo: Utilización de objetos Tarea: Elaborar un 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

Formalización – Objetos en un entorno Conocer el procesador Competencias del procesador: . Dar

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

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un valor numérico entero n ( n >= 1 ) El valor inicial de este objeto está determinado y servirá para controlar el cálculo Si es 3 Si es 5 Se ejecutará 1+2+3=6 1 + 2 + 3 + 4 + 5 = 15 etc. …

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un valor numérico entero n ( n >= 1 ) S objeto que contiene el valor del resultado El valor del resultado tiene que figurar en el estado final entorno. En este objeto se harádel la acumulación de los enteros sucesivos (que también tienen que estar representados). Se requiere: Hay 2 posibilidades: 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

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un

Formalización – Objetos en un entorno Describir el entorno NUM objeto que contiene un valor numérico entero n ( n >= 1 ) S objeto que contiene el valor del resultado objeto que contiene Requiere losmuchos objetos Desventajas de la ENTERO valores sucesivos de 1 a n primera alternativa: El número de objetos es variable Hay 2 posibilidades: 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

Formalización – Objetos en un entorno Observación: S ENTERO Se acaban de crear dos

Formalización – Objetos en un entorno Observación: S ENTERO Se acaban de crear dos objetos numéricos (S y 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

Formalización – Objetos en un entorno Descripción del entorno del problema: Objeto Función Estado

Formalización – Objetos en un entorno Descripción del entorno del problema: Objeto Función Estado inicial Objeto de valor entero >= NUM 1, que indica el entero más n grande a acumular Objeto en el cual se valor S calcula la suma de los n indeterminado primeros enteros Objeto que contendrá los valor ENTERO sucesivos enteros de indeterminado 1 a n Estado final n 1+2+. . . + (n – 1) + n

Formalización – Objetos en un entorno Generar el algoritmo Determinar las acciones a ejecutar

Formalización – Objetos en un entorno Generar el algoritmo Determinar las acciones a ejecutar para trasladar el entorno del estado inicial al estado final deseado. Idea ENTERO S dar a ENTERO los valores sucesivos de 1 a n y acumular esos valores en S el primer entero a acumular es 1; para lo que habrá que dar inicialmente a ENTERO el valor 1 análogamente, para obtener, porantes acumulación, sea elun valor (indeterminado) S definido en la la serásde necesario, por tanto, de el valor objeto queloacaba dede ser el valoracumulación, deseado en S, es creación de objeto, una en S dar anecesario S acumulación el valor dar, 0 preeseste siempre indeterminado viamente un enteros valor determinado este objeto de todos los de 1 a n, noaproducirá el resultado esperado, sino el valor s+1+2+. . . +n

Formalización – Objetos en un entorno Para cada valor de ENTERO, es suficiente a

Formalización – Objetos en un entorno Para cada valor de ENTERO, es suficiente a continuación: * acumular el valor de ENTERO en S * pasar al entero siguiente, volver a empezar, etc. , hasta que se hayan acumulado 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.

Formalización – Objetos en un entorno Composición algoritmo suma_de_enteros de primitivas Inicio 1: dar

Formalización – Objetos en un entorno Composición algoritmo suma_de_enteros de primitivas Inicio 1: dar a S el valor 0 2: dar a ENTERO el valor 1 3: Repetir 3 a: sumar el valor de ENTERO y el valor de S y asignar el resultado como nuevo valor de S 3 b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO hasta que 3 c: el valor de ENTERO sea igual al de NUM aumentado en 1 Fin 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)

Formalización – Objetos en un entorno La importancia del algoritmo elaborado no reside en

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.

Formalización – Objetos en un entorno algoritmo suma_de_enteros Inicio 1: dar a S el

Formalización – Objetos en un entorno algoritmo suma_de_enteros Inicio 1: dar a S el valor 0 2: dar a ENTERO el valor 1 3: Repetir 3 a: sumar el valor de ENTERO y el valor de S y asignar el resultado como nuevo valor de S 3 b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO hasta que 3 c: el valor de ENTERO sea igual al de NUM aumentado en 1 Fin Acción ejecutada o condición evaluada Ejecución del algoritmo por el procesador: Ejecución paso a paso NUM 3 S ENTERO Estado del entorno después de la ejecución de la acción NUM S ENTERO Inicialmente 3 indeterminado 1 2 3 a 3 b 3 c 3 3 0 0 1 1 indeterminado 1 1 2 3 3 3 6 6 3 4 2 <> 3+1, sigue 3 <> 3+1, sigue 4 = 3+1, termina la ejecución

Formalización – Objetos en un entorno Ejecución paso a paso (Prueba de escritorio) El

Formalización – Objetos en un entorno Ejecución paso a paso (Prueba de escritorio) 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 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

Algoritmo • Objetos y acciones elementales: – Formalización – Objetos en un entorno –

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

Acciones y algoritmos A cc ió n Precisiones en la definición de acción: Dado

Acciones y algoritmos A cc ió n Precisiones en la definición de acción: 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.

Acciones y algoritmos Precisiones en la definición de algoritmo: Un algoritmo está compuesto de

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

Acciones y algoritmos La construcción de un algoritmo parte siempre de la descripción de

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: de dónde se parte (Ei) a dónde se quiere llegar (Ef) Lo que se ha de realizar El instrumento de la realización el procesador, del que se han de conocer las acciones primitivas

Acciones y algoritmos A lg or itm o Precisiones en la definición de algoritmo:

Acciones y algoritmos A lg or itm o Precisiones en la definición de algoritmo: Dado un problema algoritmo de x x para y un procesador P, un P es la descripción de x realizable con P. una solución de Esta descripción comprende dos partes: 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

Acciones y algoritmos Importante: Un algoritmo puede llamar a otro algoritmo. ( Es mejor

Acciones y algoritmos Importante: Un algoritmo puede llamar a otro algoritmo. ( Es mejor que volver a formular todas sus acciones primitivas ). Ejemplo: Algoritmo A Algoritmo B a b c B d a b b a Para. Si ambos se ejecuta algoritmos, el algoritmo si a, b, A, c las y d acciones son acciones primitivas, ejecutadas la acción estarán B dentroendel el algoritmo orden A se denominaa, una b, c, llamada a, b, b, ala, algoritmo d B.

Algoritmo • Objetos y acciones elementales: – Formalización – Objetos en un entorno –

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

Constantes y variables La acción: 3 b: sumar 1 al valor de ENTERO y

Constantes y variables La acción: 3 b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO del algoritmo suma_de_enteros. . . ENTERO Hace intervenir dos objetos: 1 Su valor varía de 1 en 1 durante la ejecución del algoritmo: El objeto ENTERO es una variable

Va ria bl e Constantes y variables Es un objeto cuyo valor cambia (no

Va ria bl e Constantes y variables Es un objeto cuyo valor cambia (no es invariable) 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

Constantes y variables Volviendo a la acción: 3 b: sumar 1 al valor de

Constantes y variables Volviendo a la acción: 3 b: sumar 1 al valor de ENTERO y asignar el resultado como nuevo valor de ENTERO del algoritmo suma_de_enteros. . . ENTERO Hace intervenir dos objetos: 1 El propio objeto 1 valor es un esobjeto utilizado particular: para designar su valor al El objeto es 1 invariable es una constante objeto

C on st a nt e Constantes y variables Es un objeto de valor

C on st a nt e Constantes y variables Es un objeto de valor invariable. Es la realización de un valor de un tipo particular. 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.

Algoritmo • Objetos y acciones elementales: – Formalización – Objetos en un entorno –

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

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

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

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

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

Tipo carácter Es el conjunto de caracteres que el procesador reconoce: letras mayúsculas, letras

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. Para representar valores de tipo carácter, se los delimita por un par de apóstrofos 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. E es el nombre de una variable.

Tipo cadena Es el conjunto de cadenas de caracteres que se pueden formar yuxtaponiendo

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. de Lo un ng a it ca u de d na 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.

Tipo lógico Es el conjunto de valores lógicos cierto y falso. Una variable de

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.

Tipo compuesto Cada uno de los tipos vistos hasta ahora es un tipo elemental.

Tipo compuesto Cada uno de los tipos vistos hasta ahora es un tipo elemental. (Los valores de estos tipos permiten representar informaciones elementales) co Va m ria pu bl es e ta Puede surgir la necesidad de agrupar varios valores para caracterizar una entidad particular. Es la asociación de varias variables elementales

Tipo compuesto Ejemplo: RESULTADO APELLIDO ASIGNATURA RESULTADO ‘Moro’ ‘Informática’ APELLIDO ASIGNATURA NOTA 9 LETRAS

Tipo compuesto Ejemplo: RESULTADO APELLIDO ASIGNATURA RESULTADO ‘Moro’ ‘Informática’ APELLIDO ASIGNATURA NOTA 9 LETRAS NÚMEROS ‘Moro’ Las variables APELLIDO, ASIGNATURA y 9 ‘Nueve’de la variable ‘Informática’ NOTA, son subdivisiones compuesta RESULTADO. Una subdivisión puede ser ella misma una variable compuesta:

Algoritmo • Objetos y acciones elementales: – Formalización – Objetos en un entorno –

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

Contexto y herramientas Durante la ejecución de un programa puede requerirse o no la

Contexto y herramientas Durante la ejecución de un programa puede requerirse o no la participación del usuario Si interviene el usuario, se produce un “diálogo” entre éste y el procesador. iv ct ra In te Un contexto de trabajo en el que el usuario y el procesador están alternativamente en actividad se denomina. . . o En cada instante, uno de los dos protagonistas del diálogo está a la espera de una información que el otro suministra.

Contexto y herramientas Durante la ejecución de un programa puede requerirse o no la

Contexto y herramientas Durante la ejecución de un programa puede requerirse o no la participación del usuario at B Un contexto en el que el usuario prepara el trabajo, lo deja ejecutando y, al cabo de un tiempo, aparece la salida se denomina. . . ch 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.

Contexto y herramientas El usuario requiere de una estación de trabajo que le permita

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 o conectada a distancia a un computador que sirve simultáneamente a varios usuarios COMPUTADOR PERSONAL SERVIDOR

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

Contexto y herramientas La estación de trabajo posee, en general, dos dispositivos de comunicación: Pantalla Escribir ENTORNO PROCESADOR Leer Teclado

Contexto y herramientas - Lectura A cc le ió er n En entorno interactivo:

Contexto y herramientas - Lectura A cc le ió er n En entorno interactivo: Notación: Permite asignar a una variable del entorno, un valor pulsado en el teclado. Leer ( N ) Siendo N la variable considerada.

Contexto y herramientas - Lectura • Para ejecutar la acción leer el procesador se

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.

Contexto y herramientas - Escritura A es cc cr ión ib ir En entorno

Contexto y herramientas - Escritura A es cc cr ión ib ir En entorno interactivo: Notación: Hace aparecer una información en la pantalla. Escribir ( i ) Donde i puede ser una constante, el valor de una variable, o una serie de valores.

Contexto y herramientas - Escritura • También se utiliza la acción escribir para indicar

Contexto y herramientas - Escritura • También se utiliza la acción escribir para indicar al usuario lo que se espera de él. Ejemplo: algoritmo suma_de_enteros Inicio escribir (‘Cálculo de la suma de los N primeros enteros’) leer (NUM) escribir(‘Ingrese un valor entero’). . . leer (NUM). . . pero no da ninguna indicación La ejecución del algoritmo abrealelusuario, tecladoquien de la tendría que saber por el sí ingreso mismo lo que ha de hacer. estación para esperar del valor NUM. . .

Contexto y herramientas - Escritura • La acción escribir también se utiliza para comunicar

Contexto y herramientas - Escritura • La acción escribir también se utiliza para comunicar resultados al usuario. Ejemplo: algoritmo suma_de_enteros Inicio. . . escribir(‘La suma de los ‘, NUM, ‘ primeros enteros es’, S) Fin 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.

Contexto y herramientas - Asignación • Las acciones primitivas leer y escribir permiten, respectivamente,

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 as Ac ig ci na ón ci ón intervención del usuario). Dado un entorno, atribuye a una variable un valor que procede del mismo entorno.

Contexto y herramientas - Asignación Notación: m e Donde m es el nombre de

Contexto y herramientas - Asignación Notación: m e Donde 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)

Contexto y herramientas - Asignación Las dos entidades que en una asignación aparecen a

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

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL SUMA d. NUM A + B • La acciòn a asigna a la variable numérica ENTERO el valor 1. • En las acciones a y b el valor a asignar se • La acción asigna cadena ‘MORO’ a la indica por b medio delauna constante. variable tipo cadena APELLIDO.

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL SUMA d. NUM A + B • La acción c representa una asignación en la que el valor a asignar está indicado por una variable. Si antes la ejecución c, TOTAL y SUMA después de de la ejecución de de c, TOTAL habrá tomado tienenslos valores t y conservado s, respectivamente. el valor y SUMA habrá su valor. . . Sólo la variable cuyo nombre aparece a la izquierda del signo cambia de valor.

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL

Contexto y herramientas - Asignación Ejemplo: a. ENTERO 1 b. APELLIDO ‘MORO’ c. TOTAL SUMA d. NUM A + B • La acción d asigna a la variable NUM el La acción se ejecuta en dos tiempos: resultado de un cálculo aritmético. 1 2 Cálculo del valor expresión aritmética. Es necesario que de laslavariables NUM , A y B sean del mismo tipo. Asignación de ese valor a la variable NUM.

Contexto y herramientas – Expresiones aritméticas Para formar expresiones aritméticas, se utilizan las constantes

Contexto y herramientas – Expresiones aritméticas Para formar expresiones aritméticas, se utilizan las constantes o variables numéricas y los operadores: + */ div suma resta multiplicación división corriente división euclidiana

Algoritmo Fin de la presentación Bibliografía: Joëlle Biondi y Gilles Clavel. ”Introducción a la

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.