Sistemas Basados en Conocimiento

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

Download "Sistemas Basados en Conocimiento"

Transcripción

1 pág. 1 Arquitectura de los pág. 2 Arquitectura de los Sistemas Basados en Conocimiento Sistemas Basados en Conocimiento Base de conocimento - Conocimiento heurístico (decisiones - Conocimiento de control Base de hechos - Conocimiento de las estructuras de los datos y procedimientos asociados - Conocimiento de predicados Motor de inferencias - encadenamiento hacia delante - encadenamiento hacia atrás Carlos Ángel Iglesias Fernández Noviembre 1999 Memoria de trabajo Interfaz con el usuario, el ingeniero de conocimiento y el entorno informático Generador de explicaciones Arquitectura de SBC pág. 3 Sistemas Expertos vs. SBC pág. 4 Arquitectura de SBC Sistemas Expertos vs. SBC Usuario Ing. Conocimiento Experto Interfaz de usuario Generador de explicaciones Subsist. de adquisición de conoc. SE: visión conductista, funcional USUARIO problemas, preguntas respuestas, justificaciones, preguntas SE SBC: visión cognoscitiva, estructural Motor de Inferencias MOTOR DE INFERENCIAS Memoria de trabajo BASE DE CONOC. Reglas Marcos BASE DE CONOCIMIENTOS Control Hechos

2 SBC expertos y no expertos pág. 5 SBC vs. Sistemas tradicionales pág. 6 SBC expertos y no expertos SBC vs. Sistemas tradicionales DEFINICIÓN DEL CONOCIMIENTO DE LA APLICA- CIÓN SISTEMAS DE IA SBC En ambos sistemas es necesario definir el conocimiento de la aplicación Mientras que en un SBC, el MI procesa el conocimiento de la aplicación, los sistemas tradicionales insisten en que repitamos el procesamiento para cada aplicación SIST. EXPERTOS MODIFICACION/MANTENIMIENTO DEL CONOCI- MIENTO DE LA APL. SBC: el usuario define el nuevo conocimiento y SBC lo integra en la aplicación existente heurísticos, procesamiento simbólico énfasis en conocimiento, arq. software aplicación a dominio concreto que requiere experiencia Sist. Tradicionales: el usuario define el nuevo conocimiento, y debe definir además cómo interacciona con el conocimiento previo y reestablecer la secuencia de instrucciones de procesamiento SE Y SBC: EVOLUCIÓN pág. 7 MYCIN: Fragmento de Consulta pág. 8 SE Y SBC: EVOLUCIÓN MYCIN: Fragmento de Consulta : Precursores - DENDRAL (Stanford /MACSYMA (MIT : Prototipos - INTERNIST (Pittsburg - MYCIN (Stanford - CASNET (Rutgers - PROSPECTOR (S.R.I : Primeras herramientas - PROLOG (Marsella-Edimburgo - OPS5 (CMU - MYCIN -> EMYCIN - PROSPECTOR -> KAS - CASNET -> EXPERT : Comercialización grandes ss.ee. - R1/XCON (DEC - ACE (Bell - Drilling Advisor (Teknowledge : Comercialización herramientas grandes y pequeñas M - Nombre del paciente? U - Juan Gómez M - Edad?... M - Qué organismo es el causante de la infección? U - No sé M - Crece el organismo en medio aerobio? U - Sí (0.8 M - Crece en medio anaerobio? U - Sí M - Cuál supone que ha sido la puerta de entrada? U - El tracto gastrointestinal ( M - Mis recomendaciones terapéuticas van a basarse en las siguientes infecciones y organismos probables: Infección-1: Bateriamia primaria 1 El organismo puede ser PSEUDOMAS AERU- GINOSA 2...

3 MYCIN: Fragmento de diálogo pág. 9 Base de Conocimiento pág. 10 MYCIN: Fragmento de diálogo Base de Conocimiento 35M - La meningitis se ha contraído en un hospital? U - Por qué? M - Ello me ayudaría a determinar los organismos. Ya he concluído que: 1. La infección es meningitis 2. No se han visto organismos en el teñido del cultivo 3. El tipo de infección es bacteriana 4. No figura neurocirugía en el historial médico y 5. La edad del paciente es superior a 10 días Por tanto, si 6. El paciente contrajo la infección en un hospital entonces (regla 545 los organismos causantes podrían ser E. Coli (0.75, estafilococo coagulante positivo (0.3, pseudomonas aeruginosa (0.3 o klebsiella pneumoniae (0.5. Volvamos a la pregunta 35. U - Cómo 3? M - Por las siguientes reglas: Regla 500 (0.51 Regla 526 ( CONTROL Estrategia de alto nivel de la aplicación: fases de la aplicación, bases de conocimiento que se van a utilizar - Ejemplo: Primero, pedir los datos al cliente, después decidir si se le concede un crédito, y, en caso afirmativo, estimar la cuantía del crédito. CONOCIMENTO HEURÍSTICO Reglas del tipo si <condición> entonces <acción> - Ejemplo: si el solicitante tiene avalista, entonces se le concede el crédito. Base de Hechos pág. 11 El Motor de Inferencias pág. 12 Base de Hechos El Motor de Inferencias ESTRUCTURAS DE DATOS Definiciones, restricciones, tipos, valores por defecto,... (hechos no ordenados - Ejemplo: un perro tiene normalmente 4 patas, puede tener pelo corto o largo,... PATRONES Patrones que están en la memoria de trabajo o no ( hechos ordenados - Ejemplo: (animal pato (pato PROCEDIMIENTOS Métodos asociados a las estructuras de datos Funciones genéricas El motor de inferencias es una colección integrada de algoritmos de resolución de problemas. Está ya codificado y probado (frente a los sistemas convencionales. Funcionamiento 1. Lee el conocimiento de control para ver qué instrucciones de alto nivel hay definidas. 2. Si se inicia un proceso de inferencia: 2.1. Mira qué reglas son aplicables Si hay más de una regla aplicable, resuelve el conflicto, y selecciona una Aplica la regla (pudiendo tener que actualizar la B.C, aplicar métodos, Vuelve al paso 2.1 hasta que no haya reglas aplicables. Interfaz con el entorno informático

4 Ciclo base del Motor de Inferencias pág. 13 Estrategias básicas de inferencia pág. 14 Ciclo base del Motor de Inferencias Estrategias básicas de inferencia ENCADENAMIENTO HACIA DELANTE (forward chaining DETECCIÓN REGLAS APLICABLES estado inicial conclusiones intermedias soluciones ELECCIÓN REGLAS (RESOL. CONFLICTOS reglas y hechos ENCADENAMIENTO HACIA ATRÁS (backward chaining APLICACIÓN estado objetivo subobjectivos soluciones ACTUALIZACIÓN BH reglas y hechos EJEMPLO DE SECUENCIA INFERENCIAL pág. 15 Resolución de conflictos pág. 16 EJEMPLO DE SECUENCIA INFERENCIAL BC: R1: a -> c R6: d&g -> b R2: a -> h R7: c&f -> b R3: c -> d R8: a&h -> d R4: d -> e R9: a&c&h -> b R5: b&f -> x R10: a&b&c&h -> f BHo: {a} ENCADENAMIENTO HACIA DELANTE BH: a c h d e b f x R: ENCADENAMIENTO HACIA ATRÁS x b a c g(no d c f h a a b c h f Resolución de conflictos Qué sucede cuando hay más de uina regla aplicable? --> debemos establecer un orden de aplicación de las reglas 1 Preferencia basada en reglas. - asignación de prioridades explícita - orden de introducción (Prolog - historia de la regla (la disparada más/menos recientemente - seleccionar la más/menos específica 2 Preferencia basada en objetos - seleccion de reglas que se aplican a los objetos más recientes - asignación explítica de prioridades a objetos (patrones más comunes a h a c a a a a b c h a a a a 3 Preferencia basada en estados - banco de pruebas, ver los resultados de la aplicación, y seleccionar la mejor (tras simular

5 Ejemplo encadenamiento hacia atrás pág. 17 Ejemplo encadenamiento hacia atrás pág. 18 Ejemplo encadenamiento hacia atrás Regla 1: SI NivelRiesgo ES alto ENTONCES TipoInversión ES 'bonos del estado' Regla 2: SI EstiloInversión ES 'conservador' ENTONCES NivelRiesgo ES 'bajo' Introducción a CLIPS Regla 3: SI EstiloInversión ES 'aventurero' ENTONCES NivelRiesgo es 'alto' Regla 4: SI NivelRiesgo es alto ENTONCES TipoInversión ES 'bonos basura' Objetivo: Determinar TipoInversión Carlos Ángel Iglesias Fernández Noviembre 1999 Qué es CLIPS? pág. 19 Arquitectura de CLIPS pág. 20 Qué es CLIPS? Arquitectura de CLIPS CLIPS (C Language Integrated Production System es una herramienta para desarrollar sistemas expertos desarrollada por Software Technology Branch, NASA/Lyndon B. Johnson Space Center desde Sistema de producción con encadenamiento hacia delante escrito en C/ANSI. El motor de inferencias incluye un sistema de mantenimiento de verdad, adición dinámica de reglas, y diferentes estrategias de resolución de conflictos. Incluye un lenguaje orientado a objetos: COOL (Clips Object-Oriented Language Es fácilmente embebible en aplicaciones en C, ADA y FORTRAN, y está disponible en diversas plataformas (MS-DOS/Windows, Unix, Macintosh; también en Java (Jess. Extensiones para Lógina Borrosa (FuzzyCLIPS Base de conocimento - Conocimiento heurístico: Base de reglas - Conocimiento de control: Módulos/reglas/ embebido Base de hechos - Conocimiento de las estructuras de los datos y procedimientos asociados: COOL - Conocimiento de patrones: listas de hechos Motor de inferencias - encadenamiento hacia delante - encadenamiento hacia atrás Memoria de trabajo (MT Interfaz con el usuario, el ingeniero de conocimiento y el entorno informático: intérprete Generador de explicaciones

6 Hechos (facts pág. 21 Órdenes básicas de MT pág. 22 Hechos (facts Órdenes básicas de MT Son patrones que pueden tener un campo o varios. Si tienen varios campos, el primero suele representar una relación entre los restantes. (hola (alumnos Juan Luis Pedro Los componentes de un patrón pueden ser de diferentes tipos: numéricos, cadenas, símbolos,... (nombre Juan (edad 14 Podemos añadirlos a la memoria de trabajo con assert y quitarlos con retract. Todos los hechos se almacenan en la lista de hechos: fact-list. A cada hecho se le asigna un identificador único (ej. f-1. (facts: lista los hechos de MT (assert <hecho>: añadimos hecho a MT (retract <índice-hecho>: eliminamos hecho (clear : eliminamos todos los hechos y construcciones de la memoria de trabajo. (reset: eliminamos todos los hechos de la memoria de trabajo, eliminamos las activaciones de la agenda y restauramos las condiciones iniciales: - añadimos el hecho initial-fact y el objeto initial-object, que se utilizarán por las reglas de inicialización. - añadimos los hechos y ejemplares iniciales, conocimiento a priori definido con deffacts y definstances. - añadimos las variables globales con su valor inicial. - fija como módulo actual el módulo MAIN EJEMPLO - Manejo de MT pág. 23 Reglas pág. 24 EJEMPLO - Manejo de MT Reglas Vamos a añadir y quitar hechos de la memoria de trabajo: CLIPS> (reset CLIPS> (facts f-0 (initial-fact For a total of 1 fact. CLIPS> (assert (hola <Fact-1> CLIPS> (facts f-0 (initial-fact f-1 (hola For a total of 2 facts. CLIPS> (retract 1 CLIPS> (assert (hola <Fact-2> CLIPS> (facts f-0 (initial-fact f-2 (hola For a total of 2 facts. CLIPS> (clear CLIPS> (facts Sintaxis: (defrule <nombre-regla> [<documentación opcional>] [(declare (salience <num>] (patrón 1 (patrón 2... (patrón N (acción 1 (acción 2... (acción N Ejemplo: (defrule marca-del-600 Marca del modelo 600 (modelo 600 (assert (marca-es SEAT

7 El Motor de Inferencias en CLIPS pág. 25 Estrategias de resolución de conflictos en CLIPS pág. 26 El Motor de Inferencias en CLIPS Estrategias de resolución de conflictos en CLIPS El motor de inferencias trata de emparejar la lista de hechos con los patrones de las reglas. Si todos los patrones de una regla están emparejados se dice que dicha regla está activada. Las activaciones se mantienen en la agenda, en que se disponen por orden de prioridad. Para insertar una activación en la agenda, se siguen las estrategias de resolución de conflictos. Cuando una regla es activada, se coloca en la agenda según los siguientes criterios: 1. Las reglas más recientemente activadas se colocan encima de las reglas con menor prioridad, y debajo de las de mayor prioridad. 2. Entre reglas de la misma prioridad, se emplea la estrategia de resolución de conflictos fijada. 3. Si varias reglas son activadas por la aserción de los mismos hechos, y no se puede determinar su orden en la agenda según los criterios anteriores, se insertan de forma arbitraria (no aleatoria. Estrategias de CLIPS (I pág. 27 Estrategias de CLIPS (II pág. 28 Estrategias de CLIPS (I Estrategias de CLIPS (II Supongamos: - hecho-a activa r1 y r2 - hecho-b activa r3 y r4 - añadimos a MT hecho-a y hecho-b en este orden. Estrategia en profundidad (Depth - Es la estrategia por defecto. - Agenda: r3, r4, r1, r2 Estrategia en anchura (Breadth - Agenda: r1, r2, r3, r4 Estrategia de simplicidad/complejidad - El criterio de ordenación es la especifidad de la regla, esto es, el número de comparaciones que deben realizarse en el antecedente. (defrule ejemplo (item?x?y?x (test (and (numberp?x (>?x (+ 10?y (<?x 100 Estrategia aleatoria: a cada activación se le asigna un número aleatorio para determinar su orden en la agenda. Siempre se le asigna el mismo número en diferentes ejecuciones.

8 Estrategias de CLIPS (III pág. 29 Almacenar, cargar y ejecutar un programa pág. 30 Estrategias de CLIPS (III Estrategia LEX (OPS5 - Se asocia a cada hecho y ejemplar el tiempo en que fueron creados, y se da mayor prioridad a las reglas con un hecho más reciente, comparando los patrones en orden descendente. Estrategia MEA(OPS5 - Aplicamos la misma estrategia de LEX mirando sólo el primer patrón, si coincide se aplica LEX. Almacenar, cargar y ejecutar un programa Podemos almacenar las reglas con save: (save ej.clp También podemos editar las reglas/hechos con un editor de textos: ;************************* ;* Programa Ejemplo * ;************************* (defrule marca-del-600 Marca del modelo 600 ;Comentario (modelo 600 (assert (marca-es SEAT Podemos cargarlo con load: (load ej.clp Para ejecutarlo: run. Normalmente tendremos que hacer un reset previo. Definir hechos pág. 31 Variables locales y comodines pág. 32 Definir hechos Variables locales y comodines Para no tener que teclear los hechos iniciales, podemos introducirlos con la estructura deffacts. Ejemplo: (deffacts hechos-600 información del 600 (modelo 600 (puertas 2 Estos hechos se añadirán a MT al hacer reset. Podemos poner variables en los patrones de la parte izda de una regla. El identificador de una variable comenzará por?. Ej. (defrule num-puertas (marca?x (printout t El coche es un?x crlf ;observar el retorno de carro (assert (coche-es?x En esta regla hemos utilizado la función printout, que nos permite mostrar un mensaje por el dispositivo que fijemos (t = salida estándard. Podemos especificar en un patrón un comodín para sustituir un campo (? o para sustituir más de un campo ($?

9 Ejemplo Profesores pág. 33 Ejemplo Profesores pág. 34 Ejemplo Profesores ;;********************************** ;;* EJEMPLO DE VARIABLES/COMODINES * ;;********************************** (deffacts profesores (profesor Gregorio Fernandez Fernandez (profesor Mercedes Garijo Ayestaran (profesor Jose Carlos Gonzalez Cristobal (profesor Juan Ramon Velasco Perez (defrule apellidos-iguales (profesor?x?y?y (printout t D.?x tiene los apellidos iguales crlf ; no poner retorno en cadenas (defrule buenos-dias (profesor??x? (printout t Buenos días, Sr./Sra.?x crlf (defrule buenas-tardes (profesor $??x? (printout t Buenas tardes, Sr./Sra.?x crlf Variables globales pág. 35 Direcciones de hechos pág. 36 Variables globales Direcciones de hechos Permiten almacenar valores accesibles en reglas y funciones. Útiles para resultados. Ejemplo: (defglobal?*num* = 3?*suma* = (+?*num* 2?*cadena* = hola?*lista* = (create$ a b c Pueden estar en la parte izda de las reglas si no son utilizadas para asignar un valor, y su cambio no activa las reglas. Podemos almacenar las direcciones de los hechos en una variable con el operador <-. (defrule matrimonio?soltero <- (soltero?nombre (retract?soltero (assert (casado?nombre (printout t?nombre está casado crlf No pueden utilizarse como parámetros de funciones ni métodos (defrule regla-ilegal (hecho?*x* (defrule regla-legal (hecho?y&:(>?y?*x*

10 Patrones avanzados (I pág. 37 Patrones Avanzados (II pág. 38 Patrones avanzados (I Patrones Avanzados (II Podemos poner restricciones al comparar un patrón: - negación (~: (color ~rojo - conjunción (&: (color rojo&amarillo - disyunción ( : (color rojo amarillo También podemos unir patrones con las relaciones lógicas or, and y not (por defecto, los patrones se unen con and. Ejemplo: (defrule no-cruzar (luz ~verde (printout t No cruce crlf (defrule precaucion (luz amarilla intermitente (printout t Cruce con precaución crlf (defrule regla-imposible (luz verde&roja (printout t MILAGRO!! crlf (defrule regla-tonta (luz verde&~roja (printout t Luz verde crlf ; Se dispara con (luz verde (defrule precaucion (luz?color&amarillo intermitente (printout t Cuidado luz?color crlf (defrule no-cruzar (estado caminando (or (luz roja (policia dice no cruzar (not (luz?;sin luz (printout t No cruzar crlf Comprobación de valores de los patrones pág. 39 Ejemplo comprobación patrones: pág. 40 Comprobación de valores de los patrones Ejemplo comprobación patrones: Tenemos dos posibilidades: - (test <función-booleana> <arg> -?variable&:(<función-booleana> <arg> Funciones booleanas (predefinidas/usuario: - lógicas: or, not, and - comparación: numérica: =,<>, >=, >, <=, < cuaquier tipo: eq, neq - funciones predicado: lexemep, stringp, numberp, evenp, symbolp,... (defrule mes-valido (entrada?numero (test (and (>=?numero 1 (<=?numero 12 (printout t Mes válido crlf (defrule mes-valido-equiv (entrada?numero&:(and (>= numero 1(<=?numero 12 (printout t Mes válido crlf Cuando hay más de una variable que queremos comprobar en el patrón/patrones, utilizar test.

11 Asignación de valores a una variable pág. 41 Funciones para campos multivalor pág. 42 Asignación de valores a una variable Funciones para campos multivalor Sintaxis: (bind <variable> <valor> Ejemplo: (defrule suma (numeros?x?y (bind?r (+?x?y (assert (suma-es?r (printout t?x +?y =?r crlf Crear lista: create$ CLIPS> (create$ a b c (a b c Longitud de una lista: length$ Recorrer una lista: progn$(<índice> <lista> CLIPS> (progn$ (?c (create$ a b c (printout t -->?c?c-index <-- crlf --> a 1 <-- --> b 2 <-- --> c 3 <-- insertar/borrar un elemento: insert$/delete$ CLIPS> (insert$ (create$ a b c 1 x (x a b c CLIPS> (delete$ (create$ a b c d e 2 4 (a e Funciones pág. 43 Estructuras de control en funciones y reglas pág. 44 Funciones Sintaxis: (deffunction <nombre-fun> [comentario] (?arg1?arg2...?argm [?argn] ;el último argumento puede ser campo ; mul tivalor opcional/si no, ( (<acción 1>... <acción K> Las funciones devuelven el resultado de la última acción. Ejemplo: CLIPS> (deffunction suma(?a?b (bind?suma (+?a?b (printout t Suma =?suma crlf (+?a?b CLIPS> (suma 3 4 Suma =7 7 Estructuras de control en funciones y reglas Condición simple (if (<condición> then (<acciones> [else (<acciones>] Bucle condicional (while (<condición> (<acciones> Ejemplo: (defrule continua-bucle?bucle <- (bucle (printout t Continuar? crlf (bind?resp (read (if (or (eq?resp si(eq?resp s then (retract?bucle (assert (bucle else (retract?bucle (halt

12 Entrada de datos pág. 45 Características de la programación orientada a objetos en CLIPS pág. 46 Entrada de datos Podemos utilizar las funciones read y readline CLIPS> (read una entrada una CLIPS> (readline una entrada una entrada Ejemplo: (deffunction pide-numero (?pregunta (printout t?pregunta (bind?respuesta (read (while (not (numberp?respuesta do (printout t?pregunta (bind?respuesta (read?respuesta ;devuelve?respuesta (defrule pregunta ; se añade initial-fact con reset (bind?num (pide-numero Numero : (assert (numero?num Características de la programación orientada a objetos en CLIPS Abstracción: la definición de una nueva clase crea un nuevo tipo abstracto de datos. Encapsulación: los ejemplares de las clases definidas por el usuario deben ser accedidos con mensajes (excepto en la parte izda de las reglas y en las preguntas de conj. de ejemplares. Herencia: una clase se puede definir a partir de una o varias (herencia múltiple por especificación. Polimorfismo: la implementación de los mensajes puede diferir entre clases Enlace dinámico: las variables y referencias a ejemplares se pueden referir dinámicamente a diferentes objetos. Principales desviaciones de COOL de POO pura pág. 47 Estructura de los objetos pág. 48 Principales desviaciones de COOL de POO pura Estructura de los objetos No soporta herencia por generalización (objetos contenidos. Es una de las mejoras previstas en la versión siguiente. No todo en CLIPS son objetos: sólo los tipos primitivos (symbol, integer,... y los ejemplares de las clases definidas por el usuario son objetos. Otras estructuras de datos como las construcciones (hechos, reglas, clases,.. deben ser manipulados de forma tradicional (i.e. ( ppdefrule pide-num vs (send [print] pide-num. Los ejemplares pueden ser manipulados en la parte izda de las reglas y con preguntas de conj. de ejemplares (ej. find-all, esto es, sin paso de mensajes. Se establece un compromiso entre encapsulación y eficiencia. La construcción defclass especifica las ranuras (atributos de una nueva clase de objetos. - Las facetas especifican propiedades de una ranura, p.ej. tipo de valor. La construcción defmessage-handler crea los elementos procedimentales (métodos de una clase de objetos. La herencia múltiple puede ser utilizada para especializar una clase existente, es decir, la nueva clase hereda las ranuras y los métodos de sus superclases.

13 Definición de clases pág. 49 Facetas interesantes pág. 50 Definición de clases Facetas interesantes Sintaxis: (defclass <nombre> [<commentario>] (is-a <nombre-superclase>+ [<role>] [<pattern-match-role>] <ranura>* <manejador-documentación>* <role> ::= (role concrete abstract <pattern-match-role> ::= (pattern-match reactive non-reactive <ranura> ::= (slot single-slot multislot <nombre> <faceta>* role: si podemos tener ejemplares o no pattern-match: los objetos de la clases se pueden comprobar en una regla default/default-dynamic: fija valores iniciales para las ranuras. Default-dynamic evalúa la expresión de la faceta cada vez que se crea un ejemplar, y default sólo la evalúa cuando la clase es creada. Valores:?DERIVE?NONE expr access : read-write, read-only, initialize-only. storage: local o shared (lo comparten todos los ejemplares propagation: inherit, no-inherit. source: exclusive, composite. Sólo obtenemos valores para una ranura de la clase más específica si se redefine. create-accessor:?none, read, write, readwrite. Crea los manejadores get-, put-. visibility: private, public. pattern-match: reactive, non-reactive. Modificar del valor tiene efectos para empejar. Facetas de restricciones pág. 51 Ejemplos de Clases pág. 52 Facetas de restricciones Ejemplos de Clases type: SYMBOL, STRING,LEXEME, INTEGER, FLOAT, NUMBER, INSTANCE-NAME, INSTANCE- ADDRESS, INSTANCE, EXTERNAL-ADDRESS, FACT- ADDRESS allowed-symbols, allowed-strings, allowedlexemes, allowed-integers, allowed-floats, allowed-numbers, allowed-intance-names, allowed-values range: ej. (range 1?VARIABLE cardinality: número máximo y mínimo de campos multislot. (defclass perro (is-a USER (role concrete (pattern-match reactive (slot patas (type INTEGER (default 4(range 0 4 (create-accessor read-write (slot raza (type SYMBOL (allowed-symbols caniche dogo (default caniche (create-accessor read-write (multislot dueno (type STRING (cardinality 1 2 (default Juan (create-accessor read-write (slot ident(type SYMBOL (default-dynamic (gensym

14 Creación de ejemplares (I pág. 53 Creación de Ejemplares (II pág. 54 Creación de ejemplares (I Creación de Ejemplares (II make-instance CLIPS> (make-instance Lulu of perro [Lulu] CLIPS> (send [Lulu] print [Lulu] of perro (patas 4 (raza caniche (dueno Juan (ident gen1 definstances CLIPS> (definstances perros (Milu of perro (dueno Tintin (Laika of perro (dueno URSS Pedro CLIPS> (instances [Lulu] of perro For a total of 1 instance. CLIPS> (reset CLIPS> (instances [initial-object] of INITIAL-OBJECT [Milu] of perro [Laika] of perro For a total of 3 instances. CLIPS> (send [Milu] get-patas 4 CLIPS> (send [Milu] put-patas 3 3 CLIPS> (send [Milu] print [Milu] of perro (patas 3 (raza caniche (dueno Tintin (ident gen2 CLIPS> (send [Laika] print [Laika] of perro (patas 4 (raza caniche (dueno URSS Pedro (ident gen3 Con cada reset, se generan nuevos identificiadores. Al inicializar, se llama a los métodos get-,put- Objetos y reglas pág. 55 Plantillas (templates pág. 56 Objetos y reglas Plantillas (templates Los patrones de objetos son como los de hechos, excepto que: - Las reglas sólo se pueden emparejar con clases de objetos definidas antes de la regla, y tanto la clase como las ranuras deben ser reactivas. - en COOL se emplea mucha información estática (existencia de ranuras,restricciones, por lo que es menos eficiente que los patrones/templates. Frente a los hechos, los cambios en una ranura sólo activarán a las reglas que comprueben esa ranura--> eficiencia Ejemplo: (defrule muestra-dueno-milu (object (is-a perro (name [Milu](dueno?d (printout t Dueno :?d crlf Sintaxis: (deftemplate <nombre> [<commentario>] <ranura>* <ranura> ::= (slot multislot <nombre> <faceta>* <faceta> ::= (default allowed-... type range <value> Son como clases sin herencia Permiten representar hechos no ordenados. Se definen como hechos (assert/deffacts Emparejamiento: (<plantilla> (<atributo> <patrón1> (<atrib2> <patrón2>... Orden modify: mismo efecto que retract/ assert: (modify <dir-hecho> (<atrib.> <valor>+

15 Ejemplo Plantillas (I pág. 57 Ejemplo Plantillas (II pág. 58 Ejemplo Plantillas (I Ejemplo Plantillas (II (deftemplate persona (slot nombre (type SYMBOL (slot edad (type NUMBER (range 0 99(default 20 (slot estado (type SYMBOL (allowed-symbols soltero casado viudo (default soltero (deffacts personas (persona (nombre Pepe (persona (nombre Juan(edad 25 (defrule casa-mayores-25?p <-(persona (nombre?nombre (edad?edad (estado soltero (test (>=?edad 25 (modify?p (estado casado (printout t?nombre " tiene "?edad " anios"crlf CLIPS> (reset CLIPS> (run Juan tiene 25 anios CLIPS> (facts f-0 (initial-fact CF 1.00 f-1 (persona (nombre Pepe (edad 20 (estado soltero CF 1.00 f-3 (persona (nombre Juan (edad 25 (estado casado CF 1.00 For a total of 3 facts. Módulos pág. 59 Ejemplo de módulos (I pág. 60 Módulos Ejemplo de módulos (I Los módulos representan diferentes estados en la resolución del problema, y aíslan las clases y reglas. Cada módulo tiene su propia agenda. Cada módulo debe indicar que construcciones importa y exporta. El hecho initial-fact debe ser importado del módulo MAIN (módulo inicial Deberemos especificar a qué módulo pertenenen las construcciones con <módulo>::. Los módulos se fijan con focus. Ej. (focus A B C. Pasamos de un módulo a otro cuando la agenda de un módulo está vacía. También se puede cambiar de módulo con reglas, definiendo (declare (autofocus TRUE. (defmodule MAIN (export?all (defrule MAIN::r1 (focus MAIN A B (printout t MAIN --- r1 crlf (defmodule A (import MAIN deftemplate initial-fact (export defclass clase (export defglobal v-num v-mul (defglobal A?*v-num* = 4?*v-mul* = (create$ antes (defclass A::clase (is-a USER (pattern-match reactive (role concrete (slot ranura (create-accessor read-write (definstances A::ejemplares (ejemplar of clase (ranura 4

16 Ejemplo de módulos (II pág. 61 Ejemplo de módulos (III pág. 62 Ejemplo de módulos (II Ejemplo de módulos (III (defrule A::r1 (printout t r1 - Modulo A crlf (send [A::ejemplar] print ;o sin A:: (bind?*v-num* 7 (bind?*v-mul* (insert$?*v-mul* 1 hoy (defmodule B (import MAIN deftemplate initial-fact (import A defclass clase (import A defglobal v-num v- mul (defrule B::r2 (object (is-a clase(ranura?a(name [ejemplar] (printout t r2 - modulo B crlf (printout t v-num:?*v-num* v- mul:?*v-mul* crlf ;sin A:: (send [A::ejemplar] print ;con A:: CLIPS> (reset CLIPS> (run MAIN --- r1 r1 - Modulo A [ejemplar] of A::clase (ranura 4 r2 - modulo B v-num: 7 v-mul:(hoy antes [ejemplar] of A::clase (ranura 4 Ejemplo taller pág. 63 Ejemplo taller pág. 64 Ejemplo taller ; MODULO MAIN (defmodule MAIN (export deftemplate initial-fact (export?all (defrule MAIN::inicio (focus DIAGNOSIS TRATAMIENTO ; MODULO DIAGNOSIS (defmodule DIAGNOSIS (import MAIN deftemplate initial-fact (export defglobal diagnostico ; ;-PARA ENCADENAMIENTO HACIA ATRAS ;;;******************************* ;;;* DEFTEMPLATE DEFINITIONS * ;;;******************************* (deftemplate DIAGNOSIS::rule (multislot if (multislot then ;;;****************************** ;;;* INFERENCE ENGINE RULES * ;;;****************************** (defrule DIAGNOSIS::propagate-goal "" (encadenamiento hacia-atras (not (deducido? (goal is?goal (rule (if?variable $? (then?goal??value (assert (goal is?variable

17 Ejemplo taller pág. 65 Ejemplo taller pág. 66 (defrule DIAGNOSIS::goal-satified "" (declare (salience 30 (not (deducido??f <- (goal is?goal (variable?goal?value (answer??text?goal (retract?f ; (format t "%s%s%n"?text?value (assert (deducido?value ;almaceno (defrule DIAGNOSIS::remove-rule-nomatch "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable? ~?value $? (retract?f (defrule DIAGNOSIS::modify-rule-match "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable??value and $?rest (modify?f (if?rest (defrule DIAGNOSIS::modify-rule-matchor "" ;a nadido para manejar or (declare (salience 30 (not (deducido??f <- (rule (if $?cond1 or $?cond2(then $?conc lu (retract?f (assert (rule (if $?cond1 (then $?conclu (assert (rule (if $?cond2 (then $?conclu (defrule DIAGNOSIS::rule-satisfied "" (declare (salience 20 (not (deducido? (variable?variable?value?f <- (rule (if?variable??value (then?goal??goal-value (retract?f (assert (variable?goal?goal-value Ejemplo taller pág. 67 Ejemplo taller pág. 68 (defrule DIAGNOSIS::ask-question-nolegalvalues "" (declare (salience 10 (not (deducido? (not (legalanswers $??f1 <- (goal is?variable?f2 <- (question?variable??text (retract?f1?f2 (format t "%s "?text (assert (variable?variable (read (defrule DIAGNOSIS::ask-questionlegalvalues "" (declare (salience 10 (not (deducido? (legalanswers? $?answers?f1 <- (goal is?variable?f2 <- (question?variable??text (retract?f1 (format t "%s "?text (printout t?answers " " (bind?reply (read (if (member (lowcase?reply?answers then (assert (variable?variable?rep ly (retract?f2 else (assert (goal is?variable ;-- FIN DE ENCADENAMIENTO HACIA ATRAS -- (defglobal DIAGNOSIS?*diagnostico* = desconocido (deffacts DIAGNOSIS::base-conocimiento (goal is diagnostico (legalanswers are si no (answer is "Nuestro diagnositico es " d iagnostico (rule (if arranca is si (then diagnostico is sin_averias (question arranca is "?Arranca el coche (s/n?" (rule (if arranca is no and gasolina is no (then diagnostico is sin_gasolina (question gasolina is "?Tiene gasolina (s i/no?" (rule (if arranca is no and frio is si (then diagnostico is sin_starter (question frio is "?Hace frio (si/no?" (rule (if arranca is no and explosiones i s si (then diagnostico is con_explosiones (question explosiones is "?Oye exploxio nes (si/no?"

Reglas. El constructor defrule y otros comandos relacionados

Reglas. El constructor defrule y otros comandos relacionados Reglas El constructor defrule y otros comandos relacionados Reglas Introducción Definición de reglas Ciclo básico de ejecución de reglas Sintaxis del antecedente Propiedades de una regla Comandos Introducción

Más detalles

REPRESENTACIÓN DEL CONOCIMIENTO CLOS (CLIPS) Práctica 3

REPRESENTACIÓN DEL CONOCIMIENTO CLOS (CLIPS) Práctica 3 REPRESENTACIÓN DEL CONOCIMIENTO CLOS (CLIPS) Práctica 3 Objetivos: Implementación de Marcos mediante las características de CLOS en CLIPS. Definición y manejo de clases e instancias. 1. DEFINICIÓN DE CLASES

Más detalles

Referencia. EXPERT SYSTEMS, Principles and Programming, Third Edition J. Giarrantano, G. Riley PWS Publishing Company, Boston 1998 ISBN 0-534-95053-1

Referencia. EXPERT SYSTEMS, Principles and Programming, Third Edition J. Giarrantano, G. Riley PWS Publishing Company, Boston 1998 ISBN 0-534-95053-1 CLIPS Introducción Referencia EXPERT SYSTEMS, Principles and Programming, Third Edition J. Giarrantano, G. Riley PWS Publishing Company, Boston 1998 ISBN 0-534-95053-1 Documentación CLIPS reference manual

Más detalles

Práctica 1: Introducción a CLIPS

Práctica 1: Introducción a CLIPS C. Graciani Díaz F. J. Martín Mateos J. L. Ruiz Reina Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla CLIPS CLIPS C Language Integrated Production Systems http://clipsrules.sourceforge.net

Más detalles

Sistema experto: KingsHelper 08

Sistema experto: KingsHelper 08 Sistema experto: KingsHelper 08 David García Sánchez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Av. de la Universidad 30 28911 Leganés (Madrid) 100029739@alumnos.uc3m.es Javier García

Más detalles

Lenguaje de programación Jess. Java Expert System Shell

Lenguaje de programación Jess. Java Expert System Shell Lenguaje de programación Jess Java Expert System Shell Ejemplo introductorio Problema de tipo puzzle en el cual hay cinco casas, de diferente color, habitadas por hombres de diferentes nacionalidades,

Más detalles

Sistema CLIPS (Apuntes)

Sistema CLIPS (Apuntes) Sistema CLIPS (Apuntes) Autor: Aitor San Juan Sánchez (aitorsj@hotmail.com) Título: Sistema CLIPS (Apuntes) Área: Sistemas Basados en el Conocimiento (I.A.) N.º Págs.: 100 2 CLIPS Prólogo Este documento

Más detalles

Licenciatura en Obras Públicas. Ingeniería del Conocimiento. Curso 08/09

Licenciatura en Obras Públicas. Ingeniería del Conocimiento. Curso 08/09 Licenciatura en Obras Públicas Ingeniería del Conocimiento Curso 08/09 Ingeniería a del Conocimiento La asignatura Curso 08/09 La Ingeniería del Conocimiento es el proceso de diseñar y hacer operativos

Más detalles

TUTORIAL DE CLIPS. VERSION 0.8 / 9 de marzo de 2000

TUTORIAL DE CLIPS. VERSION 0.8 / 9 de marzo de 2000 TUTORIAL DE CLIPS VERSION 0.8 / 9 de marzo de 2000 Este documento está destinado a los alumnos de tercer curso de las Ingenierías Técnicas de Informática de la Universidad de Murcia. El objetivo del documento

Más detalles

Inteligencia Artificial

Inteligencia Artificial Inteligencia Artificial Representación del conocimiento I.T. en Informática de Sistemas, 3º Curso académico: 2010/2011 Profesores: Ramón Hermoso y Roberto Centeno Índice Introducción a la representación

Más detalles

Ingeniería Técnica en Informática de Gestión

Ingeniería Técnica en Informática de Gestión Departamento de Informática Universidad Carlos III de Madrid Ingeniería Técnica en Informática de Gestión Inteligencia Artificial Febrero 2007. 1 a parte Normas generales del examen El tiempo para realizar

Más detalles

Ingeniería Técnica en Informática de Gestión

Ingeniería Técnica en Informática de Gestión Departamento de Informática Universidad Carlos III de Madrid Ingeniería Técnica en Informática de Gestión Inteligencia Artificial Septiembre 2011. 1 a parte Normas generales del examen El tiempo para realizar

Más detalles

Contenido. Jess: Introducción Elementos básicos de programación Funcionamiento del motor de inferencias Desarrollo de aplicaciones con Jess

Contenido. Jess: Introducción Elementos básicos de programación Funcionamiento del motor de inferencias Desarrollo de aplicaciones con Jess Herramientas Jess Contenido Jess: Introducción Elementos básicos de programación Funcionamiento del motor de inferencias Desarrollo de aplicaciones con Jess 2 Introducción 3 Jess Historia Inspirado en

Más detalles

Sistemas Expertos Arquitectura - Motor de Inferencias. Ingeniería Electrónica Ingeniería del Conocimiento

Sistemas Expertos Arquitectura - Motor de Inferencias. Ingeniería Electrónica Ingeniería del Conocimiento Sistemas Expertos Arquitectura - Motor de Inferencias Ingeniería Electrónica Ingeniería del Conocimiento Estructura básica de un SE. Ingeniero del conocimiento Experto del dominio K A T Base de Conocimientos

Más detalles

CLIPS - Code Snippets

CLIPS - Code Snippets Intel.ligència Artificial Enginyeria en Informàtica CLIPS - Code Snippets Versión 0.8 Departament de Ciències de la Computació CURS 2010/2011 1Q cbea This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Inteligencia en Redes de Comunicaciones Jess

Inteligencia en Redes de Comunicaciones Jess Estos ejercicios sirven de introducción al desarrollo de sistemas expertos en CLIPS, usando la versión de CLIPS en Java llamada : http://www.jessrules.com/ En primer lugar, aquí se plantean unos cuantos

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y 1. Paradigmas de programación Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y automáticamente convertibles

Más detalles

Práctica 4: Herencia. Objetivos:

Práctica 4: Herencia. Objetivos: Práctica 4: Herencia Objetivos: Como se implementa la herencia en Java (superclase - clase descendiente). Utilizar super. Redefinición de métodos Clase Object Clase System Clases abstractas 1. Herencia.

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

Ejercicios de CLIPS. Inteligencia en Redes de Comunicaciones

Ejercicios de CLIPS. Inteligencia en Redes de Comunicaciones Inteligencia en Redes de Comunicaciones Ejercicios de CLIPS Julio Villena Román, Raquel M. Crespo García, José Jesús García Rueda {jvillena, rcrespo, rueda}@it.uc3m.es 1 Estos ejercicios sirven de introducción

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

Manual de Arlips v. 3.1

Manual de Arlips v. 3.1 Manual de Arlips v. 3.1 Grupo de Tecnología Informática - Inteligencia Artificial Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia (España Índice 1. Introducción

Más detalles

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

Sistemas Expertos Introducción Arquitectura - Motor de Inferencias. Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE

Sistemas Expertos Introducción Arquitectura - Motor de Inferencias. Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE Sistemas Expertos Introducción Arquitectura - Motor de Inferencias Ana Casali Andrea Torres Ingeniería del Conocimiento -EIE IC - MODULOS INTRODUCCION SISTEMAS BASADOS EN CONOCIMIENTO RAZONAMIENTO APROXIMADO

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

Creación y destrucción de objetos

Creación y destrucción de objetos Creación y destrucción de objetos Contenido Descripción general 1 Uso de constructores 2 Objetos y memoria 13 Creación y destrucción de objetos i Notas para el instructor Este módulo proporciona a los

Más detalles

TEMA 3 (parte 3). Representación del Conocimiento

TEMA 3 (parte 3). Representación del Conocimiento TEMA 3 (parte 3). Representación del Conocimiento Francisco José Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Informática ribadas@uvigo.es 1 de diciembre de 2009 FJRP ccia [Inteligencia Artificial] 3.3 Representaciones

Más detalles

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia

Introducción. Herencia y Polimorfismo. Ejemplos (I) Ejemplos (II) Control de Acceso. Herencia Introducción Herencia y Polimorfismo Se pueden definir jerarquías de clases, con clases generales que definen el comportamiento común a unos objetos y clases específicas que sólo añaden o redefinen el

Más detalles

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la

Más detalles

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL UNIVERSIDAD NACIONAL DE INGENIERÍA CURSO DE JAVA CERTIFICA ORGANIZA Mayor Información: informes@uni.edu.pe Telf. : 481-6693 /381-3854 Visite Nuestra Web http://www.ceps.uni.edu..pe OBJETIVOS GENERALES

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Comencemos a programar con. Entrega 10. Estructuras de Control II

Comencemos a programar con. Entrega 10. Estructuras de Control II Comencemos a programar con VBA - Access Entrega 10 Estructuras de Control II Eduardo Olaz 10-2 Estructuras de Control, segunda parte Las Instrucciones While - - - Wend La estructura de bucle For Contador

Más detalles

Patrones de diseño. Sesión 1: Introducción y patrones básicos. Especialista Universitario Java Enterprise

Patrones de diseño. Sesión 1: Introducción y patrones básicos. Especialista Universitario Java Enterprise Sesión 1: Introducción y patrones básicos Titulo Módulo 2006-2007 Depto. Ciencia de la Computación e IA Titulo sesión-1 En el desarrollo de aplicaciones J2EE ( y no J2EE!) se presentan una y otra vez los

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

Sistemas Inteligentes de Gestión. Tutorial de CLIPS

Sistemas Inteligentes de Gestión. Tutorial de CLIPS Sistemas Inteligentes de Gestión Tutorial de CLIPS Juan Carlos Cubero & Fernando Berzal Sistemas Inteligentes de Gestión: CLIPS 1 Índice CLIPS... 3 Referencias... 3 Hechos y reglas... 4 Vectores ordenados

Más detalles

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes

INDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los

Más detalles

Sistemas Expertos. Caso de Estudio: Selección de un microcontrolador

Sistemas Expertos. Caso de Estudio: Selección de un microcontrolador Sistemas Expertos Caso de Estudio: Selección de un microcontrolador Introducción Un Sistema Experto (SE) clásico comienza con una serie de preguntas. En base a las respuestas genera una recomendación.

Más detalles

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación. Manual SBR Este proyecto consta de una herramienta denominada SBR mediante la cual el usuario podrá realizar principalmente las siguientes actividades: Crear un nuevo dominio. Modificar el dominio existente.

Más detalles

Inteligencia Artificial

Inteligencia Artificial Inteligencia Artificial TP Kappa Mauricio Notti - Pablo Pilotti - Pablo Speciale Etapa 1 : Se solicita desarrollar en Kappa_PC un sistema capaz de hacer un pronóstico del estado del tiempo, solicitando

Más detalles

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet 2005-2006. DLSI - Universidad de Alicante 1 Departamento de Lenguajes y Sistemas Informáticos JavaScript Programación en Internet Curso 2005-2006 Contenidos Introducción El lenguaje Validación de formularios DLSI - Universidad de Alicante 1 Introducción

Más detalles

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA Introducción Qué es programar? Idear y ordenar las acciones necesarias para realizar un proyecto (R.A.E) En nuestro contexto: Resolver problemas, Automatizar

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1.

3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. 3. DIAGRAMAS DE CLASES...19 3.1. INTRODUCCIÓN... 19 3.2. DIAGRAMAS DE CLASES... 19 3.2.1. Perspectivas...20 3.2.2. Clases...20 3.2.2.1. Compartimento del nombre...21 3.2.2.2. Compartimento de la lista

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Herencia e Interfaces

Herencia e Interfaces Herencia Introducción En C# cualquier dato es un objeto porque todos los tipos derivan implícitamente de este tipo, y heredan los métodos y campos definidos en dicha clase. Cada nuevo tipo tiene todo lo

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

Algunas características de los lenguajes de programación orientados a objetos son:

Algunas características de los lenguajes de programación orientados a objetos son: Programación Orientada a Objetos (POO) La programación orientada a objetos es un paradigma de programación que, como su nombre lo indica, se basa en el uso de objetos estructuras de datos que consisten

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO

Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS POO Programación orientada a objetos TEMA 1 INTRODUCCIÓN AL PARADIGMA ORIENTADO A OBJETOS Cristina Cachero Pedro J. Ponce de León (1 Sesión) Versión 0.7 POO Indice El progreso de la abstracción Definición

Más detalles

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es De los casos de uso a los casos de prueba Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es Objetivo Objetivo: Mostrar cómo aplicar el proceso ETUC para la generación de casos de prueba a

Más detalles

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Introducción a la Programación en MATLAB

Introducción a la Programación en MATLAB Introducción a la Programación en MATLAB La programación en MATLAB se realiza básicamente sobre archivos M, o M-Files. Se los denomina de esta forma debido a su extensión.m. Estos archivos son simple archivos

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

CommonKADS: Nivel de concepto

CommonKADS: Nivel de concepto Francisco J. Martín Mateos Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Objetivos del nivel de concepto Especifica la estructura de la información y del conocimiento

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

2.2.- Paradigmas de la POO

2.2.- Paradigmas de la POO 2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

3. Componentes del Modelo de Conocimiento

3. Componentes del Modelo de Conocimiento La metodología CommonKADS 3. Componentes del Modelo de Conocimiento 3.1 Introducción 3.2 Conocimiento de Dominio 3.3 Conocimiento de Inferencia 3.4 Conocimiento de Tarea Carlos Alonso González Dpto. de

Más detalles

Introducción a la programación en R

Introducción a la programación en R Programación en R 1 Introducción a la programación en R Qué es un programa de ordenador? Un programa de ordenador consiste en una secuencia de instrucciones que un ordenador pueda entender. El procesador

Más detalles

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur.

Tecnologías de Programación Web Dr. Diego C. Martínez. Depto de Cs e Ing. de la Computación Universidad Nacional del Sur. Historia de Java 1991 Comienza el proyecto Green. 1992 Se presenta el lenguaje Oak. Java, 10 años - JavaOne Conference 26 al 30 de junio de 2005 1995 Nace oficialmente la tecnología Java. Cambia el nombre

Más detalles

02 Lenguajes de programación y compiladores

02 Lenguajes de programación y compiladores 2 Contenido Introducción Lenguaje de programación Traductor Compilador Interprete Lenguaje compilado Lenguaje interpretado Compiladores (just in time) Lenguaje ensamblador Programa objeto Lenguajes de

Más detalles

Introducción a Protégé

Introducción a Protégé FACULTAD DE INFORMÁTICA LICENCIATURA EN DOCUMENTACIÓN SISTEMAS DE REPRESENTACIÓN Y PROCESAMIENTO AUTOMÁTICO DEL CONOCIMIENTO Práctica 1 1ª Parte Introducción a Protégé Febrero 2003 1. Objetivo La presente

Más detalles

SINTAXIS DE SQL-92. ::= CREATE SCHEMA [ ... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D.

Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Autor: Jorge A. Díez Pomares Laboratorio de C.A.D. Qué ofrece la programación en AutoCAD? Qué necesito para empezar a programar? Qué es C# y.net? Laboratorio de C.A.D. UMH 1 1.1. INTRODUCCIÓN 1.2. SOFTWARE NECESARIO 1.3. CONFIGURACIÓN DEL PROYECTO EN VS2010

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica.

Introducción. Paradigma de Lógica Gran importancia en la I.A. Origen: prueba de teoremas y razonamiento deductivo. Lógica. Tema 2: Lógica y Razonamiento Automático tico Introducción Lógica Proposicional Lógica de Predicados Axiomas Unificación Razonamiento automático e Inferencias lógicas Resolución Regla de Inferencia Refutación

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Sistemas Inteligentes de Gestión. Relación de ejercicios CLIPS. Sistemas expertos basados en reglas con encadenamiento hacia adelante

Sistemas Inteligentes de Gestión. Relación de ejercicios CLIPS. Sistemas expertos basados en reglas con encadenamiento hacia adelante Sistemas Inteligentes de Gestión Relación de ejercicios CLIPS Sistemas expertos basados en reglas con encadenamiento hacia adelante Juan Carlos Cubero & Fernando Berzal ENTREGA DE LA PRÁCTICA clips.doc

Más detalles

2.1. Introducción al lenguaje Java

2.1. Introducción al lenguaje Java Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida

Más detalles

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases

Conceptos fundamentales de la POO. Fundamentos de la Programación Orientada a Objetos Objetos y Clases Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense

Más detalles

Fundamentos del Lenguaje de Programación Java

Fundamentos del Lenguaje de Programación Java Fundamentos del Lenguaje de Programación Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx El lenguaje Java Estándares de codificación Comentarios Programas con Java Identificadores Palabras clave

Más detalles

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS

INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS Introducción a los Sistemas Expertos 1 INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL: LOS SISTEMAS EXPERTOS ÍNDICE 1. INTRODUCCIÓN. EVOLUCIÓN HISTÓRICA 2. DEFINICIÓN Y CARACTERÍSTICAS DE LOS SE. 3. TIPOS Y

Más detalles

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. Práctica 3 mtp metodoloxía e tecnoloxía da programación Objetivos: Duración: Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java. 1 semana 1.- Identificadores Los identificadores

Más detalles

Tipos Abstractos de Datos

Tipos Abstractos de Datos Objetivos Repasar los conceptos de abstracción de datos y (TAD) Diferenciar adecuadamente los conceptos de especificación e implementación de TAD Presentar la especificación algebraica como método formal

Más detalles

GESTIÓN DE REDES PARTE III

GESTIÓN DE REDES PARTE III PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos...

INDICE. 2.2. Uso de la composición (I). Preservación de la ocultación... 11. 3.3. Utilización de miembros heredados (I). Atributos... TEMA 9 INDICE 1. Relaciones entre clases.... 4 1.1. Composición... 5 1.2. Herencia... 6 1.3. Herencia o composición?... 7 2 Composición... 9 2.1. Sintaxis de la composición.... 9 Ejercicio resuelto...

Más detalles

Programación shell-scripts 1 LA SHELL

Programación shell-scripts 1 LA SHELL Programación shell-scripts 1 LA SHELL Un gran número de utilidades y herramientas de administración están realizadas mediante ficheros de ordenes del interprete de comandos de Unix (Shell). A lo largo

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

 ##$ % & '( % & )*+),$ -##$ -!- $! -./ - 0WebClass1-2 ! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass

Más detalles

Tema 1 Introducción a los Sistemas Basados en el Conocimiento

Tema 1 Introducción a los Sistemas Basados en el Conocimiento Tema 1 Introducción a los Sistemas Basados en el Conocimiento Sistemas Basados en el Conocimiento Grado en Ingeniería Informática 1 Referencias Ingeniería del Conocimiento. A. Gómez, N. Juristo, C. Montes,

Más detalles

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis

Más detalles

Tipos de conocimiento en resolución n de problemas. Humanos. Ingeniería a del Conocimiento (Primer Parcial) Conocimiento

Tipos de conocimiento en resolución n de problemas. Humanos. Ingeniería a del Conocimiento (Primer Parcial) Conocimiento Tema 1: Introducción n a los Sistemas Basados en el Conocimiento Modelo computacional Origen Conocimiento y Técnicas Heurísticas Definición de SBC Tipos de Conocimiento Experto Ventajas e Inconvenientes

Más detalles

Tema 1. Introducción a los TAD

Tema 1. Introducción a los TAD Tema 1. Introducción a los TAD Objetivos En este tema nos ocupamos inicialmente del concepto de abstracción, dedicando la mayor atención a la abstracción de datos, estudiando aspectos relacionados con

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Árboles binarios de búsqueda

Árboles binarios de búsqueda Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada

Más detalles

Resumen de clase Ejercicio Firewall. Ideas de Diseño y Command Pattern

Resumen de clase Ejercicio Firewall. Ideas de Diseño y Command Pattern Resumen de clase Ejercicio Firewall Ideas de Diseño y Command Pattern 2 cuatrimestre 2008 Contenido RESUMEN DE CLASE EJERCICIO FIREWALL...3 ENUNCIADO...3 EXPLICACIÓN DEL DOMINIO...4 PRIMERAS IDEAS...4

Más detalles

TEMA 2. Agenda. Fundamentos de JAVA

TEMA 2. Agenda. Fundamentos de JAVA TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen

Más detalles

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.

TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5. TEMA 5. EXCEPCIONES EN JAVA... 1 5.1 DEFINICIÓN DE EXCEPCIONES EN PROGRAMACIÓN... 2 5.2 TIPOS DE EXCEPCIONES / ERRORES Y CÓMO TRATARLOS... 10 5.3 TRABAJANDO CON EXCEPCIONES: DECLARACIÓN, CONSTRUCCIÓN,

Más detalles

Instrucciones principales de RAPID

Instrucciones principales de RAPID Ejemplo de programación en RAPID. Instrucciones principales de RAPID INSTRUCCIONES DE MOVIMIENTO Existen 3 instrucciones de movimiento principales: MoveL: desplazamiento del extremo del robot hasta el

Más detalles