MANUAL DE PRÁCTICAS LIBRES DE PROGRAMACIÓN LÓGICA [IA]

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

Download "MANUAL DE PRÁCTICAS LIBRES DE PROGRAMACIÓN LÓGICA [IA]"

Transcripción

1 MANUAL DE PRÁCTICAS LIBRES DE PROGRAMACIÓN LÓGICA [IA] 1

2 1. Prólogo 4 2. Introducción a Prolog Introducción informal Preliminares Programación recursiva Estructuras de datos Introducción formal Cláusulas de Horn Hechos Consultas Términos Convenios sintácticos Unificación Modelo de cómputo SWI-Prolog Introducción Instalación Pasos a seguir en la instalación Editor Trabajo con SWI-Prolog Preliminares Directorio de trabajo Órdenes del sistema operativo Prueba del ejemplo del apartado Depuración y traza de programas Ayuda interactiva Historial Interacción con Windows Referencia de algunos predicados predefinidos Control Manejo de la base de datos Entrada/Salida Aritmética Operadores aritméticos Operadores lógicos Sicstus Prolog Introducción Instalación Pasos a seguir en la instalación 22 Editor Trabajo con Sicstus Prolog Dominios Ejemplo de trabajo Sugerencias y avisos Estilo 26 2

3 5.2 Precauciones Elegancia Errores conocidos Documentación a entregar con las prácticas Prácticas propuestas Árbol genealógico Expresiones aritméticas Intérprete Prolog Traductor Bibliografía Agradecimientos Índice 35 3

4 1. Prólogo Universidad del Valle de México La realización de estas prácticas libres es un apoyo de gran utilidad para el aprendizaje de la asignatura Programación Lógica. Por lo tanto, no es de obligada lectura, consulta o realización de las prácticas, aunque son, todas, tareas recomendables. Este manual está organizado en varios apartados que ofrecen todos los pasos necesarios para realizar las prácticas propuestas. En el apartado 2 se realiza una introducción al lenguaje Prolog desde los puntos de vista formal e informal. Con él se pretende que se conozcan los mecanismos básicos de Prolog a usar en el desarrollo de las prácticas que se irán complementando con los explicados en las clases de teoría. Por lo tanto, no es un manual autocontenido. Complementariamente, en el apartado 7 se lista la bibliografía que se ha usado para la elaboración de este manual y de la asignatura en sí, y que se puede consultar para obtener toda la información necesaria para estas prácticas y temas avanzados. En el apartado 3 se introducen los fundamentos de SWI-Prolog, una implementación de distribución libre que se puede usar en el curso, necesarios para la realización de las prácticas que se proponen en el apartado 6. Alternativamente se puede usar la implementación de Sicstus Prolog, que se describe en el apartado 4, que aporta sobre el sistema anterior la inclusión de bibliotecas de restricciones, que se introducirán al final del curso y que se tratan en profundidad en la asignatura optativa "Programación declarativa avanzada". El inconveniente de este sistema es que necesita licencia para su uso, restringiéndose su uso a la comunidad universitaria. 4

5 2. Introducción a Prolog Universidad del Valle de México 2.1 Introducción informal En este apartado se introduce informalmente el lenguaje de programación Prolog, siguiendo un ejemplo que se puede encontrar en Giannesini et al. (Véase la bibliografía) Preliminares Prolog es un lenguaje de programación diseñado para representar y hacer uso del conocimiento sobre un dominio particular. Este dominio es un conjunto de objetos. El conocimiento se formaliza por medio de un conjunto de relaciones que describen de forma simultánea las propiedades de los objetos y sus interacciones. Por ejemplo, se puede expresar el menú de un restaurante como se enuncia a continuación: Dominio: Los platos que se sirven en el restaurante. Relaciones: Inicialmente, las que clasifican los platos concretos, que son las siguientes: entrada(ensalada). entrada(sopa). carne(ternera). carne(cordero). pescado(merluza). pescado(mero). postre(fruta). postre(flan). Esta declaración de objetos y su clasificación se ha realizado mediante reglas denominadas afirmaciones o hechos y constituye un programa Prolog elemental. La entrada/salida (E/S) a un programa Prolog se realiza mediante una pregunta. La forma más elemental de E/S consiste en: Entrada: Formulación de una pregunta para comprobar si un hecho está declarado en el programa. Por ejemplo:? carne(ternera). Salida: Respuesta afirmativa o negativa por parte del sistema. Para el ejemplo anterior: Sí (normalmente en inglés, Yes, o simplemente Y). En las preguntas se pueden utilizar variables. En este caso, el sistema responde con todos los valores de las variables que hacen cierta la pregunta, o bien con la respuesta No si la pregunta no se satisface para ningún valor de las variables. Por ejemplo: entrada por el usuario:? pescado(x). salida del sistema: X={merluza,mero} A partir de las relaciones que constituyen la base de hechos (o datos) inicial se pueden definir relaciones más complejas y generales. Por ejemplo, se puede definir la siguiente relación: plato_principal(x) :- carne(x). plato_principal(x) :- pescado(x). Esta relación, que consta de dos cláusulas, define lo que se entiende por plato principal y que se puede leer de la siguiente forma: X es un plato principal si X es carne. X es un plato principal si X es pescado. Las cláusulas o reglas anteriores se componen de cabeza (a la izquierda de :- ) y cuerpo (a la derecha de :- ). Declaran que es cierto lo que expresa la cabeza si es cierto lo manifestado por el cuerpo. Las variables sólo tienen alcance dentro de la cláusula y hacen referencia a todos los objetos del dominio (cuantificación universal). Con la incorporación de las dos reglas anteriores, se puede formular la siguiente pregunta: 5

6 ? plato_principal(ternera). cuya respuesta sería Sí. La respuesta a:? plato_principal(x). sería: X = {ternera;cordero;merluza;mero} Se pueden incorporar al programa nuevos conocimientos en forma de reglas sobre el dominio en cuestión. Por ejemplo, la comida se compone tradicionalmente de una entrada, un plato principal (carne o pescado) y un postre. Esto se puede representar con la siguiente regla: comida(a,b,c) :- entrada(a),plato_principal(b),postre(c). la cual se puede interpretar como: el triplete (A,B,C) es una comida si A es una entrada, B es un plato principal y C es un postre. Una vez incorporada la regla anterior al programa, la respuesta del sistema a la pregunta:? comida(x,y,z). que expresa el conjunto de todas las diferentes comidas que puede servir el establecimiento, sería: {X=ensalada,Y=ternera,Z=fruta; X=ensalada,Y=ternera,Z=flan; X=ensalada,Y=cordero,Z=fruta; X=ensalada,Y=cordera,Z=flan; X=ensalada,Y=merluza,Z=fruta;... } Para precisar más la pregunta se pueden incorporar más condiciones en forma conjuntiva como, por ejemplo:? comida(x,y,z),pescado(y). que corresponde a la solicitud al sistema de todas las comidas diferentes que tienen pescado de segundo plato. Se puede ahora incorporar el conocimiento que se tiene acerca del valor calórico de los diferentes platos: calorias(ensalada,30). calorias(sopa,60). calorias(ternera,200). calorias(cordero,250). calorias(merluza,100). calorias(mero,150). calorias(fruta,50). calorias(flan,80). La regla calorias(ensalada,30) establece que un plato de ensalada tiene 30 calorías 1. A la pregunta:? calorias(x,100). el sistema responde con todos los platos de 100 calorías: X = {merluza} Se puede definir el valor calórico V de una comida compuesta de una entrada E, el plato principal PP y el postre P mediante la siguiente regla: valor_calorico(e,pp,p,v) :- comida(e,pp,p), calorias(e,x),calorias(pp,y),calorias(p,z), V is X+Y+Z. En esta regla, V is X+Y+Z corresponde a la expresión en Prolog de la operación de suma incorporada en el sistema (is es la regla predefinida para evaluar expresiones aritméticas. En este caso hay que hacer notar que actúa como un operador infijo, al contrario del carácter prefijo de las reglas). Basándose en el valor calórico, se pueden establecer diferentes tipos de menú. Por ejemplo, un menú equilibrado es aquél que no sobrepasa las 200 calorías: menu_equilibrado(x,y,z) :- valor_calorico(x,y,z,v), V =< 200. El programa completo estaría, pues, compuesto de las siguientes reglas: 1 Nótese que no se escriben acentos en los programas. Esto es una limitación de algunas implementaciones de Prolog que, como es habitual, están pensadas para el inglés y no para el resto de los idiomas. Quizás esto cambie algún día. 6

