MANUAL DE PRÁCTICAS LIBRES DE PROGRAMACIÓN LÓGICA [IA]
|
|
- Sergio Vega Vázquez
- hace 8 años
- Vistas:
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 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 detallesGuí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 detallesCentro 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 detallesCapí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 detallesTEMA 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 detallesCreado 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 detallesCAPÍ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 detallesORGANIZAR 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 detallesPROYECTOS, 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 detallesLa 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 detallesTEMA 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 detallesPlataforma 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 detalles2_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 detallesCreació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 detallesIndicaciones 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 detallesBases 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 detallesPOWER 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 detalles2.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 detallesPreliminares. 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 detalles1.- 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 detallesPara 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 detallesMACROS. 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 detallesGuí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 detallesInternet 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 detallesOperació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 detallesOperació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 detallesINFORMÁ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 detallesGuí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!
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 detallesGENERACIÓ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 detallesPROLOG 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 detallesInstantá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 detallesGUÍ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 detallesGuí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 detallesOficina 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 detallesLABORATORIO 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 detallesFundamentos 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 detallesGuardar 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 detallesEdició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 detallesMANUAL 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 detallesUNIDAD 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 detallesOperaciones 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 detallesUNIDAD 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 detallesV 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 detallesInstrucció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 detallesProyecto 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 detallesTEMA 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 detallesUAM 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 detallesSesió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 detallesMicrosoft 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 detallesLAS 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 detallesMANUAL 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 detallesCó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 detallesManual 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
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 detallesManual 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 detallesMÓ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 detallesSkype. 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 detallesProceso 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 detallesInformá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 detallesArquitectura 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 detallesGuí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 detallesCREACIÓ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 detallesPropuesta 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 detallesESCUELA 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 detallesMANUAL 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 detallesMó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 detallesManual 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 detallesMANUAL 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 detallesTEMA 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 detallesLic. 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 detallesUnidad 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 detallesAccede 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 detallesTPV 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 detallesPrá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 detallesCapí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 detallesAdaptació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 detallesAjustes 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 detallesAntivirus 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 detallesMANUAL 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 detallesGESTIÓ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 detallesI.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 detallesGuí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 detallesARCHIVOS 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 detallesWINDOWS. 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 detallesDESCARGA 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 detallesCOMPROBACIONES 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 detallesInstalació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 detallesHacer 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 detallesSistema 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 detallesFormularios. 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 detallesCAPÍ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 detallesNÚ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 detallesOperació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 detallesEstas 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 detallesPresentaciones. 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 detallesCOMBINAR 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 detallesManual 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