Técnicas básicas de programación Prolog

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

Download "Técnicas básicas de programación Prolog"

Transcripción

1 Técnicas básicas de programación Prolog Programación Declarativa Pablo López 25 de octubre de Programación recursiva La recursión es una técnica fundamental en Prolog, tanto para representar los datos como para procesarlos. Esto se debe a que Prolog, como todos los lenguajes declarativos puros, carece de iteración. Aunque la programación recursiva es una técnica que nos resulta familiar, la recursión en Prolog exhibe ciertas particularidades que se apartan lo habitual. Por ejemplo, el caso base y el caso recursivo no tienen por qué ser excluyentes, lo que permite generar respuestas múltiples. Esta sección ilustra el empleo de la recursión en Prolog a través un ejemplo simple pero eficaz: la axiomatización de la aritmética de Peano. Los objetos a representar serán los números naturales {0, 1, 2, 3...} y las relaciones serán las operaciones aritméticas básicas: suma, resta, producto... Además de la recursión (de datos y código), introduciremos los conceptos de modo de un argumento, y uso, comportamiento y significado de un predicado. Ejemplo: Axiomatización de la aritmética de Peano El dominio de los naturales. inductivamente como sigue: El conjunto de los naturales N se define 1. 0 N [Caso Base] 2. si x N, entonces σ(x) N [Caso Recursivo] donde σ es la función sucesor σ : N N; es decir, σ(x) representa al sucesor de x. Las anteriores definiciones permiten construir el conjunto N partiendo del caso base (1), obteniendo nuevos elementos aplicando el caso recursivo (2): N = { 0 }{{} base, σ(0), σ(σ(0)), σ(σ(σ(0))),... }. } {{ } recursivo

2 T2.2 Técnicas básicas de programación Prolog Los naturales así definidos son recursivos: un natural mayor que 0 será de la forma σ(x); es decir, «contiene» otro natural x más pequeño que él. Por lo tanto, debemos encontrar una estructura de datos recursiva para representar los naturales. En la mayoría de los lenguajes imperativos la recursión de datos debe ser simulada mediante punteros o mecanismos similares. Por el contrario, la recursión de datos puede emplearse en Prolog de forma directa. En concreto, para representar los naturales en Prolog basta emplear términos Prolog recursivos que capturen la definición inductiva de N. El caso base de N nos asegura la existencia de un objeto concreto y único: el 0. Para representar este objeto en Prolog utilizaremos una constante c. El caso recursivo introduce una función σ : N N. La expresión σ(x) es un objeto compuesto que debe ser representado por una estructura de aridad 1. Tomaremos una estructura de functor s/1. Los naturales se representarán entonces por términos Prolog que se ajusten a la gramática G N : N ::= c [Caso Base] s(n) [Caso Recursivo] donde el functor s/1 es siempre aplicado a un término que representa un natural bien formado. Los siguientes son ejemplos de términos Prolog que representan naturales bien formados; es decir, que se ajustan a la gramática G N : c s(c) s(s((c))) s(s(s(c))) Un natural n N se representa aplicando n veces el functor s/1 a la constante c, lo que denotaremos de forma abreviada por s n (c). El programador no puede comunicar de ninguna forma a Prolog que tiene la intención de representar los naturales por términos que se ajusten a la gramática G N. Esto se debe a que Prolog carece de definiciones de tipos. Los siguientes son términos Prolog que no son naturales bien formados, pues el functor s/1 no siempre se aplica a un natural bien formado: s(s(f(c))) s(s(a)) Aunque no es posible restringir el functor s/1 de forma que siempre se aplique correctamente, sí podemos definir una relación es_natural/1 que se satisfaga cuando su único argumento sea un natural bien formado. El predicado es_natural/1 podría definirse extensionalmente (por enumeración de todos los casos):

3 Técnicas básicas de programación Prolog T2.3 es_natural(c). es_natural(s(c)). es_natural(s(s(c))).... El problema de esta definición es que deberíamos introducir un número infinito numerable de hechos para completarla. Parece más apropiado definir es_natural/1 intensionalmente, determinando las condiciones que debe cumplir un término Prolog para ser un natural bien formado. Basta razonar siguiendo la definición inductiva de N: 1. 0 N [Caso Base] El 0 es un elemento de N. Esto es cierto incondicionalmente, por lo que se traduce a Prolog el por hecho: es_natural(c). donde reemplazamos 0 por su representación Prolog, c. 2. si x N entonces σ(x) N [Caso Recursivo] Este enunciado incluye una condición y una conclusión, por lo que se traduce a Prolog por la regla: es_natural(s(x)):- es_natural(x). donde reemplazamos σ(x) por s(x). de donde obtenemos la definición: es_natural(s). es_natural(s(x)) :- es_natural(x). El predicado es_natural/1 así definido es una definición de dominio o tipo, pues define el conjunto de términos que representan un dominio (tipo) dado. Para comprobar el funcionamiento de es_natural/1, basta resolver el objetivo: :- es_natural(s(s(s(c)))). al que Prolog responderá afirmativamente. Por el contrario, Prolog responderá negativamente a los siguientes objetivos: :- es_natural(s(s(s(0)))). :- es_natural(s(f(s(0)))). También es posible plantear un objetivo donde aparezca una variable: :- es_natural(x).

4 T2.4 Técnicas básicas de programación Prolog es_natural(c). es_natural(s(x)):- es_natural(x). 1) es_natural(x) 1 - {X/c} 2 - {X/s(X1)} 2. éxito 3) es_natural(x1) {X/c} 1 - {X1/c} 2 - {X1/s(X2)} 4. éxito 5) es_natural(x2) {X/s(c)} 1 - {X2/c} 2 - {X2/s(X3)} 6. éxito {X/s(s(c))} 7) es_natural(x3)... Figura 1: Árbol de búsqueda del objetivo es_natural(x). Intuitivamente, estamos preguntando a Prolog si existe algún X tal que X es un natural bien formado. Obviamente, existen un número infinito numerable de términos X que son naturales bien formados, y vemos que Prolog los genera en orden creciente: :- es_natural(x). X= c; X= s(c); X= s(s(c));... La figura 1 muestra el árbol de búsqueda del objetivo es_natural(x). Puede apreciarse que la rama más a la derecha es infinita, por lo que el objetivo nunca termina. Además, cada respuesta computada se obtiene de forma progresiva, introduciendo variables (X i ) y sustituciones (X i /s(x i+1 )) intermedias. Para derivar o construir el natural n, basta descender n veces a la derecha (aplicando la regla recursiva) y descender finalmente a la izquierda (aplicando el caso base). Este comportamiento se debe a que al resolver los subobjetivos es_natural(x i ), el caso base y el caso recursivo no son excluyentes. Obtenemos un comportamiento similar si planteamos un objetivo con un argumento parcialmente instanciado: :- es_natural(s(s(x))). X= c; X= s(c); X= s(s(c));... Modo de un argumento. Los objetivos anteriores realizan funciones muy distintas a pesar de invocar al mismo procedimiento. La razón es que el