7 /* PROGRAMA COMPLETO */ entrada(ensalada). entrada(sopa). carne(ternera). carne(cordero). pescado(merluza). pescado(mero). postre(fruta). postre(flan). plato_principal(x) :- carne(x). plato_principal(x) :- pescado(x). comida(a,b,c) :- entrada(a),plato_principal(b),postre(c). calorias(ensalada,30). calorias(sopa,60). calorias(ternera,200). calorias(cordero,250). calorias(merluza,100). calorias(mero,150). calorias(fruta,50). calorias(flan,80). valor_calorico(e,pp,p,v) :- comida(e,pp,p), calorias(e,x),calorias(pp,y),calorias(p,z), V is X+Y+Z. menu_equilibrado(x,y,z) :- valor_calorico(x,y,z,v), V =< 200. /* FIN DEL PROGRAMA */ E/S? menu_equilibrado(x,y,z). {X =ensalada,y=merluza,z=fruta} Yes Universidad del Valle de México Programación recursiva Con el programa del ejemplo anterior se realiza una búsqueda exhaustiva de soluciones probando de manera ordenada cada una de las reglas del programa. Este mecanismo de búsqueda está implementado en el sistema y es transparente al usuario. No obstante, se pueden programar búsquedas más elaboradas usando uno de los recursos más importantes de la programación lógica: la recursividad. Por ejemplo, se puede definir el antepasado de una persona con la siguiente relación: antepasado(x,y) :- progenitor(x,y). antepasado(x,z) :- progenitor(x,y),antepasado(y,z). Con ella se representa el siguiente conocimiento: X es antepasado de Y si X es progenitor de Y, o bien, X es antepasado de Z si X es progenitor de Y e Y es antepasado de Z. Con esta última afirmación se liga la cadena de progenitores hasta alcanzar el elemento Z que la cumpla (si existe). 7

8 2.1.3 Estructuras de datos Términos estructurados Los objetos de datos que se han utilizado hasta el momento en las reglas han sido objetos simples de tipo constante (los números y los átomos, que son el nombre de los objetos del programa Prolog) y variable (objetos que se escriben empezando en mayúscula). Sin embargo, Prolog permite además el uso de objetos estructurados (o simplemente estructuras) en las reglas. Las estructuras tienen diferentes componentes combinadas mediante un funtor. Por ejemplo, la fecha se puede representar por medio de la siguiente estructura: fecha(24,abril,2003). Argumentos Funtor Los argumentos de las estructuras pueden ser a su vez estructuras. Por ejemplo, se puede definir el siguiente término: libro(el_quijote,123,fecha(2,enero,1995)) para representar el objeto libro cuyo título es el_quijote, con número o signatura 123 y adquirido el 2 de enero de En general, el funtor de una estructura precede a los argumentos de la misma, que se encierran entre paréntesis. Sin embargo, Prolog permite utilizar otros operadores de forma infija y prefija. La razón de esta posibilidad reside en facilitar la lectura de ciertos funtores de acuerdo con su empleo tradicional. Por ejemplo, si se utiliza el operador de la suma como funtor de una estructura que representa la suma de dos expresiones, en la forma estándar de Prolog se tiene: +(A,B) En cambio, en la forma tradicional infija se tiene: A+B Si bien conviene insistir en que se trata tan solo de un asunto de cosmética sintáctica que sólo afecta a la forma en que se presenta la estructura en la E/S. A menudo se hace referencia a los términos por su funtor, que está caracterizado por un nombre y su aridad, como, por ejemplo, fecha/ Listas Un tipo especial de funtor de dos argumentos se utiliza en Prolog para representar las listas (secuencia ordinaria de objetos). Así:.(Cabeza,Cola) representa una lista cuyo primer elemento es Cabeza y los restantes elementos se encuentran en la lista Cola. Para hacer explícito el segundo elemento de la lista se aplica el funtor. a la lista Cola:.(Cabeza,.(Cabeza2,Cola)) Para hacer explícitos todos los elementos de una lista y mantener los dos argumentos del funtor. se necesita un símbolo que represente la lista vacía. Para ello se usa []. Así, la estructura:.(a,.(b,.(c, []))) representa a la lista [a,b,c]. Debido a su frecuente uso, Prolog permite representar listas en la forma habitual entre corchetes y separando sus elementos por comas. También admite otra forma: [Cabeza Cola] que es equivalente a.(cabeza,cola) También se permite hacer explícito más de un elemento de la cabeza: [a,b,c Cola] 8

9 2.2 Introducción formal En este apartado se introduce formal y brevemente el lenguaje de programación Prolog, recalcando algunos conceptos vistos en el apartado anterior. No obstante, este apartado es un breve resumen muy podado de lo que se puede encontrar en Lloyd Cláusulas de Horn Desde un punto de vista lógico, un programa Prolog está constituido por un conjunto de cláusulas de Horn. Una cláusula de Horn tiene la forma general: p(t 1,t 2,...,t n ) :- p 1 (t 11,...,t 1n1 ),...,p m (t m1,...,t mnm ). donde m,n 0 y p, p 1,..., p m son símbolos de predicados (relaciones lógicas) con sus argumentos entre paréntesis. A los argumentos de los predicados se les denomina términos. Las cláusulas de Horn son expresiones condicionales, siendo el símbolo :- el condicional o implicación lógica (normalmente se utiliza el símbolo ). Así, la cláusula anterior se puede leer de la siguiente forma: Si p 1 (t 11,...,t 1n1 ) y... y p m (t m1,...,t mnm ) entonces p(t 1,t 2,...,t n ). O bien: Es cierto p(t 1,t 2,...,t n ) si es cierto p 1 (t 11,...,t 1n1 ) y... y es cierto p m (t m1,...,t mnm ) Hechos Cuando m=0, la cláusula no tiene parte derecha (denominada también cuerpo): p(t 1,t 2,...,t n ). y se denomina una afirmación o hecho Consultas Cuando la cláusula no tiene parte izquierda (denominada también cabeza), se tiene una cláusula negativa o consulta:? p 1 (t 11,...,t 1n1 ),...,p m (t m1,...,t mnm ). que son las cláusulas con las que se realiza la entrada/salida del programa Términos Un término t i puede ser: Una constante (un número o un átomo). Una variable. Una estructura f(s 1,s 2,...,s n ) (o término estructurado), donde f es el funtor de la estructura, que tiene aridad (número de argumentos) n y sus argumentos s i son, a su vez, términos Convenios sintácticos Los símbolos o identificadores de átomos, funtores y predicados comienzan por una letra minúscula, los símbolos de variables comienzan con una letra mayúscula. No obstante, las variables también pueden empezar por un subrayado (_), en cuyo caso se denominan anónimas. Por ejemplo: _X o _x. Asimismo, los átomos también pueden empezar en mayúscula si se encierran entre comillas simples. Por ejemplo: Segovia. Cuando los identificadores están formados por más de una palabra se actuará de la siguiente manera: Para variables, cada palabra comenzará en mayúsculas. Ej: VariableMuda Para el resto, las palabras del identificador se separan con símbolos de subrayado. Ej: conflicto_de_planificación Se pueden añadir comentarios a los programas de dos formas: Un comentario en una línea va precedido por el carácter %. Ej: % Esto es un comentario en una línea Un comentario que ocupe una o más líneas se encierra entre los símbolos de inicio y fin /* y */, respectivamente. Ej: /* Esto es un comentario en varias líneas */ 9

10 Nota: dependiendo de las implementaciones se pueden admitir símbolos de inicio y fin anidados Unificación La unificación es una de las operaciones más importantes de Prolog. Es la generalización del encaje de patrones de la programación funcional con la integración de variables lógicas. El encaje de patrones consiste en la igualdad sintáctica de dos objetos. Una variable encaja con cualquier objeto, sin embargo, una constante sólo puede encajar con una constante igual u otra variable. Un término estructurado encaja con cualquier variable o con un término estructurado que posea el mismo funtor y aridad, y además se debe cumplir que encajen sus argumentos (definición inductiva). Por ejemplo, la siguiente tabla muestra el resultado del encaje de dos argumentos: Primer argumento Segundo argumento Resultado X a Éxito, con X=a a b Fallo X f(a) Éxito, con X=f(a) f(a) f(a) Éxito f(a) s(a) Fallo f(a) f(b) Fallo La unificación es, pues, la generalización de este concepto. Por una parte, permite que una variable se pueda instanciar (o, lo que es igual, asignar una sola vez) a un valor y sólo a uno (esto es lo equivalente a la operación de asignación que se realiza en el encaje de patrones). Por otra parte, y gracias a la bidireccionalidad de cómputo (se explica en el próximo apartado), es posible instanciarla a otros valores en una rama diferente del árbol de búsqueda. Es importante insistir en que, al contrario de la programación imperativa, una variable lógica se instancia con éxito a un único valor cuando se obtiene una solución. Por supuesto, si se buscan otras soluciones, la variable puede tomar otros valores de su dominio. Pero esto corresponde a una solución diferente. El resultado de una unificación en forma de asignaciones de variables a valores se denomina sustitución. Una sustitución es un conjunto de pares X=V, que expresa que la variable X se ha asignado al valor V Modelo de cómputo Un cómputo Prolog consiste en un proceso de resolución lineal (debido a Robinson) con unificación aplicado a una cláusula negativa o consulta y al conjunto de cláusulas que componen el programa. Así, la consulta:? p(a,x). tendría las dos posibles lecturas siguientes: Para qué valores de la variable X resulta cierto p(a,x)? Para qué valores de la variable X se deduce p(a,x) del conjunto de relaciones que componen las cláusulas del programa? Según el principio de resolución, para resolver el objetivo p(a,x)se intenta unificar con la parte izquierda de alguna cláusula cuya cabeza sea el mismo predicado p. Si la unificación es posible (a causa de los argumentos de la cabeza y del objetivo), se sustituye el objetivo original por la parte derecha de la cláusula utilizada en la unificación (con las sustituciones de variables que la unificación implica). El proceso continúa hasta que se obtiene la cláusula vacía (no hay más objetivos a resolver). Si se considera el siguiente programa (donde se numeran las cláusulas): 1. p(a,f(t,b)) :- q(y,c,a), r(f(t,b),b). 2. p(a,a). 3. q(c,c,a). 4. q(a,b,c) :- r(s(a,b),d). 5. r(f(b,b),b). y con el objetivo anterior p(a,x), se desencadena el siguiente proceso:? p(a,x). Resolviendo con 1, con la sustitución X = f(t,b)? q(y,c,a), r(f(t,b),b). Resolviendo con 3, con la sustitución Y = c? r(f(t,b),b) Resolviendo con 5, con la sustitución T = b 10

