{"id":377,"date":"2018-12-20T22:29:43","date_gmt":"2018-12-21T04:29:43","guid":{"rendered":"http:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=377"},"modified":"2021-07-11T15:52:58","modified_gmt":"2021-07-11T20:52:58","slug":"operadores","status":"publish","type":"page","link":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=377","title":{"rendered":"Operadores"},"content":{"rendered":"<h1><strong>Operadores<\/strong><\/h1>\n<p>PROLOG, como cualquier lenguaje de programaci\u00f3n tiene diferentes tipos de operadores para trabajar con distintos datos de entrada. Estos operadores pueden estar clasificados como operadores aritm\u00e9ticos, y operadores de comparaci\u00f3n.<\/p>\n<h2><strong>Operadores aritm\u00e9ticos<\/strong><\/h2>\n<p>Los operadores aritm\u00e9ticos se representan en la forma cl\u00e1sica de las funciones aritm\u00e9ticas est\u00e1ndar. La tabla 1, muestra este tipo de operadores.<\/p>\n<p>Tabla 1.- Operadores aritm\u00e9ticos y su significado. En la columna \u201cOPERADOR\u201d, podemos ver que despu\u00e9s del operador, se tiene la indicaci\u00f3n con la forma \u201c<em>\/n\u00famero<\/em>\u201d, esto da a notar que es una funci\u00f3n que tiene una cantidad de par\u00e1metros igual a <em>numero<\/em>. Por ejemplo el indicador \/2 implica que tiene dos par\u00e1metros para su correcta ejecuci\u00f3n.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"113\"><strong>OPERADOR<\/strong><\/td>\n<td width=\"475\"><strong>SIGNIFICADO<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"113\">+\u00a0 \u00a0\/2<\/td>\n<td width=\"475\">Suma.<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">&#8211;\u00a0\u00a0 \u00a0\/2<\/td>\n<td width=\"475\">Resta.<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">*\u00a0 \u00a0\/2<\/td>\n<td width=\"475\">Multiplicaci\u00f3n.<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">\/\u00a0 \u00a0\u00a0\/2<\/td>\n<td width=\"475\">Divisi\u00f3n. Devuelve el resultado exacto de la divisi\u00f3n, devolviendo enteros y decimales.<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">\/\/\u00a0 \/2<\/td>\n<td width=\"475\">Divisi\u00f3n entera. Devuelve solo el valor entero de la divisi\u00f3n, elimina los decimales del resultado.<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">mod \/2<\/td>\n<td width=\"475\">Residuo. Devuelve el residuo de una divisi\u00f3n, en forma de entero<\/td>\n<\/tr>\n<tr>\n<td width=\"113\">^\u00a0 \/2<\/td>\n<td width=\"475\">Potencia. Devuelve la exponenciaci\u00f3n en la forma 3 ^ 2 =9.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>En PROLOG es posible realizar una consulta aritm\u00e9tica sin necesidad de realizar un programa en el archivo .pl, basta con poner la consulta en el int\u00e9rprete en la siguiente manera:<\/p>\n<pre class=\"lang:default decode:true \">?. X is 5 + 3.<\/pre>\n<p>A lo cual, el int\u00e9rprete generar\u00e1 la respuesta X = 8.<\/p>\n<p>Como se puede observar en la consulta realizada, lo que indica la asignaci\u00f3n del resultado a la variable <em>X<\/em>, es la palabra reservada &#8220;<em>is&#8221;<\/em>.<\/p>\n<p><strong>Ejercicio 1.<\/strong><\/p>\n<p>Realizar 5 consultas en el int\u00e9rprete de PROLOG con los diferentes operadores aritm\u00e9ticos.<\/p>\n<p>Aunque los operadores mostrados enl a tabla 1, son los representantes de las operaciones b\u00e1sicas aritm\u00e9ticas, PROLOG tambi\u00e9n tiene otro tipo de funciones matem\u00e1ticas que se pueden utilizar sin necesidad de agregar programas especiales o alg\u00fan tipo de librer\u00eda, estas operaciones pueden verse en la tabla 2.<\/p>\n<p>Tabla 2. Funciones matem\u00e1ticas que el lenguaje de programaci\u00f3n PROLOG ofrece.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"198\">Operador matem\u00e1tico<\/td>\n<td width=\"390\">Operaci\u00f3n que realiza<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">sqrt(X)<\/td>\n<td width=\"390\">Obtiene la ra\u00edz cuadrada del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">log(X)<\/td>\n<td width=\"390\">Obtiene el logaritmo del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">ln(X)<\/td>\n<td width=\"390\">Obtiene el logaritmo natural del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">abs(X)<\/td>\n<td width=\"390\">Obtiene el valor absoluto del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">sin(X)<\/td>\n<td width=\"390\">Obtiene el seno del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">cos(X)<\/td>\n<td width=\"390\">Obtiene el coseno del valor $X$.<\/td>\n<\/tr>\n<tr>\n<td width=\"198\">tan(X)<\/td>\n<td width=\"390\">Obtiene la tangente del valor $X$.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La forma de utilizar estas funciones es sumamente simple, ya que de igual forma que los operadores aritm\u00e9ticos, basta con realizar una consulta en la forma:<\/p>\n<pre class=\"lang:default decode:true \">?. X is sqrt(9).<\/pre>\n<p>Consulta que dar\u00e1 como resultado\u00a0 $X = 3$.<\/p>\n<p><strong>Ejercicio 2. \u00a0<\/strong>Obtener el seno, el coseno y la tangente de 1534, utilizando consultas en PROLOG.<\/p>\n<h2><strong>Operadores de comparaci\u00f3n<\/strong><\/h2>\n<p>Los operadores e comparaci\u00f3n, son como en muchos otros lenguajes de programaci\u00f3n, comparadores de tipo booleano, es decir, la respuesta a la consulta ser\u00e1 un valor <em>verdadero<\/em> o <em>falso<\/em>, dependiendo de si la condici\u00f3n es cumplida o no. Los operadores de este tipo pueden visualizarse en la tabla 3.<\/p>\n<p>Tabla 3. Representaci\u00f3n de los operadores de comparaci\u00f3n y su funcionamiento.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"104\">Operador<\/td>\n<td width=\"485\">Definici\u00f3n<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">=<\/td>\n<td width=\"485\">Igualdad. Operador que eval\u00faa si dos elementos son iguales.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">&gt;<\/td>\n<td width=\"485\">Mayor que. Elemento que eval\u00faa si el primer elemento es mayor que el segundo elemento.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">&lt;<\/td>\n<td width=\"485\">Menor que. Elemento que eval\u00faa si el primer elemento es menor que el segundo elemento.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">&gt;=<\/td>\n<td width=\"485\">Mayor o igual que. Elemento que eval\u00faa si el primer elemento es mayor\u00a0 o igual que el segundo elemento.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">&lt;=<\/td>\n<td width=\"485\">Menor o igual que. Elemento que eval\u00faa si el primer elemento es menor\u00a0 o igual que el segundo elemento.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">=\/=<\/td>\n<td width=\"485\">Diferente. Elemento que eval\u00faa si dos elementos son diferentes entre si.<\/td>\n<\/tr>\n<tr>\n<td width=\"104\">is<\/td>\n<td width=\"485\">Evaluador. Palabra reservada que eval\u00faa la expresi\u00f3n definida del lado derecho, y guarda el resultado en la variable definida en el lado izquierdo de ella.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Cuando dos objetos que son s\u00edmbolos o cadenas de caracteres son comparados, los caracteres son convertidos a su equivalente ASCII. El valor de cada car\u00e1cter es examinado a partir del operador relacional, de izquierda a derecha.<\/p>\n<p>De manera simple, podemos realizar la siguiente consulta $6&gt;7.$, a lo que PROLOG contestara <em>false<\/em>; pero si realizamos la siguiente consulta $6&lt;7.$, PROLOG contestara <em>true.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Operadores PROLOG, como cualquier lenguaje de programaci\u00f3n tiene diferentes tipos de operadores para trabajar con distintos datos de entrada. Estos operadores pueden estar clasificados como operadores aritm\u00e9ticos, y operadores de comparaci\u00f3n. Operadores aritm\u00e9ticos Los operadores aritm\u00e9ticos se representan en la forma cl\u00e1sica de las funciones aritm\u00e9ticas est\u00e1ndar. La tabla 1, muestra este tipo de operadores. &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=377\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;Operadores&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-377","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/377"}],"collection":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=377"}],"version-history":[{"count":6,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/377\/revisions"}],"predecessor-version":[{"id":944,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/377\/revisions\/944"}],"wp:attachment":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}