5 Técnicas básicas de programación Prolog T2.5 papel jugado por los argumentos pasados al procedimiento es diferente. Un argumento o parámetro actual de un procedimiento puede estar en dos modos: 1 Modo + el argumento no tiene variables libres o las variables que contiene no van a resultar instanciadas como resultado de la ejecución Modo - el argumento tiene variables libres que resultan instanciadas al ejecutar el procedimiento El argumento del objetivo es_natural(s(s(s(c)))) no contiene variables, por lo que está en modo +. Por el contrario, los argumentos de los objetivo es_natural(x) y es_natural(s(s(y))) contienen variables que resultan instanciadas en el proceso de resolución, por lo que están en modo -. Simplificando, podemos identificar el modo + con los parámetros de entrada y el modo - con los parámetros de salida y entrada/salida. En los lenguajes imperativos tradicionales, el que un parámetro sea de entrada o salida depende exclusivamente de cómo se defina el parámetro formal en la cabecera del procedimiento. Por el contrario, en Prolog, el que un parámetro sea de entrada o salida depende del propio parámetro actual y de cómo se defina el parámetro formal correspondiente en la cabecera del predicado. Esto es consecuencia de emplear la unificación como mecanismo para el paso de parámetros. Uso, comportamiento y significado de un predicado. Como hemos visto en el ejemplo anterior, un predicado puede comportarse de forma diferente e incluso no funcionar según el modo en que se encuentren sus parámetros actuales. Se llama uso de un predicado a la combinación de los modos de los parámetros actuales. Por ejemplo, el predicado es_natural tiene dos usos diferentes: es_natural(+) y es_natural(-), según su único argumento esté en modo + o -. Puesto que un parámetro puede estar en dos modos diferentes, un predicado con n argumentos puede tener hasta 2 n usos diferentes. La forma en que actúa un predicado para un uso concreto se denomina comportamiento. El comportamiento clasifica a los predicados según el número de respuestas que generan en test o generador. Un predicado se comporta como un test si la respuesta computada está vacía; es decir, no se instancia ninguna variable. Esto quiere decir que la única respuesta que se obtiene de un test es éxito o fracaso. Por ejemplo, el objetivo es_natural(s(s(c))) se comporta como un test, pues su único argumento está en modo +. El test corresponde siempre al uso en que 1 Estas definiciones de modo no se ajustan a las que aparecen en el estándar ISO de Prolog y no son completamente precisas. Para simplificar, nos ceñiremos a ellas a lo largo del curso.

6 T2.6 Técnicas básicas de programación Prolog todos los argumentos del predicado están en modo +, pues de lo contrario algún argumento resultaría instanciado y la respuesta computada no estaría vacía. Un predicado se comporta como un generador si las respuestas computadas no están vacías. Para ello, al menos un argumento debe estar en modo -. Según el número de respuestas computadas generadas, tendremos un generador único (una sola respuesta), acotado (un número finito de respuestas) o no acotado (infinitas respuestas). El objetivo es_natural(x) de la figura 1 se comporta como un generador no acotado. Llamaremos generador anómalo a aquel generador que es incapaz, por construcción, de generar la secuencia completa de respuestas computadas esperada (normalmente, porque el árbol de búsqueda incluye más de una rama infinita). Un ejemplo de generador anómalo es el predicado p/2: p(x,y) :- es_natural(x), es_natural(y). Intuitivamente, p(a,b) debería devolvernos todos los pares (A, B) tales que A, B N. Sin embargo, sólo nos devuelve pares (0, B) con B N:?- p(a,b). A= c B= c; A= c B= s(c); A= c B= s(s(c));... Por último, llamaremos significado a la acción particular llevada a cabo por el predicado en cierto uso. El significado suele describirse indicando la clase de términos para los que tiene éxito (en el caso de tests), o el patrón que siguen las respuestas computadas (en el caso de generadores.) Todos los posibles usos, comportamientos y significados de un predicado pueden recogerse en una tabla de comportamiento. Una tabla de comportamiento tiene tres columnas. En la primera aparece el uso, en la segunda el comportamiento y en la tercera y última el significado. La figura 2 muestra la tabla de comportamiento del predicado es_natural/1. Normalmente un programador Prolog competente suele anotar los usos admisibles de un predicado como parte de la documentación de un programa. Algunas implementaciones de Prolog disponen de la directiva mode para declarar los usos soportados por un predicado. La directiva: :- mode nombre_pred(modo_1,..., modo_n).

7 Técnicas básicas de programación Prolog T2.7 es_natural(x) uso comportamiento significado + test X N - generador no acotado X = c, s(c), s(s(c)),... Figura 2: Tabla de comportamiento de es_natural/1. declara un uso válido de nombre_pred/n, indicando para cada argumento el modo en que puede aparecer, que puede ser + o -. Si se intenta utilizar un predicado en un uso que no ha sido declarado mediante la correspondiente directiva mode, el compilador de Prolog puede generar una advertencia. 2 Podríamos declarar los usos válidos del predicado es_natural/1 mediante las directivas: :- mode es_natural(+). :- mode es_natural(-). que declaran que es_natural/1 puede emplearse en usos + o -. La directiva mode soporta una abreviatura,?, que indica que el argumento puede aparecer indistintamente en modo + o -, lo que permite especificar varios usos válidos con una sola directiva mode. Por ejemplo, los usos válidos de es_natural/1 se pueden declarar mediante la directiva: :- mode es_natural(?). puesto que el predicado funciona independientemente del modo en que se encuentre su argumento. Aunque una implementación de Prolog no soporte declaraciones de modo, es buena idea añadirlas al programa en forma de comentario: % :- mode es_natural(?). es_natural(c). es_natural(s(x)) :- es_natural(x). Así aparecen descritos los predicados en casi todas las librerías Prolog. 3 Ejercicios 1. Cómo se comporta es_natural/1 si intercambiamos el orden del hecho y la regla? es_natural(s(x)) :- es_natural(x). es_natural(c). 2 Son pocos los compiladores de Prolog que soportan la directiva mode y más escasos aún los que comprueban los usos correctos en tiempo de ejecución. 3 SWI-Prolog no soporta la directiva mode; sin embargo, emplea la notación +, -,? en la documentación de los parámetros de los predicados predefinidos.