11 ? Cláusula vacía, es decir, éxito en el cómputo. Por lo tanto, p(x,a) es cierto para la sustitución X=f(b,b), que es el resultado (salida) del cómputo que realiza Prolog. El orden de utilización de las cláusulas para resolver un objetivo es el determinado por su aparición en el programa. Cuando el objetivo se compone de varios subobjetivos se intenta resolver de izquierda a derecha. Ésta es una de las posibles alternativas de búsqueda de soluciones en el programa, que se denomina búsqueda en profundidad y de izquierda a derecha (depth-first left-to-right). Aplicando esta estrategia para buscar una nueva solución en el programa para el objetivo p(x,a), se obtiene otra solución con sustitución de éxito X = a. Esta sustitución viene determinada por la cláusula 2 del programa, habida cuenta de que no hay otras posibilidades de unificación para los predicados r y q en el orden establecido de búsqueda. 11

12 3. SWI-Prolog 3.1 Introducción Universidad del Valle de México SWI-Prolog es una implementación del lenguaje de programación Prolog que se ejecuta bajo Windows. Se diseñó en la Universidad de Amsterdam, en el Departamento SWI (Social Werke Informatik), teniendo como objetivo disponer de una aplicación portátil y modificable. Es portátil al haberse escrito en C, y puede compilarse en diferentes sistemas; por ejemplo, en UNIX. Se ideó modificable para experimentar la relación entre la programación lógica y otros paradigmas de la programación. Por ello, su código fuente está disponible y se puede alterar para ser ajustado a las necesidades propias. No obstante su portabilidad, que limita su eficiencia en comparación con otras implementaciones comerciales, es suficientemente robusto para crear aplicaciones razonablemente complejas, además de ser un producto de distribución libre (y, por tanto, gratuito). Ésta la causa por la que no se dispone de un entorno de desarrollo tan elaborado como otras aplicaciones comerciales, pero suficiente para los propósitos de estas prácticas. Esta implementación no es un intérprete de Prolog, es un compilador de Prolog a un lenguaje intermedio que se encuentra entre la semántica de alto nivel de los predicados Prolog y las instrucciones máquina de la máquina sobre la que se ejecuta, o máquina soporte, basadas en microprocesadores de tipo CISC o RISC. Este lenguaje intermedio se ejecuta sobre una máquina simulada en la máquina soporte. Se puede afirmar entonces que el compilador Prolog es un traductor cruzado que produce código para una máquina que no está implementada en hardware. Esta máquina es una versión de la WAM (Warren Abstract Machine, diseñada por D.H.D. Warren 2 ), que es el estándar de facto de las implementaciones Prolog. Con respecto a la sintaxis y semántica de SWI-Prolog (que, al igual que el resto de lenguajes de programación difiere para cada implementación) respeta el estándar Prolog de Edimburgo, como se describe en Clocksin y Mellish. la última versión se puede obtener en: Instalación Para instalar SWI-Prolog es necesario disponer de unos 3 Mb de espacio libre en disco fijo 3 en un sistema Windows. También es posible instalarlo en Linux (la conocida versión de libre distribución para PC del sistema operativo UNIX), para lo cual es necesario obtener los ejecutables de la fuente de distribución 4. En la página Web de la asignatura se puede encontrar el sistema para Windows Pasos a seguir en la instalación 1. Escoger y/o crear un directorio que vaya a contener la implementación SWI-Prolog. Por ejemplo, C:\Archivos de programa\swiprolog. 2. Extraer los archivos de la distribución ejecutando el archivo autoextractor swiprolg.exe (ojo, que falta una o en prolg). Para ello hay que ejecutarlo en el directorio escogido. 3. SWI-Prolog ya está listo para ser usado ejecutando el archivo plwin.exe, que se encuentra en el directorio BIN de la instalación. Una vez realizada la instalación, no se deben trasladar los archivos. 4. Al ejecutar el archivo plwin.exe desde el Explorador de Windows se produce una ventana en donde se ejecuta SWI-Prolog con el siguiente aspecto: 2 En [Aït-Kaci] se puede encontrar una descripción legible de este diseño. 3 Al que se le suele llamar duro, una traducción quizás incorrecta porque, si se cae, no es razonable pensar que siga funcionando. 4 Por el momento no se proporcionará más información acerca de esta versión, al no haber sido probada. 12

13 5. A continuación se introduce progman_setup., teniendo en cuenta el punto de final y que hay que pulsar INTRO. Esto provoca la generación del grupo de programas SWI-Prolog, que contiene el ejecutable SWI-Prolog Editor Se puede usar cualquier editor para editar los programas Prolog. Sin embargo, es recomendable usar uno que proporcione información acerca de la línea que se esté editando. Una posible elección es Edit.com, el editor estándar de la interfaz de comandos del sistema operativo, que funciona bajo Windows incluso con ratón. A diferencia de Wordpad o Bloc de notas, informa de los números de línea. Si se desea instalar este editor en el grupo de programas SWI-Prolog se debe crear un acceso directo a Edit.com, que se encuentra en la estructura de directorios del sistema operativo (generalmente en \Windows\COMMAND). Para que funcione el ratón en la ventana para trasladar el cursor o seleccionar elementos del menú hay que desactivar la casilla de verificación "Modalidad de edición rápida" en "Propiedades", que se accede pulsando con el botón derecho sobre la barra de título del editor. Para predeterminar este editor es necesario crear una variable de entorno denominada EDITOR, que debe tomar el valor del nombre completo del archivo Edit.com (por ejemplo, C:\Windows\COMMAND\Edit.com). Así, cada vez que se use el predicado edit, se invocará al editor predeterminado. Llegados a este punto, la instalación está completa y se puede empezar a trabajar con SWI-Prolog. 13

14 3.3 Trabajo con SWI-Prolog Preliminares La forma más cómoda de trabajar con un intérprete Prolog es quizás usar el editor para crear y modificar el programa en lugar de trabajar directamente con la base de datos. Con el primer procedimiento se edita el programa y a continuación se debe cargar en la base de datos. Con el segundo procedimiento se deben introducir una a una las relaciones del programa con los predicados predefinidos tipo assert, y para borrarlas es necesarios usar los predicados del tipo retract. Aunque ambos serán discutidos más adelante, es más cómoda la edición de todo el programa seguido del borrado de la base de datos y la nueva consulta de todo el programa. Borrar la base de datos no es una tarea obvia, por ello se recomienda el siguiente proceso: 1. Salir de SWI-Prolog con el predicado halt/0. 2. Editar y guardar el programa fuente con el editor. 3. Iniciar de nuevo SWI-Prolog. 4. Consultar el programa fuente con el predicado consult/1. Si se está seguro de no haber eliminado ninguna cláusula del programa, sino de sólo haberla modificado, entonces se pueden saltar los pasos 1 y Directorio de trabajo El directorio predeterminado de trabajo es c:, que corresponde al directorio raíz c:\. Es posible cambiar este directorio con el predicado cd/1. Su argumento es el directorio al que se desea cambiar. Es necesario poner este directorio entre comillas simples ( ) si contiene un nombre que no es sintácticamente correcto como átomo (se puede consultar Clocksin y Mellish). Por ejemplo, podemos hacer:?- cd(pl).?- cd(prgs). para cambiar al directorio c:\pl\prgs. Alternativamente se puede hacer:?- cd( c:\pl\prgs ). Nótese que ahora se necesitan las comillas puesto que los caracteres : y \ no son válidos para escribir un átomo. Si se desea cambiar de unidad se puede hacer con el mismo predicado. Por ejemplo:?- cd( d: ) Órdenes del sistema operativo SWI-Prolog acoge la sintaxis de las órdenes UNIX. Por ello, los predicados de interacción con el sistema interactivo están basados en esta sintaxis. Además del ya visto cd, tenemos: Para consultar cuál es el directorio actual:?- pwd. Para ver los archivos del directorio actual:?- ls. Para ver los archivos de un directorio concreto:?- ls(directorio). directorio debe seguir las normas sintácticas de los átomos o ir entrecomillado en caso contrario, como en cd Prueba del ejemplo del apartado Siguiendo el texto del apartado 2.1.1, se van a introducir de manera incremental en el archivo comidas.pl las diferentes cláusulas de que consta el programa. En primer lugar se introducirán las cláusulas del predicado calorias/2. A continuación se inicia SWI-Prolog, se cambia al directorio de trabajo y se consulta el programa. El sistema responde como sigue: 14

