Receta general para resolver problemas de sincronización con semáforos

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

Download "Receta general para resolver problemas de sincronización con semáforos"

Transcripción

1 Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que te parezca algo inabordable y que no sepas por dónde empezar. Tal vez ya conoces y entiendes las soluciones a algunos problemas tipo, como el búfer cinito o los cilósofos, pero no sabes cómo aplicar estos algoritmos a nuevos problemas que aparentemente no tienen nada que ver con lo que has aprendido hasta ahora. Te invaden el desconcierto y la parálisis. Afortunadamente, existen técnicas sistemáticas (y simples) para construir algoritmos de sincronización entre procesos y que son útiles en una gran variedad de casos. En este artículo explicaremos una técnica que para resolver problemas de sincronización entre procesos utilizando semáforos. La técnica puede servir como receta general para abordar situaciones en las que hay necesidad de sincronizar procesos y no se tiene muy claro por dónde empezar. La técnica descrita también tiene sus limitaciones. Hay problemas socisticados que son dicíciles de modelar con ella. Por otro lado, no siempre da lugar a una solución eciciente. Pero al menos decine un camino seguro para elaborar soluciones sin necesidad de recurrir a la inspiración. Contenido 1 La receta: descripción teórica... 2 Patrones de código: bloqueo condicional y desbloqueo... 2 Los pasos de la receta La técnica en acción... 5 Paso 1. Esquema básico del algoritmo... 5 Paso 2. Localizar los puntos de bloqueo y las condiciones... 5 Paso 3. Escribir las condiciones de bloqueo de manera formal... 6 Paso 4. Localizar los puntos de desbloqueo... 6 Paso 5. Aplicar los patrones de código... 7 Paso 6. Optimizar el código Cerrojos y variables condición Versión simplicicada: cola de espera única Conclusión J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 1

2 1 La receta: descripción teórica La receta se basa en reducir todos los problemas de sincronización a dos clases: accesos a datos compartidos y esperas condicionales. Los primeros los resolveremos con un semáforo de tipo mutex, que es un semáforo inicializado a uno. Las esperas condicionales las trataremos mediante semáforos de tipo cola de espera, que son semáforos inicializados a cero y se usarán para bloquear a los procesos que deben esperar a que se cumpla una condición lógica. Para solucionar un problema genérico de sincronización, nos bastará con decinir un solo semáforo de tipo mutex. Por cada situación de bloqueo que identiciquemos, normalmente declararemos un semáforo de tipo cola de espera, aunque si no nos queremos complicar, podemos utilizar una sola cola de espera para todo el sistema: es menos eciciente, pero funciona. Nuestra receta consiste en analizar el algoritmo que queremos sincronizar y localizar en él todos los puntos donde se pueden producir bloqueos. Cada uno de los bloqueos estará condicionado a que se cumpla una expresión lógica (booleana), que tendremos que averiguar. Una vez decinidas esas condiciones, se aplicarán unas plantillas de código universales que resuelven los bloqueos y desbloqueos. Patrones de código: bloqueo condicional y desbloqueo Para implementar un bloqueo, se utilizarán siempre los mismos patrones de código, que están basados en operar con una cola de espera de procesos. El punto de partida es que hemos identicicado puntos de bloqueo dentro del código, vinculados al cumplimiento de condiciones lógicas. El código alrededor de esos puntos de bloqueo tiene que tener esta estructura:... bloquearse mientras se cumpla COND... código que sólo se puede ejecutar si no se cumple COND Un ejemplo puede ser lo que le ocurre a un cilósofo en el problema la cena de los cilósofos:... bloquearse mientras el palillo(i) y el palillo(i+1) estén ocupados... tomar el palillo(i) y el palillo(i+1)... comer O al productor en el problema del búfer cinito:... bloquearse mientras el búfer está lleno... insertar un elemento en el búfer Cada situación de bloqueo (en los ejemplos, el código que empieza por «bloquearse mientras...») estará asociada con una cola de espera, que a su vez se implementará mediante dos objetos: un semáforo inicializado a cero y una variable entera. El semáforo se usará para bloquear a los procesos que deban mantenerse en espera, y la variable entera llevará la cuenta de cuántos procesos esperan en cada momento. En todos los problemas de sincronización que resolveremos con esta receta, existirán datos compartidos: como mínimo, los contadores enteros relacionados con las colas de espera. Para regular el acceso a los datos compartidos siempre habrá que declarar un semáforo de tipo mutex. Hay que utilizar el mutex para envolver TODOS los usos de variables compartidas en el código J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 2