8 T2.8 Técnicas básicas de programación Prolog En concreto, cómo afecta esto a las semánticas declarativa y operacional del programa? Influye el orden en que aparecen los hechos y reglas en un programa? 2. Qué representa el término s(s(x))? Cómo se comporta el objetivo es_natural(s(s(x)))? En qué modo se encuentra el argumento s(s(x))? 3. Define los predicados par/1 e impar/1 utilizando recursión directa y recursión mutua. Construye las tablas de comportamiento y compara las semánticas declarativa y operacional. Relaciones aritméticas básicas. Una vez representados los objetos (los naturales) mediante términos Prolog, parece razonable preguntarse qué tipo de relaciones entre naturales nos interesan y cómo podemos representarlas mediante procedimientos (hechos y reglas). Las relaciones entre naturales serán operaciones (+,,,...) y relaciones (<, >, =,...) aritméticas básicas. Estas operaciones y relaciones se definen habitualmente como funciones: + : N N N : N N N... Prolog no permite definir funciones, sino predicados o relaciones. Esto significa que debemos pasar de un estilo funcional a un estilo relacional. La ventaja del estilo relacional es que, como veremos, desaparecen los conceptos de entrada y salida. Comenzaremos definiendo la suma de naturales como una relación ternaria tal que suma(x,y,z) se satisface cuando Z = X + Y. Puesto que los objetos relacionados (naturales) son recursivos, lo normal será que la relación suma/3 sea recursiva. En general, para definir una relación recursiva aplicaremos recursión a algunos de sus argumentos (o a alguna relación entre sus argumentos). En el caso de suma/3, podemos aplicar recursión al primer argumento, que podrá ser c (caso base) o s(x) (caso recursivo), de donde obtenemos el esquema: suma(c,?,?) :-... suma(s(x),?,?) :-... [Caso Base] [Caso Recursivo] Ahora debemos determinar qué términos corresponden a los otros argumentos, señalados en el esquema con el símbolo?, así como las condiciones que debe verificar cada caso de la relación. El segundo argumento puede ser cualquier natural y no es necesario razonar según su valor. Por lo tanto, podemos utilizar una variable Y:

9 Técnicas básicas de programación Prolog T2.9 suma(c,y,?) :-... suma(s(x),y,?) :-... [Caso Base] [Caso Recursivo] El caso base es fácil de resolver: su tercer argumento es la suma de c e Y; es decir, Y. Además, 0 + Y = Y se satisface incondicionalmente, por lo que basta emplear un hecho: suma(c,y,y). suma(s(x),y,?) :-... [Caso Base] [Caso Recursivo] El caso recursivo es sólo un poco más complicado. Por ser recursivo, debe contener una llamada a sí mismo: suma(c,y,y). suma(s(x),y,?) :- suma(?,?,?),... [Caso Base] [Caso Recursivo] La cláusula recursiva se emplea para resolver (X + 1) + Y. La llamada recursiva debe resolver una suma menor, más próxima al caso base. En particular, puesto que estamos aplicando recursión sobre el primer argumento, X + 1, la invocación recursiva debe calcular la suma X + Y, de donde: suma(c,y,y). suma(s(x),y,?) :- suma(x,y,?),... [Caso Base] [Caso Recursivo] Supongamos que sabemos la solución de X + Y, a la que llamaremos Z. Entonces obtenemos: suma(c,y,y). suma(s(x),y,?) :- suma(x,y,z),... [Caso Base] [Caso Recursivo] Ahora bien, si X + Y = Z, entonces (X + 1) + Y = Z + 1, luego: suma(c,y,y). suma(s(x),y,s(z)) :- suma(x,y,z). [Caso Base] [Caso Recursivo] Podemos plantear ahora la resolución del objetivo:?- suma(s(s(c)),s(c),z). que devolverá como única respuesta computada Z=s(s(s(c))). A pesar de las apariencias, el predicado suma/3 no está correctamente definido. Para entender por qué, basta resolver el objetivo:?- suma(c, f(a), Z). que devuelve como única respuesta computada Z=f(a). Esto es incorrecto, pues la relación suma/3 sólo debe satisfacerse entre tres naturales. Prolog es incapaz de reconocer este error por carecer de tipos. Para subsanarlo basta añadir una comprobación de dominio al caso base: suma(c,y,y):- es_natural(y). suma(s(x),y,s(z)) :- suma(x,y,z). [Caso Base] [Caso Recursivo]

10 T2.10 Técnicas básicas de programación Prolog 1) suma(s(s(c)), s(c), s(s(s(c)))) 2 - {X1/s(c), Y1/s(c), Z1/s(s(c))} 2) suma(s(c), s(c), s(s(c))) 2 - {X2/c, Y2/s(c), Z2/s(c)} 3) suma(c, s(c), s(c)) 1 - {Y3/s(c)} 4) es_natural(s(c)) 4 - {X4/c} 5) es_natural(c) 3-6. éxito {} Figura 3: Uso (+,+,+) de suma/3. Cómo se construye una tabla de comportamiento. El predicado suma/3 tiene, en principio, 8 usos diferentes (2 3, 3 argumentos en modos + o -). Para obtener la tabla de comportamiento de suma/3 basta resolver objetivos que ilustren los distintos usos. El uso (+,+,+) es un test que comprueba que el tercer elemento de la relación es la suma de los dos primeros. El objetivo:?- suma(s(s(c)),s(c),s(s(s(c)))). Yes termina con éxito y da lugar al árbol de búsqueda de la figura 3. El caso recursivo va eliminando functores s/1 tanto de X como de Z. En el caso base, X se ha reducido a c y Y y Z deben ser idénticos. El uso (+,+,-) es un generador único que calcula la suma de los dos primeros argumentos:?- suma(s(s(c)),s(c),z). Z= s(s(s(c))) ; No La figura 4 muestra un uso (+,+,-) de suma/3. El caso recursivo va eliminando functores s/1 de X y construyendo progresivamente Z. Para ello,