15 El sistema ha informado que se ha compilado satisfactoriamente el programa comidas, de 916 bytes de tamaño, en 0,00 segundos. Si, por el contrario, el programa hubiese contenido algún error como, por ejemplo, la omisión de un punto al final de la cláusula calorias(ternera,200) 5, entonces se habría obtenido la siguiente respuesta: El sistema informa que ha ocurrido un error en la línea 4 (c:/pl/prgs/comidas.pl:4: Syntax error: Operator expected.) 6. El informe de errores puede resultar confuso al principio. Con la práctica y conociendo en profundidad la sintaxis de Prolog se pueden analizar fácilmente 7. Para corregir este error se edita el programa para añadir el punto de final (no es necesario cerrar la ventana de edición) y se vuelve a guardar. A continuación se reinicia Prolog después de haber cerrado la sesión anterior con el predicado halt/0. Se consulta el programa y, cuando se hayan corregido otros posibles errores, se puede realizar una consulta como:?- calorias(x,y). X = ensalada Y = 30 donde se ha obtenido la sustitución de éxito que corresponde a la aplicación de la primera cláusula del predicado calorias/2. Si se desea obtener más soluciones se debe pulsar el punto y coma (;).?- calorias(x,y). X = ensalada Y = 30; X = sopa Y = 60; 5 Éste es uno de los errores más frecuentes al empezar a programar en Prolog. 6 Nótese la sintaxis UNIX al separar los subdirectorios con la barra de división (/) en lugar de la barra inclinada (\). 7 Por poner un caso, los errores de C son mucho más crípticos aún para programadores experimentados. 15