3 Los patrones de código que resuelven los bloqueos y desbloqueos son exactamente tres: bloqueo de un proceso desbloqueo de un proceso desbloqueo de todos los procesos que están en cola En los siguientes apartados describimos esos tres patrones. Variables compar=das Esta receta se basa en dos semáforos y una variable entera. Semáforo mutex = 1; Semáforo colacond = 0; int contadorcond = 0; La variable contadorcond contendrá en todo momento el número de procesos que están bloqueados en el semáforo colacond. Código de bloqueo Este código se debe escribir en cada punto donde detectemos que debe existir un bloqueo condicional. El código debe insertarse justo antes del código original que sólo puede ejecutarse cuando se cumpla la condición lógica del bloqueo. // esperar hasta que se cumpla una condición lógica «COND» while ( COND ) { contadorcond++; // registra que hay alguien en espera V (mutex); // libera el mutex para no provocar interbloqueos P (colacond); // bloquea al proceso P (mutex); // vuelve a adquirir el mutex para reevaluar COND // Colocar aquí el código que toque variables de estado. // Este código se ejecuta en exclusión mutua (mutex está adquirido). Código para desbloquear a un solo proceso Este código se escribirá cuando en nuestro programa debe desbloquearse a uno solo de los procesos que están en espera. // desbloquear UN SOLO proceso if ( contadorcond > 0 ) { // hay alguien esperando? contadorcond- - ; // entonces, anota que hay uno menos V ( colacond ); // y desbloquéalo Justo después de la operación P(mutex) podría haber otras instrucciones, por ejemplo para J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 3

4 actualizar variables de estado. Esto dependerá de cada sistema que estemos desarrollando. Código para desbloquear a todos los procesos A veces nos interesará desbloquear a todos los procesos que se encuentran en la cola. El único cambio sobre el algoritmo anterior es sustituir el if del desbloqueo por un bucle while. El número de iteraciones viene determinado por la variable contadorcond, que contiene el número de procesos que actualmente están en cola. // desbloquear a todos los procesos while ( contadorcond > 0 ) { contadorcond- - ; V ( colacond ); Los pasos de la receta Estos son los pasos que hay que seguir para resolver el problema de sincronización. 1. Escribir el esquema básico del algoritmo, sin instrucciones de sincronización. 2. Localizar los puntos de bloqueo: marcar las zonas del algoritmo donde los procesos se pueden bloquear y escribir las condiciones de bloqueo en lenguaje natural. 3. Formalizar las condiciones de bloqueo: reescribirlas usando variables, expresiones booleanas, etc. «variables de estado» 4. Localizar los puntos de desbloqueo: marcarlos en el código y distinguir si se desbloquea a un solo proceso o a todos los procesos que esperan. 5. Sustituir los bloqueos y desbloqueos por plantillas de código universales, siguiendo estas reglas: a) Cada situación de bloqueo y desbloqueo se resuelve con operaciones P y V de un semáforo «cola de espera», inicializado a cero. b) Usamos las variables contadoras para saber cuántos procesos hay esperando en cada cola. c) Usamos un mutex (un semáforo inicializado a uno) para proteger las zonas de código donde están las sincronizaciones y los accesos a variables compartidas, incluyendo las variables de estado. 6. Optimizar el código resultante, si se desea J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 4

5 2 La técnica en acción Ahora que se ha presentado la receta, la aplicaremos a un ejemplo simple y conocido: el primer problema de los lectores y escritores. Recordemos que en este problema hay dos tipos de procesos que acceden a una base de datos: lectores y escritores. Se debe permitir el acceso concurrente de los lectores; y mientras un proceso escritor está accediendo a la base de datos, no puede haber ningún otro proceso (ni escritor ni lector). En el llamado «primer problema», los lectores tienen preferencia sobre los escritores. Vamos a aplicar los pasos de la receta a este problema y ver cómo evoluciona el programa que vamos escribiendo. Paso 1. Esquema básico del algoritmo Este paso es el más importante: si no modelamos correctamente el sistema, el resto del trabajo será inútil. En nuestro ejemplo, tenemos dos algoritmos: el del proceso lector, y el del escritor. // Proceso lector Lector() {... leer de la base de datos... // Proceso escritor Escritor() {... escribir en la base de datos... No ha sido muy complicado... Paso 2. Localizar los puntos de bloqueo y las condiciones Ahora tenemos que ubicar las zonas del código donde los lectores y escritores deberían bloquearse y escribir las condiciones de bloqueo, en lenguaje natural: // Proceso lector Lector() { bloquearse si hay algún escritor trabajando... leer de la base de datos... // Proceso escritor Escritor() { bloquearse si hay otro proceso trabajando (lector o escritor)... escribir en la base de datos J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 5

