1
2 Algoritmo Nociones fundamentales
3 Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Esta presentación
4 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
5 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 1Enunciado 2
6 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 Procesador 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
7 Algoritmo – Procesador, entorno, acciones El conjunto de utensilios necesarios para la ejecución del trabajo. Entorno 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
8 Algoritmo – Procesador, entorno, acciones 27,50 ab Entorno 1 1 1 1 1 1 1 1 1 1 1 1 10 NO 50 1 Ejemplo: bc 50 20 10 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 50 10 5 5 5 5 5 5 5 5 5 5 5 5 5 25 n c 50 Tarea: Dar vuelto.
9 Algoritmo – Procesador, entorno, acciones La ejecución de un trabajo no elemental, supone cierta progresió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.
10 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.
11 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 2 2 Ejecución: x 6 y 2
12 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
13 Algoritmo – A cciones 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. Acción primitiva
14 Algoritmo – A cciones 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.
15 Algoritmo – A cciones 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:
16 Algoritmo – A cciones 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: repetiracciones hasta quecondición ejecutaracciones evaluarcondición condición no realizada condición realizada
17 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
18 Algoritmo – A ná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álisis descendente
19 Algoritmo – A nálisis descendente Representación: (E i ) T(E f ) (E i 1 ) t 1 (E f 1 ) (E i n ) t n (E f n )(E i k ) t k (E f k )... (E f k-1 ) = (E i k )(E f k ) = (E i k+1 ) Cada trabajo t k, pasa el entorno de un estado ( E i k ) a un estado ( E f 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
20 Algoritmo – A ná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.
21 Algoritmo – A nálisis descendente
22 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
23 Algoritmo – A nálisis descendente Enunciado: A partir de la pila que se encuen- tra en el escritorio, agrupar las fotocopias. A A BC 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 BC
24 Algoritmo – A nálisis descendente
25 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 mesa hasta 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 escritorio hasta que (C4) una de las mesas quede sin hojas. C1C1 C11: colocarse en la mesa Nº 1 C12: tomar una hoja de esa mesa Repetir C13: ir a la mesa siguiente C14: tomar una hoja de esa mesa hasta que la mesa sea la Nº 10 B C1C1 C A
26 Algoritmo – A ná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
27 Noción de Algoritmo 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
28 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
29 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. Objetivo Fase 1Fase 2 Resolución del problema: determinación de un algo- ritmo que realice el tratamiento. Adaptación del algoritmo al procesador: codificación.
30 Objetivo de la programación Fase 1Fase 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
31 Algoritmo Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones Noción de algoritmo Objetos y acciones elementales Esquemas condicionales Iteraciones
32 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
33 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 de encima de la pila La mesa siguiente El primer número La tecla 3La tecla +
34 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 3La tecla + Nombre Lo designa sin ambigüedad Cada objeto tiene una utilización particular. Las utilizaciones no son intercambiables. Tipo Indica 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 mesas del 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
35 Formalización – Objetos en un entorno Nombre Tipo Valor 1 6 7 3 5 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 ejecuta la acción
36 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
37 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
38 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 3 Se ejecutará 1 + 2 + 3 = 6 Si es 5 1 + 2 + 3 + 4 + 5 = 15 etc. …
39 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 final del entorno. Se requiere: objeto que contiene el valor del resultado S 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
40 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 resultado S 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 n ENTERO
41 Formalización – Objetos en un entorno Observación: Se acaban de crear dos objetos numéricos (S y ENTERO). SENTERO 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
42 Formalización – Objetos en un entorno Descripción del entorno del problema: ObjetoFunciónEstado inicialEstado final NUM Objeto de valor entero >= 1, que indica el entero más grande a acumular nn S Objeto en el cual se calcula la suma de los n primeros enteros valor indeterminado 1 + 2 +... + (n –1) + n ENTERO Objeto que contendrá los sucesivos enteros de 1 a n valor indeterminado
43 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 ENTERO el 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
44 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:
45 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 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 E xpresado 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)
46 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.
47 Formalización – Objetos en un entorno Ejecución paso a paso Ejecución del algoritmo por el procesador: algoritmo suma_de_enteros Inicio 1: dar a S el valor 0 2: dar a ENTERO el valor 1 3: 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 o condición evaluada NUMSENTERO Estado del entorno después de la ejecución de la acción3indeterminado Inicialmente 30indeterminado 1 301 2 311 3a 312 3b3c 2 3+1,sigue 332 3a 333 3b3c 3 3+1,sigue 363 3a 364 3b 3c SENTERONUM 3 4 = 3+1, termina la ejecución
48 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
49 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
50 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
51 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 -------------------------- --------------------------
52 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 realizar de dónde se parte a dónde se quiere llegar (Ei)(Ei) (Ef)(Ef) El instrumento de la realización el procesador, del que se han de conocer las acciones primitivas
53 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: Algoritmo 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
54 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 a b c B d Algoritmo B a b b a Si se ejecuta el algoritmo A, las acciones ejecutadas estarán en el orden a, b, c, a, b, b, a, d
55 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
56 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
57 Constantes y variables Es un objeto cuyo valor cambia (no es invariable) Variable 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
58 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 objeto El objeto 1 es una constante
59 Constantes y variables Es un objeto de valor invariable. Es la realización de un valor de un tipo particular. Constante 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.
60 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
61 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
62 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
63 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.
64 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. Longitud de una cadena
65 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.
66 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 elementales Variable compuesta
67 Tipo compuesto Ejemplo: RESULTADO APELLIDOASIGNATURANOTA ‘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 APELLIDOASIGNATURANOTA ‘Moro’ ‘Informática’ 9 LETRASNÚMEROS ‘Nueve’
68 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
69 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... Interactivo 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.
70 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.
71 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 COMPUTADOR PERSONAL o conectada a distancia a un computa- dor que sirve simultáneamente a va- rios usuarios SERVIDOR
72 Contexto y herramientas La estación de trabajo posee, en general, dos dispositivos de comunicación: ENTORNO PROCESADOR Teclado Pantalla Leer Escribir
73 Contexto y herramientas - Lectura Permite asignar a una variable del entorno, un valor pulsado en el teclado. Acción leer En entorno interactivo: Notación: Leer ( N ) Siendo N la variable considerada.
74 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.
75 Contexto y herramientas - Escritura Hace aparecer una información en la pantalla. Acción escribir En entorno interactivo: Notación: Escribir ( i ) Donde i puede ser una constante, el valor de una variable, o una serie de valores.
76 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_enteros Inicio 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_enteros Inicio escribir (‘Cálculo de la suma de los N primeros enteros’) escribir(‘Ingrese un valor entero’) leer (NUM)...
77 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_enteros Inicio...... escribir(‘La suma de los ‘, NUM, ‘ primeros enteros es’, S) Fin
78 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. Acción asignación
79 Contexto y herramientas - Asignación Notación: m e Donde mes el nombre de la variable a la que el procesador ha de atribuir el valor. caracteriza la acción de asignación. erepresenta 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)
80 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
81 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
82 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
83 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. 1 Asignación de ese valor a la variable NUM. 2
84 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
85 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.