11 Técnicas básicas de programación Prolog T2.11 1) suma(s(s(c)), s(c), Z) 2 - {X1/s(c), Y1/s(c), Z/s(Z1)} 2) suma(s(c), s(c), Z1) 2 - {X2/c, Y2/s(c), Z1/s(Z2)} 3) suma(c, s(c), Z2) 1 - {Y3/s(c), Z2/s(c)} 4) es_natural(s(c)) 4 - {X4/c} 5) es_natural(c) 3-6. éxito {Z/s(s(s(c)))} Figura 4: Uso (+,+,-) de suma/3. se introducen variables intermedias Z i y se construyen sustituciones de la forma {Z i /s(z i+1 )}. El caso base unifica Y con la última variable Z n introducida, donde n es el número de functores s/1 de X, completando la construcción de Z. Esta construcción progresiva de la solución mediante variables y sustituciones intermedias es típica de la programación lógica, por lo que es importante familiarizarse con este mecanismo. El uso (+,-,+) se comporta como un generador único que calcula la diferencia entre el tercer y el primer argumento:?- suma(s(s(c)),y,s(s(s(c)))). Y= s(c) ; No Lo interesante de este ejemplo es que estamos usando el mismo código para sumar y para restar. En el estilo funcional, los argumentos de la función son siempre entradas que se deben facilitar y el valor devuelto por la función es la salida. En el estilo relacional desaparece la dependencia de las salidas respecto de las entradas. Que un parámetro sea de entrada o salida depende de cuál sea su modo. El árbol de búsqueda se muestra en la figura 5. Como en el uso (+,+,+), el caso recursivo va eliminando functores de X y Z. Al llegar al caso base se unifica la incógnita Y con Z. El uso (-,+,+) es similar a (+,-,+). También es un generador único que sirve para restar. La diferencia es que en este caso el árbol (ver figura 6) contendrá una rama fallo adicional. Esto se debe a que cuando Y y

12 T2.12 Técnicas básicas de programación Prolog 1) suma(s(s(c)), Y, s(s(s(c)))) 2 - {X1/s(c), Y1/Y, Z1/s(s(c))} 2) suma(s(c), Y, s(s(c))) 2 - {X2/c, Y2/Y, Z2/s(c)} 3) suma(c, Y, s(c)) 1 - {Y3/s(c), Y/s(c)} 4) es_natural(s(c)) 4 - {X4/c} 5) es_natural(c) 3-6. éxito {Y/s(c)} Figura 5: Uso (+,-,+) de suma/3. 1) suma(x, s(s(c)), s(s(s(c)))) 2 - {X/s(X1), Y1/s(s(c)), Z1/s(s(c))} 2) suma(x1, s(s(c)), s(s(c))) 2 - {X1/s(X2), Y2/s(s(c)), Z2/s(c)} 1 - {X1/c, Y2/s(s(c))} 3) es_natural(s(s(c))) 7) suma(x2, s(s(c)), s(c)) 4 - {X3/s(c)} 2 - {X2/s(X3), Y3/s(s(c)), Z3/c} 4) es_natural(s(c)) 8) suma(x3, s(s(c)), c) fallo 4 - {X4/c} 5) es_natural(c) 3-6. éxito {X/s(c)} Figura 6: Uso (-,+,+) de suma/3.

13 Técnicas básicas de programación Prolog T2.13 1) suma(x, Y, s(s(c))) 1 - {X/c, Y1/s(s(c)), Y/s(s(c))} 2 - {X/s(X1), Y1/Y, Z1/s(c)} 2) es_natural(s(s(c))) 4 - {X2/s(c)} 6) suma(x1, Y, s(c)) 1 - {X1/c, Y2/s(c), Y/s(c)} 2 - {X1/s(X2), Y2/Y, Z2/c} 3) es_natural(s(c)) 4 - {X3/c} 4) es_natural(c) 3-5. éxito {X/c, Y/s(s(c))} 7) es_natural(s(c)) 4 - {X3/c} 8) es_natural(c) 3-9. éxito {X/s(c), Y/s(c)} 10) suma(x2, Y, c) 1 - {X2/c, Y3/c, Y/c} 11) es_natural(c) éxito {X/s(s(c)), Y/c} Figura 7: Uso (-,-,+) de suma/3. Z unifican, se pueden aplicar tanto el caso base como el caso recursivo. El primero completará la construcción de X y conducirá a la solución, mientras que el segundo acabará fallando al reducir Z a c. Aunque ambos usos sirven para restar, el uso (+,-,+) es preferible por ser más eficiente. El uso (-,-,+) se comporta como un generador acotado que descompone un natural dado Z en dos sumandos X e Y:?- suma(x,y,s(s(c))). X= c Y= s(s(c)) ; X= s(c) Y= s(c) ; X= s(s(c)) ; Y= c No Este caso ilustra la potencia que puede alcanzar el estilo relacional. El árbol de resolución se muestra en la figura 7. Puesto que el caso base y el recursivo no son excluyentes, la ejecución de este objetivo genera respuestas múltiples. Cuando se aplica el caso base, X se instancia a c y se unifican Y y Z, una forma trivial de satisfacer la relación. El caso recursivo elimina un

14 T2.14 Técnicas básicas de programación Prolog 1) suma(s(s(c)), Y, Z) 2 - {X1/s(c), Y1/Y, Z/s(Z1)} 2) suma(s(c), Y, Z1) 2 - {X2/c, Y2/Y, Z1/s(Z2)} 3) suma(c, Y, Z2) 1 - {Y3/Z2, Y/Z2} 4) es_natural(z2) 4 - {Z2/s(X4)} 3 - {Z2/c} 5. éxito {Y/c, Z/s(s(c))} 6) es_natural(x4) 4 - {X4/s(X5)} 3 - {X4/c} 7. éxito {Y/s(c), Z/s(s(s(c)))} 8) es_natural(x5)... Figura 8: Uso (+,-,-) de suma/3. functor s/1 de Z, y construye progresivamente X, introduciendo variables y sustituciones intermedias. El uso (+,-,-) es un generador no acotado:?- suma(s(s(c)),y,z). Y= c Z= s(s(c)) ; Y= s(c) Z= s(s(s(c))) ;... en Y obtenemos los naturales y en Z los naturales mayores o iguales que X. La figura 8 muestra el árbol de búsqueda. Al estar X en modo +, los casos base y recursivo de suma/3 son excluyentes y la recursión converge de forma determinista al caso base. El caso recursivo va eliminando functores s/1 de X y construyendo progresivamente Z. Una vez que se alcanza el caso base, se unifican la Y y la variable Z n, completando la construcción de Z. En los ejemplos anteriores, todas las comprobaciones de dominio es_natural/1 se han ejecutado en modo +. En este caso, como Y ha quedado libre, la comprobación de dominio es_natural se ejecuta en modo -, comportándose como un generador no acotado. La capacidad de generar respuestas múltiples de suma(+,-,-) proviene del uso en modo -

