{"id":385,"date":"2018-12-20T22:36:31","date_gmt":"2018-12-21T04:36:31","guid":{"rendered":"http:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=385"},"modified":"2021-07-11T16:20:48","modified_gmt":"2021-07-11T21:20:48","slug":"interaccion-con-la-pantalla-del-interprete","status":"publish","type":"page","link":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=385","title":{"rendered":"Interacci\u00f3n con la pantalla del int\u00e9rprete"},"content":{"rendered":"<h1><strong>Interacci\u00f3n con la pantalla del int\u00e9rprete<\/strong><\/h1>\n<p>Uno de los aspectos m\u00e1s importantes de cualquier lenguaje de programaci\u00f3n, es la interacci\u00f3n entre el usuario y la computadora, es decir, que la computadora pueda mostrar los datos relevantes que han sido calculados, pero que el usuario tambi\u00e9n tenga la posibilidad de poder ingresar datos necesarios para el procesamiento de la informaci\u00f3n. Por este motivo, los comandos que interact\u00faan con el int\u00e9rprete y monitor de la computadora son de gran relevancia.<\/p>\n<p>A continuaci\u00f3n se presentan los comandos m\u00e1s utilizados para este fin:<\/p>\n<h2 style=\"text-align: center;\"><strong>Read()<\/strong><\/h2>\n<p>El comando <em>read(X)<\/em> sirve para ingresar desde teclado los datos con los cuales se va a llevar a cabo el procesamiento de la informaci\u00f3n, el dato ingresado ser\u00e1 almacenado en la variable X.<\/p>\n<p style=\"text-align: left;\">Si nosotros escribimos en el int\u00e9rprete \u201c<em>read(X)<\/em>.\u201d, el int\u00e9rprete esperara a que nosotros le ingresemos un dato, cuando ingresemos dicho dato, este se mostrar\u00e1 de la siguiente forma \u201c<em>X = dato<\/em>\u201d.<\/p>\n<p>Si queremos ingresar un dato compuesto de varios elementos, es necesario englobar todos ellos por medio de <em>\u2018Varios datos\u2019 <\/em>(con comillas simples). De esta forma si lo colocamos <em>read(X)<\/em>, y despu\u00e9s colocamos <em>\u2018Varios datos<\/em>\u2019, el sistema nos mostrar\u00e1 <em>X = Varios datos<\/em>.<\/p>\n<h2 style=\"text-align: center;\"><strong>Get(X) y get0(X)<\/strong><\/h2>\n<p>Estos comandos son utilizados para obtener el primer car\u00e1cter ingresado por teclado, y el primer car\u00e1cter imprimible empleado, respectivamente. Estos comandos se satisfacen si<em> X<\/em> no est\u00e1 instanciada, sin embargo, si <em>X<\/em> est\u00e1 instanciada, intenta igualarlos. Estos comandos guardan en la variable el dato en c\u00f3digo ASCII.<\/p>\n<p>Por ejemplo:<\/p>\n<pre class=\"lang:default decode:true \">get(X).<\/pre>\n<p>y escribimos la palabra dato, obtendremos <em>X= 100<\/em>, y desconocer\u00e1 los dem\u00e1s caracteres inscritos, es decir, s\u00f3lo reconoce el primer car\u00e1cter, en este caso &#8220;<em>d<\/em>&#8220;, y devuelve su correspondiente valor en ASCII.<\/p>\n<p>SI tenemos<\/p>\n<pre class=\"lang:default decode:true \">get(X).<\/pre>\n<p>y escribimos la palabra nombre, obtendremos<em> X= 110,<\/em> y desconocer\u00e1 los dem\u00e1s caracteres inscritos.<\/p>\n<h2 style=\"text-align: center;\"><strong>Write( )<\/strong><\/h2>\n<p>Este comando sirve para que el programa realizado, escriba datos sobre el monitor o sobre una interfaz realizada.<\/p>\n<p>Si colocamos <em>write(X)<\/em>, se mostrar\u00e1 en pantalla el valor almacenado en la variable <em>X<\/em>.<\/p>\n<p>Si colocamos <em>write(dato)<\/em>, en la pantalla se mostrar\u00e1 el dato \u201c<em>dato<\/em>\u201d, es decir, si el argumento inicia con min\u00fascula, se escribe tal cual.<\/p>\n<p>Ahora, si necesitamos que escriba de una manera en la que tal cual nosotros la definamos, incluyendo espacios, palabras reservadas, y palabras con may\u00fasculas, tenemos que utilizar la forma <em>write (\u2018Aqu\u00ed va un texto\u2019)<\/em>, de esta manera escribir\u00e1 en pantalla tal cual lo que se le ha definido.<\/p>\n<p><strong>Ejemplo 1:<\/strong> Realizar un programa que escriba lo que se encuentra en la variable <em>X<\/em> y en la variable <em>Y<\/em> de entrada.<\/p>\n<pre class=\"lang:default decode:true \">programa(X, Y):-write(X), write(Y).<\/pre>\n<p><strong>Ejercicio 1:<\/strong>\u00a0Realiza un ejercicio, en el cual el programa reciba dos palabras de una lista, y despu\u00e9s escriba ambas palabras de forma seguida.<\/p>\n<h2 style=\"text-align: left;\"><strong>Formato del texto<\/strong><\/h2>\n<p>Existen diversos comandos para poder darle un poco de formato al texto que queremos desplegar en pantalla, dentro de estos se encuentra el comando <em>tab(X)<\/em><strong>,<\/strong> en donde <em>X<\/em> representa el n\u00famero de saltos tabulares que se van a dar, es decir:<\/p>\n<p>tab(1) -&gt;\u00a0 Aqu\u00ed\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 primer tabulador.<\/p>\n<p>tab(2)-&gt; Aqu\u00ed \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 segundo tabulador.<\/p>\n<p>Tab(3) -&gt; Aqu\u00ed \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tercer tabulador.<\/p>\n<p>&nbsp;<\/p>\n<p>Para saltar de una l\u00ednea a otra, tenemos el comando <em>nl,<\/em> este comando simplemente inicia desde una nueva l\u00ednea a partir de la posici\u00f3n en el que se coloque.<\/p>\n<h2 style=\"text-align: center;\"><strong>Display(X)<\/strong><\/h2>\n<p>Para ver una representaci\u00f3n de datos de forma funcional, podemos utilizar el comando<em> display()<\/em>, este comando es sumamente interesante, ya que nos muestra la jerarqu\u00eda de las operaciones realizadas, por ejemplo:<\/p>\n<pre class=\"lang:default decode:true \">display(a+b).<\/pre>\n<p style=\"text-align: left;\">obtendremos <em>+(a,b)<\/em>.<\/p>\n<pre class=\"lang:default decode:true \">display((a+b)*c).<\/pre>\n<p style=\"text-align: left;\">obtendremos \u00a0<em>*(+(a,b),c).<\/em><\/p>\n<pre class=\"lang:default decode:true \">display(((a+b)*c)\/d).<\/pre>\n<p style=\"text-align: left;\">btendremos <em>\/(*(+(a,b),c),d).<\/em><\/p>\n<h2 style=\"text-align: center;\"><strong>put(X)<\/strong><\/h2>\n<p>Con este comando podemos convertir un valor en c\u00f3digo ASCII, a su representaci\u00f3n alfanum\u00e9rica, por ejemplo, si colocamos:<\/p>\n<pre class=\"lang:default decode:true \">put(124).<\/pre>\n<p>Obtendremos |<\/p>\n<pre class=\"lang:default decode:true \">put(64).<\/pre>\n<p>Obtendremos @<\/p>\n<pre class=\"lang:default decode:true \">put(92).<\/pre>\n<p>Obtendremos \\<\/p>\n<h2 style=\"text-align: center;\"><b>Listing<\/b><\/h2>\n<p>Este comando se utiliza para enlistar todos los elementos relacionados a un predicado definido, por ejemplo si tenemos <em>listing(ave(X))<\/em>, buscar\u00e1 el predicado ave, y enlistara todos los valores que le correspondan, por ejemplo:<\/p>\n<pre class=\"lang:default decode:true \">ave(perico).\r\nave(pato).\r\nave(paloma).<\/pre>\n<p>Sin embargo, si solo colocas \u201c<em>listing<\/em>\u201d, sin ning\u00fan predicado o regla en particular, se desplegar\u00e1 toda la informaci\u00f3n relacionada a tu programa.<\/p>\n<p><strong>Ejercicio 1:<\/strong> Abrir un programa hecho en PROLOG, y coloca los datos que se encuentren dentro de una lista.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interacci\u00f3n con la pantalla del int\u00e9rprete Uno de los aspectos m\u00e1s importantes de cualquier lenguaje de programaci\u00f3n, es la interacci\u00f3n entre el usuario y la computadora, es decir, que la computadora pueda mostrar los datos relevantes que han sido calculados, pero que el usuario tambi\u00e9n tenga la posibilidad de poder ingresar datos necesarios para el &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/virtual.cuautitlan.unam.mx\/intar\/?page_id=385\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> &#8220;Interacci\u00f3n con la pantalla del int\u00e9rprete&#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-385","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/385"}],"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=385"}],"version-history":[{"count":7,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/385\/revisions"}],"predecessor-version":[{"id":949,"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=\/wp\/v2\/pages\/385\/revisions\/949"}],"wp:attachment":[{"href":"https:\/\/virtual.cuautitlan.unam.mx\/intar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}