Programación modular. Programación estructurada PROCEDIMIENTOS Y FUNCIONES

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Programación modular. Programación estructurada PROCEDIMIENTOS Y FUNCIONES"

Transcripción

1 Programación modular A medida que avanza el tiempo, los problemas que se espera que un computador resuelva se vuelven más y más complejos. Así, es en realidad muy extraño que se pueda diseñar un algoritmo simple que resuelva un problema real hoy en día, por lo que es necesario plantearse algún tipo de subdivisión que haga el problema abordable, en subproblemas manejables. En este tema se presentan las herramientas de programación que permiten resolver problemas complejos mediante su descomposición en otros más simples. Programación estructurada Es este paradigma de programación el que se podría llamar original, procedimental, o también conocido como Divide y vencerás. Se trata de dividir el problema a resolver en tareas a realizar, y estas tareas en una serie de procedimientos, para finalmente encontrar el algoritmo que mejor se encuadre en ellos. Fortran (creado en 1954, por Jhon Backus) es el lenguaje original de programación procedimental, aunque hoy en día la mayoría de los lenguajes de programación la permiten. El lenguaje Pascal (de principios de los 70, creado por Niklaus Wirth), es muy conocido debido al refuerzo que hacía de este tipo de programación. En este tipo de programación, el programador debe concentrarse en que cada procedimiento tenga una interfaz consistente, describiendo los argumentos de entrada y los de salida, y que cada procedimiento sea independiente del resto. PROCEDIMIENTOS Y FUNCIONES Un algoritmo que resolviera un problema complejo, contendría cientos o miles de líneas de código en su interior. Esto es inabarcable para cualquier programador, por lo que se utiliza el concepto de procedimientos y funciones para subdidivir el problema en partes. La idea es que cada una de estas partes contenga un conjunto de instrucciones que permita la ejecución de algún proceso determinado y lógico desde el punto de vista humano. Dos ejemplos, función y procedimiento respectivamente: FUNCION multiplicar(e a: ENTERO, E b: ENTERO): ENTERO RETORNA ( a * b ) FIN_FUNCION ó PROCEDIMIENTO escribiredad(e mensaje: CADENA, E edad: ENTERO) ESCRIBIR( mensaje, edad ) FIN_PROCEDIMIENTO La descomposición del software en tareas también se conoce con el nombre de top-down y fue presentada por primera vez por Niklaus Wirth. Este autor proporciona la siguiente visión de refinamiento: En cada paso (del refinamiento), una o varias instrucciones del programa dado, se descomponen en instrucciones más detalladas. Esta descomposición sucesiva o refinamiento de especificaciones termina cuando todas las instrucciones están 1