6 Paso 3. Escribir las condiciones de bloqueo de manera formal Escribir las condiciones de bloqueo ha sido fácil, porque lo hemos hecho en lenguaje natural. El siguiente paso es delicado, porque hay que reescribir estas condiciones de manera que lo pueda entender un compilador. Por tanto, tendremos que crear variables de estado que nos permitan conocer si hay lectores o escritores trabajando. No sólo se trata de reescribir las condiciones, sino también de escribir el código necesario para que las variables de estado se mantengan siempre con un valor correcto. En nuestro ejemplo, crearemos dos variables nlectores y nescritores que mantendrán la cantidad de procesos lectores y escritores que están operando con la base de datos. // Variables de estado int nlectores = 0; int nescritores = 0; // Proceso lector Lector() { // bloquearse si hay algún escritor trabajando bloquearse si: nescritores > 0 nlectores++;... leer de la base de datos nlectores- - ; // Proceso escritor Escritor() { // bloquearse si hay otro proceso trabajando (lector o escritor) bloquearse si: nlectores>0 or nescritores>0 nescritores++;... escribir en la base de datos nescritores- - ; Paso 4. Localizar los puntos de desbloqueo Ahora ya podemos identicicar los puntos en el código en los que deberían ir los desbloqueos. Cómo localizamos estos puntos? Tenemos que ver dónde cambian las variables de estado y en qué puntos podrían cambiar de manera que varíen las condiciones de bloqueo que mantienen detenidos a otros procesos. Es importante marcar si el desbloqueo se hace sobre un solo proceso en espera, o bien hay que desbloquear a todos los procesos. Si no tenemos claro cuál es el caso, optaremos por desbloquearlos a todos: la solución será menos eciciente, pero por lo menos será correcta. En nuestro caso, podemos observar que hay dos puntos de desbloqueo: cuando un lector cinaliza (podría desbloquearse un escritor) y cuando un escritor cinaliza (podrían desbloquearse todos los lectores en espera, o bien un escritor) J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 6

7 El segundo punto de desbloqueo es interesante, porque puede dar lugar a dos clases de desbloqueos (a los lectores o al escritor). Hay que anotar esos dos posibles desbloqueos, porque cada uno generará código diferente. Marcaremos los puntos de desbloqueo en el código de esta forma: // Variables de estado int nlectores = 0; int nescritores = 0; // Proceso lector Lector() { // bloquearse si hay algún escritor trabajando bloquearse si: nescritores > 0 nlectores++;... leer de la base de datos nlectores- - ; si nlectores == 0 desbloquear a un escritor // Proceso escritor Escritor() { // bloquearse si hay otro proceso trabajando (lector o escritor) bloquearse si: nlectores>0 or nescritores>0 nescritores++;... escribir en la base de datos nescritores- - ; si hay lectores esperando desbloquear a todos los lectores si no hay lectores y hay escritores esperando desbloquear a un escritor No hay que preocuparse mucho por decinir las condiciones que preceden a los desbloqueos. Si no se tiene muy claro cuáles pueden ser esas condiciones, se puede indicar que el desbloqueo ocurra siempre. En ese caso el algoritmo seguirá siendo correcto, aunque algo menos eciciente, ya que se harán desbloqueos de más. En caso de duda, mejor forzar al desbloqueo siempre. Paso 5. Aplicar los patrones de código En este punto se acabó la parte creativa de la receta. Todo lo que viene a continuación es pura rutina. De hecho, el código que vamos a escribir se podría generar automáticamente. Hay que transformar las acciones de bloqueo en operaciones P de semáforos utilizados como colas de espera. Por cada condición de bloqueo, crearemos un semáforo inicializado a cero y un contador. En cada situación de bloqueo insertaremos la plantilla genérica de código de bloqueo. Las acciones de desbloqueo se transformarán en operaciones V en esas colas de espera. Todo ello, siguiendo los patrones de código presentados anteriormente J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 7

8 Siguiendo las reglas generales, para nuestro ejemplo tenemos que crear estos objetos: Un mutex, que siempre es necesario. Dos colas de espera, una para gestionar el bloqueo de los lectores ( colalectores) y otra para gestionar el bloqueo de los escritores (colaescritores). Dos contadores enteros, uno para cada cola. También es importante colocar el código que actualiza las variables de estado dentro de la protección del mutex. En nuestro caso, se trata de la manipulación de las variables nlectores y nescritores. Código de inicialización // Variables de estado int nlectores = 0; int nescritores = 0; // Control de la exclusión mutua Semáforo mutex = 1; // Cola de espera de los lectores Semáforo colalectores = 0; int contadorlectores = 0; // Cola de espera de los escritores Semáforo colaescritores = 0; int contadorescritores = 0; Proceso lector Lector() { // bloquearse si hay algún escritor trabajando // bloquearse si: nescritores > 0 while ( nescritores > 0 ) { contadorlectores++; P ( colalectores ); nlectores++;... leer de la base de datos... // actualización de variables de estado y desbloqueo J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 8