16 X = ternera; Y = 200 Universidad del Valle de México A partir de aquí se pueden ir introduciendo incrementalmente los diferentes predicados del programa e ir probándolos en el orden del apartado hasta llegar al programa completo. Es importante al principio hacer este proceso paso a paso para ir aislando los posibles errores que aparezcan. Así, el siguiente paso sería introducir y probar el predicado plato_principal/1. Se repetiría el proceso hasta completar el programa Depuración y traza de programas Como en la mayoría de lenguajes de programación se tiene disponible la posibilidad de realizar la depuración y traza de los programas. Sin embargo, debido a las características operacionales de Prolog que lo diferencian de los lenguajes de programación imperativa, es necesario introducir el concepto de los puertos de entrada y salida de los predicados, que forma parte del denominado modelo de bloques de procedimientos Modelo de bloques de procedimientos El modelo de bloques de procedimientos es una forma de representar la ejecución de un programa Prolog. Bajo este modelo, un objetivo es un bloque o caja con cuatro puertos de acceso que pueden ser observables para el programador que depure un programa. Dos son de entrada (Call y Redo) y otros dos de salida (Exit y Fail). En la siguiente figura se muestran de manera gráfica estos puertos: Call Fail Objetivo Exit Redo Call: Es el puerto de entrada en la primera evaluación de un objetivo. Exit: Es el puerto de salida que se atraviesa cuando se satisface la ejecución de un objetivo. Fail: Es el puerto de salida que se atraviesa cuando falla la ejecución de un objetivo. Redo: Es el puerto de entrada que por el que se pasa cuando se reevalúa un objetivo (se solicita otra solución). Siguiendo el ejemplo anterior podemos plantear el objetivo:?- plato_principal(x). De manera gráfica se obtendría el resultado de la figura siguiente, donde las flechas representan el control de flujo del programa, y las cajas o bloques, los procedimientos que se van a resolver. Los puertos de entrada y salida están etiquetados con su nombre. Las líneas discontinuas agrupan una de las cláusulas de un predicado y se numeran con respecto al orden textual en el que aparecen en el programa (Ej.: 1-plato_principal es la primera cláusula del predicado plato_principal(x). Las cajas de línea continua agrupan a un objetivo. En cada esquina entran o salen las líneas de los puertos de entrada y salida respectivamente. Los puertos están numerados para distinguir el momento en el que se atraviesan. Por ejemplo, Exit 1 corresponde al puerto de salida de plato_principal(x) para su primera solución: X = ternera. Redo 2 corresponde al puerto de entrada para buscar la tercera solución de plato_principal(x). El puerto Fail del predicado plato_principal(x)se atraviesa cuando se han agotado sus cuatro soluciones. 16

17 Call plato_principal(x ) 1-plato_principal carne(x) Call 1-carne Call Exit carne(ternera). Exit 1 Exit 2 2-carne Call carne(cordero). Redo 1 2-plato_principal etc... Call Fail Redo 2 En la sección se verá la forma en que se puede observar el funcionamiento del proceso de depuración y traza con un ejemplo usando los predicados que se introducen en el siguiente apartado Predicados de depuración y traza trace notrace spy(predicado/aridad) spy(predicado) nospy(predicado/aridad) nospy(predicado) leash(modo) Activa el depurador. Desactiva el depurador. Coloca un punto espía en el predicado que se especifica como Predicado/Aridad o simplemente Predicado. El depurador en modo traza sólo se detiene en los predicados especificados. Si no se especifica ninguno se detiene en todos. Elimina el punto espía del predicado que se especifica. Especifica los puertos de parada del depurador. call: Sólo en el puerto call. redo: Sólo en el puerto redo. exit: Sólo en el puerto exit. fail: Sólo en el puerto fail. full: En todos los puertos anteriores. half: Sólo en call, redo y fail. Sin ser estándar, SWI-Prolog ofrece otro puerto adicional: unify. Cuando el depurador se detiene en él se pueden observar las instanciaciones producidas por la unificación de la cabeza de la cláusula con el objetivo. Para observarlo se pueden usar como argumentos de leash: unify (sólo para el puerto unify) o all (para los 5 puertos). 17

18 Depuración y traza del ejemplo del apartado Una vez iniciado el sistema SWI-Prolog y cargado el programa se va a iniciar la sesión de depuración a partir del objetivo plato_principal(x). Para ello se activa la traza y a continuación se emite el objetivo. Ahora se pulsa INTRO cada vez que aparezca una interrogación, y se pulsa punto y coma (;) cada vez que se alcance una solución, como se muestra en la siguiente figura. El formato de los informes de depuración es el siguiente: Puerto: (N) Objetivo? Puerto es el puerto que se está atravesando. N es un número de referencia que el depurador asigna al predicado que se está resolviendo. Objetivo es el objetivo que se está resolviendo con las instanciaciones actuales de las variables. En este ejemplo se pueden observar claramente los puertos de entrada y salida para cada objetivo salvo el puerto fail del objetivo inicial, que no lo muestra el depurador, al igual que no muestra su puerto de entrada call. Al pulsar INTRO después de la interrogación se está continuando la ejecución del objetivo. Sin embargo, el primer objetivo que se resuelve es rl_add_history. Éste es un objetivo del sistema SWI-Prolog que se ejecuta cada vez que se emite una consulta, y tiene como propósito añadir la consulta a la lista de consultas emitidas (historial), de manera análoga al historial UNIX. La manera de recuperar consultas anteriores se realiza como en UNIX (Véase el apartado 3.3.7) A partir de este punto, cuando se resuelve el objetivo plato_principal(x) se puede hacer una clara correspondencia de esta figura con la figura anterior. Además de la opción de continuar (que aparece como creep, y que corresponde a la conocida opción de depuración "paso a paso") se pueden elegir otras, como por ejemplo: s skip. Impide atravesar el puerto call y continúa la traza en el puerto de salida correspondiente. Es equivalente "paso a paso por procedimientos". n nodebug. Finaliza la depuración y continúa con la ejecución. a abort. Finaliza la depuración y la ejecución. 18

19 3.3.6 Ayuda interactiva La ayuda interactiva proporciona una búsqueda y examen rápidos del manual de SWI-Prolog. El manual interactivo puede mostrar las definiciones de los predicados así como secciones enteras del manual SWI- Prolog. Como casi siempre, el manual viene en inglés. Se puede solicitar ayuda de varios modos:?- help. Muestra ayuda de la ayuda.?- help(nombre/aridad). Muestra ayuda del predicado Nombre de aridad Aridad.?- help(nombre). Muestra ayuda del predicado Nombre.?- help(apartado). Muestra el apartado del manual Apartado. Los apartados se especifican con números y los subapartados se separan con guiones. Ej.:?- help(2-3). Muestra el apartado 2.3 Online Help Historial SWI-Prolog ofrece un mecanismo de sustitución similar a csh de UNIX. Permite la composición de nuevas consultas en función de las emitidas anteriormente. Por ejemplo 8.:!!. Repetir la última consulta.!cad. Repetir la última consulta que empezaba por cad. ^nuevo^viejo. Sustituir el trozo viejo por el nuevo de la última consulta. h. Mostrar el historial de consultas.!número. Repetir la consulta número Interacción con Windows Es posible copiar la salida de SWI-Prolog al Portapapeles de Windows. Para ello se pueden seguir dos métodos: 1. Indicar el principio del área a copiar pulsando con el botón izquierdo del ratón, y el fin con el derecho. 2. Pulsar con el botón izquierdo del ratón y arrastrar para delimitar el área a copiar. El primer método es útil cuando el área a copiar es mayor que la ventana y es preciso desplazar el texto para encontrar el final del área. Nótese que no es necesario pulsar ninguna combinación de teclas a continuación; el simple hecho de realizar la selección implica la copia en el portapapeles. 3.4 Referencia de algunos predicados predefinidos Control halt Abandona el intérprete eliminando la base de datos (pero no el programa). fail Este predicado siempre falla (se puede usar para realizar búsquedas exhaustivas por fallo). 8 Para obtener más información acerca de cómo recuperar entradas pasadas consúltese el apartado 2.4 del manual o emitir la consulta help(2-4). 19

20 3.4.2 Manejo de la base de datos asserta(cláusula) Añade Cláusula al comienzo de las cláusulas del predicado correspondiente. Ej.: asserta(concatenar([],x,x)). Coloca concatenar([],x,x) como primera cláusula del predicado concatenar. assertz(cláusula) Igual que asserta pero al final. consult(archivo) Añade el contenido del archivo Archivo al final de la base de datos. listing Visualiza la base de datos completa (incluidos los predicados incluidos en el sistema SWI-Prolog en el inicio, aunque no los predefinidos). listing(predicado) Visualiza las cláusulas con cabeza Predicado. retract(cláusula) Elimina Cláusula del predicado correspondiente. Ej.: retract(concatenar([],x,x)). Elimina la cláusula concatenar([],x,x) de la base de datos Entrada/Salida get0(carácter) Lee un carácter de la corriente de entrada activa (generalmente la consola, es decir, lee del teclado) y lo almacena en Carácter. nl Provoca un salto de línea en pantalla. write(término) Escribe el término Término en pantalla Aritmética is Predicado infijo para evaluación de expresiones aritméticas. 3.5 Operadores aritméticos + Suma. - Resta. * Multiplicación. / División. // División entera. mod Resto de la división entera. ^ Exponenciación. sqrt Raíz cuadrada. - Complemento (operador unario). /\ Conjunción lógica bit a bit para enteros. \/ Disyunción lógica bit a bit para enteros. \ Complemento lógico bit a bit para enteros. << Desplazamiento a la izquierda. Operador binario. Primer argumento: número a desplazar. Segundo argumento: número de posiciones a desplazar. Los enteros son de 27 bits. >> Desplazamiento a la derecha. Operador binario. Primer argumento: número a desplazar. Segundo argumento: número de posiciones a desplazar. abs Valor absoluto. Operador unario. sin Seno. cos Coseno. tan Tangente. asin Arcoseno. acos Arcocoseno. atan Arcotangente. exp Exponencial del número e. log Logaritmo neperiano (en base e). 20

21 log10 Logaritmo decimal. Universidad del Valle de México 3.6 Operadores lógicos < Menor > Mayor >= Mayor o igual =< Menor o igual =:= Igual =\= Distinto 21

22 4. Sicstus Prolog Universidad del Valle de México 4.1 Introducción Sicstus Prolog es una implementación del lenguaje de programación Prolog que se ejecuta bajo diferentes sistemas operativos, como UNIX, Linux y Windows. Se diseñó en el instituto sueco de informática (SICS, Swedish Institute on Computer Science), una organización investigadora independiente sin ánimo de lucro para promover el uso de las nuevas ideas y resultados provenientes de la investigación en la industria y la sociedad en general. Aunque originalmente fue distribuido gratuitamente, actualmente es un sistema comercial sujeto a contratos de licencia. Es uno de los sistemas de referencia en el ámbito académico. Es un sistema actual que adopta el estándar internacional ISO/IEC (PROLOG: Part 1---General Core) y se ha construido sobre un motor Prolog de alto rendimiento con generación de código nativo para procesadores Sparc. El motor Prolog, al igual que el sistema SWI, es una extensión de la máquina WAM. La versión 3.6 del sistema y su manual están disponibles en la página Web de la asignatura en varios archivos de distribución: y las últimas versiones se pueden obtener en: Instalación Para instalar Sicstus Prolog es necesario disponer de unos 8 Mb de espacio libre en disco fijo además de tener instalado previamente Windows. También es posible instalarlo en otros sistemas operativos, para lo cual es necesario obtener los archivos de la fuente de distribución ( Sólo se pueden obtener versiones de evaluación por periodos de tiempo limitados. En la página Web de la asignatura se puede encontrar el sistema para Windows. La distribución consta de los siguientes archivos: sp3w32.exe. Primer archivo comprimido del sistema base, incluyendo el manual en formato hlp de Windows. sp3w32.w02. Segundo archivo comprimido del sistema base. MANHTML.ZIP. Manual en formato HTML. manps.zip. Manual en formato PostScript Pasos a seguir en la instalación Ejecutar el archivo sp3w32.exe y seguir las instrucciones en pantalla. Se obtendrá un grupo de programas que contiene el acceso directo al programa como consola DOS (Sicstus Prolog (console)) o como ventana Windows (Sicstus Prolog), siendo esta última la que se usará habitualmente, la ayuda del programa y las notas de la versión. Al ejecutar Sicstus Prolog se obtiene una ventana con el siguiente aspecto: 22

23 4.2.2 Editor Con respecto al editor se hacen los mismos comentarios que para SWI: se recomienda usar un editor con información del número de línea para resolver las referencias a los números de línea que aparecen en los informes de errores. En concreto, el manual explica cómo instalar y usar Emacs. 4.3 Trabajo con Sicstus Prolog En este apartado, en lugar de mostrar el trabajo con Sicstus Prolog con respecto a la programación lógica, se mostrarán algunos aspectos del trabajo con respecto a la programación con restricciones Dominios El tipo de dominio de las variables lógicas usadas en el contexto de la programación con restricciones define las restricciones que se pueden aplicar sobre ellas, el resolutor usado para la propagación y la posible representación del problema. Aunque muchos problemas se pueden modelar con diferentes dominios, lo más probable es que uno en concreto sea el que más se adapte a él en términos de la expresión del problema y su resolución (rendimiento). Al plantear un problema hay que decidir uno y sólo un dominio: no se pueden mezclar dominios entre sí en una misma resolución (salvo el caso especial de los reales y los racionales). En Sicstus podemos encontrar los siguientes dominios: Dominio Booleano. Las variables pueden tomar valores binarios (0/1) y se usa un resolutor basado en diagramas de decisión booleanos bastante eficiente. Véase el Capítulo 30 del manual. Dominio de los reales. Las variables pueden tomar valores reales comprendidos entre la representación mínima y máxima del sistema. En este dominio se plantean un gran número de problemas prácticos de interés y se resuelven con gran eficacia. Puede resolver restricciones lineales y retrasar las no lineales hasta que eventualmente se conviertan en lineales. Admite combinar variables reales con enteras para resolver problemas de optimización lineal entera mixta. Véase el Capítulo 31 del manual. Dominio de los racionales. Es similar al anterior con respecto a las restricciones que se pueden plantear pero sólo se admite la representación de racionales. No alcanza el mismo grado de aplicación práctica. Se describe en el mismo capítulo. Dominio finito. Las variables pueden tomar valores enteros. El resolutor integra propagación para acotar los dominios de las variables y etiquetado para asignarles valores. Es un dominio de gran importancia práctica para resolver problemas como planificación, horarios, empaquetado y otros en los que es característico el carácter discreto de las cantidades. Véase el Capítulo Ejemplo de trabajo Para plantear un programa con restricciones es necesario cargar inicialmente la biblioteca del dominio finito elegido mediante: 23

24 use_module(library(biblioteca)). Donde biblioteca es: clpb para booleanos. clpr para reales. clpq para racionales. clpfd para finitos. El siguiente programa ilustra el uso del dominio de los reales para resolver ecuaciones. Las restricciones en este dominio se encierran entre llaves.?- {2*A+3*B=C/2}, C=10.0, A=B. A = 1.0, B = 1.0, C = 10.0 La relación 2*A+3*B=C/2 se entiende como tal, no como una unificación sintáctica de términos como ocurre en Prolog; es decir, el doble del valor de A sumado al triple del valor de B debe ser igual a la mitad del valor de C, independientemente de si se puede comprobar o calcular en el momento en que se plantea la restricción. Nótese, por otra parte, que A=B no es una restricción (no es una ecuación que se envíe al resolutor) sino que es simplemente una unificación Prolog que establece que los términos (números en este caso) ligados a las variables A y B deben ser iguales. Otro ejemplo típico es el puzzle aritmético SEND+MORE=MONEY, donde las letras representan cifras que se deben leer como cantidades que satisfacen esa ecuación. Este ejemplo se formula bien con dominios finitos. En este tipo de dominio las restricciones están caracterizadas por su forma (el nombre del predicado usado y los operadores que intervienen), en lugar de delimitarse entre llaves como en el caso anterior. :- use_module(library(clpfd)). mm([s,e,n,d,m,o,r,y]) :- domain([s,e,n,d,m,o,r,y], 0, 9), S#>0, M#>0, all_different([s,e,n,d,m,o,r,y]), sum(s,e,n,d,m,o,r,y), labeling([], [S,E,N,D,M,O,R,Y]). sum(s, E, N, D, M, O, R, Y) :- 1000*S + 100*E + 10*N + D *M + 100*O + 10*R + E #= 10000*M *O + 100*N + 10*E + Y.?- mm([s,e,n,d,m,o,r,y]). D = 7, E = 5, M = 1, N = 6, O = 0, R = 8, S = 9, Y = 2? Universidad del Valle de México La relación S#>0 impone que S sea estrictamente mayor que cero, una relación que se envía al resolutor (en general, las relaciones aritméticas siempre van precedidas por el símbolo del sostenido). El predicado predefinido all_different impone que las variables que son su argumento deben ser distintas entre sí, y labeling provoca que se etiqueten las variables que contenidas en las restricciones 24

25 enviadas al resolutor. Universidad del Valle de México 25

26 5. Sugerencias y avisos 5.1 Estilo Aunque hay muchas propuestas sobre el estilo de programación, aquí nos centraremos en uno de los estilos del formato de los programas. Se puede resumir en las siguientes directrices: Escribir las cabezas en una línea separada del cuerpo. Escribir los objetivos sangrados, uno en cada línea. Utilizar nombres de átomos significativos. Ej.: Factorial en lugar de Fac (que podría significar Facultad, Factoría, Facineroso,...) 9. Agrupar las reglas del mismo predicado. Separar los predicados diferentes. Escribir comentarios acerca de la semántica pretendida para cada predicado (al menos). Escribir los datos referentes al programa como comentario en su cabecera. Ej.: Fragmento de la práctica 1. /************************************************************************/ /* */ /* Programa: */ /* Práctica 1: Árbol genealógico. */ /* */ /* Programador: */ /* Programación Lógica */ /* */ /* Fecha: */ /* 28 de agosto de 1996 */ /* */ /* Nota: */ /* Ahora debería estar de vacaciones */ /* */ /************************************************************************/ /* Para todas las relaciones binarias de parentesco Relación(X,Y) se significa que X tiene relación de Relación con Y (Es decir, X es Relación de Y). Ej.: abuelo(x,y) = X tiene relación de abuelo con Y = X es abuelo de Y. Para las relaciones unarias Característica(X) se significa que X tiene característica Característica (es decir, X es característica). Ej.: hombre(x) = X tiene característica de hombre = X es hombre */ /* Base de datos de hechos */ /* El predicado hombre/1 denota que su argumento es hombre */ hombre(pablo). hombre(eladio).... /* Base de datos de reglas de inferencia */... /* El predicado hija/2 denota que su primer argumento es hija de su segundo*/ hija(x,y) :- progenitor(y,x), mujer(x) No importa que sean nombres largos, hay toda una línea para escribir un átomo si se siguen las directrices anteriores. 26

27 5.2 Precauciones Conviene tener presentes los siguientes puntos para evitar problemas añadidos en la programación: 1. Los nombres de las variables empiezan por mayúscula o por el carácter subrayado (_). 2. Los nombres de los átomos no pueden empezar por mayúscula a menos que se encuentren entre comillas simples. 3. Las reglas siempre terminan con un punto. 4. Las variables tienen alcance local a la cláusula donde se usan. 5. Aunque un programa sea sintácticamente correcto, ello no implica su validez semántica 10 (atentos a los nombres de las variables y predicados). 6. Es obligado agrupar las cláusulas por predicado. No se pueden tener cláusulas desperdigadas por todo el programa. 7. No usar puntos para separar los objetivos. Esto puede ser sintácticamente correcto en algunos casos y muy difícil de encontrar la causa del error. 5.3 Elegancia Como nota final, hay que insistir en que un programa Prolog complicado probablemente equivalga a un programa que se ha diseñado sin tener una idea clara del problema que se intenta resolver. Los programas elegantes son concisos, funcionan para todos los casos previstos y son fáciles de entender y, por tanto, de mantener. Los programas desgarbados tienen infinitos predicados, casi nunca funcionan y nadie puede entender (ni siquiera el que los programó). En [O Keefe] no se sugiere que se hagan programas elegantes, se postula que deben ser elegantes. Esto nos lo podemos aplicar a nosotros mismos si queremos dejar de perder horas inútiles en la depuración de los programas desgarbados. P.D. La elegancia es un signo de distinción. 5.4 Errores conocidos A continuación se mencionan algunos de los errores detectados en la implementación SWI-Prolog. 1. Si la última línea del archivo no termina en un retorno de carro, se producirá un error en la consulta del programa como el del ejemplo siguiente:?- consult(aleator). [WARNING: (s:/fernan/docs/docencia/plog/plog9697/fuentes/aleator.pl:4) /fernan/docs/docencia/plog/plog9697/fuentes/aleator.pl:4: Syntax error: Unexpected end of file] aleator compiled, 0.05 sec, 232 bytes. 5.5 Documentación a entregar con las prácticas Al programa debidamente documentado, como se ha indicado en el apartado 5.1, debe acompañarle una memoria personal 11 que indique el proceso de elaboración del programa. Se deben discutir las opciones elegidas y justificarlas. No se trata ahora sólo de presentar una solución al problema, sino de convencer de que es una buena solución. En definitiva hay que razonar todos los pasos que se han seguido. Es necesario incluir pruebas de la funcionalidad de la práctica que reflejen, de manera lo más exhaustiva posible, su validación funcional. Es decir, incluir el conjunto de consultas con las respuestas obtenidas que mejor representen su funcionalidad. La existencia de errores identificados en el programa no devalúa la calificación de la práctica; al contrario, puede mejorarla si se presenta claramente el error identificado. El esquema de la memoria debe ser el siguiente: Solución planteada, comentarios (con referencia a los errores encontrados y si se han podido resolver), validación funcional (consultas emitidas y respuestas computadas por el sistema) y listado del programa (debidamente comentado). 10 Como ocurre en todos los lenguajes de programación. 11 Cada alumno debe entregar una memoria de su cosecha. 27

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

Guía de Uso Básico de Prolog

Guía de Uso Básico de Prolog Guía de Uso Básico de Prolog 1. Prolog es un lenguaje conversacional Al contrario que la mayoría de los lenguajes de programación, Prolog es un lenguaje conversacional; es decir, el sistema Prolog mantiene

Más detalles

Centro de Capacitación en Informática

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

Más detalles

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

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA Programa: Algoritmo (secuencia no ambigua, finita y ordenada de instrucciones para la resolución de un determinado problema) traducido

Más detalles

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. WINDOWS Windows, Es un Sistema Operativo. Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation. Dentro de los tipos de Software es un tipo de software de Sistemas. Windows

Más detalles

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

Más detalles

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS

ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS ORGANIZAR LA INFORMACIÓN: EL EXPLORADOR DE WINDOWS Organizar la información: El explorador de Windows... 1 Introducción... 1 Explorador de Windows... 2 Ejercicio práctico del explorador de Windows... 5

Más detalles

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN GESTIÓN DE PROYECTOS CON PLANNER AVC APOYO VIRTUAL PARA EL CONOCIMIENTO GESTIÓN DE PROYECTOS CON PLANNER Planner es una poderosa herramienta de software

Más detalles

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición. Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en

Más detalles

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS 1) EL PEQUEÑO EDITOR El Bloc de notas de Windows XP es un básico editor de texto con el que podemos escribir anotaciones, de hasta 1024 caracteres por línea y

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

2_trabajar con calc I

2_trabajar con calc I Al igual que en las Tablas vistas en el procesador de texto, la interseccción de una columna y una fila se denomina Celda. Dentro de una celda, podemos encontrar diferentes tipos de datos: textos, números,

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Indicaciones específicas para los análisis estadísticos.

Indicaciones específicas para los análisis estadísticos. Tutorial básico de PSPP: Vídeo 1: Describe la interfaz del programa, explicando en qué consiste la vista de datos y la vista de variables. Vídeo 2: Muestra cómo crear una base de datos, comenzando por

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

POWER POINT. Iniciar PowerPoint

POWER POINT. Iniciar PowerPoint POWER POINT Power Point es la herramienta de Microsoft Office para crear presentaciones que permiten comunicar información e ideas de forma visual y atractiva. Iniciar PowerPoint Coloque el cursor y dé

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Preliminares. Tipos de variables y Expresiones

Preliminares. Tipos de variables y Expresiones Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un

Más detalles

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana EXCEL PRÓLOGO Microsoft Excel es una hoja de cálculo de gran capacidad y fácil uso. Excel no solo es una hoja de calculo, sino también tiene capacidad para diseñar bases de datos (listas) de forma totalmente

Más detalles

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas. Módulo 3 Herramientas de Cómputo Listas, tabulaciones, columnas y cuadros de texto Listas En muchas ocasiones es necesario que enumeres diferentes elementos en tus documentos. Word no sólo reconoce números

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Guía de Aprendizaje No. 1

Guía de Aprendizaje No. 1 MICROSOFT WORD Fundamentos básicos, ejecutar Word, su ventana y sus barras de herramientas Objetivos de la Guía de Aprendizaje No. 1 Obtener fundamentos básicos sobre Procesador de Texto Microsoft Word

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Operación de Microsoft Excel

Operación de Microsoft Excel Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005. Jorge Pérez R.

PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005. Jorge Pérez R. PROLOG Inteligencia Artificial Universidad de Talca, II Semestre 2005 Jorge Pérez R. 1 Introducción a PROLOG PROLOG es un lenguaje interpretado basado en la lógica de predicados de primer orden. Puede

Más detalles

Instantáneas o Shadow Copy

Instantáneas o Shadow Copy Instantáneas o Shadow Copy Las instantáneas o en ingles shadow copy, es una utilidad del sistema operativo que realiza copias de seguridad de los ficheros y carpetas de una partición determinada cada cierto

Más detalles

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

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

Más detalles

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana.

Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana. Guía para el tratamiento en Allegro de recibos para centros no pertenecientes a la Generalitat Valenciana. Esta guía muestra como proceder en la configuración y posterior uso de la aplicación Allegro en

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

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

Fundamentos CAPÍTULO 1. Contenido

Fundamentos CAPÍTULO 1. Contenido CAPÍTULO 1 Fundamentos En este capítulo encontrará instrucciones rápidas y sencillas que le permitirán poner manos a la obra de inmediato. Aprenderá también a utilizar la ayuda en pantalla, que le será

Más detalles

Guardar y abrir documentos

Guardar y abrir documentos Contenido 1. Guardar como... 2 2. Abrir... 4 3. Recuperar archivos... 5 4. Unidades, Archivos y Carpetas... 5 5. Estructura de archivos... 6 6. Diferentes visiones de la lista de Abrir... 7 7. Cambiar

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

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

UNIDAD I PROCESADOR DE TEXTOS

UNIDAD I PROCESADOR DE TEXTOS UNIDAD I PROCESADOR DE TEXTOS 1. Entorno de Microsoft Word 2007 Lic. Silvia Mireya Hernández Hermosillo 1.1 INTRODUCCIÓN 1.1.1 Generalidades de Microsoft Word 2007 Microsoft Word 2007 es un procesador

Más detalles

Operaciones básicas, fórmulas, referencias absolutas, relativas y mixtas.

Operaciones básicas, fórmulas, referencias absolutas, relativas y mixtas. Módulo 3 Herramientas de Cómputo Operaciones básicas, fórmulas, referencias absolutas, relativas y mixtas. Operaciones Básicas Las operaciones básicas que se realizan en una hoja de cálculo son: Seleccionar

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

V i s i t a V i r t u a l e n e l H o s p i t a l

V i s i t a V i r t u a l e n e l H o s p i t a l V i s i t a V i r t u a l e n e l H o s p i t a l Manual de Restauración del PC Septiembre 2011 TABLA DE CONTENIDOS SOBRE EL SOFTWARE... 3 CONSIDERACIONES ANTES DE RESTAURAR... 4 PROCEDIMIENTO DE RECUPERACION...

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

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico. 1 Primeros pasos en R. Al iniciarse R (ver Figura 16), R espera la entrada de órdenes y presenta un símbolo para indicarlo. El símbolo asignado, como puede observarse al final, es > Figura 16. Pantalla

Más detalles

TEMA 2: Representación de la Información en las computadoras

TEMA 2: Representación de la Información en las computadoras TEMA 2: Representación de la Información en las computadoras Introducción Una computadora es una máquina que procesa información y ejecuta programas. Para que la computadora ejecute un programa, es necesario

Más detalles

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid MANUAL DE EMPRESA Modo de entrar en ÍCARO Para comenzar a subir una oferta de empleo, el acceso es a través del siguiente enlace: http://icaro.uam.es A continuación, aparecerá la página de inicio de la

Más detalles

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,

Más detalles

Microsoft Office XP Excel XP (I)

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

Más detalles

LAS CONSULTAS ACCESS 2007. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS CONSULTAS ACCESS 2007. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS CONSULTAS ACCESS 2007 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS CONSULTAS En esta unidad veremos cómo crear consultas y manejarlas para la edición de registros de tablas

Más detalles

MANUAL DE USO DE LA APLICACIÓN

MANUAL DE USO DE LA APLICACIÓN MANUAL DE USO DE LA APLICACIÓN ÍNDICE 1. Acceso a la aplicación 2. Definición de funciones 3. Plantillas 4. Cómo crear una nueva encuesta 5. Cómo enviar una encuesta 6. Cómo copiar una encuesta 7. Cómo

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

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4 CAPÍTULO 4. Formas alternativas de escribir un texto........ Columnas Para fijar columnas se posiciona el Punto de Inserción donde se desee que comiencen las columnas, o bien se selecciona el texto que

Más detalles

Manual de Procedimiento

Manual de Procedimiento Manual de Procedimiento INSTALACION DEL PROGRAMA Este manual pretende ser una ayuda para el usuario, indicando cada uno de los pasos a seguir en su utilización. REQUERIMIENTOS: 1. Windows 98 o superior.

Más detalles

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO Tema 1: Gestión de listas de datos y tablas dinámicas Leire Aldaz, Begoña Eguía y Leire Urcola Índice del tema - Introducción a las listas de datos -

Más detalles

Skype. Inguralde [Enero 2011]

Skype. Inguralde [Enero 2011] Inguralde [Enero 2011] 1. Introducción Skype es un software que permite al usuario que lo utiliza, formar parte de una gran red de telefonía por Internet. Eso quiere decir que con Skype instalado en un

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2) 1. Qué es un sistema operativo?...2 2. Funciones de los sistemas operativos...2 3. Windows...2 3.1. La interfaz gráfica...2 3.2. La administración y los usuarios...3 3.3. El sistema de archivos...3 3.4.

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