15 Técnicas básicas de programación Prolog T2.15 1) suma(x, s(c), Z) 1 - {X/c, Y1/s(c), Z/s(c)} 2 - {X/s(X1), Y1/s(c), Z/s(Z1)} 2) es_natural(s(c)) 5) suma(x1, s(c), Z1) 4 - {X2/c} 1 - {X1/c, Y2/s(c), Z1/s(c)} 2 - {X1/s(X2), Y2/s(c), Z1/s(Z2)} 3) es_natural(c) 6) es_natural(s(c)) 8) suma(x2, s(c), Z2) {X3/c} 1 - {X2/c, Y3/s(c), Z2/s(c)} 2 - {X2/s(X3), Y3/s(c), Z2/s(Z3)} 4. éxito {X/c, Z/s(c)} 7) es_natural(c)... 9) es_natural(s(c))... 10) suma(x3, s(c), Z3)... Figura 9: Uso (-,+,-) de suma/3. del predicado es_natural/1. El uso (-,+,-) es similar al uso (+,-,-):?- suma(x,s(s(c)),z). X= c Z= s(s(c)) ; X= s(c) Z= s(s(s(c))) ;... el árbol de resolución de la figura 9 muestra que, en este caso, se generan respuestas múltiples porque los casos base y recursivo de suma/3 no son excluyentes; mientras que es_natural/1 se comporta como un test. Finalmente, el uso (-,-,-) se comporta como un generador anómalo:?- suma(x,y,z). X= c Y= c Z= c ; X= c Y= s(c) Z= s(c) ;...

16 T2.16 Técnicas básicas de programación Prolog 1) suma(x, Y, Z) 1 - {X/c, Y1/Z, Y/Z} 2 - {X/s(X1), Y1/Y, Z/s(Z1)} 2) es_natural(z) 4 - {Z/s(X2)} 3 - {Z/c} 5) suma(x1, Y, Z1) 1 - {X1/c, Y2/Z1, Y/Z1} 2 - {X1/s(X2), Y2/Y, Z1/s(Z2)} 3. éxito {X/c, Y/c, Z/c} 4) es_natural(x2) 6) es_natural(z1) 7) suma(x2, Y, Z2) Figura 10: Uso (-,-,-) de suma/3. La semántica declarativa nos dice que este objetivo debería generar todas las tripletas (X, Y, Z) tales que Z = X + Y. Sin embargo, la ejecución del objetivo su semántica operacional genera tripletas de la forma (0, Y, Z), con Z = 0 + Y = Y. El problema, tal y como ilustra la la figura 10, es que hay más de una rama infinita. El objetivo suma(x,y,z) se puede resolver aplicando el caso base o el recursivo. Al aplicar el primero, X se instancia a c, se unifican Y y Z, y obtenemos el subojetivo es_natural(z), que se comporta como un generador no acotado. Puesto que la construcción del árbol se hace en profundidad, nunca se considera la posibilidad de aplicar el caso recursivo al objetivo inicial. La figura 11 muestra la tabla de comportamiento del predicado suma/3. Generadores, dominios y respuestas genéricas. Añadir comprobaciones de dominio a los predicados, tal como acabamos de hacer con suma/3, tiene ventajas e inconvenientes. Entre las ventajas podemos destacar que nos puede ayudar a encontrar errores en los programas al fracasar objetivos que devolverían respuestas computadas erróneas:

17 Técnicas básicas de programación Prolog T2.17 suma(x,y,z) uso comportamiento significado (+,+,+) test Z = X + Y (+,+,-) generador único suma: Z = X + Y (+,-,+) generador único resta: Y = Z X (-,+,+) generador único resta: X = Z Y (-,-,+) generador acotado {(X, Y)/X Z Y Z Z = X + Y} (+,-,-) generador no acotado {(Y, Z)/Y N Z = X + Y} (-,+,-) generador no acotado {(X, Z)/X N Z = X + Y} (-,-,-) generador anómalo X = 0, Y N, Z = Y Figura 11: Tabla de comportamiento de suma/3 con comprobación de dominio.?- suma(c,a,z). No Además, puesto que la definición de dominio es_natural/1 puede comportarse como un generador, el predicado suma/3 hereda esa capacidad generadora siempre que el segundo y tercer argumentos estén en modo -, tal como vimos al analizar el uso (+,-,-):?- suma(s(s(c)),y,z). Y = c Z = s(s(c)) ; Y = s(c) Z = s(s(s(c))) ; Y = s(s(c)) Z = s(s(s(s(c)))) ;... En cuanto a los inconvenientes de incorporar una comprobación de dominio, uno muy obvio es la ineficiencia. Además, conceptualmente estamos clasificando como falsos objetivos que quizá deberían interpretarse como errores y deberían por tanto ser rechazados por el sistema. Finalmente, al retener la capacidad generadora de es_natural/1, el predicado suma/3 pierde la posibilidad de devolver respuestas genéricas; es decir, respuestas que contengan variables libres. Si definimos el predicado sumag/3 omitiendo la comprobación de dominio en el caso base de suma/3: sumag(c,y,y). sumag(s(x),y,s(z)) :- sumag(x,y,z). para el siguiente objetivo :?- sumag(s(s(c)),y,z).

18 T2.18 Técnicas básicas de programación Prolog Z = s(s(y)) ; No obtenemos una respuesta genérica, pues Y queda libre. Las variables libres de las respuestas computadas se considera que están universalmente cuantificadas; es decir, que pueden reemplazarse por cualquier término. El objetivo pregunta a Prolog si existen Y y Z tales que Z = 2 + Y, y Prolog responde que Y puede ser cualquier natural, y Z será dos unidades superior a Y. 4 En general, prescindiremos de la comprobación de dominios, de manera que sacrificaremos la corrección para mejorar la eficiencia y obtener respuestas genéricas. Otras relaciones aritméticas. A continuación presentamos las definiciones y tablas de comportamiento de otras relaciones aritméticas típicas. iguales(x,y) se satisface si X = Y. Se puede definir aplicando recursión al primer argumento: iguales(c,c). iguales(s(x),s(y)) :- iguales(x,y). iguales(x,y) uso comportamiento significado (+,+) test X = Y (+,-) generador único copia: Y = X (-,+) generador único copia: X = Y (-,-) generador no acotado {(X, Y)/X = Y X N} Otra forma de definir iguales/2 consiste en emplear la unificación para forzar la igualdad entre los argumentos, y comprobar su sintaxis en el cuerpo de la regla: iguales(x,x) :- es_natural(x). menor(x,y) se satisface si X < Y. Podemos aplicar recursión sobre el primer argumento: menor(c,y) :- natural(y). menor(s(x),s(y)) :- menor(x,y). 4 En realidad Prolog responde que Y puede ser cualquier término, incluso uno que no sea un natural bien construido. Es el usuario el que interpreta que Y puede ser cualquier natural.