2 expresadas en términos de la computadora usada o del lenguaje de programación Conforme se refinan las tareas, también los datos pueden ser refinados, descompuestos o estructurados siendo natural refinar las especificaciones del programa y los datos en paralelo Cada paso de refinamiento implica algunas decisiones de diseño. Es importante que el programador sea consciente de los criterios subyacentes (en las decisiones de diseño adoptadas) y de la existencia de soluciones alternativas Típicamente, una descomposición insuficiente de un problema en tareas conduce a la definición de pocos procedimientos, cada uno de las cuales implementará múltiples funcionalidades. FUNCIONES Una función es una un conjunto de instrucciones, con un nombre asociado, que cumple las siguientes características: Tiene uno o más parámetros de entrada. Tiene un parámetro exclusivamente de salida y de tipo simple (es decir, lo que devuelve). Muchos lenguajes de programación no requieren el hecho de que el parámetro sea simple pero en esta asignatura se considerará la versión más purista. Todos los valores de entrada son necesarios y suficientes para determinar el valor de salida. Su sintaxis es la siguiente: FUNCION nombre_funcion(lista de parámetros formales): Tipo_de_salida CONSTANTES... TIPOS instrucción 1 instrucción 2... RETORNA ( expresión ){ de Tipo_de_salida FIN_FUNCION A continuación se muestra, como ejemplo, una función que devuelve la mayor de dos variables. 2

3 FUNCION max (E a: ENTERO, E b: ENTERO): ENTERO valorderetorno: ENTERO SI a > b valorderetorno a SINO valorderetorno b FINSI RETORNA ( valorderetorno ) FIN_FUNCION PROCEDIMIENTOS Son conjuntos de instrucciones con un nombre asociado, al igual que las funciones, pero no devuelven ningún valor. Los parámetros pueden ser de entrada, salida o de entrada / salida. Su sintaxis es la siguiente: PROCEDIMIENTO nombre_procedimiento(lista_de_parámetros_formales) CONSTANTES... TIPOS instrucción 1 instrucción 2... FIN_PROCEDIMIENTO Al no soportar el retorno, al contrario que las funciones, para devolver valores se usan parámetros de salida o de entrada/salida. PARÁMETROS DE UN PROCEDIMIENTO O FUNCIÓN Los parámetros o argumentos de una función o procedimiento son el mecanismo que permite el intercambio de datos entre la función o procedimiento que es llamado y el que realiza la llamada. En el momento de definir una función o procedimiento, es necesario especificar los parámetros, con el tipo asociado. En este momento, los parámetros se denominan formales. Por otra parte, en el momento de hacer la llamada a una función o procedimiento, cuando se utilizan literales o variables como lista de parámetros (que deben emparejarse con los parámetros formales en cuanto al tipo y orden). Estos parámetros se denominan reales. 3

4 ALGORITMO Mayor { a y b son parámetros formales de la función max FUNCION max (E a: ENTERO, E b: ENTERO): ENTERO valorderetorno: ENTERO SI a > b valorderetorno a SINO valorderetorno b FINSI RETORNA ( valorderetorno ) FIN_FUNCION num1, num2, mayor: ENTERO LEER( num1 ) LEER( num2 ) mayor max( num1, num2 ) { num1 y num2 son parámetros reales ESCRIBIR( mayor ) FIM_ALGORITMO Parámetros de entrada Permiten aportar datos a función o procedimiento por parte del algoritmo que le invoca. Un parámetro real asociado con un parámetro formal de entrada, puede ser un literal, una variable o incluso el valor que se obtendrá como resultado de la evaluación de una expresión. La definición de un parámetro formal de entrada se hace anteponiendo el modificador E delante del nombre del parámetro formal. Modificando un parámetro formal de entrada nunca se modifica el correspondiente parámetro real. Parámetros de salida Permiten que la acción pueda devolver resultados de su ejecución al algoritmo que invoca. El parámetro real asociado con un parámetro formal de este tipo debe ser necesariamente una variable en la que almacenar el resultado devuelto por la acción. Esa variable no tiene porque haber sido inicializada con anterioridad. Cualquier acción o modificación realizada sobre el parámetro formal de salida se refleja, de forma inmediata, sobre el correspondiente parámetro real. Para la definición de un parámetro formal de salida se debe anteponer el modificador S delante del nombre formal. Parámetros de entrada/salida Los parámetros de entrada/salida permiten aportar datos de entrada en un procedimiento o función, que ésta los modifique y los devuelva como resultado al algoritmo que la invoca. El parámetro real asociado con un parámetro formal declarado de entrada /salida, necesariamente debe ser una variable donde almacenar el valor devuelto por el procedimiento o función invocada y debe haber sido inicializado previamente a la invocación. La declaración de un parámetro de entrada/salida se hará anteponiendo el modificador E/S delante del nombre del parámetro formal en la definición de la función. 4

5 DESCOMPOSICIÓN DE UNA TAREA EN PROCEDIMIENTOS Y FUNCIONES La mayor complejidad a la hora de aplicar programación estructurada es saber decidir correctamente cuándo extraer código para colocarlo en un procedimiento o función, y cuándo utilizar una u otra. El proceso de identificación de procedimientos y funciones se basa en el empleo de cuestiones lógicas (experiencia y sentido común), ciertas heurísticas y una regla básica: Existen procedimientos y funciones que realizan procesos de entrada de datos, otras de salida de datos y otras de procesamiento de datos. Un procedimiento o función no debe combinar los tres tipos de tareas. Entre las heurísticas a tener en cuenta se encuentran las siguientes: 1. Cada vez que se necesita operar con ciertos tipos de datos compuestos (como registros o vectores) suele resultar necesario disponer de procedimientos para la lectura de esos datos, otras para la visualización de los mismos y finalmente otras que implementen las distintas operaciones necesarias. 2. Las operaciones de inicialización de un algoritmo que se ejecutan antes de empezar a funcionar dicho algoritmo (lecturas de ficheros de disco, inicialización de estructuras de datos) se colocan normalmente en un procedimiento (muchas veces llamado iniciar) si bien, de resultar ser este procedimiento demasiado extenso o complejo, se puede subdividir, a su vez, en otros procedimientos. Esto mismo ocurre con las operaciones que se deben ejecutar justo antes de terminar el algoritmo (volcados a disco, etc.). Por otra parte, si las operaciones son muy sencillas, no será probablemente interesante realizar este proceso. 3. Las operaciones de búsqueda y ordenación en cualquier estructura de datos se implementarán normalmente en procedimientos. 4. Cada una de las funcionalidades que un algoritmo proporcionará a un usuario es un procedimiento. Tomando el enunciado del problema, muchas veces se pueden identificar los procedimientos (de más alto nivel) a crear prestando atención a los verbos presentes. 5. Un indicativo de que un procedimiento o función es demasiado grande suele ser el número de líneas que ocupa: si contiene más de líneas (no se visualizará totalmente en una sola pantalla) es demasiado grande y, por lo tanto, debe ser descompuesta, a su vez, en procedimientos o funciones más pequeños. 6. Cuando en un algoritmo se repita más de una vez la misma tarea con una diferencia pequeña, esta diferencia pequeña se representará en los parámetros de un procedimiento o función que será capaz de adaptarse a todas las circunstancias en las que pueda ser empleado. En todo caso, hablar de diferencia pequeña implica que las instrucciones ejecutadas son las mismas y que, por ejemplo la única diferencia se encuentra en el número de veces que se ejecuta una composición iterativa o cuestiones muy similares que se puedan parametrizar. Un error muy común es emplear un procedimiento para dos acciones totalmente diferentes empleando un parámetro que indique cuál de ellas ejecutar. 7. La interfaz de un procedimiento o función se diseñará para asegurar la máxima reutilización. 5

6 CUESTIONES DE ÁMBITO En este apartado se tratarán una serie de cuestiones adicionales a tener en cuenta cuando se habla de procedimientos y funciones, que engloban conceptos relacionados con el ámbito de variables, los efectos colaterales, etc... ÁMBITO DE UN PROCEDIMIENTO O FUNCIÓN En general, se entiende por ámbito de un procedimiento o función M, el conjunto de otras funciones o procedimientos que pueden invocarla. ÁMBITO DE Las variables sólo se pueden referenciar desde la función o procedimiento en la que están declaradas. Así, es fundamental restringir el uso de variables a las funciones o procedimientos en las que están declaradas para no sufrir errores de programación debida a efectos laterales. El ámbito de una variable local o parámetro formal v declarada dentro de una función o procedimiento M es la propia función o procedimiento, cuyas instrucciones pueden modificarla o consultarla. A veces, ésto puede complicarse debido a que ciertos lenguajes de programación, como Pascal, permiten crear funciones (locales) dentro de funciones, de manera que las variables locales y parámetros formales creados para la contenedora sirven para todas las locales. Otros lenguajes, como C++, permiten crear bloques dentro de funciones o procedimientos, de manera que las variables creadas dentro de ellos tienen como ámbito sólo el bloque mencionado, y sin embargo se puede acceder al resto de variables de la función. Por ejemplo: int elevara(int x, int y) { int toret = 1; { /* n sólo tiene vida dentro de este bloque sin embargo, se puede acceder a x e y */ int n; for(n = 0; n < y; ++n) { toret = toret * x; return toret; Una función o procedimiento debe usar únicamente para su funcionamiento: Parámetros formales. Variables declaradas dentro de esa acción con nombre. De esta manera, se evitarán efectos laterales con variables globales, como se discute a continuación. 6

7 LOCALES Y GLOBALES Las variables que aparecen en un algoritmo o programa se dividen atendiendo a su ámbito en locales y globales. Variables locales: son aquellas cuyo ámbito de actuación se reduce a la función o procedimiento donde están definidas. Fuera de su función o procedimiento, estas variables no serán conocidas. Variables globales: son aquellas definidas por el algoritmo o programa principal, y potencialmente, su ámbito de actuación se extiende a todas los procedimientos y funciones del algoritmo, siempre que no se hayan (re)definido en el interior de alguna de ellas, bien variables locales o bien como parámetros, con el mismo identificador. El intercambio de información entre procedimientos y funciones debe producirse siempre a través de los parámetros y nunca a través de variables globales. Cualquier otro dato cuyo uso sólo tenga sentido dentro de una función o procedimiento, se declarará como una variable local a ésta, incluso en el caso de que una variable similar con el mismo identificador y tipo se use en otros procedimientos y funciones. Tal y como se ha comentado con respecto a las variables globales, una variable local de una función o procedimiento oculta a la variable global con el mismo identificador, tal y como se ve en el ejemplo más abajo: ALGORITMO ocultación x, y: ENTERO FUNCION elevara(x: ENTERO, y: ENTERO): ENTERO resultado: ENTERO resultado 1 DESDE i 0 HASTA y - 1 resultado resultado * x FIN_DESDE RETORNA resultado FIN_ALGORITMO LEER( x ) LEER( y ) ESCRIBIR( x^y =, elevara( x, y ) ) FIN_ALGORITMO En este ejemplo, la variable local 'x' oculta, dentro de la función elevara(), a la variable x del algoritmo principal. Una cuestión adicional es que, en la mayoría de lenguajes de programación, incluyendo a C y C++, existe un punto de entrada al programa que es una función con un nombre determinado, en el caso de estos lenguajes, main(). Es posible elegir si las variables del algoritmo principal serán variables globales o locales de esta función. Así, es posible implementar el anterior algoritmo sin que se produzca esta ocultación. 7

8 /* ALGORITMO (sin) ocultación */ int elevara(int x, int y) { int toret = 1; int n; for(n = 0; n < y; ++n) { toret = toret * x; return toret; int main() int x; int y; int resultado; scanf( %d, &x ); scanf( %d, &y ); resultado = elevara( x, y ); printf( %d\n, resultado ); De esta manera, es posible escribir un programa sin utilizar ni una sola variable global (que es lo más aconsejable). Dado que las variables locales se almacenan en el interior de la propia función o procedimiento, sólo deberemos declarar como globales aquellas variables, como estructuras o matrices, de gran tamaño, que no caben en la pila( stack). Los detalles internos, que explican este problema, se detallan en la siguiente sección sobre cuestiones de implementación. EFECTOS LATERALES Efecto lateral es cualquier modificación de una variable producida en un procedimiento o función en la que la variable no está declarada. Estos efectos deben evitarse pues introducen dependencias indeseables (la función o procedimiento depende entonces de una variable global, por ejemplo), que son causas de errores muy difíciles de detectar. En el siguiente algoritmo, la salida es Falso, tal y como se pretendía, pero no se visualiza nada más, cuando se pretendía avisar de que el número era negativo. 8

9 ALGORITMO efectoslaterales a: ENTERO PROCEDIMIENTO proc (E p: ENTERO) a abs( a ) { en este punto se produce un efecto lateral SI ( p > a ) ESCRIBIR( Cierto ) SINO ESCRIBIR( Falso ) FIN_SI FIN_PROCEDIMIENTO a -3 proc( 2 ) SI ( a < 0 ) ESCRIBIR( Aunque 'a' era negativo... ) {... nunca se ejecuta FIN_SI FIN_ALGORITMO La corrección del efecto lateral se puede obtener con una simple modificación del código, que no modifique 'a'. Ahora, el resultado es el esperado. ALGORITMO efectoslaterales a: ENTERO PROCEDIMIENTO proc (E p: ENTERO) SI ( p > abs( a ) ) { en este punto se producía un efecto lateral ESCRIBIR( Cierto ) SINO ESCRIBIR( Falso ) FIN_SI FIN_PROCEDIMIENTO a -3 proc( 2 ) SI ( a < 0 ) ESCRIBIR( Aunque 'a' era negativo... ) FIN_SI FIN_ALGORITMO Sin embargo, a pesar de que con esta modificación se corrige el efecto lateral, el algoritmo sigue sufriendo del mismo problema que lo causó: el procedimiento proc() que no sólo utiliza sus parámetros y variables locales para trabajar, sino que confía en la existencia de una variable global a. Podemos corregir fácilmente este problema con un nuevo parámetro, e incluso dejar el algoritmo tal y como estaba en un principio. 9

10 ALGORITMO efectoslaterales a: ENTERO PROCEDIMIENTO proc (E p: ENTERO, E a: ENTERO) a abs( a ) SI ( p > a ) ESCRIBIR( Cierto ) SINO ESCRIBIR( Falso ) FIN_SI FIN_PROCEDIMIENTO a -3 proc( 2, a ) SI ( a < 0 ) ESCRIBIR( Aunque 'a' era negativo... ) FIN_SI FIN_ALGORITMO PRECEDENCIA DEL NOMBRE En un algoritmo pueden definirse identificadores de variables idénticos siempre y cuando se definen en procedimientos o funciones distintas. Cuando se ejecuta una instrucción y se puede recuperar el valor de varias variables con el mismo nombre, se presenta un conflicto de ambigüedad que se resuelve mediante el criterio conocido como precedencia del nombre. Este criterio implica que se coge la variable definida en la función o procedimiento más cercano usando el criterio de ámbito de la variable en cuestión. Así, tiene preferencia, como ya se ha visto, la variable con el ámbito más cercano o más local. Como ejemplo, se muestra un pequeño algoritmo que utiliza un procedimiento con variables de entrada y de salida para ejemplificar lo visto hasta ahora. La salida del algoritmo se muestra a continuación. A B

11 ALGORITMO precedenciadenombre a, b: ENTERO PROCEDIMIENTO proc(e a: ENTERO; S b: ENTERO) b 25 a b + 5 FIN_PROCEDIMIENTO a 1 b 1 ESCRIBIR( a, b ) proc( 1, a ) ESCRIBIR( a, b ) FIN_ALGORITMO CUESTIONES DE IMPLANTACIÓN Se han descrito los comportamientos de los mecanismos de paso de parámetros, llamada a funciones o procedimientos. En esta sección se describe qué sucede realmente, a nivel de sistema operativo, cuando estos mecanismos se activan. PROCESO DE INVOCACIÓN DE UN PROCEDIMIENTO O FUNCIÓN Al ejecutar un programa, el sistema operativo asigna cierta cantidad de memoria al mismo. El programa en ejecución (proceso en memoria) organiza el espacio asignado atendiendo al siguiente esquema: TEXT DATA STACK HEAP TEXT es la zona de la memoria donde se almacenan las instrucciones del programa. Muchas veces, en TEXT se almacenan también las constantes, al ser esta zona de la memoria normalmente de sólo lectura. En DATA se almacenan las variables globales (no las constantes). El STACK (o pila de llamadas) permite al sistema operativo seguir el flujo de ejecución del programa. Finalmente, el HEAP es una zona ampliable de la memoria donde se almacenan estructuras de datos que pueden variar de tamaño con el tiempo. Cuando aparece una llamada a una función o procedimiento M, se crea en la pila (stack) un registro de activación o entorno de ejecución, denominado marco o frame de la pila, en donde se alojan las variables locales y parámetros formales declarados en la función o procedimiento, así como, la dirección de retorno a la instrucción posterior a la invocación. Una vez creado el entorno, se cede el control a la primera instrucción de M. Si M llama a otra función o procedimiento M', se creará un nuevo frame en la pila, y se 11

12 procede a la primera instrucción de M'. De este modo se pueden ir apilando llamadas (de ahí, su nombre) mientras sea necesario. Finalmente, cuando la ejecución del procedimiento o función M' involucrado se completa, se destruye su marco en la pila, se recupera el marco anterior, correspondiente a M (la que hizo la invocación), y se establece el contador de programa a la dirección de retorno del marco eliminado. Mecanismos de paso de parámetros en los lenguajes de programación Los mecanismos descritos aquí, de paso de parámetros de entrada, salida y entrada/salida, no suelen encontrarse en los lenguajes de programación, por el contrario, lo más típico es encontrar mecanismos de paso por valor y paso por referencia. Paso de parámetros por valor Cuando se realiza la llamada de un procedimiento o función, se efectúa una copia de la evaluación de los parámetros reales, que se almacena en una variable local con el mismo nombre que el parámetro formal, dentro del registro de activación. Esto implica que al finalizar la ejecución, estos parámetros se destruyen, y los parámetros reales no se ven afectados. Es el mecanismo más genérico de los lenguajes de programación y en la mayoría de los cuales no es necesario especificar ningún modificador del parámetro formal. El parámetro real puede ser cualquier expresión. Paso de parámetros por referencia En el paso de parámetros por referencia, en vez de trabajar con una copia de los parámetros reales almacenada en la pila de ejecución, se trabaja directamente sobre el parámetro real, por lo que cualquier modificación realizada sobre el parámetro formal es repercutida automáticamente en el parámetro real. El compilador hace que los parámetros formales declarados en la función o procedimiento apunten a la misma dirección de memoria que los parámetros reales. Este mecanismo de paso de parámetros se usa para parámetros de salida y entrada/salida, por lo que el parámetro real debe ser una variable. Muchas veces este tipo de paso de parámetros, combinado con restricciones de solo lectura, se emplea en algunos lenguajes de programación para sustituir al ineficiente paso de parámetros por valor en pasos de entrada. Nótese que si se pasara un vector por valor, se estaría copiando todo su contenido. Programación modular Una vez que los programas se fueron haciendo todavía más complejos y, por lo tanto, mayores, aún fue necesario crear un nivel más de división. Así, ahora era necesario organizar todos los procedimientos y funciones de alguna forma. Los módulos agrupan, precisamente, procedimentos y funciones afines, y también los datos que manipulan, de manera que aquellos que no son empleados por el resto de módulos quedan ocultos la ellos. Modula-2 (desarrollado a finales de los 70, también por Niklaus Wirth, es el sucesor directo de Pascal) es un buen ejemplo de lenguaje de programación basado en módulos. Otro lenguaje que la soporta es Ada. 12

13 La meta de la programación modular es obtener una organización de la arquitectura del software, con un diseño no orientado a la simple obtención del programa final, sino también a su mantenimiento, a su reutilización y a poder probarlo y entenderlo de forma fácil. Para ello, los algoritmos complejos y los programas se estructuran en módulos y éstos se estructuran en funciones y procedimientos. Al fin y al cabo, recordemos que las funciones y procedimientos, son porciones de código diseñadas para realizar tareas muy específicas. Los módulos deben agrupar funcionalidades del software a desarrollar, de tal forma que, en el desarrollo de una aplicación de hoja de cálculo, por poner un ejemplo, todo el manejo de operaciones matemáticas resida en mismo módulo. También todas las funciones que tienen que ver con el manejo de fórmulas definidas por el usuario, deben estar en otro módulo aparte (que probablemente necesite el módulo de matemáticas para funcionar), y así sucesivamente. El objetivo final sería poder reutilizar estos módulos en otras aplicaciones. La programación modular persigue que cada módulo y función o procedimiento, cumpla las siguientes características: Pequeño tamaño: de esta forma el impacto de un cambio puede ser perfectamente aislado. Independencia modular: cuanto mayor es la independencia de los módulos y los procedimientos y funciones, más sencillo es trabajar con él. El diseño debe reducir la necesidad de compartir ficheros, datos, dispositivos y llamadas desde o hacia otros módulos y procedimientos y funciones. Características de caja negra: visión exclusiva de la funcionalidad de un módulo o procedimiento/función en base a sus entradas y salidas sin tener en cuenta como se realiza el proceso. Modelo conceptual: un diseño es más fácil de mantener si el modelo de diseño empleado se ha basado en conceptos lógicos de organización, los cuales sean más familiares y comprensibles para el personal de mantenimiento. Trabajo de integración Trabajo de programación de modulos Aislamiento de los detalles (encapsulación): en un sistema existen partes que reflejan la filosofía y otras que reflejan los detalles. Ambas partes deben diseñarse por separado para evitar que una variación en los detalles afecte a la filosofía del sistema. Para conseguir los objetivos marcados se necesitan estrategias de diseño. Una de las principales se basa en la disposición de tareas, es decir, descomponer una tarea en otras más sencillas que se hayan identificando en la tarea de partida. 13

14 Una vez descompuesto el software en tareas, normalmente cada una de ellas será un procedimiento. Estos procedimientos se agruparán en módulos distintos, conformando grupos que representen las distintas categorías basadas en el tipo de problema que resuelven conceptualmente. La descomposición en tareas persigue la reducción del tamaño de los procedimientos hasta conseguir un sistema más fácil de entender y modificar, minimizando la duplicidad del código, así como la creación de módulos y procedimientos o funciones útiles y reutilizables. De hecho, si se desarrolla un módulo con varios procedimientos y funciones para, por ejemplo, funciones matemáticas, este podrá ser reutilizado en aplicaciones futuras. Para medir la calidad de un diseño modular se emplean las medidas de cohesión y acoplamiento que se pueden aplicar sobre módulos y procedimientos o funciones. Cohesión: es la medida de la fuerza o relación funcional de los elementos de un módulo (entendiendo por elementos, los procedimientos o funciones que lo componen, las definiciones de los datos y las llamadas a otros módulos). Un módulo coherente se encarga de una tarea relativamente sencilla en un programa y requiere de poca interacción con el resto de módulos y/o procedimientos y funciones. Por ejemplo, en un módulo de matemáticas, las funciones contenidas deben estar todas relacionadas con cálculos matemáticos, exclusivamente. Acoplamiento: grado de interdependencia entre los distintos módulos. En general, dos módulos no deben compartir estructuras de datos o variables. Por otro lado, cada módulo debe definir las funciones y procedimientos, estructuras de datos y variables que le resulten necesarias para la realización de su función específica. Así, el módulo de matemáticas ya comentado no debe necesitar en absoluto de otros módulos para trabajar. Otros módulos más complejos pueden necesitar a su vez de módulos que le sirvan para proveer de más funcionalidad, pero siempre de la manera más independiente posible. Como ya se ha establecido, con respecto a las funciones y procedimientos, cada uno de ellos debe depender exclusivamente de los parámetros que intercambia con las demás procedimientos y funciones. Mejorar la calidad implica aumentar la cohesión y disminuir el acoplamiento, debido a las siguientes razones: Cuantas menos conexiones existan entre los módulos, menos oportunidades habrá de que el efecto de un módulo sea contraproducente para otro. Si se desea tener la posibilidad de cambiar un módulo por otro (con la misma funcionalidad) con el mínimo riesgo, es decir, que el cambio afecte lo menos posible a otros módulos entonces el acoplamiento debe ser mínimo y la cohesión máxima. Mientras se está manteniendo un módulo, es deseable que no sea necesario preocuparse en los detalles internos de otros módulos. MÓDULOS DE MAYOR NIVEL Los lenguajes de programación actuales permiten la creación de módulos y procedimientos o funciones. Modula-2 (sucesor de Pascal), fue el primero en soportar 14

15 los módulos completamente usando unidades de compilación independiente, conocidas como Module (estas encontrarían su lugar en Turbo Pascal de Borland, como Units). Estos módulos se componen de funciones o procedimientos que permiten la realización de tareas específicas. Se pueden entender los módulos, que agrupan procedimientos y funciones con características comunes, como de mayor nivel con respecto a las funciones y procedimientos, que agrupan instrucciones que realizan algún cálculo o cuya composición resuelve un determinado problema. Una vez identificadas las tareas necesarias para resolver un problema, estas se agrupan en módulos según criterios como los datos con los que operan, si sirven para manejar un dispositivo específico, o tienen una temática común, etc. Es decir, se agrupan por funcionalidad. En pseudocódigo los módulos pueden representarse empleando la siguiente sintaxis: 15

16 MODULO nombredelmodulo INTERFAZ USA modulo 1, modulo 2,...modulo n CONSTANTES constante 1 : Tipo 1 = valorc 1... TIPOS Tipo 1 =def 1... variable 1 : tipo 1... FUNCION fn1(...) :... PROCEDIMIENTO proc1(...) IMPLEMENTACIÓN USA modulo 1, modulo 2,...modulo n ; CONSTANTES constante 1 : Tipo 1 = valorc 1... TIPOS tipo 1 =def 1... variable 1 : tipo 1... FUNCION fn1(...) : FIN_FUNCION PROCEDIMIENTO proc1(...)... FIN_PROCEDIMIENTO PROCEDIMIENTO procaux(...) { proc. Privado... FIN_PROCEDIMIENTO INICIALIZACIÓN instrucción 1... instrucción n FIN_MODULO Estos módulos de alto nivel pueden ser reutilizados totalmente y, por lo tanto, constituyen una buena forma para poder diseñar software. Los módulos se soportan de manera distinta en cada lenguaje de programación, como Ada o el ya mencionado Modula-2. En C y C++, es necesario separar cada módulo en dos archivos: un archivo con extensión.h, que almacena la parte de interfaz (pública), y otro con extensión.cpp, que almacena la parte de implementación (privada). Se muestra un ejemplo a continuación, sobre una librería de funciones estadísticas. 16

17 MODULO UtilesEstadísticos INTERFAZ CONSTANTES MaxVector : ENTERO = 100; TIPOS Vector = vector [MaxVector] de REAL {v: vector de entrada numelem: número de elementos en el vector FUNCION calcularmedia(e v: Vector, E numelem: ENTERO): REAL FUNCION calculardesvtipica(e v: Vector, E numelem: ENTERO): REAL PROCEDIMIENTO leervector (S v: Vector, S numelem: ENTERO) PROCEDIMIENTO escribirvector(e v: Vector, E numelem: ENTERO) IMPLEMENTACIÓN FUNCION calcularmedia(e v: Vector, E numelem: ENTERO): REAL i: ENTERO suma: REAL suma 0 DESDE i 0 HASTA numelem 1 suma suma + v[ i ] FIN_DESDE RETORNA (suma / numelem) FIN_FUNCION FUNCION calculardesvtipica(e v: Vector, E numelem: ENTERO): REAL i: ENTERO media: REAL sumadiferencias: REAL sumadiferencia 0 media calcularmedia( v, numelem ) DESDE i 0 HASTA numelem 1 sumadiferencia abs( v[ i ] - media ) FIN_DESDE RETORNA (sumadiferencia / numelem) FIN_FUNCION PROCEDIMIENTO leervector (S v: Vector, S numelem: ENTERO) i: ENTERO { Leer el número máximo de elementos REPETIR LEER( numelem ) HASTA ( numelem > 0 Y numelem < Max ) { Leer los elementos del vector DESDE i 0 HASTA n - 1 HACER LEER ( v[ i ] ) FIN_DESDE FIN_PROCEDIMIENTO PROCEDIMIENTO escribirvector(e v: Vector, E numelem: ENTERO) 17

18 i: ENTERO DESDE i 0 HASTA numelem - 1 ESCRIBIR( v[ i ] ); FIN_DESDE FIN_PROCEDIMIENTO Un algoritmo que hiciera uso del módulo anterior sería el siguiente. ALGORITMO MediaYdesviacion USA UtilesEstadísticos v: Vector numelem: ENTERO leervector( v, numelem ); ESCRIBIR( La media es, calcularmedia( v, numelem ) ) ESCRIBIR( La desviación típica es ) ESCRIBIR( calculardesvtipica( v, numelem ) ) FIN_DESDE FIN_ALGORITMO Como se puede apreciar, se puede emplear toda la parte de interfaz del módulo como si estuviera definido directamente en el algoritmo. Lo siguiente es la implementación en C++ estructurado de lo anterior. Primeramente, el archivo estadutil.h, que se corresponde con la interfaz del módulo. // MODULO UtilesEstadisticos #ifndef ESTADUTIL_H #define ESTADUTIL_H const int MaxVector = 100; void leervector(double v[maxvector], int &numelem); void escribirvector(double v[maxvector], int numelem); double calcularmedia(double v[maxvector], int numelem); double calculardesvtipica(double v[maxvector], int numelem); #endif A continuación, el archivo estadutil.cpp, que se corresponde con la implementación del módulo. 18

19 #include "estadutil.h" #include <cstdio> #include <cmath> using namespace std; void leervector(double v[maxvector], int &numelem) { int i; // Pedir longitud vector do { printf( "Introduzca nm. elementos (entre 0 y %d):\n", MaxVector ); scanf( "%d", &numelem ); while( numelem < 1 numelem > MaxVector ); // Pedir los elementos del vector printf( "Introduzca %d valores, uno a uno.\n", numelem ); for(i = 0; i < numelem; ++i) { scanf( "%lf", &v[ i ] ); void escribirvector(double v[maxvector], int numelem) { int i; printf( "[ " ); for(i = 0; i < numelem; ++i) { printf( "%.2f ", v[ i ] ); printf( "]" ); double calcularmedia(double v[maxvector], int numelem) { int i; double toret = 0; for(i = 0; i < numelem; ++i) { toret += v[ i ]; return ( toret / numelem ); double calculardesvtipica(double v[maxvector], int numelem) { int i; double toret = 0; double media = calcularmedia( v, numelem ); for(i = 0; i < numelem; ++i) { toret += abs( v[ i ] - media ); return ( toret / numelem ); 19

20 Finalmente, se incluye la implementación del pequeño algoritmo de prueba de la librería, medesv.cpp. // ALGORITMO mediaydesviacion #include "estadutil.h" #include <cstdio> int main() { double v[maxvector]; int numelem; Ejemplos leervector( v, numelem ); printf( "v = " ); escribirvector( v, numelem ); printf( "\n" ); printf( "La media es %.2lf, y la desv. típica %.2lf\n", calcularmedia( v, numelem ), calculardesvtipica( v, numelem ) ); Se pretende construir una aplicación de gestión de una colección de libros. Para cada libro se almacenará el título, el autor y el año de publicación. Al arrancar la aplicación los datos sobre la colección serán recuperados de un fichero (libros.dat) y cargados en memoria en una variable de tipo ColeccionLibros. Durante la ejecución de la aplicación se trabajará sobre esta variable para mejorar la eficiencia de la aplicación y justo antes de salir de la utilidad se realizará un volcado de los datos al fichero. Los libros se dispondrán en una estructura de datos adecuada que debe mantenerse ordenada según el campo título (de Libro) tanto en el fichero como en memoria. Al insertar un libro en la colección, este, se insertará en una posición libre. Diseñe un algoritmo que permita gestionar la colección de libros, de forma quesea posible añadir nuevos libros, buscar los datos de un libro por su título y listar todos los libros ordenados por título. Solución: Lo primero que se debe hacer es identificar una estructura de datos adecuada. En primer lugar, es necesario representar un libro, a la vez que es necesario tener también una colección de libros. La estructura de datos para representar varios elementos del mismo tipo es un vector. Así: Para representar un libro escogemos un registro en el que se almacenan distintos elementos de distintos tipos: 20

21 TIPOS Libro = REGISTRO titulo: CADENA autor: CADENA anho: ENTERO FIN_REGISTRO Para representar un listado de libros (listado de varios elementos del mismo tipo) parece conveniente emplear una estructura de datos de tipo vector. CONSTANTES MaxLibros = 500; TIPOS ColeccionLibros = VECTOR [MaxLibros] DE Libro; Ahora bien, en el vector no siempre tienen que existir MaxLibros elementos y, por lo tanto, para representar un conjunto de libros que puede adoptar distintos tamaños, se debe acompañar al vector información que indique la cantidad de elementos válidos en el vector. En este sentido, se debe colocar un nuevo tipo que indique el número de elementos válidos de la colección. Esto obligaría a tener en cuenta ambas variables (el vector y el número de elementos), cada vez que esta estructura de datos (que se pretende que trabaje conjuntamente) fuese necesaria en un procedimiento o función. Por ello, suele ser mucho más útil (y cómodo) reunir ambas variables en una sola estructura. CONSTANTES MaxLibros = 500; TIPOS ListaLibros = VECTOR [MaxLibros] DE Libro; Libro = REGISTRO titulo: CADENA autor: CADENA anho: ENTERO FIN_REGISTRO ColeccionLibros = REGISTRO libros: ListaLibros numlibros: ENTERO FIN_REGISTRO Cada vez que se emplee un dato de tipo colección siempre será necesario el tamaño. Una vez que se han tomado una decisión sobre los tipos de datos adecuados se procede a detectar los procedimientos y funciones que pueden surgir en el proyecto. CargarDatos y VolcarDatos como acciones que hay que realizar justo después de arrancar la aplicación y justo antes de salir de la misma. Una acción con nombre para cada uno de las funcionalidades del programa: Insertar, Buscar y Listar. La lectura y escritura de estructuras de datos de tipo Libro: LeerLibro y VisualizarLibro Las operaciones de búsqueda sobre vectores entre las que se incluyen la búsqueda de una posición para insertar y la búsqueda de datos concretos. En este 21

22 caso, se trata de BusqOrdenada, un proceso optimizado de búsqueda del que se hablará en el tema 4. Una vez detectadas los procedimientos que son necesarios, se procede a detectar las dependencias que existen entre ellos. En este sentido se ha detectado lo siguiente Los procedimientos Insertar y Buscar necesitarán poder llamar al procedimiento BusqOrdenada para conocer la posición donde insertar o donde buscar. Los procedimientos Listar y Buscar necesitarán poder llamar al procedimiento VisualizarLibro para visualizar todos los libros de la colección o el libro que se busca en una colección. El procedimiento Insertar necesita poder llamar a LeerLibro para poder leer los datos de un libro. Una vez identificadas las dependencias se escoge una distribución de procedimientos en el diseño que permita satisfacer las dependencias teniendo en cuenta las reglas del ámbito de procedimientos y funciones. En la siguiente figura se representa esta distribución de procedimientos y funciones: ColeccionLibros CargarDatos VolcarDatos BusqOrdenada Insertar Listar LeerLibro Buscar VisualizarLibro Una vez escogida la estructura básica se procede a realizar una detección de los parámetros que necesita cada acción con nombre para poder operar y, en función de ellos, se determinará si los procedimientos y funciones son procedimientos o funciones. 22

23 ColeccionLibros CargarDatos E NomFich: Cadena S col: ColeccionLibros S n: ENTERO PROC VolcarDatos E NomFich: Cadena E col: ColeccionLibros E n: ENTERO BusqOrdenada E col: ColeccionLibros E t: ENTERO E e: Cadena Listar E col: ColeccionLibros E n: ENTERO PROC PROC Insertar E/S col: ColeccionLibros E/S n: ENTERO PROC VisualizarLibro E libro:libro Buscar E col: ColeccionLibros E n: ENTERO PROC PROC PROC LeerLibro S libro: Libro PROC Como hay pocos procedimientos (menos de 10), se ha optado por no emplear módulos de nivel superior. En el caso de que el número de procedimientos fuese superior a 10 sería más conveniente plantearse el realizar una división en unidades de compilación independiente separadas. En cada unidad de compilación independiente se colocan los procedimientos y funciones que hacen referencia a un tipo concreto de datos, como por ejemplo la ColeccionLibros. 23

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario.

WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario. WinHIPE: edición, compilación y ejecución de programas; y generación de animaciones web. Manual de usuario. Índice contenido. INTRODUCCIÓN... 1-2 1. ENTORNO DE TRABAJO... 1-2 2. EDICIÓN DE PROGRAMAS...

Más detalles

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación

Más detalles

MATERIAL 2 EXCEL 2007

MATERIAL 2 EXCEL 2007 INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta

Más detalles

Caso práctico de Cuadro de Mando con Tablas Dinámicas

Caso práctico de Cuadro de Mando con Tablas Dinámicas 1 Caso práctico de Cuadro de Mando con Tablas Dinámicas Luis Muñiz Socio Director de SisConGes & Estrategia Introducción Hay una frase célebre que nos permite decir que: Lo que no se mide no se puede controlar

Más detalles

BASE DE DATOS RELACIONALES

BASE DE DATOS RELACIONALES BASE DE DATOS RELACIONALES Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS Clase 1. Introducción Profesor: Diego Sánchez Gómez Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases

Más detalles

Los números racionales

Los números racionales Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones

Más detalles

Tema: Sobrecarga de Operadores.

Tema: Sobrecarga de Operadores. Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen

Más detalles

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

Más detalles

GERENCIA DE INTEGRACIÓN

GERENCIA DE INTEGRACIÓN GERENCIA DE INTEGRACIÓN CONTENIDO Desarrollo del plan Ejecución del plan Control de cambios INTRODUCCIÓN La gerencia de integración del proyecto incluye los procesos requeridos para asegurar que los diversos

Más detalles

Fórmulas y funciones

Fórmulas y funciones Fórmulas y funciones Uso de fórmulas Las fórmulas son el corazón y el alma de la hoja de cálculo. Si no las necesitáramos sería lo mismo que trabajáramos en un procesador de textos. Excel 2007 ofrece un

Más detalles

GESTIÓN DE LA DOCUMENTACIÓN

GESTIÓN DE LA DOCUMENTACIÓN Página: 1 de 8 Elaborado por: Revidado por: Aprobado por: Comité de calidad Responsable de calidad Director Misión: Controlar los documentos y registros del Sistema de Gestión de Calidad para garantizar

Más detalles

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS 5 ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS Contenido: 5.1 Conceptos Generales Administración de Bases de Datos Distribuidas 5.1.1 Administración la Estructura de la Base de Datos 5.1.2 Administración

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Programa Presupuestos de Sevillana de Informática.

Programa Presupuestos de Sevillana de Informática. Programa Presupuestos de Sevillana de Informática. Introducción. En sus inicios, el programa Presupuestos estaba pensado únicamente para escribir e imprimir presupuestos, facilitando el trabajo con un

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

EDICIÓN Y FORMATO (II)

EDICIÓN Y FORMATO (II) EDICIÓN Y FORMATO (II) 1. INTRODUCCIÓN Writer dispone de una serie de barras de herramientas predeterminadas, en las que se encuentran botones de acceso directo a comandos específicos que se activan con

Más detalles

Operación 8 Claves para la ISO 9001-2015

Operación 8 Claves para la ISO 9001-2015 Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,

Más detalles

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

Más detalles

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía.

Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Examen Curso 2001-2002. Convocatoria de Febrero Página 1 Ejercicio 1. Desarrollar un pequeño juego para practicar mecanografía. Este ejercicio se divide en dos partes con el fin de que el alumno no intente

Más detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

Unidad II: Administración de Procesos y del procesador

Unidad II: Administración de Procesos y del procesador Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros

Más detalles

CONTROL DE ASISTENCIA DE PERSONAL

CONTROL DE ASISTENCIA DE PERSONAL CONTROL DE ASISTENCIA DE PERSONAL PARA UNA EMPRESA INITE, S.C. no es responsable del contenido, de la veracidad de los datos, opiniones y acontecimientos vertidos en el presente proyecto. La finalidad

Más detalles

Microsoft Office XP Excel XP (I)

Microsoft Office XP Excel XP (I) PRÁCTICA 1 HOJA DE CÁLCULO Microsoft Office XP Excel XP (I) 1. Entrar en Windows 98 (ver práctica 1), y en el Excel abriendo el icono Microsoft Office del escritorio y seleccionar el icono Microsoft Excel,

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática Manejo básico de base de datos Unas de las capacidades de Excel es la de trabajar con listas o tablas de información: nombres, direcciones, teléfonos, etc. Excel puede trabajar con tablas de información

Más detalles

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

Informe Quicklook 000 NOMBRE DE LA TECNOLOGÍA. Nombre del Inventor, Institución o Empresa. Programa de Comercialización de Tecnología

Informe Quicklook 000 NOMBRE DE LA TECNOLOGÍA. Nombre del Inventor, Institución o Empresa. Programa de Comercialización de Tecnología Informe Quicklook 000 NOMBRE DE LA TECNOLOGÍA Nombre del Inventor, Institución o Empresa Programa de Comercialización de Tecnología El propósito de este informe Quicklook es presentar los resultados de

Más detalles

Figure 16-1: Phase H: Architecture Change Management

Figure 16-1: Phase H: Architecture Change Management Fase H Administración del cambio en la Arquitectura Figure 16-1: Phase H: Architecture Change Management Objetivos Los objetivos de la Fase H son: Asegurarse de que el ciclo de vida de arquitectura se

Más detalles

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS

Universidad Católica del Maule. Fundamentos de Computación Especificación de tipos de datos ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Especificación algebraica ESPECIFICACIÓN ALGEBRAICA DE TIPOS DE DATOS Un tipo abstracto de datos se determina por las operaciones asociadas, incluyendo constantes que se consideran como operaciones sin

Más detalles

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS AUTORÍA JOSEFA PÉREZ DOMÍNGUEZ TEMÁTICA NUEVAS TECNOLOGIAS ETAPA CICLOS FORMATIVOS DE GRADO SUPERIOR DE INFORMÁTICA Resumen En esta publicación se

Más detalles

Capítulo 6. Introducción a la POO

Capítulo 6. Introducción a la POO Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en

Más detalles

1 La Resolución de Problemas utilizando la Computadora

1 La Resolución de Problemas utilizando la Computadora La Resolución de Problemas utilizando la Computadora Lissette Alvarez Abril-Julio, 2004 El Computador es una máquina que no puede trabajar por si sola, únicamente realiza aquellas órdenes que el hombre

Más detalles

Construcción de Escenarios

Construcción de Escenarios Construcción de Escenarios Consiste en observar los diferentes resultados de un modelo, cuando se introducen diferentes valores en las variables de entrada. Por ejemplo: Ventas, crecimiento de ventas,

Más detalles

ZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

ZCARTAS: Iniciación a la suma y resta de números enteros... 4. Introducción... 4. Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... CONTENIDO ZCARTAS: Iniciación a la suma y resta de números enteros... 4 Introducción... 4 Actividad 1: Escenario con cartas numeradas desde -2 hasta 2... 4 Contenidos trabajados... 4 Instrucciones de Scratch...

Más detalles

LAS BARRAS. La barra de acceso rápido

LAS BARRAS. La barra de acceso rápido LS RRS La barra de título Contiene el nombre del documento sobre el que se está trabajando en ese momento. Cuando creamos un libro nuevo se le asigna el nombre provisional Libro1, hasta que lo guardemos

Más detalles

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria Metodología de la programación y desarrollo de software Marta Zorrilla Universidad de Cantabria Metodología de la programación Objetivos Fases en la solución de un problema de programación. Ciclo de vida

Más detalles

Hoja1!C4. Hoja1!$C$4. Fila

Hoja1!C4. Hoja1!$C$4. Fila CAPÍTULO 6......... Cálculo y funciones con Excel 2000 6.1.- Referencias De Celdas Como vimos con anterioridad en Excel 2000 se referencian las celdas por la fila y la columna en la que están. Además como

Más detalles

3.2 Operaciones aritmético-lógicas en Pascal

3.2 Operaciones aritmético-lógicas en Pascal 3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES

Más detalles

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

CAPÍTULO I. Sistemas de Control Distribuido (SCD). 1.1 Sistemas de Control. Un sistema es un ente cuya función es la de recibir acciones externas llamadas variables de entrada que a su vez provocan una o varias reacciones como respuesta llamadas variables

Más detalles

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS ACCESS 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS En esta unidad veremos algunas de las herramientas incorporadas de Access que

Más detalles

Conclusiones. Particionado Consciente de los Datos

Conclusiones. Particionado Consciente de los Datos Capítulo 6 Conclusiones Una de las principales conclusiones que se extraen de esta tesis es que para que un algoritmo de ordenación sea el más rápido para cualquier conjunto de datos a ordenar, debe ser

Más detalles

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DISEÑO DE FUNCIONES (TRATAMIENTOS) DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Capítulo 11. Conclusiones y trabajo futuro

Capítulo 11. Conclusiones y trabajo futuro Capítulo 11. Conclusiones y trabajo futuro En esta tesis ha realizado un entorno de desarrollo Web que proporciona herramientas para la mejora de la calidad del código de los desarrolladores. Para conseguir

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

UTILIDAD DE EXPORTACIÓN DE ASIENTOS A CONTAPLUS

UTILIDAD DE EXPORTACIÓN DE ASIENTOS A CONTAPLUS MESP V3.0 UTILIDAD DE EXPORTACIÓN DE ASIENTOS A CONTAPLUS AM Consultores Ps Castellana, 226 28046 Madrid mesp@allegmusic.com Utilidad de exportación de asientos a Contaplus 2 3 Utilidad de exportación

Más detalles

Curso: Arquitectura Empresarial basado en TOGAF

Curso: Arquitectura Empresarial basado en TOGAF Metodología para desarrollo de Arquitecturas (ADM) El ADM TOGAF es el resultado de las contribuciones continuas de un gran número de practicantes de arquitectura. Este describe un método para el desarrollo

Más detalles

Capítulo 4 Procesos con estructuras de repetición

Capítulo 4 Procesos con estructuras de repetición Estructura de contador Capítulo 4 Procesos con estructuras de repetición Esta es una operación que incrementa en una unidad el valor almacenado en la variable c, cada vez que el flujo del diagrama pasa

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Para llegar a conseguir este objetivo hay una serie de líneas a seguir:

Para llegar a conseguir este objetivo hay una serie de líneas a seguir: INTRODUCCIÓN La Gestión de la Calidad Total se puede definir como la gestión integral de la empresa centrada en la calidad. Por lo tanto, el adjetivo total debería aplicarse a la gestión antes que a la

Más detalles

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU 2011-2012 RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU Antecedentes:... 2 1. Introducción... 3 2. Imágenes que no se visualizan... 3 3. URLs de recursos o actividades que no son autocontenido...

Más detalles

Curso Internet Básico - Aularagon

Curso Internet Básico - Aularagon Antes de empezar es necesario que tengas claro algunas cosas: para configurar esta cuenta de correo, debes saber que el POP y el SMTP en este caso son mail.aragon.es; esta cuenta de correo hay que solicitarla

Más detalles

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. 1 Direcciones o Ubicaciones, Carpetas y Archivos Botones de navegación. El botón Atrás permite volver a carpetas que hemos examinado anteriormente. El botón Arriba

Más detalles

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México

Acciones Correctivas y Preventivas. Universidad Autónoma del Estado de México Acciones Correctivas y Preventivas Universidad Autónoma del Estado de México Mejora Continua La mejora continua del desempeño global de la organización debería ser un objetivo permanente de ésta. Mejora

Más detalles

Instructivo de Microsoft Excel 2003

Instructivo de Microsoft Excel 2003 Instructivo de Microsoft Excel 2003 El presente instructivo corresponde a una guía básica para el manejo del programa y la adquisición de conceptos en relación a este utilitario. Que es Microsoft Excel?

Más detalles

IE UNIVERSIDAD REGLAMENTO DE RECONOCIMIENTO Y TRANSFERENCIA DE CRÉDITOS EN LOS TÍTULOS DE GRADO JULIO 2013*

IE UNIVERSIDAD REGLAMENTO DE RECONOCIMIENTO Y TRANSFERENCIA DE CRÉDITOS EN LOS TÍTULOS DE GRADO JULIO 2013* IE UNIVERSIDAD REGLAMENTO DE RECONOCIMIENTO Y TRANSFERENCIA DE CRÉDITOS EN LOS TÍTULOS DE GRADO JULIO 2013* * Revisión aprobada por el Comité Rectoral del 16 de junio de 2014 ÍNDICE PREÁMBULO I. TÍTULO

Más detalles

Propiedad Colectiva del Código y Estándares de Codificación.

Propiedad Colectiva del Código y Estándares de Codificación. Propiedad Colectiva del Código y Estándares de Codificación. Carlos R. Becerra Castro. Ing. Civil Informática UTFSM. Introducción. n. En este trabajo se presentan específicamente dos prácticas de XP: Collective

Más detalles

Soporte lógico de computadoras

Soporte lógico de computadoras Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación Proximidad del lenguaje al que entiende el ordenador: Bajo nivel: específico

Más detalles

INSTRUCTIVO DEL COMANDO MAKE

INSTRUCTIVO DEL COMANDO MAKE INSTRUCTIVO DEL COMANDO MAKE Introducción Un programa escrito en C está normalmente compuesto por varios archivos. Estos archivos se van modificando según se va completando o cambiando el programa. Cada

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010 Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010 CONTENIDO 1. Qué es? 2. Cómo crear y acceder a la Comunidad Virtual en Microsoft SharePoint 2010? Ejemplo. 3. Qué tengo en la página de inicio

Más detalles

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2

EXTRACTO Descripción del uso y manejo de SIRAIS 1.2 Manual de usuario EXTRACTO Descripción del uso y manejo de ELABORADO POR Dr. Javier Rodríguez Suárez Director General de Difusión e Investigación Ing. José Joel Lucero Morales Jefe de Enseñanza de la Dirección

Más detalles

Operación de Microsoft Word

Operación de Microsoft Word Trabajar con tablas Las tablas permiten organizar la información y crear atractivos diseños de página con columnas paralelas de texto y gráficos. Las tablas pueden utilizarse para alinear números en columnas

Más detalles

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES Ciclo Formativo: Módulo: Desarrollo de Aplicaciones Informáticas Análisis y Diseño Detallado de Aplicaciones Informáticas de Gestión Unidad de Trabajo 10: GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN

Más detalles

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...

Más detalles

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos. Apéndice C. Glosario A Actividades de coordinación entre grupos. Son dinámicas y canales de comunicación cuyo objetivo es facilitar el trabajo entre los distintos equipos del proyecto. Actividades integradas

Más detalles

www.fundibeq.org Además se recomienda su uso como herramienta de trabajo dentro de las actividades habituales de gestión.

www.fundibeq.org Además se recomienda su uso como herramienta de trabajo dentro de las actividades habituales de gestión. HOJAS DE COMPROBACIOÓN Y HOJAS DE RECOGIDA DE DATOS 1.- INTRODUCCIÓN En este documento se describe el proceso de obtención de información a partir de la recogida y análisis de datos, desde el establecimiento

Más detalles

LA SELECCION DE PERSONAL

LA SELECCION DE PERSONAL LA SELECCION DE PERSONAL FASES DE LA SELECCION La selección, como cualquier otro proceso dentro de una organización, necesita seguir una serie de pasos perfectamente definidos y estructurados. Lo ideal

Más detalles

Unidad VI: Supervisión y Revisión del proyecto

Unidad VI: Supervisión y Revisión del proyecto Unidad VI: Supervisión y Revisión del proyecto 61. Administración de recursos La administración de recursos es el intento por determinar cuánto, dinero, esfuerzo, recursos y tiempo que tomará construir

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable

Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Contenido TAREAS.... 3 CONFIGURACIÓN.... 3 GESTIÓN Y CALIFICACIÓN DE TAREAS.... 8 TAREAS. Mediante esta herramienta podemos establecer

Más detalles

HERRAMIENTAS DE EXCEL PARA EL ANALISIS Y VALORACION DE PROYECTOS DE INVERSION (I)

HERRAMIENTAS DE EXCEL PARA EL ANALISIS Y VALORACION DE PROYECTOS DE INVERSION (I) Revista de Dirección y Administración de Empresas. Número 10, diciembre 2002 págs. 59-76 Enpresen Zuzendaritza eta Administraziorako Aldizkaria. 10. zenbakia, 2002 abendua 59-76 orr. HERRAMIENTAS DE EXCEL

Más detalles

ANEXO (NÓMINA DE CANDIDATOS EN SOPORTE INFORMÁTICO

ANEXO (NÓMINA DE CANDIDATOS EN SOPORTE INFORMÁTICO ELECCIONES MUNICIPALES ANEXO (NÓMINA DE CANDIDATOS EN SOPORTE INFORMÁTICO Las autoridades nacionales de los Partidos Políticos y las Agrupaciones Políticas deberán confeccionar las nóminas de los candidatos

Más detalles

Licenciatura en Computación

Licenciatura en Computación Res. CFI 21/06/2012 Res. CDC 25/09/2012 Pub. DO 31/10/2012 Plan de Estudios Licenciatura en Computación Facultad de Ingeniería 1 Antecedentes y fundamentos 1.1 Antecedentes En la Facultad de Ingeniería,

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS IAP 1003 - ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS Introducción 1. El propósito de esta Declaración es prestar apoyo al auditor a la implantación de la NIA 400, "Evaluación del Riesgo y

Más detalles

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000

Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000 Cómo las herramientas en línea están revolucionando la implementación de ITIL e ISO 20000 Informe 14 de marzo de 2014 Copyright 2014 20000Academy. Todos los derechos reservados. 1 Resumen ejecutivo Antes

Más detalles

Comente: Los bancos siempre deberían dar crédito a los proyectos rentables. Falso, hay que evaluar la capacidad de pago.

Comente: Los bancos siempre deberían dar crédito a los proyectos rentables. Falso, hay que evaluar la capacidad de pago. Explique Brevemente en que consiste el leasing y nombre los diferentes tipos existentes. Es un mecanismo de financiamiento de Activos el cual permite el uso del activo por un periodo determinado a cambio

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

Más detalles

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2016 Procesos Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor

Más detalles

Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2

Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2 Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2 1. Rango de celdas. Definición. Selección Contenido. 2. Referencias relativas, absolutas y mixtas. 3. Gráficos. Creación,

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Tema 6: Teoría de la Normalización

Tema 6: Teoría de la Normalización Tema 6: Teoría de la Normalización 1. Introducción Si definimos una base de datos como; una colección de información estructurada, referente a objetos y hechos de la realidad, y almacenados en un ordenador

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 9: CRITERIOS DE CALIDAD DE DISEÑO MODULAR CRITERIOS DE CALIDAD DE DISEÑO MODULAR Conceptos generales Cohesión y acoplamiento

Más detalles

COMPETENCIA MATEMÁTICA Y RESOLUCIÓN DE PROBLEMAS

COMPETENCIA MATEMÁTICA Y RESOLUCIÓN DE PROBLEMAS COMPETENCIA MATEMÁTICA Y RESOLUCIÓN DE PROBLEMAS Jesús Gago Sánchez, Maestro de Primaria. 1-. INTRODUCCIÓN AL CONCEPTO DE COMPETENCIA MATEMÁTICA. La Ley Orgánica de Educación, LOE, establece en su Artículo

Más detalles

Figura 1 Abrir nueva hoja de cálculo

Figura 1 Abrir nueva hoja de cálculo 1. DISEÑO DE UNA HOJA Para abrir una hoja de cálculo existente en el espacio de trabajo del usuario, debe ir al menú Archivo > Abrir, o bien desde el botón Abrir archivo de la barra de herramientas, o

Más detalles

MODELOS DE RECUPERACION

MODELOS DE RECUPERACION RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN

Más detalles