Guía Rápida de Inicio

Guía Rápida de Inicio Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase

Más detalles

CREACIÓN Y CONFIGURACIÓN DE WIKIS

CREACIÓN Y CONFIGURACIÓN DE WIKIS Paso 1: Creación CREACIÓN Y CONFIGURACIÓN DE WIKIS Como con el resto de actividades, para crear un wiki lo primero es activar el modo de edición y seleccionar la opción Wiki de la lista desplegable Agregar

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS UNA SESIÓN EN SPSS INTRODUCCIÓN. SPSS (Statistical Product and Service Solutions) es un paquete estadístico orientado, en principio, al ámbito de aplicación de las Ciencias sociales, es uno de las herramientas

Más detalles

MANUAL DE AYUDA MÓDULOS 2011 MACOS

MANUAL DE AYUDA MÓDULOS 2011 MACOS MANUAL DE AYUDA MÓDULOS 2011 MACOS Agencia Tributaria Centro de Atención Telefónica Departamento de INFORMÁTICA TRIBUTARIA ÍNDICE MÓDULOS 2011 INTRODUCCIÓN...3 Requisitos previos. Máquina Virtual de Java...

Más detalles

Módulo 1 Sistema Windows. Explorador de Windows

Módulo 1 Sistema Windows. Explorador de Windows Módulo 1 Sistema Windows Explorador de Windows El Explorador es una herramienta indispensable en un sistema operativo, ya que con él podemos organizar y controlar los archivos y carpetas de los distintos