19 Técnicas básicas de programación Prolog T2.19 menor(x,y) uso comportamiento significado (+,+) test X < Y (+,-) generador no acotado {Y/Y > X} (-,+) generador acotado {X/X < Y} (-,-) generador anómalo Ejercicios 1. Construye la tabla de comportamiento el predicado sumag/3 y compárala con la de suma/3. 2. Qué ocurre al ejecutar el objetivo iguales(x,s(x))? 3. Qué ocurre si eliminamos la comprobación es_natural(y) en el caso base de menor/2? Cómo afecta esto a la tabla de comportamiento? 4. Define el predicado menor_igual(x,y), que se satisface si X Y. minimo(x,y,z) se satisface si Z = mín(x, Y). Basta aplicar recursión simultánea sobre los dos primeros argumentos. Esto permite reducir ambos argumentos hasta que uno de ellos se haga cero: minimo(c,y,c) :- es_natural(y). minimo(x,c,c) :- es_natural(x). minimo(s(x),s(y),s(z)) :- minimo(x,y,z). La definición anterior es incorrecta. Si ambos argumentos son iguales, obtenemos una respuesta repetida, lo que no tiene sentido pues el mínimo de dos naturales es único. Para solucionarlo, basta considerar explícitamente las tres posibilidades: que ambos argumentos se hagan cero simultáneamente, o que uno de ellos se haga cero y el otro no: minimo(c,c,c). minimo(c,s(y),c) :- es_natural(y). minimo(s(x),c,c) :- es_natural(x). minimo(s(x),s(y),s(z)) :- minimo(x,y,z). Esta definición sí es correcta, pero se puede hacer más concisa agrupando los dos primeros hechos: minimo(c,y,c) :- es_natural(y). minimo(s(x),c,c) :- es_natural(x). minimo(s(x),s(y),s(z)) :- minimo(x,y,z). Alternativamente, podemos evitar la recursión haciendo uso de las relaciones menor/2 y menor_igual/2:

20 T2.20 Técnicas básicas de programación Prolog minimo(x,y,x) :- menor_igual(x,y). minimo(x,y,y) :- menor(y,x). producto(x,y,z) se satisface si Z = X Y. La idea se basa en la siguiente definición recursiva de producto: Z = X Y = } X + X + X {{ + + X } Y veces = (X + X + + X) +X } {{ } (Y 1) veces = X (Y 1) + X Por lo tanto, hay que aplicar recursión sobre el segundo argumento: producto(x,c,c):- es_natural(x). producto(x,s(y),z) :- producto(x,y,t), suma(t,x,z). producto(x,y,z) uso comportamiento significado (+,+,+) test Z = X Y (+,+,-) generador único producto: Z = X Y (-,+,-) generador no acotado múltiplos de Y: {(X, Z)/X N Z = X Y} (+,-,-) generador no acotado múltiplos de X: {(Y, Z)/Y N Z = X Y} (+,-,+) no funciona cociente entero: Y = Z/X y no termina (-,+,+) no funciona cociente entero: X = Z/Y y no termina (-,-,+) no funciona si Z = 0 entonces X = Z, Y = 1 y no termina sino X N y Y = 0 (-,-,-) generador anómalo X N, Y = 0, Z = 0 El patrón de predicado recursivo. Todos los predicados recursivos que hemos definido, y la mayoría de los que definiremos a lo largo del curso, son instancias del siguiente patrón de predicado recursivo, resolver/2: resolver(problema_base,solucion_base) :- condiciones_base. [Caso Base] resolver(problema,solucion) :- reducir(problema, ProblemaReducido), resolver(problemareducido, SolucionReducida), componer(problema,solucionreducida,solucion). [Caso Recursivo]

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

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

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

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

Nota 2. Luis Sierra. Marzo del 2010

Nota 2. Luis Sierra. Marzo del 2010 Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones

Más detalles

Tema 2. Espacios Vectoriales. 2.1. Introducción

Tema 2. Espacios Vectoriales. 2.1. Introducción Tema 2 Espacios Vectoriales 2.1. Introducción Estamos habituados en diferentes cursos a trabajar con el concepto de vector. Concretamente sabemos que un vector es un segmento orientado caracterizado por

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

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

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

Matrices equivalentes. El método de Gauss

Matrices equivalentes. El método de Gauss Matrices equivalentes. El método de Gauss Dada una matriz A cualquiera decimos que B es equivalente a A si podemos transformar A en B mediante una combinación de las siguientes operaciones: Multiplicar

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO

EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO EJERCICIOS RESUELTOS SOBRE ERRORES DE REDONDEO 1º) Considérese un número estrictamente positivo del sistema de números máquina F(s+1, m, M, 10). Supongamos que tal número es: z = 0.d 1 d...d s 10 e Responde

Más detalles

UNIDAD I: LÓGICA PROPOSICIONAL

UNIDAD I: LÓGICA PROPOSICIONAL UNIDAD I: LÓGICA PROPOSICIONAL ASIGNATURA: INTRODUCCIÓN A LA COMPUTACIÓN CARRERAS: LICENCIATURA Y PROFESORADO EN CIENCIAS DE LA COMPUTACIÓN DEPARTAMENTO DE INFORMÁTICA FACULTAD DE CIENCIAS FÍSICO MATEMÁTICA

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

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

Módulo 9 Sistema matemático y operaciones binarias

Módulo 9 Sistema matemático y operaciones binarias Módulo 9 Sistema matemático y operaciones binarias OBJETIVO: Identificar los conjuntos de números naturales, enteros, racionales e irracionales; resolver una operación binaria, representar un número racional

Más detalles

Apuntes de Matemática Discreta 9. Funciones

Apuntes de Matemática Discreta 9. Funciones Apuntes de Matemática Discreta 9. Funciones Francisco José González Gutiérrez Cádiz, Octubre de 004 Universidad de Cádiz Departamento de Matemáticas ii Lección 9 Funciones Contenido 9.1 Definiciones y

Más detalles

ANÁLISIS DE DATOS NO NUMERICOS

ANÁLISIS DE DATOS NO NUMERICOS ANÁLISIS DE DATOS NO NUMERICOS ESCALAS DE MEDIDA CATEGORICAS Jorge Galbiati Riesco Los datos categóricos son datos que provienen de resultados de experimentos en que sus resultados se miden en escalas

