Ejercicios de programación lógica con PROLOG, uso del interprete Jekejeke para dispositivos ANDROID. Con Prolog encontraremos posibles rutas del metro de la CD de México
Este documento presenta dos ejemplos de programas en lenguaje C. El primero pide al usuario que ingrese la base y altura de un triángulo, calcula su área, y muestra el resultado. El segundo pide dos números enteros, realiza la división entera del primero entre el segundo, y muestra el cociente y el resto. Ambos programas utilizan las funciones printf, scanf y otras funciones de la biblioteca estándar de C.
El documento habla sobre conceptos básicos de programación en ensamblador, incluyendo lenguajes de bajo nivel, la sintaxis del lenguaje ensamblador, etiquetas, mnemotécnicos, operadores y comentarios. También describe el proceso de traducción de programas a lenguaje de máquina y las fases de desarrollo de un programa, que van desde la especificación del problema hasta la verificación del funcionamiento del programa terminado.
Este documento introduce los sistemas expertos, incluyendo su evolución histórica desde los años 1950, definiciones y componentes clave. Explica que los sistemas expertos son programas que resuelven problemas que requieren experiencia humana mediante el uso de representaciones del conocimiento. Además, describe los tipos principales de sistemas expertos y las fases del desarrollo de estos sistemas.
Manual de Practicas de Open GL con Dev C++Alincita Simon
Este documento presenta un manual de prácticas para OpenGL. Explica brevemente qué es OpenGL y describe algunas librerías relacionadas como GLU, GLUT y GLAUX. Luego detalla los pasos para configurar el entorno de desarrollo Dev-C++ en Windows para usar OpenGL. Finalmente incluye un índice con 20 ejemplos prácticos de dibujo 2D y 3D usando OpenGL.
Este documento describe los agentes reactivos basados en modelos (MBA), que permiten simular las acciones e interacciones de individuos autónomos dentro de un entorno. Los MBA mantienen un estado interno sobre la historia percibida para tomar decisiones de acción y actualizan su conocimiento sobre cómo evoluciona el mundo y cómo afectan sus acciones al sistema.
Este documento presenta un resumen de los circuitos lógicos combinacionales impartidos por el profesor Santiago Castillejos. Describe las 8 compuertas lógicas básicas (AND, OR, NOT, NAND, NOR, XOR, XNOR) y provee ejemplos de circuitos integrados que las contienen. Explica el funcionamiento de cada compuerta a nivel de entrada/salida y mediante ejemplos de aplicación con interruptores y lámparas.
Este documento introduce conceptos básicos de programación como algoritmos, pseudocódigo, diagramas de flujo y lenguajes de programación. Explica que un algoritmo es una secuencia de instrucciones para resolver un problema, el pseudocódigo permite codificar programas de manera simple sin preocuparse por la sintaxis, y los diagramas de flujo representan gráficamente el flujo de un algoritmo usando símbolos específicos. Finalmente, define un lenguaje de programación como un idioma artificial para expresar procesos que pueden ser ejecutados por una computadora.
Patrones de arquitectura Software(Capa de Datos)josecuartas
El documento describe la capa de datos y cómo los APIs de acceso a datos proporcionan una abstracción sobre la conexión a bases de datos. Estos APIs consisten en objetos como el de origen de datos, sesión, comando y conjunto de filas. La secuencia típica incluye inicializar el controlador, establecer la conexión, preparar y enviar consultas SQL, procesar resultados y cerrar la conexión. El diseño de los APIs debe mapear objetos a tipos de datos de DBMS y hacer fácil la programación de la comunicación con el DBMS
Este documento presenta dos ejemplos de programas en lenguaje C. El primero pide al usuario que ingrese la base y altura de un triángulo, calcula su área, y muestra el resultado. El segundo pide dos números enteros, realiza la división entera del primero entre el segundo, y muestra el cociente y el resto. Ambos programas utilizan las funciones printf, scanf y otras funciones de la biblioteca estándar de C.
El documento habla sobre conceptos básicos de programación en ensamblador, incluyendo lenguajes de bajo nivel, la sintaxis del lenguaje ensamblador, etiquetas, mnemotécnicos, operadores y comentarios. También describe el proceso de traducción de programas a lenguaje de máquina y las fases de desarrollo de un programa, que van desde la especificación del problema hasta la verificación del funcionamiento del programa terminado.
Este documento introduce los sistemas expertos, incluyendo su evolución histórica desde los años 1950, definiciones y componentes clave. Explica que los sistemas expertos son programas que resuelven problemas que requieren experiencia humana mediante el uso de representaciones del conocimiento. Además, describe los tipos principales de sistemas expertos y las fases del desarrollo de estos sistemas.
Manual de Practicas de Open GL con Dev C++Alincita Simon
Este documento presenta un manual de prácticas para OpenGL. Explica brevemente qué es OpenGL y describe algunas librerías relacionadas como GLU, GLUT y GLAUX. Luego detalla los pasos para configurar el entorno de desarrollo Dev-C++ en Windows para usar OpenGL. Finalmente incluye un índice con 20 ejemplos prácticos de dibujo 2D y 3D usando OpenGL.
Este documento describe los agentes reactivos basados en modelos (MBA), que permiten simular las acciones e interacciones de individuos autónomos dentro de un entorno. Los MBA mantienen un estado interno sobre la historia percibida para tomar decisiones de acción y actualizan su conocimiento sobre cómo evoluciona el mundo y cómo afectan sus acciones al sistema.
Este documento presenta un resumen de los circuitos lógicos combinacionales impartidos por el profesor Santiago Castillejos. Describe las 8 compuertas lógicas básicas (AND, OR, NOT, NAND, NOR, XOR, XNOR) y provee ejemplos de circuitos integrados que las contienen. Explica el funcionamiento de cada compuerta a nivel de entrada/salida y mediante ejemplos de aplicación con interruptores y lámparas.
Este documento introduce conceptos básicos de programación como algoritmos, pseudocódigo, diagramas de flujo y lenguajes de programación. Explica que un algoritmo es una secuencia de instrucciones para resolver un problema, el pseudocódigo permite codificar programas de manera simple sin preocuparse por la sintaxis, y los diagramas de flujo representan gráficamente el flujo de un algoritmo usando símbolos específicos. Finalmente, define un lenguaje de programación como un idioma artificial para expresar procesos que pueden ser ejecutados por una computadora.
Patrones de arquitectura Software(Capa de Datos)josecuartas
El documento describe la capa de datos y cómo los APIs de acceso a datos proporcionan una abstracción sobre la conexión a bases de datos. Estos APIs consisten en objetos como el de origen de datos, sesión, comando y conjunto de filas. La secuencia típica incluye inicializar el controlador, establecer la conexión, preparar y enviar consultas SQL, procesar resultados y cerrar la conexión. El diseño de los APIs debe mapear objetos a tipos de datos de DBMS y hacer fácil la programación de la comunicación con el DBMS
Los lenguajes de descripción de hardware (HDL) describen el hardware de sistemas digitales en forma textual y sirven para representar diagramas lógicos, expresiones booleanas y circuitos digitales complejos. Un HDL permite representar y documentar sistemas digitales de forma legible tanto para personas como para computadoras, y el contenido puede almacenarse, recuperarse y procesarse fácilmente. Un HDL se usa principalmente para la simulación y síntesis lógica de circuitos digitales.
02 cuestionario fundamentos de computación gs3slzp2708
Este documento contiene una serie de preguntas y respuestas sobre conceptos relacionados con software, hardware y sistemas operativos. Aborda temas como bases de datos, hojas de cálculo, procesadores de texto, sistemas operativos populares, configuración de hardware y software, y solución de problemas comunes.
Este documento introduce los conceptos básicos de los algoritmos. Explica que un algoritmo es una sucesión de instrucciones para resolver un problema usando una computadora. Describe dos tipos de algoritmos: cualitativos y cuantitativos. También describe dos formas de representar algoritmos: pseudocódigo y diagramas de flujo. Finalmente, introduce conceptos clave como identificadores, constantes, variables y tipos de datos para trabajar con información en los algoritmos.
Modelado funcional casos de uso, Modelado funcional casos de uso, Modelado funcional casos de uso, Modelado funcional casos de uso,Modelado funcional casos de uso
Este documento describe una simulación que genera números aleatorios de cinco dígitos y evalúa la probabilidad de diferentes combinaciones de números, como dígitos diferentes, un par, dos pares, etc. Incluye enlaces para descargar archivos en DFD y Excel que realizan la simulación y muestra cómo agregar código VBA en la hoja 2 de Excel para generar los números aleatorios al hacer clic en un botón.
Este documento describe el análisis léxico como la primera fase de un compilador. El analizador léxico lee el programa fuente y lo divide en tokens o componentes léxicos como palabras reservadas, identificadores, operadores y constantes. Esto se logra mediante el uso de expresiones regulares y autómatas finitos que reconocen patrones de caracteres. El analizador léxico opera bajo petición del analizador sintáctico devolviendo tokens.
El documento explica los conceptos de traductores, compiladores e intérpretes. Los traductores convierten un programa de un lenguaje fuente a otro lenguaje destino, ya sea código máquina (compiladores) o acciones que puede ejecutar un intérprete. Los compiladores traducen todo el programa a código máquina antes de ejecutarlo, mientras que los intérpretes procesan línea a línea durante la ejecución. Ambos cumplen la función de convertir el código a un formato ejecutable, aunque sus mé
El analizador léxico lee caracteres de entrada y los agrupa en tokens como palabras reservadas, identificadores y literales que luego pasa al analizador sintáctico. Funciona bajo petición del analizador sintáctico devolviendo tokens mediante expresiones regulares y autómatas finitos deterministas y no deterministas.
El documento describe las características de las instrucciones de máquina y la unidad central de procesamiento. Explica que el repertorio de instrucciones especifica los comandos que una CPU puede entender y ejecutar. Luego describe las características clave de las instrucciones como el código de operación, los operandos y la dirección de la siguiente instrucción. También cubre los tipos de datos, operaciones, modos de direccionamiento y formatos de instrucciones soportados por las CPUs.
Este documento presenta una introducción a los sistemas de razonamiento lógico en inteligencia artificial. Describe diferentes tipos de sistemas como demostradores de teoremas, lenguajes de programación lógicos como Prolog, sistemas de cuadros y redes semánticas, y lógicas para la descripción. También cubre temas como la representación interna de oraciones y términos, la unificación, la indización y la implementación de estos sistemas lógicos.
Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales
Este documento presenta un glosario de términos relacionados con la ingeniería de software con definiciones breves de conceptos como clase, código, objetos, sistemas, software, marco de trabajo, entre otros. El autor es Jorge Coronel López, estudiante de ingeniería en sistemas computacionales en el Instituto Tecnológico de Tlaxiaco en Oaxaca, México. El glosario busca explicar conceptos básicos de la ingeniería de software de manera concisa.
El documento proporciona información sobre algoritmos. Define un algoritmo como un conjunto de pasos lógicos y ordenados para resolver un problema. Explica que los algoritmos tienen características como ser finitos, precisos y libres de ambigüedades. También describe elementos comunes de los algoritmos como datos, procesos, estructuras de control y su representación a través de pseudocódigo y diagramas de flujo.
Este documento describe el software MikroPLAN, que permite programar tarjetas Arduino con lenguajes ladder y AWL. Explica cómo instalar el firmware PLCmDuino en las tarjetas para permitir la programación y cómo solicitar licencias. También cubre características avanzadas como control de movimiento, comunicación con otras aplicaciones y ejemplos de aplicaciones.
Unidad 1 (1.3) Fundamentos de ingeniería de software Selins Cassiel
Este documento presenta una introducción a los fundamentos de la ingeniería de software. Explica que la ingeniería de software ofrece métodos y técnicas para desarrollar y mantener software, y cita definiciones de autores prestigiosos. También describe brevemente las cinco eras en la historia de la ingeniería de software desde 1950 hasta la actualidad, destacando los avances tecnológicos en cada era. Además, aborda la crisis del software desde los años 1960 y mitos comunes sobre el software.
Este documento presenta los fundamentos de la definición de arquitectura de software por un grupo de estudiantes. Incluye una introducción a conceptos clave de arquitectura de software según definiciones de IEEE y otros autores. Luego describe la evolución de modelos de arquitectura de software como monolítica, cliente-servidor y orientada a servicios. Finalmente discute principios de procesos de desarrollo de software modernos y el rol del arquitecto de software.
Este documento describe cómo configurar los puertos de entrada y salida en microcontroladores PIC. Explica que los puertos se configuran manipulando los registros TRIS, cuyas localizaciones varían según el microcontrolador. Para configurar un puerto como entrada, el registro TRIS debe contener todos 1s lógicos, mientras que para configurarlo como salida debe contener todos 0s lógicos. También es posible configurar parte del puerto como entrada y otra parte como salida. El documento incluye ejemplos de código para configurar los puertos en
Este documento describe el funcionamiento de un multiplexor, un circuito combinacional con múltiples entradas de señal y una única salida. Explica que un multiplexor funciona como un conmutador que permite redirigir cualquiera de las señales de entrada a la salida mediante las líneas de selección, permitiendo transmitir los datos de una de las entradas a la vez hacia la salida. El documento también indica que un multiplexor comúnmente se indica como 4 a 1 para mostrar que puede manejar 4 entradas de señal.
Este documento presenta los objetivos y contenidos de una unidad sobre agentes inteligentes. Los objetivos incluyen identificar los componentes de un sistema de agentes, conocer métricas para evaluar el rendimiento de agentes inteligentes, y reconocer las propiedades del entorno de un agente. Los contenidos cubren temas como agentes, sensores y actuadores; medidas de rendimiento; racionalidad; entornos de trabajo; y clasificación de agentes.
Este documento presenta una introducción a los microcontroladores AVR de Atmel. Explica que los AVR son microcontroladores RISC diseñados por Atmel que tienen una arquitectura Harvard y 32 registros de 8 bits. También describe las características y aplicaciones de los microcontroladores en general, incluyendo su CPU, memoria, E/S y usos comunes. El artículo pretende familiarizar a los lectores con los AVR para futuros proyectos.
Sesión 3 - Introducción a la Investigación de Operaciones.pdfWilfrido34
Este documento presenta una introducción a los conceptos básicos de representación de algoritmos mediante diagramas de flujo y pseudocódigo. Explica la simbología utilizada en diagramas de flujo y provee ejemplos de su aplicación. También define pseudocódigo y provee ejemplos de su sintaxis y estructura básica. Finalmente, incluye ejemplos de problemas resueltos utilizando ambos métodos de representación.
Este documento presenta los fundamentos de la programación, incluyendo tipos de datos, operadores y variables. Introduce los tipos de datos simples como numéricos, alfanuméricos y lógicos. Explica los operadores aritméticos, relacionales, lógicos y alfanuméricos. Finalmente, define identificadores y variables, y cómo estas últimas almacenan datos de forma temporal.
Los lenguajes de descripción de hardware (HDL) describen el hardware de sistemas digitales en forma textual y sirven para representar diagramas lógicos, expresiones booleanas y circuitos digitales complejos. Un HDL permite representar y documentar sistemas digitales de forma legible tanto para personas como para computadoras, y el contenido puede almacenarse, recuperarse y procesarse fácilmente. Un HDL se usa principalmente para la simulación y síntesis lógica de circuitos digitales.
02 cuestionario fundamentos de computación gs3slzp2708
Este documento contiene una serie de preguntas y respuestas sobre conceptos relacionados con software, hardware y sistemas operativos. Aborda temas como bases de datos, hojas de cálculo, procesadores de texto, sistemas operativos populares, configuración de hardware y software, y solución de problemas comunes.
Este documento introduce los conceptos básicos de los algoritmos. Explica que un algoritmo es una sucesión de instrucciones para resolver un problema usando una computadora. Describe dos tipos de algoritmos: cualitativos y cuantitativos. También describe dos formas de representar algoritmos: pseudocódigo y diagramas de flujo. Finalmente, introduce conceptos clave como identificadores, constantes, variables y tipos de datos para trabajar con información en los algoritmos.
Modelado funcional casos de uso, Modelado funcional casos de uso, Modelado funcional casos de uso, Modelado funcional casos de uso,Modelado funcional casos de uso
Este documento describe una simulación que genera números aleatorios de cinco dígitos y evalúa la probabilidad de diferentes combinaciones de números, como dígitos diferentes, un par, dos pares, etc. Incluye enlaces para descargar archivos en DFD y Excel que realizan la simulación y muestra cómo agregar código VBA en la hoja 2 de Excel para generar los números aleatorios al hacer clic en un botón.
Este documento describe el análisis léxico como la primera fase de un compilador. El analizador léxico lee el programa fuente y lo divide en tokens o componentes léxicos como palabras reservadas, identificadores, operadores y constantes. Esto se logra mediante el uso de expresiones regulares y autómatas finitos que reconocen patrones de caracteres. El analizador léxico opera bajo petición del analizador sintáctico devolviendo tokens.
El documento explica los conceptos de traductores, compiladores e intérpretes. Los traductores convierten un programa de un lenguaje fuente a otro lenguaje destino, ya sea código máquina (compiladores) o acciones que puede ejecutar un intérprete. Los compiladores traducen todo el programa a código máquina antes de ejecutarlo, mientras que los intérpretes procesan línea a línea durante la ejecución. Ambos cumplen la función de convertir el código a un formato ejecutable, aunque sus mé
El analizador léxico lee caracteres de entrada y los agrupa en tokens como palabras reservadas, identificadores y literales que luego pasa al analizador sintáctico. Funciona bajo petición del analizador sintáctico devolviendo tokens mediante expresiones regulares y autómatas finitos deterministas y no deterministas.
El documento describe las características de las instrucciones de máquina y la unidad central de procesamiento. Explica que el repertorio de instrucciones especifica los comandos que una CPU puede entender y ejecutar. Luego describe las características clave de las instrucciones como el código de operación, los operandos y la dirección de la siguiente instrucción. También cubre los tipos de datos, operaciones, modos de direccionamiento y formatos de instrucciones soportados por las CPUs.
Este documento presenta una introducción a los sistemas de razonamiento lógico en inteligencia artificial. Describe diferentes tipos de sistemas como demostradores de teoremas, lenguajes de programación lógicos como Prolog, sistemas de cuadros y redes semánticas, y lógicas para la descripción. También cubre temas como la representación interna de oraciones y términos, la unificación, la indización y la implementación de estos sistemas lógicos.
Este material didáctico fue desarrollado para la asignatura de Tópicos Avanzados de Programación, del plan SCD-1027 2016 de Ing. En Sistemas Computacionales
Este documento presenta un glosario de términos relacionados con la ingeniería de software con definiciones breves de conceptos como clase, código, objetos, sistemas, software, marco de trabajo, entre otros. El autor es Jorge Coronel López, estudiante de ingeniería en sistemas computacionales en el Instituto Tecnológico de Tlaxiaco en Oaxaca, México. El glosario busca explicar conceptos básicos de la ingeniería de software de manera concisa.
El documento proporciona información sobre algoritmos. Define un algoritmo como un conjunto de pasos lógicos y ordenados para resolver un problema. Explica que los algoritmos tienen características como ser finitos, precisos y libres de ambigüedades. También describe elementos comunes de los algoritmos como datos, procesos, estructuras de control y su representación a través de pseudocódigo y diagramas de flujo.
Este documento describe el software MikroPLAN, que permite programar tarjetas Arduino con lenguajes ladder y AWL. Explica cómo instalar el firmware PLCmDuino en las tarjetas para permitir la programación y cómo solicitar licencias. También cubre características avanzadas como control de movimiento, comunicación con otras aplicaciones y ejemplos de aplicaciones.
Unidad 1 (1.3) Fundamentos de ingeniería de software Selins Cassiel
Este documento presenta una introducción a los fundamentos de la ingeniería de software. Explica que la ingeniería de software ofrece métodos y técnicas para desarrollar y mantener software, y cita definiciones de autores prestigiosos. También describe brevemente las cinco eras en la historia de la ingeniería de software desde 1950 hasta la actualidad, destacando los avances tecnológicos en cada era. Además, aborda la crisis del software desde los años 1960 y mitos comunes sobre el software.
Este documento presenta los fundamentos de la definición de arquitectura de software por un grupo de estudiantes. Incluye una introducción a conceptos clave de arquitectura de software según definiciones de IEEE y otros autores. Luego describe la evolución de modelos de arquitectura de software como monolítica, cliente-servidor y orientada a servicios. Finalmente discute principios de procesos de desarrollo de software modernos y el rol del arquitecto de software.
Este documento describe cómo configurar los puertos de entrada y salida en microcontroladores PIC. Explica que los puertos se configuran manipulando los registros TRIS, cuyas localizaciones varían según el microcontrolador. Para configurar un puerto como entrada, el registro TRIS debe contener todos 1s lógicos, mientras que para configurarlo como salida debe contener todos 0s lógicos. También es posible configurar parte del puerto como entrada y otra parte como salida. El documento incluye ejemplos de código para configurar los puertos en
Este documento describe el funcionamiento de un multiplexor, un circuito combinacional con múltiples entradas de señal y una única salida. Explica que un multiplexor funciona como un conmutador que permite redirigir cualquiera de las señales de entrada a la salida mediante las líneas de selección, permitiendo transmitir los datos de una de las entradas a la vez hacia la salida. El documento también indica que un multiplexor comúnmente se indica como 4 a 1 para mostrar que puede manejar 4 entradas de señal.
Este documento presenta los objetivos y contenidos de una unidad sobre agentes inteligentes. Los objetivos incluyen identificar los componentes de un sistema de agentes, conocer métricas para evaluar el rendimiento de agentes inteligentes, y reconocer las propiedades del entorno de un agente. Los contenidos cubren temas como agentes, sensores y actuadores; medidas de rendimiento; racionalidad; entornos de trabajo; y clasificación de agentes.
Este documento presenta una introducción a los microcontroladores AVR de Atmel. Explica que los AVR son microcontroladores RISC diseñados por Atmel que tienen una arquitectura Harvard y 32 registros de 8 bits. También describe las características y aplicaciones de los microcontroladores en general, incluyendo su CPU, memoria, E/S y usos comunes. El artículo pretende familiarizar a los lectores con los AVR para futuros proyectos.
Sesión 3 - Introducción a la Investigación de Operaciones.pdfWilfrido34
Este documento presenta una introducción a los conceptos básicos de representación de algoritmos mediante diagramas de flujo y pseudocódigo. Explica la simbología utilizada en diagramas de flujo y provee ejemplos de su aplicación. También define pseudocódigo y provee ejemplos de su sintaxis y estructura básica. Finalmente, incluye ejemplos de problemas resueltos utilizando ambos métodos de representación.
Este documento presenta los fundamentos de la programación, incluyendo tipos de datos, operadores y variables. Introduce los tipos de datos simples como numéricos, alfanuméricos y lógicos. Explica los operadores aritméticos, relacionales, lógicos y alfanuméricos. Finalmente, define identificadores y variables, y cómo estas últimas almacenan datos de forma temporal.
MATLAB es un lenguaje de programación diseñado para el cálculo técnico que integra cálculo, visualización y programación. Permite realizar cálculos matemáticos, desarrollo de algoritmos, modelado y simulación, análisis de datos y desarrollo de interfaces gráficas.
El documento describe los conceptos básicos de algoritmos e informática. Define algoritmo como un conjunto de instrucciones ordenadas para resolver un problema. Explica que un algoritmo debe ser finito, preciso y predecible. Describe también los componentes básicos de un algoritmo como entrada, proceso, salida, variables, constantes y estructuras de control. Finalmente, presenta un ejemplo de pseudocódigo para determinar si un año es bisiesto.
Este documento describe los diagramas de flujo y su uso para representar procedimientos lógicos de manera gráfica. Explica los principales símbolos de un diagrama de flujo y provee un ejemplo de cómo crear uno para calcular el perímetro de un triángulo.
resolucion de ecuaciones diferenciales con MATLAB Raul Ibañez
Este documento describe varios métodos para resolver numéricamente ecuaciones diferenciales en Mathcad y Matlab. En Mathcad, se pueden resolver ecuaciones diferenciales ordinarias y de derivadas parciales utilizando funciones como odesolve, rkfixed, Bulstoer, y relax. En Matlab, se pueden resolver ecuaciones diferenciales ordinarias simbólicamente con dsolve o numéricamente con resolutores como ode45, ode15s, ode23s. Ambos programas ofrecen opciones para resolver sistemas de ecuaciones diferenciales y ecuaciones stiff.
Este documento describe conceptos relacionados con las gramáticas formales. Explica que las gramáticas formales proporcionan un mecanismo para definir los lenguajes formales mediante reglas de producción. También describe cómo las gramáticas formales pueden usarse para generar todas las palabras que pertenecen a un lenguaje específico.
1) La teoría de la programación enfatiza la importancia de analizar los objetivos y pasos de un programa antes de codificar.
2) Los algoritmos representan los pasos que debe seguir un programa para lograr su propósito de manera independiente al lenguaje.
3) Existen lenguajes de programación de bajo y alto nivel, siendo estos últimos más fáciles de entender para los humanos.
Este documento describe los diferentes tipos de datos que pueden usarse en un programa, incluyendo datos simples como enteros, reales, lógicos y caracteres, así como datos compuestos como cadenas. También explica conceptos como identificadores, constantes, operadores, expresiones y algoritmos, proporcionando ejemplos de cada uno.
Este documento contiene la primera parte de la introducción a la programación de computadores, el ciclo de programación y definición de constante, variable y acumulador
Este documento describe conceptos básicos sobre nodos, punteros y variables de referencia en estructuras de datos. Explica la implementación de polinomios mediante nodos enlazados, incluyendo definición de clases, creación de polinomios, y métodos para realizar operaciones como suma, resta, multiplicación, división, derivada e integral. Finalmente, detalla la implementación de un applet Java que permite ingresar polinomios y realizar dichas operaciones visualizando los resultados.
Este documento describe los arreglos y estructuras de datos en lenguajes de programación. Explica cómo los arreglos multidimensionales se almacenan en memoria usando vectores de posicionamiento y cómo calcular las direcciones de memoria de sus elementos. También cubre arreglos asociativos que usan claves en lugar de índices, y estructuras como registros y uniones para organizar conjuntos de datos relacionados.
La sintaxis y semántica son fundamentales para describir un lenguaje de programación. La sintaxis describe la forma correcta en la que se escriben las sentencias, expresiones y unidades de programa, mientras que la semántica denota su significado. Usualmente la sintaxis se expresa en BNF y la semántica en lenguaje natural. Una gramática consiste en reglas de producción que definen símbolos no terminales y terminales.
La sintaxis y semántica son fundamentales para describir un lenguaje de programación. La sintaxis especifica la forma correcta en la que se escriben las sentencias, expresiones y programas, mientras que la semántica denota su significado. Usualmente la sintaxis se expresa en BNF y la semántica en lenguaje natural. Las gramáticas pueden ser ambiguas si permiten más de una interpretación para una sentencia, lo cual causa problemas para los compiladores.
El documento describe el análisis sintáctico ascendente o por desplazamiento y reducción. Este método construye el árbol sintáctico comenzando por las hojas y avanzando hacia la raíz mediante la reducción de formas sentenciales derechas usando las producciones de la gramática. Se explican conceptos como mangos, formas sentenciales derechas y el uso de una pila y buffer de entrada. También se detalla el análisis sintáctico LR y por precedencia de operadores.
Este documento ofrece una introducción a Prolog, incluyendo una descripción de los componentes de un entorno de desarrollo Prolog, las características del lenguaje como variables, términos, unificación y cláusulas, y cómo ejecutar objetivos en el shell de Prolog.
El documento presenta una introducción al lenguaje de programación C. Explica que C fue creado por Dennis Ritchie en los años 70 y que en 1983 se estableció el estándar ANSI C. Describe que C combina características de lenguajes de alto y bajo nivel y permite el manejo directo de memoria. Además, detalla elementos clave de un programa en C como comentarios, identificadores, constantes, variables, operadores y estructuras de control.
El documento presenta una introducción al lenguaje de programación C. Explica que C fue creado por Dennis Ritchie en los años 70 y que en 1983 se estableció el estándar ANSI C. Describe que C combina características de lenguajes de alto y bajo nivel y permite el manejo directo de memoria. Además, detalla elementos clave de un programa en C como comentarios, identificadores, constantes, variables, operadores y estructuras de control.
Este documento define términos clave relacionados con el desarrollo de aplicaciones en la nube, incluyendo PaaS, OpenShift, contenedores, Docker, gears, cartridges y Git. Explica que PaaS proporciona una plataforma en la nube para desarrollar aplicaciones web, OpenShift es un proveedor PaaS gratuito, y los contenedores como Docker permiten empaquetar aplicaciones de forma portable.
Curso de SQL, Instalación de herramientas de trabajo para PC y dispositivos móviles con ANDROID. Puedes practicar sentencias SQL desde tu Tablet o Smartphone sobre un modelo de base de datos de la vida real
El documento describe cómo configurar la comunicación Bluetooth entre un módulo HC-06 y un ChipKit Uno32 usando Python y Arduino. Incluye un diagrama de conexiones, código Arduino para controlar LEDs mediante comandos Bluetooth y pasos para configurar el módulo Bluetooth como dispositivo esclavo y reconocerlo en Windows.
Los programas de Arduino se denominan sketches y se escriben en un área de edición de texto. La barra de herramientas superior permite crear, abrir, guardar y cargar sketches, así como verificarlos para su ejecución. El lenguaje de programación de Arduino es similar al lenguaje C, por lo que quienes saben C pueden programar en Arduino. Un sketch debe incluir al menos dos funciones, void setup() y void loop().
El documento describe diferentes tipos de robots y sus propósitos. Keepon es un pequeño robot amarillo diseñado para interactuar con humanos, especialmente niños. ASIMO es un robot humanoide creado por Honda para investigación en movilidad e inteligencia artificial. También existen robots industriales, insectoides e exploradores.
Este documento describe la implementación de la herramienta Grsecurity en un sistema Linux para mejorar su seguridad. Grsecurity ofrece parches al núcleo que protegen el espacio de direcciones, el sistema de archivos y la red, entre otras cosas. Se detalla el proceso de instalación de Grsecurity en una distribución Ubuntu, incluyendo la compilación e instalación de un kernel parchado. También se explica el uso del control de acceso basado en roles de Grsecurity para restringir los permisos de los usuarios según su rol.
RPC (Remote Procedure Call) permite ejecutar código en una máquina remota de forma similar a una llamada a procedimiento local pero a través de una red. El cliente genera una solicitud que envía al servidor, el cual ejecuta el procedimiento solicitado y devuelve los resultados al cliente. El PortMapper asocia números de programa y versión de RPC a puertos para que los clientes puedan contactar los servicios RPC en un servidor.
El documento describe los conceptos básicos de las bases de datos, incluyendo los modelos de datos, entidades, atributos, relaciones, normalización, integridad referencial, y el lenguaje SQL. Proporciona ejemplos de consultas SQL para ilustrar conceptos como seleccionar, filtrar, agrupar, unir tablas y resumir datos de varias tablas relacionadas.
Buscador de Eventos y Fiestas en España - Buscafiestaholabuscafiesta
Buscafiesta.es es el buscador líder en España para fiestas y eventos, diseñado para satisfacer las necesidades tanto de organizadores como de asistentes. Este innovador software ofrece una plataforma integral que permite a los organizadores de eventos añadir, gestionar y promocionar sus actividades de manera totalmente autónoma, facilitando la visibilidad y escalabilidad de sus eventos.
Buscafiesta.es no solo conecta a los organizadores con su público objetivo, sino que también ofrece herramientas de marketing y análisis que ayudan a maximizar el impacto de cada evento. Ya sea para una fiesta local, un concierto multitudinario o un evento corporativo, Buscafiesta.es es la solución definitiva para hacer de cada evento un éxito rotundo.
2. Descargar de Play Store
● Jekejeke Prolog Runtime de XLOG Technologies
○ Es el intérprete del lenguaje, ver video que viene
con la descarga
○ Emplearemos frecuentemente las opciones de su
menu; Close, New y Load
● Gestor de Archivos HD de Cheetah Mobile
○ Es un administrador de archivos, nos ayudará a
crear bases de conocimiento en archivos de texto
3. Ejemplo líneas del Metro
● Modelo de la CD de México
recortado a primer cuadro
● 4 líneas
● 25 estaciones
● 6 correspondencias
● En Prolog haremos una
base de conocimiento
● Responderá a preguntas
sobre posibles rutas origen-
destino
4. Declaraciones afirmativas
● La programación lógica permite formalizar hechos,
ejemplo:
“Hidalgo es una estación del metro”
“Allende es una estación de la línea azul del metro”
● En Prolog estas afirmaciones se representan:
estacion_metro(hidalgo).
linea(azul,allende).
5. Requisitos de sintaxis de las declaraciones
● No se utilizan mayúsculas
● Las declaraciones tienen dos partes
○ Predicado del lado izquierdo
○ Argumentos del lado derecho entre paréntesis
● Cada afirmación termina con un punto
● El nombre de un predicado compuesto puede usar el
símbolo de subrayado, no se permiten espacios ni
guiones
6. ● La programación lógica también formaliza reglas o
restricciones, ejemplo:
“Una correspondencia se da entre dos líneas; la estación
común tiene el mismo nombre en ambas líneas"
En Prolog esta aseveración se representa:
correspondencia(E,L1,L2) :- linea(L1,E), linea(L2,E).
Planteamiento de reglas
7. Observaciones de la sintaxis
● Las reglas requieren de variables L1,L2,E
● Las variables se representan en mayúsculas
● Las mismas variables deben aparecer en ambos lados
de la regla
● Las dos partes de la regla se separan por :- que es el
símbolo de inferencia
● La regla debe terminar con punto
● La coma , significa “Y”
8. Base de conocimiento
● Es un conjunto de afirmaciones y reglas
● Se almacenan en archivos de texto
● El intérprete Prolog consulta la base de conocimiento
para responder a preguntas concretas, ejemplo:
? - linea(verde, allende). ↵
No
¿Allende es una estación de la línea verde del metro?
9. Crear base de conocimiento en el móvil
● Ejecutar el gestor de archivos File Manager
● Crear un directorio de trabajo de preferencia en la
tarjeta SD
● En el directorio de trabajo crear un archivo de texto con
la extensión .pl
● Escribir las afirmaciones de la base de conocimiento
● % al inicio de cada línea se tomará como un comentario
● No olvidar el punto al final de cada declaración
● Guardar el archivo de texto
11. Base de conocimiento, archivo metro.pl
● A nuestras afirmaciones les damos la forma:
linea(color, nombre_estacion, numero_estacion).
linea(azul,revolucion,1).
linea(azul,hidalgo,2).
...
linea(verde,hidalgo,1).
linea(verde,juarez,2).
….
linea(rosa,cuauhtemoc,1).
linea(rosa,balderas,2).
….
linea(gris,chabacano,6).
12. Cargar base conocimiento en Prolog
● Ejecutar Jekejeke Prolog
● Tomar la opción Load…
● Localizar directorio de trabajo y la base de
conocimiento, archivo .pl
● Si no hay mensaje de error, iniciar interrogatorio
● En caso de error ir a File Manager, abrir el archivo .pl,
corregirlo y guardarlo
● Volver a cargar con la opción Load…
● La opción New… da una nueva pantalla
14. Interrogando la base de conocimiento
● allende es una estación de la línea verde?
?- linea(verde,allende,_). ↵
NO
?-
● Las preguntas se escriben en el mismo
formato que las afirmaciones
● Las respuestas son solo “SI” o “NO”
● Argumentos en minúsculas son constantes
● El símbolo _ en la pregunta, es una variable
en blanco, su significado en esta pregunta
es; “no me interesa el número de estación”
15. Interrogando la base de conocimiento
● Todas las estaciones de la línea verde?
?- linea(verde,ESTACION,_). ↵
ESTACION = hidalgo ;
ESTACION = juarez ;
ESTACION = balderas ;
ESTACION = ninos_heroes ;
ESTACION = hospital_general ;
?-
● Argumentos con mayúscula inicial son
variables
● Con “verde” estamos afirmando una parte
● Cuando se emplean variables como
ESTACION, no se está pidiendo a Prolog
que confirme o niegue sino que encuentre
información
● El intérprete debe encontrar un valor para
ESTACION que haga verdadera la
pregunta
● Si existe más de un valor se teclea ; para
solicitar otra solución
16. Variables en las preguntas
● Al usar variables, Prolog presenta
“TODAS LAS SOLUCIONES POSIBLES”
17. Interrogando la base de conocimiento
● Todas las estaciones del metro ?
punto y ↵
punto y coma
Continua hasta que se agotan todas las posibilidades
18. Interrogando la base de conocimiento
● Con el uso de variables Prolog busca soluciones
● Lo anterior es posible porque la base de conocimiento
tiene afirmaciones reales que permiten generar
soluciones
● En la base de conocimiento se busca de “arriba a
abajo”, en el orden en que se escribieron las
declaraciones
19. Ejercicio-> Todos los pares origen-destino?
?- linea(Lo,Eo,_), linea(Ld,Ed,_). ↵
Lo = azul,
Eo = revolucion,
Ld = azul,
Ed = revolucion ;
Lo = azul,
Eo = revolucion,
Ld = azul,
Ed = hidalgo ;
…
● La , coma significa “Y”, esto quiere decir que
ambas afirmaciones tienen que cumplirse
● Prolog buscará todas los posibles valores de
Lo, Eo, Ld y Ed que hagan verdadera la
expresión
● El símbolo _ significa que para esta pregunta,
no importan los números de estación
● Cómo le indicamos a Prolog que los pares
origen-destino no sean la misma estación?
20. Ejercicio-> Todos los pares origen-destino?
● Evitando pares origen-destino misma estación
?- linea(Lo,Eo,_), linea(Ld,Ed,_), Eo = Ed. ↵
Lo = azul,
Eo = revolucion,
Ld = azul,
Ed = hidalgo ;
…
● Los símbolos = significan distinto que
● Eo = Ed evita las soluciones del tipo:
Lo = azul,
Eo = revolucion,
Ld = azul,
Ed = revolucion
21. Ejercicio-> Todos los pares origen-destino?
● Pares origen-destino en la misma línea
?- linea(Lo,Eo,_), linea(Ld,Ed,_), Eo = Ed, Lo == Ld. ↵
Lo = azul,
Eo = revolucion,
Ld = azul,
Ed = hidalgo ;
...
● Los símbolos == significan igual que
● Lo == Ld sólo presentará las soluciones
origen-destino de la misma línea
● Lo==Ld, no presenta las soluciones
Lo = azul,
Eo = revolucion,
Ld = verde,
Ed = juarez
22. Ejercicio-> Todos los pares origen-destino?
● Pares origen-destino en la misma línea e indicando el número de
estaciones entre el origen y el destino
?- linea(Lo,Eo,No), linea(Ld,Ed,Nd), Eo = Ed, Lo == Ld, Ne is Nd-No. ↵
Lo = azul,
Eo = revolucion,
No = 1,
Ld = azul,
Ed = hidalgo,
Nd = 2,
Ne = 1 ;
● “is” es el operador de asignación
● En lenguaje natural Ne is Nd-No,
equivale a Ne=Nd-No
● “Ne” es el número de estaciones entre el
origen y el destino
23. Ejercicio-> Todas las correspondencias?
● Una correspondencia es una estación común entre dos líneas
?- linea(L1,E,_), linea(L2,E,_), L1 = L2. ↵
L1 = azul,
E = hidalgo,
L2 = verde ;
L1 = azul,
E = bellas_artes,
L2 = gris ;
...
● L1 = L2 equivale a decir líneas distintas
● Una correspondencia sólo se da entre 2 líneas distintas
y E es la estación común.
● Es equivalente la expresión:
linea(L1,E1,_), linea(L2,E2,_),E1==E2,L1=L2.
24. Ejercicio-> Direcciones
● En pares origen-destino de una misma línea es importante conocer el
sentido
?- linea(L,E1,N1), linea(L,E2,N2), N2 > N1. ↵
L = azul,
E1 = revolucion,
N1 = 1,
E2 = hidalgo,
N2 = 2 ;
...
● La numeración de las estaciones nos da la dirección
● N2 > N1 presenta soluciones ascendentes
● Y según la numeración de las estaciones en la base de
conocimiento, para la línea azul N2 > N1, significa de
revolucion a chabacano
25. Ejercicio-> Direcciones
● Afirmaciones en sentido inverso, descendente
?- linea(L,E1,N1), linea(L,E2,N2), N2 < N1. ↵
L = azul,
E1 = hidalgo,
N1 = 2,
E2 = revolucion,
N2 = 1 ;
...
● Para indicar el sentido no basta decir
ascendente o descendente
● El sentido se señala en base a las estaciones
terminales, ejemplo linea azul:
Dirección revolucion va hacia el nor-poniente
Dirección chabacano va hacia el sur-oriente
26. Implementando direcciones
● Agregar a nuestra base de conocimiento las siguientes afirmaciones
terminales(azul,revolucion,chabacano).
terminales(verde,hidalgo,hospital_general).
terminales(rosa,cuauhtemoc,merced).
terminales(gris,bellas_artes,chabacano).
● Agregar las afirmaciones, al final del archivo metro.pl
28. Definiendo reglas
● Con las afirmaciones de la base de conocimiento podemos establecer
reglas
● En la base de conocimiento, las reglas se van definiendo enseguida de las
afirmaciones
● Agregar las siguientes reglas al final del archivo metro.pl y guardarlo
correspondencia(E,L1,L2) :- linea(L1,E,_), linea(L2,E,_), L1=L2.
direccion(L,E1,E2,N,S) :- linea(L,E1,N1), linea(L,E2,N2),
N2>N1, N is N2 - N1, terminales(L,_,S).
direccion(L,E1,E2,N,S) :- linea(L,E1,N1), linea(L,E2,N2),
N1>N2, N is N1 - N2, terminales(L,S,_).
29. Conjunción y disyunción
● Las expresiones del tipo “linea(L1,E,_), linea(L2,E,_), L1=L2” separadas
por , forman una conjunción lógica “Y”, cuyo valor es verdad si todas las
afirmaciones son verdaderas
● Una disyunción “O”, puede escribirse usando el operador ; pero en su
lugar se emplea la definición de varias cláusulas para el mismo predicado,
ejemplo:
direccion(L,E1,E2,N,S) :- linea(L,E1,N1), linea(L,E2,N2), N2>N1, N is N2 - N1,
terminales(L,_,S).
O
direccion(L,E1,E2,N,S) :- linea(L,E1,N1), linea(L,E2,N2), N1>N2, N is N1 - N2,
terminales(L,S,_).
30. Probando reglas
● Entrar al interprete de Prolog y cargar el archivo metro.pl (Load...)
● Afirmar y preguntar a la base de conocimiento:
Estoy en la estación Allende de la línea azul, mi destino es San Antonio
Abad. Cuantas estaciones son y en qué dirección debo ir ?
?- direccion(azul,allende,san_antonio_abad,N_ESTACIONES,DIRECCION). ↵
N_ESTACIONES = 3,
DIRECCION = chabacano ;
NO
?-
31. Programación interactiva con Prolog
● Los programas interactivos llevan a cabo un diálogo con el usuario
● Prolog cuenta con el predicado “write”
● “write“ toma un término como su argumento y hace que dicho término se
escriba en la terminal del usuario
?- linea(L,allende,_), write(L), write(‘n’). ↵
azul
L = azul
?-
● “write” usa solo un argumento
● Este puede ser una constante o una variable
● Acepta cadenas de texto
● n es salto de línea
32. Definiendo rutas del metro
● Se tienen los elementos para que Prolog nos de las posibles rutas entre
un par origen-destino
● Existen 3 posibilidades
○ Par origen-destino en la misma línea, por ejemplo juarez-ninos_heroes ambas
estaciones en la línea verde
○ Par origen-destino con una correspondencia, por ejemplo zocalo-obrera en las líneas
azul y gris respectivamente, su correspondencia es la estación bellas_artes
○ Par origen-destino con dos correspondencias, por ejemplo doctores-juarez en las
lineas gris y verde respectivamente, no hay correspondencia directa, pero la línea gris y la
línea verde tienen correspondencia con la línea azul en bellas_artes e hidalgo, además
tienen correspondencia con la línea rosa en isabel_la_catolica y balderas
33. Regla misma línea origen-destino
● Agregar al final de la base de conocimiento la regla
ruta(DESDE,HASTA) :- direccion(LINEA,DESDE,HASTA,ESTAC,DIREC),
write(‘ Por la linea ‘), write(LINEA),
write(‘ partir de la estacion ‘), write(DESDE),
write(‘ hacia ‘), write(DIREC),
write(‘,en ‘), write(ESTAC), write(‘ estaciones ‘),
write(‘ llegara a la estacion ‘), write(HASTA),
write(‘ de la linea ‘), write(LINEA), write(‘n’).
34. Probando regla misma línea origen-destino
?- ruta(allende,juarez). ↵
NO
?- ruta(balderas,merced). ↵
Por la linea rosa partir de la estacion balderas hacia merced, en 4 estaciones
llegara a la estacion merced de la linea rosa
SI
?- ruta(obrera,san_juan_letran). ↵
Por la linea gris partir de la estacion obrera hacia bellas_artes, en 3 estaciones
llegara a la estacion san_juan_letran de la linea gris
SI
?-
● No hay solución, son estaciones de líneas distintas
35. Regla origen-destino con correspondencia
● Agregar al final de la base de conocimiento la regla
ruta(DESDE,HASTA) :- linea(L1,DESDE,_), linea(L2,HASTA,_), L1=L2, DESDE=HASTA,
correspondencia(C,L1,L2), DESDE=C, C=HASTA,
direccion(L1,DESDE,C,EST1,DIR1),
direccion(L2,C,HASTA,EST2,DIR2),
TOTAL is EST1 + EST2,
write(' Por la linea '), write(L1), write(' partir de la estacion '), write(DESDE),
write(' hacia '), write(DIR1), write(', en '), write(EST1), write(' estaciones '),
write('llegara a la correspondencia '), write(C),
write(' para tomar la linea '), write(L2), write(' hacia '), write(DIR2),
write(', en '), write(EST2), write(' estaciones '), write('llegara a la estacion '),
write(HASTA), write(', TOTAL ESTACIONES '), write(TOTAL), write('. n ').
36. Regla origen-destino con correspondencia
● Comentarios
❏ L1=L2, la línea de la estación origen debe ser distinta a la línea de la estación destino
❏ DESDE=HASTA, la estación origen y destino no deben ser la misma
❏ DESDE=C, C=HASTA, la estación de correspondencia C, entre L1 y L2, no debe ser
el origen, ni el destino
❏ DIR1 y EST1, se evalúan en la regla direccion con DESDE y C como origen-destino
❏ DIR2 y EST2, se evalúan en la regla direccion con C y HASTA como origen-destino
❏ Se podría decir que TOTAL es el valor del recorrido en estaciones
❏ Las sentencias “write” con los textos y las variables, pueden acomodarse en el orden
que se desee
37. Probando regla con una correspondencia
?- ruta(balderas,bellas_artes). ↵
Por la linea verde partir de la estacion balderas hacia hidalgo, en 2 estaciones llegara a la
correspondencia hidalgo para tomar la linea azul hacia chabacano, en 1 estaciones llegara a la
estacion bellas_artes, TOTAL ESTACIONES 3.
SI ;
Por la linea rosa partir de la estacion balderas hacia merced, en 3 estaciones llegara a la
correspondencia pino_suarez para tomar la linea azul hacia revolucion, en 3 estaciones llegara a la
estacion bellas_artes, TOTAL ESTACIONES 6.
SI ;
Por la linea rosa partir de la estacion balderas hacia merced, en 1 estaciones llegara a la
correspondencia salto_del_agua para tomar la linea gris hacia bellas artes, en 2 estaciones llegara a
la estacion bellas_artes, TOTAL ESTACIONES 3.
● Tres soluciones distintas. El punto y coma ; solicita la siguiente solución válida
38. Regla origen-destino con 2 correspondencias
ruta(DESDE,HASTA) :- linea(L1,DESDE,_), linea(L2,HASTA,_), L1=L2, DESDE=HASTA,
correspondencia(C1,L1,X), correspondencia(C2,L2,X),
DESDE=C1, C1=HASTA, DESDE=C2, C2=HASTA,
direccion(L1,DESDE,C1,EST1,DIR1), direccion(X,C1,C2,ESTi,DIRi),
direccion(L2,C2,HASTA,EST2,DIR2), TOTAL is EST1 + EST2 + ESTi,
write(' Por la linea '), write(L1), write(' partir de la estacion '), write(DESDE),
write(' hacia '), write(DIR1), write(', en '), write(EST1), write(' estaciones '),
write('llegara a la correspondencia '), write(C1), write(' para tomar la linea '),
write(X), write(' hacia '), write(DIRi), write(', en '), write(ESTi),
write(' estaciones '), write('llegara a la correspondencia '), write(C2),
write(' para tomar la linea '), write(L2), write(' hacia '), write(DIR2),
write(', en '), write(EST2), write(' estaciones '), write('llegara a la estacion '),
write(HASTA), write(', TOTAL ESTACIONES '), write(TOTAL), write('. n ').
39. Regla origen-destino con 2 correspondencias
● Comentarios
❏ “correspondencia(C1,L1,X), correspondencia(C2,L2,X)”, busca una tercer línea X
común para la línea origen L1 y la línea destino L2, además de las correspondencias
C1 y C2
❏ Las correspondencias, el origen y el destino no deben ser la misma estación
DESDE=HASTA, DESDE=C1, C1=HASTA, DESDE=C2, C2=HASTA
❏ Se necesitan ahora tres direcciones y el número de estaciones entre; DESDE a C1,
C1 a C2 y C2 a HASTA
❏ TOTAL es la suma de las tres anteriores
❏ La respuesta en algunos casos será de más de 3 rutas posibles
40. Conclusiones
● Demostramos como se puede aplicar Prolog a un
proceso específico, un caso práctico
● Como se habrán dado cuenta, en Prolog no existen
instrucciones de control
● Su ejecución se basa en dos conceptos: la unificación
y el backtracking
● Con la unificación, cada objetivo determina un
subconjunto de cláusulas susceptibles de ser
ejecutadas, cada una de ellas se denomina punto de
elección
41. Conclusiones
● Prolog selecciona el primer punto de elección y sigue
ejecutando el programa hasta determinar si el objetivo
es verdadero o falso
● En caso de ser falso entra en juego el backtracking, que
consiste en deshacer todo lo ejecutado situando el
programa en el mismo estado en el que estaba justo
antes de llegar al punto de elección
● Entonces se toma el siguiente punto de elección que
estaba pendiente y se repite de nuevo el proceso