Más detalles

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este

Manual para usuarios USO DE ONEDRIVE. Universidad Central del Este Manual para usuarios USO DE ONEDRIVE Universidad Central del Este Contenido 1. QUÉ ES Y PARA QUÉ SIRVE OFFICE 365?... 3 1.1 CÓMO ENTRAR A LA PLATAFORMA DE OFFICE 365 DE LA UCE?... 3 ONEDRIVE... 5 2. QUÉ

Más detalles

MANUAL COPIAS DE SEGURIDAD

MANUAL COPIAS DE SEGURIDAD MANUAL COPIAS DE SEGURIDAD Índice de contenido Ventajas del nuevo sistema de copia de seguridad...2 Actualización de la configuración...2 Pantalla de configuración...3 Configuración de las rutas...4 Carpeta

Más detalles

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1 TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1!"# 1. Introducción En muchos aspectos, el Origin es muy similar a Excel. Y lo es, más que en su apariencia, en la versatilidad y en las funciones que permite

Más detalles

Lic. Saidys Jiménez Quiroz Tecnología e Informática Grado 7 CESCOJ 2011

Lic. Saidys Jiménez Quiroz Tecnología e Informática Grado 7 CESCOJ 2011 Lic. Saidys Jiménez Quiroz Tecnología e Informática Grado 7 CESCOJ 2011 NÚCLEO BÁSICO N 2: INTRODUCCIÓN A LA INFORMÁTICA. SESIÓN DE APRENDIZAJE N 2.4: GENERALIDADES DE WINDOWS XP EL EXPLORADOR DE WINDOWS.

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

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de: Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su