Más detalles

1. Sintaxis de Prolog

1. Sintaxis de Prolog 1. Sintaxis de Prolog Términos: Constantes: enteros (Ejs: 3, 4), átomos (Ejs: juan, pi) (en minúscula). Variables: Ejs: X, Casa (en mayúscula) Estructuras: functor, seguido de uno o más argumentos, es

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

Subespacios vectoriales en R n

Subespacios vectoriales en R n Subespacios vectoriales en R n Víctor Domínguez Octubre 2011 1. Introducción Con estas notas resumimos los conceptos fundamentales del tema 3 que, en pocas palabras, se puede resumir en técnicas de manejo

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Técnicas Básicas de Programación Prolog

Técnicas Básicas de Programación Prolog Técnicas Básicas de Programación Prolog Ingeniería Informática Ingeniería Técnica en Informática de Sistemas Departamento de Lenguajes y Ciencias de la Computación Universidad de Málaga Contenido 1. Programación

Más detalles

LÍMITES Y CONTINUIDAD DE FUNCIONES

LÍMITES Y CONTINUIDAD DE FUNCIONES Capítulo 9 LÍMITES Y CONTINUIDAD DE FUNCIONES 9.. Introducción El concepto de ite en Matemáticas tiene el sentido de lugar hacia el que se dirige una función en un determinado punto o en el infinito. Veamos

Más detalles

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se

Más detalles

1.4.- D E S I G U A L D A D E S

1.4.- D E S I G U A L D A D E S 1.4.- D E S I G U A L D A D E S OBJETIVO: Que el alumno conozca y maneje las reglas empleadas en la resolución de desigualdades y las use para determinar el conjunto solución de una desigualdad dada y

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

MANUAL DE USUARIO Y EJEMPLO DE UTILIZACIÓN HERRAMIENTA DLP-DELPHI LEARNING PACKAGE

MANUAL DE USUARIO Y EJEMPLO DE UTILIZACIÓN HERRAMIENTA DLP-DELPHI LEARNING PACKAGE MANUAL DE USUARIO Y EJEMPLO DE UTILIZACIÓN HERRAMIENTA DLP-DELPHI LEARNING PACKAGE PROFESOR: Creación y puesta en marcha de un proceso de aprendizaje Delphi: En esta fase el profesor debe realizar las

Más detalles

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama. Diagrama de Flujo La presentación gráfica de un sistema es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. El

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

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

Ejemplos y problemas resueltos de análisis complejo (2014-15)

Ejemplos y problemas resueltos de análisis complejo (2014-15) Variable Compleja I (3 o de Matemáticas y 4 o de Doble Titulación) Ejemplos y problemas resueltos de análisis complejo (04-5) Teoremas de Cauchy En estos apuntes, la palabra dominio significa, como es

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

Números Reales. MathCon c 2007-2009

Números Reales. MathCon c 2007-2009 Números Reales z x y MathCon c 2007-2009 Contenido 1. Introducción 2 1.1. Propiedades básicas de los números naturales....................... 2 1.2. Propiedades básicas de los números enteros........................

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

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

Operaciones Booleanas y Compuertas Básicas

Operaciones Booleanas y Compuertas Básicas Álgebra de Boole El álgebra booleana es la teoría matemática que se aplica en la lógica combinatoria. Las variables booleanas son símbolos utilizados para representar magnitudes lógicas y pueden tener

Más detalles

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014 Tecnologías en la Educación Matemática jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos con acciones. Los datos de entrada

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

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones:

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones: Teoría de Autómatas y Lenguajes Formales Boletín de Autoevaluación 5: Cómo se simplifica una Gramática de Contexto Libre?. 1. Objetivos. El objetivo de este boletín es ilustrar cómo proceder para simplificar

Más detalles

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas Universidad de Cádiz Departamento de Matemáticas MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas Tema 4 La recta en el plano Elaborado por la Profesora Doctora María Teresa

Más detalles

Funciones, x, y, gráficos

Funciones, x, y, gráficos Funciones, x, y, gráficos Vamos a ver los siguientes temas: funciones, definición, dominio, codominio, imágenes, gráficos, y algo más. Recordemos el concepto de función: Una función es una relación entre

Más detalles

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos Francisco José González Gutiérrez Cádiz, Octubre de 2004 Universidad de Cádiz Departamento de Matemáticas ii Lección 1 Conjuntos y Subconjuntos

Más detalles

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Sistema de Facturación de Ventas WhitePaper Enero de 2007 Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1

CURSO 2010-2011 TECNOLOGÍA TECNOLOGÍA 4º ESO TEMA 5: Lógica binaria. Tecnología 4º ESO Tema 5: Lógica binaria Página 1 Tecnología 4º ESO Tema 5: Lógica binaria Página 1 4º ESO TEMA 5: Lógica binaria Tecnología 4º ESO Tema 5: Lógica binaria Página 2 Índice de contenido 1. Señales analógicas y digitales...3 2. Código binario,

Más detalles

Profr. Efraín Soto Apolinar. Función Inversa

Profr. Efraín Soto Apolinar. Función Inversa Función Inversa Una función es una relación entre dos variables, de manera que para cada valor de la variable independiente eiste a lo más un único valor asignado a la variable independiente por la función.

Más detalles

Materia: Informática. Nota de Clases Sistemas de Numeración

Materia: Informática. Nota de Clases Sistemas de Numeración Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos

Más detalles

CAPÍTULO III. FUNCIONES

CAPÍTULO III. FUNCIONES CAPÍTULO III LÍMITES DE FUNCIONES SECCIONES A Definición de límite y propiedades básicas B Infinitésimos Infinitésimos equivalentes C Límites infinitos Asíntotas D Ejercicios propuestos 85 A DEFINICIÓN

Más detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 1 E 2 E 2 E 3 E 4 E 5 2E 4 Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),

Más detalles

Estructuras de Control - Diagrama de Flujo

Estructuras de Control - Diagrama de Flujo RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.

Más detalles

Covarianza y coeficiente de correlación

Covarianza y coeficiente de correlación Covarianza y coeficiente de correlación Cuando analizábamos las variables unidimensionales considerábamos, entre otras medidas importantes, la media y la varianza. Ahora hemos visto que estas medidas también

Más detalles

Problemas indecidibles

Problemas indecidibles Capítulo 7 Problemas indecidibles 71 Codificación de máquinas de Turing Toda MT se puede codificar como una secuencia finita de ceros y unos En esta sección presentaremos una codificación válida para todas