9 nlectores- - ; if ( nlectores == 0 ) { if ( contadorescritores > 0 ) { contadorescritores- - ; V ( colaescritores ); Proceso escritor Escritor() { // bloquearse si hay otro proceso trabajando (lector o escritor) // bloquearse si: nlectores>0 or nescritores>0 while ( nlectores>0 or nescritores > 0 ) { contadorescritores++; P ( colaescritores ); nescritores++;... escribir en la base de datos... // actualización de variables de estado y desbloqueo nescritores- - ; if ( contadorlectores > 0 ) { // desbloqueamos a todos los lectores while ( contadorlectores > 0 ) { contadorlectores- - ; V ( colalectores ); else { // desbloqueamos a un escritor if ( contadorescritores > 0 ) { contadorescritores- - ; V ( colaescritores ); J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 9

10 Paso 6. Op:mizar el código El algoritmo anterior ya es una solución correcta al problema de los lectores y escritores. No obstante, se puede mejorar de muchas formas. Por ejemplo, la variable nescritores podría ser un booleano. 3 Cerrojos y variables condición Los patrones de código aquí presentados son tan rutinarios que se pueden encapsular en un tipo abstracto de datos que ofrezca unas operaciones de alto nivel de «bloquear» y «desbloquear». De hecho, muchos lenguajes y frameworks de programación concurrente ofrecen estos servicios. Por ejemplo, la biblioteca pthreads ofrece los llamados cerrojos (mutex) y variables condición. Los cerrojos tienen sendas operaciones de bloqueo y desbloqueo (lock/unlock) y equivalen al semáforo mutex de nuestra receta. Una variable condición equivale al conjunto de semáforo+contador utilizado en la receta para mantener una cola de espera. Normalmente ofrece tres operaciones: bloqueo, desbloqueo a un proceso y desbloqueo a toda la cola (wait/signal/broadcast). En el caso del lenguaje Java, los objetos pueden invocar a varias operaciones similares: una operación de bloqueo en cola (wait), una operación de desbloqueo individual (notify) y una operación de desbloqueo general a todos los hilos en espera (notifyall). Cada objeto en Java tiene su propio cerrojo o mutex, que se adquiere y libera cuando se invoca a un método de forma exclusiva (los métodos se pueden declarar como de acceso exclusivo utilizando la palabra reservada synchronized). 4 Versión simplificada: cola de espera única La receta aquí descrita utiliza una cola por cada bloqueo encontrado en el código. En realidad, el problema se puede resolver con una sola cola para todos los procesos. En algunos algoritmos esto podría llegar a ser bastante ineciciente, pero por lo menos funciona. La receta para la cola única es más sencilla: todos los bloqueos van al mismo semáforo cola y en todos los puntos de desbloqueo se deben reactivar todos los procesos de la cola. A continuación mostramos el código de los lectores y escritores que hace uso de una cola única. Como el código de bloqueo y desbloqueo ahora es único para todas las situaciones, se ha empaquetado en sendas funciones bloqueo() y desbloqueogeneral(). Estas funciones serían los equivalentes de las operaciones wait() y broadcast() de las variables condición, o las operaciones wait() y notifyall() de Java. Puede apreciarse que el código queda mucho más compacto que el que obtuvimos en el apartado anterior, aunque se paga el precio de más desbloqueos innecesarios. Por ejemplo, cuando un escritor termina, se desbloquea a todos los procesos, tanto lectores como escritores, a pesar de que sólo un tipo de procesos puede proseguir. Código de inicialización // Variables de estado int nlectores = 0; int nescritores = 0; J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 10

11 Control de bloqueos y desbloqueos (cola única) // Variables globales Semáforo mutex = 1; Semáforo cola = 0; int procesosencola = 0; // Rutinas de bloqueo y desbloqueo void bloqueo() { procesosencola++; V(mutex); P(cola); P(mutex); void desbloqueogeneral() { while ( procesosencola > 0 ) { procesosencola- - ; V (cola); Proceso lector Lector() { // bloquearse si hay algún escritor trabajando while ( nescritores > 0 ) { bloqueo(); nlectores++;... leer de la base de datos... // actualización de variables de estado y desbloqueo general nlectores- - ; desbloqueogeneral(); J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 11

12 Proceso escritor Escritor() { // bloquearse si hay otro proceso trabajando (lector o escritor) while ( nlectores>0 or nescritores > 0 ) { bloqueo(); nescritores++;... escribir en la base de datos... // actualización de variables de estado y desbloqueo general nescritores- - ; desbloqueogeneral(); 5 Conclusión Hemos presentado una técnica general para resolver problemas de sincronización a través de semáforos. La técnica no garantiza una solución óptima, pero sí da la seguridad de que el código es correcto y que el procedimiento de resolución siempre es el mismo, sin necesidad de requerir ingenio, creatividad o inspiración. La estrategia más simple requiere sólo tres variables globales: un mutex, una cola y un contador de esperas. Es la recomendable cuando lo que se quiere es obtener una solución correcta sin que preocupe la eciciencia. Esta técnica general es la que ha dado lugar a la creación de herramientas de programación concurrente presentes en los actuales entornos de programación. La técnica nos puede servir para aplicarla en cualquiera de esos entornos (pthreads, Java, etc.) J.M. Santos Espino, A. Quesada, E. Rodríguez, F. Santana 12

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

hay alguien ahi? por Marcelino Alvarez maralvilla@gmail.com

hay alguien ahi? por Marcelino Alvarez maralvilla@gmail.com hay alguien ahi? por Marcelino Alvarez maralvilla@gmail.com Un repaso a las estadísticas de lectura tanto de la página web como de la revista digital, para ver si alguien se acuerda de nosotros. Ya podemos

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

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. 1 de 18 Inicio Qué es un foro En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. En el campus virtual, el foro es una herramienta

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

Aproximación local. Plano tangente. Derivadas parciales.

Aproximación local. Plano tangente. Derivadas parciales. Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 004-005 Aproximación local. Plano tangente. Derivadas parciales. 1. Plano tangente 1.1. El problema de la aproximación

Más detalles

UNIDAD 1. LOS NÚMEROS ENTEROS.

UNIDAD 1. LOS NÚMEROS ENTEROS. UNIDAD 1. LOS NÚMEROS ENTEROS. Al final deberás haber aprendido... Interpretar y expresar números enteros. Representar números enteros en la recta numérica. Comparar y ordenar números enteros. Realizar

Más detalles

Uso del Programa Gantt Project

Uso del Programa Gantt Project Uso del Programa Gantt Project Presentación En esta práctica guiada aprenderás varias cosas relacionadas con el uso de Gantt Project, que es una aplicación de ayuda a la gestión de proyectos: Especificar

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

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

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.

Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C. EJERCICIO GUIADO. JAVA: VARIABLES GLOBALES Variables Globales / Propiedades de la Clase Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el

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

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos

Más detalles

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Estructuras de Datos y Algoritmos Tecnólogo en Informática Estructuras de Datos y Algoritmos Tecnólogo en Informática INSTRUCTIVO DEL COMANDO MAKE ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 Contenido Introducción... 3 El archivo makefile...

Más detalles

La explicación la haré con un ejemplo de cobro por $100.00 más el I.V.A. $16.00

La explicación la haré con un ejemplo de cobro por $100.00 más el I.V.A. $16.00 La mayor parte de las dependencias no habían manejado el IVA en los recibos oficiales, que era el documento de facturación de nuestra Universidad, actualmente ya es formalmente un CFD pero para el fin

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

MODELO PARA LA ELABORACIÓN DE PROGRAMACIONES Y UNIDADES DIDÁCTICAS POR COMPETENCIAS. Autor: Daniel Hernández Cárceles

MODELO PARA LA ELABORACIÓN DE PROGRAMACIONES Y UNIDADES DIDÁCTICAS POR COMPETENCIAS. Autor: Daniel Hernández Cárceles MODELO PARA LA ELABORACIÓN DE PROGRAMACIONES Y UNIDADES DIDÁCTICAS POR COMPETENCIAS Autor: Daniel Hernández Cárceles INDICE: 1. INTRODUCCIÓN.... 2 2. COMPETENCIAS BÁSICAS... 2 3. PASOS PARA ELABORAR UNA

Más detalles

1 http://www.sencilloyrapido.com/

1 http://www.sencilloyrapido.com/ 1 Contenido Introducción 3 Que son las encuestas pagadas por internet?. 5 Como ganar dinero con las encuestas pagadas por internet. 7 Pueden las encuestas pagadas generarte un ingreso decente?.. 9 Conclusión.

Más detalles

Capítulo 0. Introducción.

Capítulo 0. Introducción. Capítulo 0. Introducción. Bueno, por fin está aquí el esperado (espero!!) Capítulo Cero del Tutorial de Assembler. En él estableceremos algunos conceptos que nos serán de utilidad a lo largo del Tutorial.

Más detalles

Software Criptográfico FNMT-RCM

Software Criptográfico FNMT-RCM Software Criptográfico FNMT-RCM ÍNDICE 1. DESCARGA E INSTALACIÓN DEL SOFTWARE 2. EXPORTACIÓN DE CERTIFICADOS EN MICROSOFT INTERNET EXPLORER 3. IMPORTACIÓN DEL CERTIFICADO A LA TARJETA CRIPTOGRÁFICA -2-

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)

Más detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

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

Carteleras. Elaborar una agenda de conciertos y actividades musicales

Carteleras. Elaborar una agenda de conciertos y actividades musicales Carteleras. Elaborar una agenda de conciertos y actividades musicales Etapa/Curso Área Destrezas Tiempo de realización Contenidos Competencias básicas 3º ciclo de Primaria 1º ciclo de Secundaria Educación

Más detalles

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros. Qué significa esto? Decir que una empresa es eficiente es decir que no

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

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Sistemas de numeración

Sistemas de numeración Sistemas de numeración Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. Los sistemas de numeración actuales son sistemas posicionales, que se caracterizan

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

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: 5 10 2 2 10 1 8 10 0 =528 8 10 3 2 10 2 4 10 1 5 10 0 9 10 1 7 10 2 =8245,97 SISTEMAS DE NUMERACIÓN Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar datos numéricos. La norma principal en un sistema de numeración posicional es que un mismo símbolo

Más detalles

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

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

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto

Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto Generación de funciones lógicas mediante decodificadores binarios con salidas activas a nivel alto Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informática de Sistemas

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

Operaciones con polinomios

Operaciones con polinomios Operaciones con polinomios Los polinomios son una generalización de nuestro sistema de numeración. Cuando escribimos un número, por ejemplo, 2 354, queremos decir: 2 354 = 2 000 + 300 + 50 + 4 = 2)1 000)

Más detalles

Licencia. Todos los derechos reservados. Este reporte puede ser distribuido libremente pero queda

Licencia. Todos los derechos reservados. Este reporte puede ser distribuido libremente pero queda Licencia copyright www.segurodevidaparapadres.com Todos los derechos reservados. Este reporte puede ser distribuido libremente pero queda estrictamente prohibida cualquier modificación del mismo. El contenido

Más detalles

Implementación de widgets Avaibook en Blogger

Implementación de widgets Avaibook en Blogger Implementación de widgets Avaibook en Blogger Introducción Blogger es un sistema de blogs como cualquier otro. Permite la publicación de entradas, páginas, etc. Mucha gente lo utiliza como página web personal

Más detalles

Alberto Marcano Díaz

Alberto Marcano Díaz Tutorial sobre Internet y su uso (Básico) Creado por: Alberto Marcano Díaz alberto.marcano@gmail.com Diciembre, 2006 San Cristóbal, Táchira. VENEZUELA En la nueva era, Internet y todo su entorno es una

Más detalles

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes? Preguntas frecuentes Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes? Atención! Esta opción es de configuración y solamente la prodrá realizar el administrador de la

Más detalles

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO

CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO CAPITULO V. SIMULACION DEL SISTEMA 5.1 DISEÑO DEL MODELO En base a las variables mencionadas anteriormente se describirán las relaciones que existen entre cada una de ellas, y como se afectan. Dichas variables

Más detalles

Cómo crear experiencias de cliente con Social Media. Whitepaper

Cómo crear experiencias de cliente con Social Media. Whitepaper Cómo crear experiencias de cliente con Social Media Whitepaper En este WhitePaper vamos a intentar entender cómo las redes sociales nos pueden ayudar a crear o potenciar las experiencias de nuestros clientes.

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

La Lección de Hoy es Distancia entre dos puntos. El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1

La Lección de Hoy es Distancia entre dos puntos. El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1 La Lección de Hoy es Distancia entre dos puntos El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1 La formula de la distancia dada a dos pares es: d= (x 2 -x 1 ) 2 + (y 2 -y 1 ) 2 De

Más detalles

Trazabilidad ERP Microsa Gestión de Lotes

Trazabilidad ERP Microsa Gestión de Lotes Fecha revisión: 11/10/2004 La rastreabilidad o trazabilidad (del inglés traceability) representa el rastreo de un producto desde un punto cualquiera de la cadena de suministro hasta el origen u orígenes,

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar.

Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar. SOLUCIÓN CASO PRÉSTAMOS I Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar. Excel incorpora varias funciones que permiten efectuar cálculos

Más detalles

Bienvenidos a la presentación, producción de informes y depuración (debugging). En esta unidad discutiremos la producción de informes utilizando la

Bienvenidos a la presentación, producción de informes y depuración (debugging). En esta unidad discutiremos la producción de informes utilizando la Bienvenidos a la presentación, producción de informes y depuración (debugging). En esta unidad discutiremos la producción de informes utilizando la tecnología.net y la aplicación de técnicas de depuración

Más detalles

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S

PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA T E M A S PARTE 3 ECUACIONES DE EQUIVALENCIA FINANCIERA Valor del dinero en el tiempo Conceptos de capitalización y descuento Ecuaciones de equivalencia financiera Ejercicio de reestructuración de deuda T E M A

Más detalles

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina

Datos del autor. Nombres y apellido: Germán Andrés Paz. Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Datos del autor Nombres y apellido: Germán Andrés Paz Lugar de nacimiento: Rosario (Código Postal 2000), Santa Fe, Argentina Correo electrónico: germanpaz_ar@hotmail.com =========0========= Introducción

Más detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

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

Capítulo VI. Diagramas de Entidad Relación

Capítulo VI. Diagramas de Entidad Relación Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...

Más detalles

Concurrencia. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Concurrencia. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Concurrencia Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Concurrencia La mayor parte de los DBMS son sistemas para múltiples usuarios Se permite a cualquier cantidad de transacciones

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

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

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente.

Este programa mueve cada motor de forma independiente, y cuando termina una línea pasa a la siguiente. 1 Programa 1 Utilizando el icono añadimos un movimiento a por cada línea de programa. Podremos usar 8 posibles líneas de programa (Base, Hombro, Codo, Muñeca, Pinza, Salida 1, Salida 2 y línea en blanco).

Más detalles

COMO AUMENTAR MIS VENTAS: ENFOQUE EN PROMOCION Y PUBLICIDAD

COMO AUMENTAR MIS VENTAS: ENFOQUE EN PROMOCION Y PUBLICIDAD COMO AUMENTAR MIS VENTAS: ENFOQUE EN PROMOCION Y PUBLICIDAD OBJETIVOS Conocer la importancia del uso de Publicidad y Promoción en el negocio. Cómo mejorar el negocio a través de la Promoción y Publicidad.

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

CASO PRÁCTICO PRÉSTAMOS. VALIDACIÓN DE LA INFORMACIÓN

CASO PRÁCTICO PRÉSTAMOS. VALIDACIÓN DE LA INFORMACIÓN CASO PRÁCTICO PRÉSTAMOS. VALIDACIÓN DE LA INFORMACIÓN Nuestra empresa necesita realizar una ampliación de negocio para lo cual estamos buscando un inmueble que se adapte a nuestras necesidades. Para financiar

Más detalles

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal Karel para todos! 1 Estás interesado en aprender a programar en lenguaje de Karel? Te interesa la Olimpiada Mexicana de Informática? Esta es tu oportunidad de unirte al equipo OMI y ser parte de la mejor

Más detalles

UNIDAD DE APRENDIZAJE IV

UNIDAD DE APRENDIZAJE IV UNIDAD DE APRENDIZAJE IV Saberes procedimentales 1. Interpreta y utiliza correctamente el lenguaje simbólico ara el manejo de expresiones algebraicas. 2. Identifica operaciones básicas con expresiones

Más detalles

BREVE MANUAL DE SOLVER

BREVE MANUAL DE SOLVER BREVE MANUAL DE SOLVER PROFESOR: DAVID LAHOZ ARNEDO PROGRAMACIÓN LINEAL Definición: Un problema se define de programación lineal si se busca calcular el máximo o el mínimo de una función lineal, la relación

Más detalles

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx Resumen Se dan algunas definiciones básicas relacionadas con la divisibilidad

Más detalles

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,

Más detalles

Manual de uso básico de la aplicación

Manual de uso básico de la aplicación Manual de uso básico de la aplicación Autor del documento Centro de Apoyo Tecnológico a Emprendedores, Fundación Parque Científico y Tecnológico de Albacete Datos de contacto E-Mail: bilib@bilib.es Página

Más detalles

Una App para Facebook

Una App para Facebook Una App para Facebook Static HTML: Iframes Tabs Laboratorio de Excelencia Digital Facebook Marketing 1 Una App para Facebook. Static HTML: Iframes Tabs Facebook Marketing El objetivo de este articulo es

Más detalles

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS 1.- PLANTILLA DE PUBLICACIONES En este maestro crearemos la publicación base sobre la cual el programa generará

Más detalles

Tema : ELECTRÓNICA DIGITAL

Tema : ELECTRÓNICA DIGITAL (La Herradura Granada) Departamento de TECNOLOGÍA Tema : ELECTRÓNICA DIGITAL.- Introducción. 2.- Representación de operadores lógicos. 3.- Álgebra de Boole. 3..- Operadores básicos. 3.2.- Función lógica

Más detalles

Porcentajes. Cajón de Ciencias. Qué es un porcentaje?

Porcentajes. Cajón de Ciencias. Qué es un porcentaje? Porcentajes Qué es un porcentaje? Para empezar, qué me están preguntando cuando me piden que calcule el tanto por ciento de un número? "Porcentaje" quiere decir "de cada 100, cojo tanto". Por ejemplo,

Más detalles

SOLUCIÓN CASO GESTIÓN DE PERSONAL I

SOLUCIÓN CASO GESTIÓN DE PERSONAL I SOLUCIÓN CASO GESTIÓN DE PERSONAL I Empezaremos abriendo un nuevo libro de trabajo que podemos guardar como Nóminas e introducimos los datos que nos proporciona el enunciado relativos a coste por hora

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

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. Gestión de la tesorería y del riesgo El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra. En este manual nos

Más detalles

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO 1. CATÁLOGO MANUAL DE USUARIO CATÁLOGO AHORA CATÁLOGO MANUAL DE USUARIO 1 1. Introducción AHORA Catálogo es una aplicación

Más detalles

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO

Cómo registrarse y crear su cuenta de usuario? < IMAGEN 2.1.1: HAZ CLIC SOBRE EL BOTÓN RESALTADO Cómo registrarse y crear su cuenta de usuario? Si es la primera vez que visita la página, y nunca ha creado un usuario para poder acceder a todos los servicios que el sistema ofrece, deberá registrarse

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: LA FÍSICA Y SU LENGUAJE, LAS MATEMÁTICAS

INTRODUCCIÓN: LA FÍSICA Y SU LENGUAJE, LAS MATEMÁTICAS INTRODUCCIÓN: LA FÍSICA Y SU LENGUAJE, LAS MATEMÁTICAS La física es la más fundamental de las ciencias que tratan de estudiar la naturaleza. Esta ciencia estudia aspectos tan básicos como el movimiento,

Más detalles

www.mihijosordo.org Familias inmigrantes Nos vamos a ir a otro país, cómo se lo explico?

www.mihijosordo.org Familias inmigrantes Nos vamos a ir a otro país, cómo se lo explico? Familias inmigrantes Nos vamos a ir a otro país, cómo se lo explico? Dentro de un par de meses nos vamos a volver a Colombia. Ahora que estábamos tan a gusto en Madrid es una pena pero es lo mejor para

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

MANUAL DE AYUDA MODULO TALLAS Y COLORES

MANUAL DE AYUDA MODULO TALLAS Y COLORES MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3

Más detalles

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS Unidad 6: Polinomios con coeficientes enteros. Al final deberás haber aprendido... Expresar algebraicamente enunciados sencillos. Extraer enunciados razonables

Más detalles

Orbitales híbridos. Cajón de Ciencias

Orbitales híbridos. Cajón de Ciencias Orbitales híbridos Cajón de Ciencias Los orbitales híbridos son aquellos que se forman por la fusión de otros orbitales. Estudiarlos es un paso básico para entender la geometría y la estructura de las

Más detalles

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true

by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true by Tim Tran: https://picasaweb.google.com/lh/photo/sdo00o8wa-czfov3nd0eoa?full-exif=true I. FUNDAMENTOS 3. Representación de la información Introducción a la Informática Curso de Acceso a la Universidad

Más detalles

Lección 24: Lenguaje algebraico y sustituciones

Lección 24: Lenguaje algebraico y sustituciones LECCIÓN Lección : Lenguaje algebraico y sustituciones En lecciones anteriores usted ya trabajó con ecuaciones. Las ecuaciones expresan una igualdad entre ciertas relaciones numéricas en las que se desconoce

Más detalles

LA CADENA DE LA INNOVACIÓN

LA CADENA DE LA INNOVACIÓN FUNCIONAMIENTO DEL PRODUCTO: Para un primer contacto del producto ideado como es este software que estamos desarrollando en la presente memoria, deberíamos cargalo en algún elemento tecnológico ya existente

Más detalles

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1 . ESPACIOS VECTORIALES Consideremos el siguiente subconjunto de R 4 : S = {(x, x 2, x 3, x 4 )/x x 4 = 0 x 2 x 4 = x 3 a. Comprobar que S es subespacio vectorial de R 4. Para demostrar que S es un subespacio

Más detalles

Practica A. Crear y Administrar Grupos

Practica A. Crear y Administrar Grupos Practica A Crear y Administrar Grupos Los grupos simplifican la administración ya que permiten dar permisos a grupos de usuarios en vez de uno a uno. Antes de comenzar a utilizar los grupos hay que entender

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

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie. Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra

Más detalles

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) aprenderaprogramar.com Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029

Más detalles

Programación I: Funciones y módulos

Programación I: Funciones y módulos Programación I: Funciones y módulos Esteban De La Fuente Rubio 2 de abril de 23 Índice. Funciones.. Definición y llamado de funciones............................................. 2.2. Parámetros por omisión..................................................

Más detalles

4 Pruebas y análisis del software

4 Pruebas y análisis del software 4 Pruebas y análisis del software En este capítulo se presentan una serie de simulaciones donde se analiza el desempeño de ambos sistemas programados en cuanto a exactitud con otros softwares que se encuentran

Más detalles