Más detalles

TPV Táctil. Configuración y Uso. Rev. 1.2 21/01/09

TPV Táctil. Configuración y Uso. Rev. 1.2 21/01/09 Configuración y Uso Rev. 1.2 21/01/09 Rev. 2.0 20100616 1.- Ruta de Acceso a Imágenes. 2.- Estructuración de los Artículos. 3.- Creación de Grupos de Familias. 4.- Creación de Familias de Ventas. 5.- Creación

Más detalles

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control 1er curso de Ingeniería Industrial: Ingeniería de Control Práctica 1ª: Introducción a Matlab Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

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

Ajustes del Curso en egela (Moodle 2.5)

Ajustes del Curso en egela (Moodle 2.5) Ajustes del Curso en egela (Moodle 2.5) Manual para el profesorado Versión 2 (12/05/2015) El presente manual ha sido desarrollado por el Campus Virtual de la Universidad del País Vasco / Euskal Herriko

Más detalles

Antivirus PC (motor BitDefender) Manual de Usuario

Antivirus PC (motor BitDefender) Manual de Usuario Antivirus PC (motor BitDefender) Manual de Usuario Índice 1. Introducción... 3 2. Qué es Antivirus PC?... 3 a. Eficacia... 3 b. Actualizaciones... 4 3. Requisitos técnicos... 4 a. Conocimientos técnicos...

Más detalles

MANUAL DE HOJA DE CALCULO

MANUAL DE HOJA DE CALCULO MANUAL DE HOJA DE CALCULO Conceptos Básicos Uso de Celdas Relleno automático y listas de clasificación Formatos Funciones de Bases de Datos Gráficos o Diagramas Abrir archivos de texto y formatearlos CONCEPTOS

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

I.E. FRANCISCO ANTONIO DE ZELA MANUAL DE MOVIE MAKER

I.E. FRANCISCO ANTONIO DE ZELA MANUAL DE MOVIE MAKER OBJETIVOS: Conocer el entorno del Movie Maker Diseñar un Video en Movie Maker MANUAL DE Windows Movie Maker es el programa de edición de vídeo que Windows incorpora en su sistema operativo. La principal

Más detalles

Guía para la Automatización de Documentos en. Microsoft Word

Guía para la Automatización de Documentos en. Microsoft Word UNIVERSIDAD SAN CARLOS DE GUATEMALA CENTRO UNIVERSITARIO DE SAN MARCOS USAC-CUSAM Guía para la Automatización de Documentos en Microsoft Word ID Y ENSEÑAD A TODOS 2015 PRESENTACIÓN El Instituto de Investigaciones

Más detalles

ARCHIVOS CON SERIES DEL BOLETÍN ESTADÍSTICO Manual de Usuario

ARCHIVOS CON SERIES DEL BOLETÍN ESTADÍSTICO Manual de Usuario Dirección General del Servicio de Estudios 04.09.2007 ARCHIVOS CON SERIES DEL BOLETÍN ESTADÍSTICO Manual de Usuario Departamento de Estadística Hoja de Control Título Autor Versión Fecha Registro de Cambios

Más detalles

WINDOWS. Iniciando Windows. El mouse

WINDOWS. Iniciando Windows. El mouse Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible

Más detalles

DESCARGA DE CARPETAS DE MENSAJES DE CORREO DESDE EL WEBMAIL A PC S LOCALES

DESCARGA DE CARPETAS DE MENSAJES DE CORREO DESDE EL WEBMAIL A PC S LOCALES DESCARGA DE CARPETAS DE MENSAJES DE CORREO DESDE EL WEBMAIL A PC S LOCALES 1.- Introducción El objetivo de este documento es la descripción de los pasos a seguir para descargar a nuestros PCs los mensajes

Más detalles

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC

COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC TITULO: COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC RESUMEN: La idea de este documento es mostrar una serie de acciones y ayudas básicas para intentar determinar y solucionar problemas en la

Más detalles

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Instalación del programa PSPP y obtención de una distribución de frecuencias. Práctica 2. Instalación del programa PSPP y obtención de una distribución de frecuencias. Con esta práctica instalaremos el programa PSPP. El programa es un software específico para el análisis estadístico

Más detalles

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2. b) Adicionar grados Para llevar a cabo esta operación el usuario deberá realizar los siguientes pasos: Recuperar la información, para realizar esta operación el usuario puede hacerla de las siguientes

Más detalles

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema Sistema de Gestión Portuaria Uso General del Sistema Uso General del Sistema Página 1 de 21 Contenido Contenido... 2 1.Ingreso al Sistema... 3 2.Uso del Menú... 6 3.Visualizar Novedades del Sistema...

Más detalles

Formularios. Formularios Diapositiva 1

Formularios. Formularios Diapositiva 1 Formularios Crear un formulario utilizando el Asistente para formularios Modificación en vista Diseño Adición de Controles a un Formulario Adición de un Subformulario a un formulario Formularios Diapositiva

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

NÚCLEO BÁSICO Nº 5: INTRODUCCIÓN A MICROSOFT WINDOWS XP. SESIÓN DE APRENDIZAJE Nº 5.1: ACCESORIOS DE WINDOWS XP: CALCULADORA, BLOCK DE NOTAS Y PAINT.

NÚCLEO BÁSICO Nº 5: INTRODUCCIÓN A MICROSOFT WINDOWS XP. SESIÓN DE APRENDIZAJE Nº 5.1: ACCESORIOS DE WINDOWS XP: CALCULADORA, BLOCK DE NOTAS Y PAINT. NÚCLEO BÁSICO Nº 5: INTRODUCCIÓN A MICROSOFT WINDOWS XP. SESIÓN DE APRENDIZAJE Nº 5.1: ACCESORIOS DE WINDOWS XP: CALCULADORA, BLOCK DE NOTAS Y PAINT. COMPETENCIA: Identifico las funciones de un sistema

Más detalles

Operación de Microsoft Word

Operación de Microsoft Word Generalidades y conceptos Combinar correspondencia Word, a través de la herramienta combinar correspondencia, permite combinar un documento el que puede ser una carta con el texto que se pretende hacer

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

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos: UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera

Más detalles

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD COMBINAR CORRESPONDENCIA EN MICROSOFT WORD Combinar documentos consiste en unir dos documentos diferentes sin que se modifiquen los datos que aparecen en ellos. Esta operación es muy útil y muy frecuente

Más detalles

Manual del Alumno de la plataforma de e-learning.

Manual del Alumno de la plataforma de e-learning. 2 Manual del Alumno de la Plataforma de E-learning 3 4 ÍNDICE 1. Página de Inicio...7 2. Opciones generales...8 2.1. Qué es el Campus...8 2.2. Nuestros Cursos...9 2.3. Cómo matricularme...9 2.4. Contactar...9

Más detalles