Más detalles

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009 Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios Dra. Noemí L. Ruiz Limardo 2009 Objetivos de la Lección Al finalizar esta lección los estudiantes: Identificarán, de una lista de expresiones

Más detalles

Función exponencial y Logaritmos

Función exponencial y Logaritmos Eje temático: Álgebra y funciones Contenidos: Función exponencial y Logaritmos Nivel: 4 Medio Función exponencial y Logaritmos 1. Funciones exponenciales Existen numerosos fenómenos que se rigen por leyes

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES INECUACIONES NOTA IMPORTANTE: El signo de desigualdad de una inecuación puede ser,, < o >. Para las cuestiones teóricas que se desarrollan en esta unidad únicamente se utilizará la desigualdad >, siendo

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Ingeniería en Informática

Ingeniería en Informática Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se

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

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones: 2. Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma informal,

Más detalles

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL ELECTRÓNICA DIGITAL La electrónica es la rama de la ciencia que se ocupa del estudio de los circuitos y de sus componentes, que permiten modificar la corriente eléctrica amplificándola, atenuándola, rectificándola

Más detalles

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO

UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN DESCUENTO - 1 - UNIDAD 1 LAS LEYES FINANCIERAS DE CAPITALIZACIÓN Y DESCUENTO Tema 1: Operaciones financieras: elementos Tema 2: Capitalización y descuento simple Tema 3: Capitalización y descuento compuesto Tema

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

1º) Siempre que se pueda, hay que sacar factor común: :a b ± a c ± a d ± = a (b ± c ± d ± ):

1º) Siempre que se pueda, hay que sacar factor común: :a b ± a c ± a d ± = a (b ± c ± d ± ): Pág. 1 de 7 FAC T O R I Z AC I Ó N D E P O L I N O M I O S Factorizar (o descomponer en factores) un polinomio consiste en sustituirlo por un producto indicado de otros de menor grado tales que si se multiplicasen

Más detalles

Funciones polinomiales de grados 3 y 4

Funciones polinomiales de grados 3 y 4 Funciones polinomiales de grados 3 y 4 Ahora vamos a estudiar los casos de funciones polinomiales de grados tres y cuatro. Vamos a empezar con sus gráficas y después vamos a estudiar algunos resultados

Más detalles

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos.

Este es un ejemplo muy sencillo, un esquema de empleados que trabajan en proyectos, en una relación muchos a muchos. 28/04/2012 La teoría de la normalización va perdiendo peso con el paso de los años como herramienta de diseño de bases de datos relacionales en favor de modelos de datos más ricos en su representació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

342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO.

342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO. 342 SOBRE FORMAS TERNARIAS DE SEGUNDO GRADO. ALGUNAS APLICACIONES A LA TEORIA DE LAS FORMAS BINARIAS. Encontrar una forma cuya duplicación produce una forma dada del género principal. Puesto que los elementos

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

GENERACIÓN DE CÓDIGO

GENERACIÓN DE CÓDIGO GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información

Más detalles

ESTUDIAR MATEMATICA EN CASA

ESTUDIAR MATEMATICA EN CASA ESTUDIAR MATEMATICA EN CASA Sugerencias para docentes Sea cual fuere el enfoque de enseñanza de la matemática adoptado, todos los docentes acuerdan en la importancia del tiempo extraescolar dedicado al

Más detalles

MLM 1000 - Matemática Discreta

MLM 1000 - Matemática Discreta MLM 1000 - Matemática Discreta L. Dissett Clase 04 Resolución. Lógica de predicados c Luis Dissett V. P.U.C. Chile, 2003 Aspectos administrativos Sobre el tema vacantes: 26 personas solicitaron ingreso

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

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

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

1. Ecuaciones no lineales

1. Ecuaciones no lineales 1. Ecuaciones no lineales 1.1 Ejercicios resueltos Ejercicio 1.1 Dada la ecuación xe x 1 = 0, se pide: a) Estudiar gráficamente sus raíces reales y acotarlas. b) Aplicar el método de la bisección y acotar

Más detalles

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 Fundamentos de Investigación de Operaciones Investigación de Operaciones 1 1 de agosto de 2003 1. Introducción Cualquier modelo de una situación es una simplificación de la situación real. Por lo tanto,

Más detalles

Los sistemas de numeración se clasifican en: posicionales y no posicionales.

Los sistemas de numeración se clasifican en: posicionales y no posicionales. SISTEMAS NUMERICOS Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar

Más detalles

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces

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

Ecuaciones Diferenciales Tema 2. Trasformada de Laplace

Ecuaciones Diferenciales Tema 2. Trasformada de Laplace Ecuaciones Diferenciales Tema 2. Trasformada de Laplace Ester Simó Mezquita Matemática Aplicada IV 1 1. Transformada de Laplace de una función admisible 2. Propiedades básicas de la transformada de Laplace

Más detalles

Transformaciones canónicas

Transformaciones canónicas apítulo 29 Transformaciones canónicas 29.1 Introducción onsideremos una transformación arbitraria de las coordenadas en el espacio de las fases de dimensión 2(3N k) (con el tiempo como un parámetro) Q

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

1. Producto escalar, métrica y norma asociada

1. Producto escalar, métrica y norma asociada 1. asociada Consideramos el espacio vectorial R n sobre el cuerpo R; escribimos los vectores o puntos de R n, indistintamente, como x = (x 1,..., x n ) = n x i e i i=1 donde e i son los vectores de la

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

Más detalles

Tema 3. Espacios vectoriales

Tema 3. Espacios vectoriales Tema 3. Espacios vectoriales Estructura del tema. Definición y propiedades. Ejemplos. Dependencia e independencia lineal. Conceptos de base y dimensión. Coordenadas Subespacios vectoriales. 0.1. Definición

Más detalles

Factorización de polinomios

Factorización de polinomios Factorización de polinomios Polinomios Un polinomio p en la variable x es una expresión de la forma: px a 0 a 1 x a x a n1 x n1 a n x n donde a 0, a 1, a,, a n1, a n son unos números, llamados coeficientes

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

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN

PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN Ejercicio 1. Diseñar una planilla EXCEL que tome como dato de entrada un número entero y devuelva la representación en base 2. Testearla con los números 23, 245, 673,

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

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

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES

SITEMA BINARIO, OCTAL Y HEXADECIMAL: OPERACIONES Unidad Aritmética Lógica La Unidad Aritmético Lógica, en la CPU del procesador, es capaz de realizar operaciones aritméticas, con datos numéricos expresados en el sistema binario. Naturalmente, esas operaciones

Más detalles