tag:blogger.com,1999:blog-85526555065525437082024-02-19T08:25:15.289-08:00.: {Kris} :.Trabajos para "Lenguajes de Programación" y "Lab de Leng de Progr"Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.comBlogger47125tag:blogger.com,1999:blog-8552655506552543708.post-25387024765864080902010-11-22T06:06:00.000-08:002010-11-22T06:08:42.510-08:00.: Listas Vinculadas :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Listas Enlazadas y sus Procesos ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí me dedicaré a comentar algo sobre el trabajo o las acciones realizadas con el proyecto de listas que use el semestre pasado ya modificado.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primero comentaremos las variables presentes es la estructura de la lista:</span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">ID</span></strong>. Funciona como la matricula del alumno.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">Name</span></strong>. Es el nombre del alumno.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">Facu</span></strong>. Almacena el nombre de la facultad del alumno.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">Carr</span></strong>. Contiene el nombre de la carrera que cursa el alumno.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">Sem</span></strong>. Variable que contiene el semestre que cursa el alumno en ese momento.</span></div></li>
</ul><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Definición de la Estructura.</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Obviamente, primero se define lo que es la estructura de tipo NODO para hacer referencia a cada nodo presente en la lista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">#define TAM 80</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">typedef struct nodo {</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>int ID,Sem; </span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char Name[TAM];</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char Facu[TAM];</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char Carr[TAM];</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>struct nodo *next; </span><span style="color: #6aa84f;"><strong>---->> Punto para enlace al nodo anterior </strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>struct nodo *prev; </span><span style="color: #6aa84f;"><strong>---->> Punto para enlace al nodo siguiente</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">} NODO;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Ingreso de Registros Nuevos: Nodos Nuevos</span></u></em></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para este proceso, que es el principal, tenemos la función <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">CrearNodo</i></b> donde usamos un puntero<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"> </i>Q</b> que se posiciona en la parte inicial de la lista.</span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;">NODO *CrearNodo(NODO *Q, NODO *list){</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>NODO *P, *R;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>int x;</span></span></div><span style="font-family: Arial, Helvetica, sans-serif;">Ya para este paso, habíamos asignado al primer <b style="mso-bidi-font-weight: normal;">ID</b> de la lista el valor de cero (0) con el propósito de usarlo como base para la organización de la lista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nosotros tenemos el conocimiento de que los elementos en una lista enlazada se van agregando como se van creando. En el caso de este proyecto no es asi, pues es ahí donde entra el valor cero del primer nodo de la lista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al querer crear un nodo nuevo e ingresar el <b style="mso-bidi-font-weight: normal;">ID</b> de esa nodo, nos topamos después con la siguiente instrucción:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">while (x > Q->ID) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>if (Q->next != NULL) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>Q = Q->next;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>} else if (Q->next == NULL) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La cual va a estar operando mientras el <b style="mso-bidi-font-weight: normal;">ID </b>nuevo que se ingresa sea mayor al último <b style="mso-bidi-font-weight: normal;">ID</b> presente en la lista enlazada.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La manera en que ira iterando este <b style="mso-bidi-font-weight: normal;">WHILE</b> es con la ayuda del <b style="mso-bidi-font-weight: normal;">IF-ELSE</b>, pues éste me dice que si el siguiente elemento es diferente de un valor <b style="mso-bidi-font-weight: normal;">NULO</b>, se pasará al valor del <b style="mso-bidi-font-weight: normal;">ID</b> del siguiente nodo y cuando llegue el momento en que el siguiente nodo sea un valor <b style="mso-bidi-font-weight: normal;">NULO</b> o que el <b style="mso-bidi-font-weight: normal;">ID</b> nuevo que ingresamos ya no sea mayor al <b style="mso-bidi-font-weight: normal;">ID</b> que se está tomando de base, el <b style="mso-bidi-font-weight: normal;">WHILE</b> se va a quebrar o invalidar.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Todo este rollo es sólo para posicionarnos en la parte donde vamos a crear el nodo en la lista enlazada.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora bien, para ya formalizar la creación de nuestro nodo y capturar todas las variables, tenemos el siguiente <b style="mso-bidi-font-weight: normal;">IF-ELSE</b>:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">if (x > Q->ID) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P = (NODO*)malloc(sizeof(NODO));<span style="mso-spacerun: yes;"> </span></span><span style="color: #6aa84f;"><strong>---->> Reserva de memoria</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->ID = x;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>captura(P);<span style="mso-tab-count: 1;"> </span></span><span style="color: #6aa84f;"><strong>---->> Función para la captura de la información</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->next = NULL;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->prev = Q;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q->next = P;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q = P;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>} else {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P = (NODO*)malloc(sizeof(NODO));<span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>R = Q;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q = Q->prev;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->ID = x;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>captura(P);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->prev = Q;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>P->next = R;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>R->prev = P;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q->next = P;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q = P;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí ya definimos oficialmente como va a quedar lo que es la posición completa del nodo que se va a crear: lectura de información, la reserva de memoria para ese nodo, la lectura de todas las variables y las secciones destinadas para apuntar al nodo anterior y el siguiente.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Propósito del orden de la lista.</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El propósito para que hayamos ordenado nuestra lista enlazada era para el uso apropiado de lo que era la función <b style="mso-bidi-font-weight: normal;">Búsqueda, Modificación de Registros, Eliminación de Nodos</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Todo parte desde la búsqueda, para la cual tenemos las siguientes instrucciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">while (dato != 0) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>if ((Q->ID > dato) || (Q->next == NULL) && (Q->ID < dato)) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>return NULL; </span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>} else if (Q->ID == dato) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>imprime(Q); </span><span style="color: #6aa84f;"><strong>--->> Función para imprimir el registro</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>switch (proceso) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span>case 1: {<span style="mso-spacerun: yes;"> </span>//FUNCION DE BUSQUEDA</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span>case 2: {<span style="mso-spacerun: yes;"> </span>//FUNCION DE MODIFICAR</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>modify(Q, dato);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>case 3: {<span style="mso-spacerun: yes;"> </span>//FUNCION PARA ELIMINAR</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>Borrar(Q, dato);<span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>} else if (dato != Q->ID) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q = Q->next;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primeramente comento que ya desde la función <b style="mso-bidi-font-weight: normal;">main</b> se le envio a esta función lo que es el valor de <b style="mso-bidi-font-weight: normal;">ID</b> que estamos tratando de localizar en la lista enlazada.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Tenemos la primer condición donde si el <b style="mso-bidi-font-weight: normal;">ID</b> que se está analizando es mayor al dato buscado o si es dicha condición junto con el hecho de que el siguiente nodo es un valor <b style="mso-bidi-font-weight: normal;">NULO, </b>regresará un valor falso, el cual sirve de base para decir que el elemento que se busca no existe.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De lo contrario, si no pasa lo antes mencionado, solo nos pasamos al siguiente nodo para seguir comparando.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Una vez que el <b style="mso-bidi-font-weight: normal;">ID </b><span style="mso-spacerun: yes;"> </span>que buscamos sea el mismo que el <b style="mso-bidi-font-weight: normal;">ID </b>del nodo donde nos ubicamos en ese instante, se imprimen los datos correspondientes y luego ya el programa sabrá si es una buscado, eliminación o modificación.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">¿Y el programa como sabrá que hacer en este paso?</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En lo que es la función <b style="mso-bidi-font-weight: normal;">main</b> estamos usando un <b style="mso-bidi-font-weight: normal;">switch</b> para cada acción que podemos realizar con la lista. Dependiendo del proceso que hayamos elegido desde <b style="mso-bidi-font-weight: normal;">main</b>, también se envía a nuestra función que realiza las <b style="mso-bidi-font-weight: normal;">búsquedas </b><span style="mso-spacerun: yes;"> </span>en la lista, una especia de dato predefinido que te indica que tipo proceso elegir.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Función Búsqueda</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">No tiene gracia. Su dato predefinido para realizar esta acción es el <b style="mso-bidi-font-weight: normal;">1</b>, por lo que al imprimir el registro localizado, sólo nos regresamos a <b style="mso-bidi-font-weight: normal;">main</b> y no pasa nada más.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Función Modificar</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Tenemos la siguiente función para esta acción:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">NODO *modify(NODO *Q, int modify) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 35.4pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">int op;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\t1. Nombre");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\t2. Facultad");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\t3. Carrera");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\t4. Semestre");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\n\tModificar---> ");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &op);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>switch(op){</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>case 1:{</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>lectura("Nombre Nuevo: ", Q->Name); </span><span style="color: #6aa84f;"><strong>--->> Función de<br />
captura</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"></span><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>case 2:{</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span>lectura("\nFacultad Nueva: ", Q->Facu);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>case 3:{</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span>lectura("\nCarrera Nueva: ", Q->Carr);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>case 4:{</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\nSemestre Nuevo: ");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>scanf(" %d", &(Q->Sem));</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>default:{</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\nEdicion NO Autorizada.\n");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 35.4pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí lo principal es mandar desde nuestra <b style="mso-bidi-font-weight: normal;">función</b> selectiva de procesos la dirección de memoria y el <b style="mso-bidi-font-weight: normal;">ID</b> del nodo que hemos localizado para poder modificarlo; es nada más de sobre escribir el dato o la variable que deseemos utilizando la dirección de memoria ya ubicada.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Función Eliminar</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en la función de modificar, desde la <b style="mso-bidi-font-weight: normal;">función</b> selectiva de procesos mandamos la dirección de memoria y el <b style="mso-bidi-font-weight: normal;">ID</b> del registro o nodo localizado a la función para depurar los nodos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">void Borrar(NODO *Q, int borrar) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char answer;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>NODO *ant, *aux;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\nEliminar Registro [Y/N]: ");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>scanf("%s", &answer);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>if (answer == 'Y' || answer == 'y') {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>aux = Q;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>ant = Q->prev;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>if (aux->next == NULL) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>ant->next = NULL;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>free(aux); </span><span style="color: #6aa84f;"><strong>--->> Liberar espacio en memoria<br />
de aux</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\n----->> Registro eliminado\n");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>} else {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>ant->next = aux->next;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q = Q->next;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>Q->prev = ant;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>free(aux);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\n----->> Registro eliminado\n");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>} else {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\n----->> Registro NO eliminado\n");</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí es donde se me hizo más interesante. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nosotros tenemos dos casos: cuando el nodo a eliminar está al final de la lista o en una parte media.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para ambos casos necesitamos dos punteros de tipo NODO: <b style="mso-bidi-font-weight: normal;">ant</b> y <b style="mso-bidi-font-weight: normal;">aux</b>. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el caso de que el nodo a eliminar se encuentre al final de la lista tenemos las operaciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">aux = Q; </span><span style="color: #6aa84f;"><strong>------------------->>> Paso 1</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">ant = Q->prev; </span><span style="color: #6aa84f;"><strong>------------->>> Paso 2</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="mso-spacerun: yes;"> </span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">if (aux->next == NULL) { <strong><span style="color: #6aa84f;">--->>> Elemento a eliminar es el último</span></strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 35.4pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">ant->next = NULL; <strong><span style="color: #6aa84f;">---->>> Paso 3</span></strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span>free(aux); <span style="color: #6aa84f;"><strong>-->>> Paso 4</strong></span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">}</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De manera gráfica sería lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 1:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifm9tgzhOYCHd7vCtxZU0X-9X2h7C2ebFLCIbGBwnZVpU9jGqdzQss38yXeX13A1aS8UlmoQ6xBHqUYBIvHTLFZaJPMBaz3ma8eyrlfDguqQn8CeDz4zZQyq5-lnaPAZoN-0QSQxrem0gU/s1600/01.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifm9tgzhOYCHd7vCtxZU0X-9X2h7C2ebFLCIbGBwnZVpU9jGqdzQss38yXeX13A1aS8UlmoQ6xBHqUYBIvHTLFZaJPMBaz3ma8eyrlfDguqQn8CeDz4zZQyq5-lnaPAZoN-0QSQxrem0gU/s400/01.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 2:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAUcZFgMb6trUvz6emwGMxOsuD-eProP-0Pga0ApKLOzdtq9vN_EA38SB8V4VuGs_oMecOeZe97hHtqezlqWqiWvlX0WtITci66FUCKRCwYmKaDEb011rS2PgipUwrjWGefXjyjHwt5BOp/s1600/02.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="123" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAUcZFgMb6trUvz6emwGMxOsuD-eProP-0Pga0ApKLOzdtq9vN_EA38SB8V4VuGs_oMecOeZe97hHtqezlqWqiWvlX0WtITci66FUCKRCwYmKaDEb011rS2PgipUwrjWGefXjyjHwt5BOp/s400/02.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 3:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBIpO2G4GjVihQuCDBLtEi3wRFshXSgerqVsIT6g6fa941t1LDql6qYP4r1brFipHBjbHjGsHTcRNCxOFkL62xCW7LPdkXi36WP0kx-1TewCoTw0Do0Z6hhab4zmFG_q7Bsv89LNxVZVyA/s1600/03.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBIpO2G4GjVihQuCDBLtEi3wRFshXSgerqVsIT6g6fa941t1LDql6qYP4r1brFipHBjbHjGsHTcRNCxOFkL62xCW7LPdkXi36WP0kx-1TewCoTw0Do0Z6hhab4zmFG_q7Bsv89LNxVZVyA/s400/03.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 4:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Y4fE9U-D-eb2zT_5A2OMgKpaBKhv8ikRi0hiXkV8gdWKRhwcFjY-uxyj2VLjqktG_KRs3VRtwaLTgienXIJhXdhtcZ3de57F4HH_CNttWaIFxwRbLLpDyo305bJ063QuNVC3Ih0ipD4L/s1600/04.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="186" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Y4fE9U-D-eb2zT_5A2OMgKpaBKhv8ikRi0hiXkV8gdWKRhwcFjY-uxyj2VLjqktG_KRs3VRtwaLTgienXIJhXdhtcZ3de57F4HH_CNttWaIFxwRbLLpDyo305bJ063QuNVC3Ih0ipD4L/s400/04.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">En el caso de que el nodo a eliminar se encuentra en la parte media sería con los siguientes pasos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">aux = Q; </span><span style="color: #6aa84f;"><strong>---------------------------->>> Paso 1</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">ant = Q->prev; </span><span style="color: #6aa84f;"><strong>---------------------->>> Paso 2</strong></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Agregamos la parte del <b style="mso-bidi-font-weight: normal;">else</b> del if</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">ant->next = aux->next; <span style="color: #6aa84f;"><strong>-------------->>> Paso 3</strong></span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">Q = Q->next; <span style="color: #6aa84f;"><strong>------------------------>>> Paso 4</strong></span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">Q->prev = ant; <span style="color: #6aa84f;"><strong>---------------------->>> Paso 5</strong></span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">free(aux); <span style="color: #6aa84f;"><strong>-------------------------->>> Paso 6</strong></span></span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En dibujito sería:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 1:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzSxcD2qHO-OHCCuhFmCjdF5VfdDP_NiCa7Mn2hwTe9ldjQo9KlUfCbMHBtyeAp2afcHcHMxcvU8LfLWp_ZGpmcYBnKCwGbazq08z5qgGIrwuqIo4XurcaIbsDhldL6R-pZyjF8V15L6bm/s1600/05.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="110" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzSxcD2qHO-OHCCuhFmCjdF5VfdDP_NiCa7Mn2hwTe9ldjQo9KlUfCbMHBtyeAp2afcHcHMxcvU8LfLWp_ZGpmcYBnKCwGbazq08z5qgGIrwuqIo4XurcaIbsDhldL6R-pZyjF8V15L6bm/s400/05.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 2:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUE9_9TRyAN7e1Ffe3cm0nSUn4e8rQ81YOdqFgjJNbAvl0a1uJJ4MHBdEe-boKh6ADv15LJJ8vYKHHwkQROmObzXMti8cL0_U3YNQ7KFSLivnxNRtk7ep4IZK8Rq3ngyFxfBgP3ndN1Tw/s1600/06.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="106" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyUE9_9TRyAN7e1Ffe3cm0nSUn4e8rQ81YOdqFgjJNbAvl0a1uJJ4MHBdEe-boKh6ADv15LJJ8vYKHHwkQROmObzXMti8cL0_U3YNQ7KFSLivnxNRtk7ep4IZK8Rq3ngyFxfBgP3ndN1Tw/s400/06.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 3:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuQ3HdPKeNIQJ4hGA599stz8RpeTDxwajXabaL8_LTkCgRDtOg6O3FhskrK_W9sU7iSA_Na2OqBMlm9XRYDTh0ZSKlzWE3xy3vUbmtTZQbo6AQ2iWh-VVlRReywvhZ28BXuj_yf6WJ8Mhi/s1600/07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="112" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuQ3HdPKeNIQJ4hGA599stz8RpeTDxwajXabaL8_LTkCgRDtOg6O3FhskrK_W9sU7iSA_Na2OqBMlm9XRYDTh0ZSKlzWE3xy3vUbmtTZQbo6AQ2iWh-VVlRReywvhZ28BXuj_yf6WJ8Mhi/s400/07.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 4:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP265d7AI7CroSIYVgzsaJ9KSHzfZas35oenKLsj4NYPybH7zyBzKaI2SLduGWKiy4Bz-JxN_5lk5hokmSVj1oMGklZSsljlUyG4MqsADnMQdo0hOP7KTQgmrmY0wbmNfoIEjj9kVjNjAa/s1600/08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="137" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP265d7AI7CroSIYVgzsaJ9KSHzfZas35oenKLsj4NYPybH7zyBzKaI2SLduGWKiy4Bz-JxN_5lk5hokmSVj1oMGklZSsljlUyG4MqsADnMQdo0hOP7KTQgmrmY0wbmNfoIEjj9kVjNjAa/s400/08.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 5:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="color: #b45f06;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlPnHUBiTPIJfcoGLzQLxQzGFKNxf0CYjCHy5LpLDT644lY4Bc9Aq8xzrjHpeyniZl7LJkkQRveoQrLMFr1ra7AxopF-Y1YgRURAIpLqXJvKP866QBsxYO9rfWot9W3K-DcGXafwspwYWY/s1600/09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="162" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlPnHUBiTPIJfcoGLzQLxQzGFKNxf0CYjCHy5LpLDT644lY4Bc9Aq8xzrjHpeyniZl7LJkkQRveoQrLMFr1ra7AxopF-Y1YgRURAIpLqXJvKP866QBsxYO9rfWot9W3K-DcGXafwspwYWY/s400/09.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #b45f06;">Paso 6:</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVJT0vJPcc1hVG31Q0KLFv441zGw9Sk_Dw02Q5vqULrLJ3x-KkMYuoK-WbhVPnUmW7CHyEwDPPTyu25DzfmpEfodyHJJPE6CHxga0tR_TKlKZTRgZ-sDfYySvmwotncqvYtBUNYxAUlcmH/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVJT0vJPcc1hVG31Q0KLFv441zGw9Sk_Dw02Q5vqULrLJ3x-KkMYuoK-WbhVPnUmW7CHyEwDPPTyu25DzfmpEfodyHJJPE6CHxga0tR_TKlKZTRgZ-sDfYySvmwotncqvYtBUNYxAUlcmH/s400/10.jpg" width="400" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Arial, Helvetica, sans-serif;">A grandes rasgos esos son los procesos que realiza este programa.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span></div></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-70817394796680010352010-11-22T06:03:00.000-08:002010-11-22T06:03:27.338-08:00.: Punteros: Parte I :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Punteros: Procesos Básicos ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Hola de nuevos compañeros; en las próximas entradas estaremos recordando cosas del semestre pasado. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primeramente comenzare por hablar de los punteros.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">Definición</span></u></em></strong>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Antes de explicar en forma práctica cómo funcionan los punteros vamos a ver la definición.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Definimos un puntero o apuntador como una variable que únicamente hace referencia a una región de memoria. Podemos verlo también como una variable cuyo valor es una dirección de memoria a la cual está señalando.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Generalmente los punteros se usan al momento de que nosotros creamos nuestras propias estructuras de datos, se usan en pilas, colas, listas, grafos, árboles, etc.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En los “Arrays” también son utilizados, pero de una manera más implícita. De hecho yo diría que más que apuntadores que nosotros declaramos, son sólo índices van junto con loa “arrays” al declararlos para poder estar accesando a cada elemento del arreglo, pero eso es otra historia.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Caso Práctico</span></u></em></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sé que el siguiente programa no es ninguna estructura de datos, pero el objetivo de esta entrada es demostrar cómo funcionan los apuntadores o punteros.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Declaro que me estaré basando en un programa creado en cierta clase de Estructura de Datos a la cual me “cole” el semestre pasado.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primeramente, nosotros declaramos las siguientes variables enteras:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">int x = 3, y = 7, z[5] = {2,4,6,8,10};</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero además, nosotros declarmos nuestro puntero <b style="mso-bidi-font-weight: normal;">P</b> de tipo entero. Menciono que los punteros se declaran como cualquier variable, con la diferencia de que se le antepone un asterisco <b style="mso-bidi-font-weight: normal;">(*)</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">int *P;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;">Si mandamos a imprimir nuestras variables enteras, tendremos el siguiente resultado (línea 1):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="Imagen_x0020_1" o:spid="_x0000_i1033" style="height: 70.5pt; mso-wrap-style: square; visibility: visible; width: 411pt;" type="#_x0000_t75"><imagedata cropbottom="48105f" cropleft="16413f" cropright="24589f" croptop="10385f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaC_2VS1AQHgL3Xbaq6rT7dDgYEQ_AzTiMxEYF3cPmkxBatFr7cpRItuvRF0HVNpvFNXnS2ghyphenhyphenPBExRQWkgrYl2VIkWejKqLKsD6qft7MDrsruBZhu7WafQJDLHs5h1-uz8QgNyfcT7NAD/s1600/Imagen1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="65" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaC_2VS1AQHgL3Xbaq6rT7dDgYEQ_AzTiMxEYF3cPmkxBatFr7cpRItuvRF0HVNpvFNXnS2ghyphenhyphenPBExRQWkgrYl2VIkWejKqLKsD6qft7MDrsruBZhu7WafQJDLHs5h1-uz8QgNyfcT7NAD/s400/Imagen1.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Como pueden observar no es gran ciencia, sólo se imprimen las variables antes declaradas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora, veremos las siguientes instrucciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = &x; </span><span style="color: #6aa84f;"><strong>----->> Aquí definimos que el puntero tendrá el valor de<br />
la dirección de memoria que tiene “x”</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">y = *P;<span style="mso-spacerun: yes;"> </span></span><span style="color: #6aa84f;"><strong>----->> Ahora decimos que “y” tendrá el valor que posee<br />
nuestro apuntador.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">*P = 1;<span style="mso-spacerun: yes;"> </span></span><strong><span style="color: #6aa84f;">----->> En esta parte decimos que “P” tendrá el valor de<br />
“1”.</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;">Al imprimir resultados tendremos (ver línea dos):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_2" o:spid="_x0000_i1032" style="height: 111.75pt; mso-wrap-style: square; visibility: visible; width: 376.5pt;" type="#_x0000_t75"><imagedata cropbottom="42913f" cropleft="16287f" cropright="24478f" croptop="10384f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNE1Bss3TBiQe4zcKExlylugXlgJ73rGDyEQmLZphCM0o926GMbN8FWcwUoNW1pWBr4FUE8OII1gB_LeWZ2og1HmPa9V5bBf1wBw3AnqyR6s_Miy7-e095xJBdxWwelZhJpuqs5j6pxxuA/s1600/Imagen2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="116" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNE1Bss3TBiQe4zcKExlylugXlgJ73rGDyEQmLZphCM0o926GMbN8FWcwUoNW1pWBr4FUE8OII1gB_LeWZ2og1HmPa9V5bBf1wBw3AnqyR6s_Miy7-e095xJBdxWwelZhJpuqs5j6pxxuA/s400/Imagen2.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Como pueden ver, sólo se le asignó el valor de la dirección de memoria a la que señalaba el apuntador a la variable <b style="mso-bidi-font-weight: normal;">y</b>, no es que el puntero se haya movido a la variable <b style="mso-bidi-font-weight: normal;">y</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como <b style="mso-bidi-font-weight: normal;">P</b> sigue posicionado en la dirección de <b style="mso-bidi-font-weight: normal;">x</b>, al momento de alterar el valor del apuntador, lo que se altero fue el valor de la dirección de memoria, que es en sí el valor de <b style="mso-bidi-font-weight: normal;">x</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nuevamente tenemos los siguientes cambios:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = &z[2]; </span><span style="color: #6aa84f;"><strong>----->> Aquí ya cambiamos la dirección de memoria del<br />
puntero, pues ya los colocamos sobre la<br />
dirección del elemento “2” del arreglo “z”.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">y = *P; </span><span style="color: #6aa84f;"><strong>----->> Le asignamos a “y”<span style="mso-spacerun: yes;"> </span>el valor de la dirección<br />
actual del puntero.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">*P = 15 </span><span style="color: #6aa84f;"><strong>--->> Alteramos el valor de la dirección de memoria del<br />
puntero.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;">Veamos cómo se verá esto (línea 3):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_3" o:spid="_x0000_i1031" style="height: 96.75pt; mso-wrap-style: square; visibility: visible; width: 428.25pt;" type="#_x0000_t75"><imagedata cropbottom="37721f" cropleft="16245f" cropright="24145f" croptop="18347f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZAmAFYC8vgo0U7uILra35No6fg3Be5m13Tq05buSuXayFKCl9WSVgcdC1tLfCUNnVIIR43EvmSZd_UCUDHPDbj7wAuSrasG1NRHZmPkmQLJx1yRFY7NB1i8juD2L-iUBp2dzVWyYVL2Y7/s1600/Imagen3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="90" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZAmAFYC8vgo0U7uILra35No6fg3Be5m13Tq05buSuXayFKCl9WSVgcdC1tLfCUNnVIIR43EvmSZd_UCUDHPDbj7wAuSrasG1NRHZmPkmQLJx1yRFY7NB1i8juD2L-iUBp2dzVWyYVL2Y7/s400/Imagen3.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Recuerden que <b style="mso-bidi-font-weight: normal;">P</b> se encuentra sobre <b style="mso-bidi-font-weight: normal;">z[2]</b>. Al asignar a <b style="mso-bidi-font-weight: normal;">y</b> el valor de <b style="mso-bidi-font-weight: normal;">P</b>, se le asigna el valor del segundo elemento del arreglo, y al alterar el valor del puntero, alteramos el valor del elemento 2 de nuestro arreglo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Veamos ahora que pasa con lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">x = *P + 5; </span><span style="color: #6aa84f;"><strong>----->> A “x” se le asigna el valor de la dirección<br />
del memoria añadiendo “5”</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">*P = *P - 5; </span><span style="color: #6aa84f;"><strong>----->> La dirección de memoria al que se señala<br />
actualmente se le resta el valor de “5”.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Estas operaciones serían así (línea 4):</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6HR4iD7qUdkEKdNZVsiVMgv4xgtD6KrxMybyodJ7Wcgg72WUIHWYSxwvoSmLnAJ7WZtA8Zdfph7N8S-jMRpCUJZduzUNBWm80yTeZhrJ6YmTOTJjGQaXuC601zYgWnHGRdujGjEh_4x7o/s1600/Imagen4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="90" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6HR4iD7qUdkEKdNZVsiVMgv4xgtD6KrxMybyodJ7Wcgg72WUIHWYSxwvoSmLnAJ7WZtA8Zdfph7N8S-jMRpCUJZduzUNBWm80yTeZhrJ6YmTOTJjGQaXuC601zYgWnHGRdujGjEh_4x7o/s400/Imagen4.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Recordemos que <b style="mso-bidi-font-weight: normal;">P</b> aún está sobre <b style="mso-bidi-font-weight: normal;">z[2]</b>; por lo tanto, al asignar a <b style="mso-bidi-font-weight: normal;">x</b> el valor actual de <b style="mso-bidi-font-weight: normal;">P + 5</b> es lo mismo que asignarle <b style="mso-bidi-font-weight: normal;">15 + 5 = 20</b>, como lo pueden apreciar. Pero observen que el valor del puntero no se esta alterando.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cuando llega a <b style="mso-bidi-font-weight: normal;">P – 5</b>, aquí si estamos alterando el valor de <b style="mso-bidi-font-weight: normal;">P</b> y por consiguiente el valor de la dirección de memoria que viene siendo la variable <b style="mso-bidi-font-weight: normal;">z[2] = 15 -5 = 10</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pasemos a las siguientes operaciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">++*P; </span><span style="color: #6aa84f;"><strong>----->> Incrementamos en una unidad el valor de la<br />
dirección actual de nuestro apuntador</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>*P += 1; </span><span style="color: #6aa84f;"><strong>----->> Nuevamente incrementamos el valor de nuestro<br />
puntero en una unidad.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De modo que tendremos el siguiente resultado (línea 5):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_5" o:spid="_x0000_i1029" style="height: 102pt; mso-wrap-style: square; visibility: visible; width: 465pt;" type="#_x0000_t75"><imagedata cropbottom="29376f" cropleft="17177f" cropright="23032f" croptop="26888f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image008.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXsk-CwEMZi-0DOhXZzRWPOryVFG-2EKwGXz5kJTmXrKplIESv4JcCVCaFI9OPp7ycVFSxJgRf4TNznMth5AzlfX1h_LzwoPCBS8XvsBSCi4gk3BhWgdzpb9dBEim7VitJVYg1EJpjlh4N/s1600/Imagen5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="86" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXsk-CwEMZi-0DOhXZzRWPOryVFG-2EKwGXz5kJTmXrKplIESv4JcCVCaFI9OPp7ycVFSxJgRf4TNznMth5AzlfX1h_LzwoPCBS8XvsBSCi4gk3BhWgdzpb9dBEim7VitJVYg1EJpjlh4N/s400/Imagen5.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Hagamos recordatorio que <b style="mso-bidi-font-weight: normal;">P</b> aún está en la dirección de memoria de z<b style="mso-bidi-font-weight: normal;">[2] = 10</b>; por lo que al aumentar dos veces en una unidad el valor del puntero, es lo mismo que tener <b style="mso-bidi-font-weight: normal;">10 + 1 + 1 = 12</b>, como pueden verlo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nuevamente, haciendo los siguientes cambios:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">x = *(P + 1) </span><span style="color: #6aa84f;"><strong>----->> Movemos el apuntador una posición hacía<br />
adelante.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">y = *P; </span><span style="color: #6aa84f;"><strong>----->> Asignamos el valor actual del puntero a la<br />
variable “y”.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al imprimir tendremos (línea 6):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_6" o:spid="_x0000_i1028" style="height: 100.5pt; mso-wrap-style: square; visibility: visible; width: 456pt;" type="#_x0000_t75"><imagedata cropbottom="39204f" cropleft="17246f" cropright="23032f" croptop="17060f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image010.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiiKxSNh9oiJIhbDT0qC5bU9IfOgVfdokyAH4wjq13_deA6TQThNU4vp00A4TBbvwWiPs9QnVPeeE9r3r_qaqxsGo7JfvC444XqCQsQnZ3pnNNonNFdglzq3xch9Hw15KKdZpQqWW5Gfrg/s1600/Imagen6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="86" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiiKxSNh9oiJIhbDT0qC5bU9IfOgVfdokyAH4wjq13_deA6TQThNU4vp00A4TBbvwWiPs9QnVPeeE9r3r_qaqxsGo7JfvC444XqCQsQnZ3pnNNonNFdglzq3xch9Hw15KKdZpQqWW5Gfrg/s400/Imagen6.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">No se confundan, escribir “<b style="mso-bidi-font-weight: normal;">x = *P + 1”</b> es sólo sumar <b style="mso-bidi-font-weight: normal;">“1”</b> al valor del puntero, pero en sí, colocar <b style="mso-bidi-font-weight: normal;">“P + 1”</b>, estamos incrementando en una unidad la dirección de memoria, NO SU VALOR; es decir, la estamos moviendo una posición hacía adelante para asignarle ese valor a <b style="mso-bidi-font-weight: normal;">x.</b></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">OJO</i></b>, no hemos indicado que <b style="mso-bidi-font-weight: normal;">P </b>se posicione en la dirección de memoria de <b style="mso-bidi-font-weight: normal;">z[3]</b>. Para eso tendríamos que poner <b style="mso-bidi-font-weight: normal;">P = &z[3]</b>, lo cual no hemos hecho. Aún el puntero está sobre <b style="mso-bidi-font-weight: normal;">z[2] = 12</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Si se dan cuenta, el <b style="mso-bidi-font-weight: normal;">&</b> hace la función como de asignación de dirección de memoria para que los punteros se sitúen en ella.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En fin, pasemos a lo siguiente (línea 7):</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOvTJ5dg3wy42tN8iNJmd5xQkOfYEJdw79CLYOXF_hSb2maK83TZKkzaxpajxtQkc2yuDyxINyAZnSU6b0b2mHeM896nabwEsRtxVcjKgv16zwD0dyZgw3nVAG9bLOiOOencgRJRztPZbu/s1600/Imagen7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="87" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOvTJ5dg3wy42tN8iNJmd5xQkOfYEJdw79CLYOXF_hSb2maK83TZKkzaxpajxtQkc2yuDyxINyAZnSU6b0b2mHeM896nabwEsRtxVcjKgv16zwD0dyZgw3nVAG9bLOiOOencgRJRztPZbu/s400/Imagen7.jpg" width="400" /></a></div><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = P + 1; </span><span style="color: #6aa84f;"><strong>----->> Volvemos a mover una posición hacía adelante<br />
la dirección de memoria de “P”</strong></span></span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">y = *P; </span><span style="color: #6aa84f;"><strong>----->> Asignamos el valor de “P” a la variable “y”.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Y los resultados son…</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_7" o:spid="_x0000_i1027" style="height: 96.75pt; mso-wrap-style: square; visibility: visible; width: 431.25pt;" type="#_x0000_t75"><imagedata cropbottom="34923f" cropleft="18725f" cropright="21475f" croptop="21140f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image012.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Haciendo énfasis nuevamente, <b style="mso-bidi-font-weight: normal;">P</b> sigue situado en la posición <b style="mso-bidi-font-weight: normal;">z[2] = 12</b>. Nuevamente movimos una posición la dirección del puntero en una unidad; es decir, movimos el puntero a <b style="mso-bidi-font-weight: normal;">z[3] = 8</b> con el único propósito de asignarle ese valor a la variable <b style="mso-bidi-font-weight: normal;">y</b>. INSISTO, <b style="mso-bidi-font-weight: normal;">P</b> NO está guardando la dirección de memoria de <b style="mso-bidi-font-weight: normal;">z[3]</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Continuamos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = P + 4; <span style="color: #6aa84f;"><strong>----->> Movemos “P” cuatro posiciones en el arreglo<br />
hacia </strong></span></span><span style="color: #6aa84f;"><strong>adelante</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>y = *P; <strong><span style="color: #6aa84f;">----->> Asignamos el valor de la posición ahora señalada<br />
a la variable </span><span style="color: #6aa84f;">“y</span></strong></span><span style="color: #6aa84f;">”.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Mostramos en pantalla (línea 8):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_8" o:spid="_x0000_i1026" style="height: 87.75pt; mso-wrap-style: square; visibility: visible; width: 434.25pt;" type="#_x0000_t75"><imagedata cropbottom="36408f" cropleft="18725f" cropright="20918f" croptop="20398f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image014.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZU9xN9rowmEqIQ5SiH6KCJI0mHsHOGK7JID_f9rib1wPryK9vvLQONgY0POgEwPV-yGxare1d8sbV38ejKIatevVT70a1KI8_0LhPyyxpwD8MNF5BBq4uqnClIGjSrxLyAh9sIWMtn4y/s1600/Imagen8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="80" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNZU9xN9rowmEqIQ5SiH6KCJI0mHsHOGK7JID_f9rib1wPryK9vvLQONgY0POgEwPV-yGxare1d8sbV38ejKIatevVT70a1KI8_0LhPyyxpwD8MNF5BBq4uqnClIGjSrxLyAh9sIWMtn4y/s400/Imagen8.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Va de nuevo: EL PUNTERO SIGUE SOBRE <b style="mso-bidi-font-weight: normal;">Z[2] = 12</b>. Otra vez movimos cuatro posiciones hacía adelante en el arreglo para asignar el valor señalado a <b style="mso-bidi-font-weight: normal;">y</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como podemos ver <b style="mso-bidi-font-weight: normal;">y = 152</b> (?).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Pero qué paso? ¿De dónde “$%&!!#/%$” salió ese 152?</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Fácil. <b style="mso-bidi-font-weight: normal;">P</b> estaba situado en la posición <b style="mso-bidi-font-weight: normal;">2</b> de nuestro arreglo de tamaño <b style="mso-bidi-font-weight: normal;">5</b>. Al movernos cuatro posiciones, debimos llegar a la posición <b style="mso-bidi-font-weight: normal;">6</b> del arreglo, la cual no existe.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Pero entonces de dónde obtuvo <b style="mso-bidi-font-weight: normal;">P </b>ese 152? Podemos decir que es sólo un valor “basura” que estaba volando por ahí, o un valor extraviado sin ubicación fija. O podemos verlo como un valor imaginario creado por generación espontánea por parte de nuestro sistema operativo. O quizás quiere surgir SKYNET de nuestra computadora y genero este valor extraño de dudosa procedencia. (De acuerdo, ya me aloque. Veo muchas películas de repente de acuerdo. Tomen en cuenta que estoy un poco cansado).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Por si ya se dieron cuenta, estoy ejecutando este código en Windows 7, así que tal vez quieran echarle la culpa a Windows, ¿quién sabe? Si no estoy en Linux es porque perdí el grub y no puedo accesar a UBUNTU.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero en fin, hasta para mí es una incógnita los orígenes<span style="mso-spacerun: yes;"> </span>reales de este valor. Si alguien tiene una fuente más cuerda de éste origen, por favor compártala.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Prosiguiendo con el código, veamos por último lo siguiente (línea 9):</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXvs2OQzhXv_UGa75PPA0NJ-oc9s2qiAV_oH4o2U0yFMIQBA5J6wWHpZsmqEUNj1Q98KiUfMo6YUpxF4_Q8VzQLvfSiPMUlC-0jbXNRduxvImmFGrjpLjIKkdb4PrpESSGxVDOeAWIYGq/s1600/Imagen9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="82" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJXvs2OQzhXv_UGa75PPA0NJ-oc9s2qiAV_oH4o2U0yFMIQBA5J6wWHpZsmqEUNj1Q98KiUfMo6YUpxF4_Q8VzQLvfSiPMUlC-0jbXNRduxvImmFGrjpLjIKkdb4PrpESSGxVDOeAWIYGq/s400/Imagen9.jpg" width="400" /></a></div><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = &x; </span><span style="color: #6aa84f;"><strong>----->> Ahora cambiamos la posición de “P”. Nuevamente<br />
colocamos el puntero en la dirección de memoria<br />
de “x”</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">P = P + 1; </span><strong><span style="color: #6aa84f;">----->> Movemos una posición en la dirección de<br />
memoria a “P”.</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">x = *P; </span><span style="color: #6aa84f;"><strong>------>> Asignamos el valor ahora señalado a “x”.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En pantalla tendremos (línea 9):</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_9" o:spid="_x0000_i1025" style="height: 89.25pt; mso-wrap-style: square; visibility: visible; width: 422.25pt;" type="#_x0000_t75"><imagedata cropbottom="30118f" cropleft="20028f" cropright="19695f" croptop="26332f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image016.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Ahora qué sucedió? Bueno, tengo dos hipótesis para esto. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primero notemos que ahora que <b style="mso-bidi-font-weight: normal;">P</b> se sitúo sobre la dirección de memoria de <b style="mso-bidi-font-weight: normal;">x</b>, tenemos que <b style="mso-bidi-font-weight: normal;">P</b> se movió de posición en una unidad para asignar el valor señalado a <b style="mso-bidi-font-weight: normal;">x</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Yo veo dos posibilidades:</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font-family: "Times New Roman";"> </span></span></span>De nuevo se salió a un sitio que no existe como nuestro caso pasado en el arreglo colocando un valor “basura” a <b style="mso-bidi-font-weight: normal;">x</b> que curiosamente es el mismo que tenía en un principio.</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font-family: "Times New Roman";"> </span></span></span>Como <b style="mso-bidi-font-weight: normal;">x</b> no es un arreglo, ni ninguna estructura de datos, en realidad el puntero no se movió a ninguna parte y por eso asigno el mismo valor que tenía <b style="mso-bidi-font-weight: normal;">x</b> a la dirección de memoria donde se encontraba. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La verdad es que en este punto, el tema se me convirtió en un misterio para mí mismo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Espero que les haya servido esta información. A continuación les dejo el código de este programa más abajo. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier comentario es bienvenido (y vaya que siento que deje abierto para varios comentarios o eso creo).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-38607366270780172232010-11-22T05:56:00.000-08:002010-11-22T06:00:28.924-08:00.: Lenguajes Orientado a Objetos :.<div class="Default" style="margin: 0cm 0cm 10pt;"><i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Lenguajes Orientados A Objetos ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<br />
</div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">En esta entrada hablare sobre lo que fueron mis tres programas hechos orientados a objetos</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Les recuerdo que los programas podran descargarlos dando clic sobre los nombres.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">El programa de C++ es una carpeta comprimida zip, pues está la implementación separada del código.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><u><span lang="ES" style="font-family: "Arial", "sans-serif"; line-height: 115%;"><span style="font-size: large;"><span style="color: #0b5394;">C++</span></span></span></u></i></b></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Nombre</span>.</span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzYzhmMWIzNDctZTIyMi00MWViLWEyNDgtYzYwNTYwOTU0NmM1&export=download&authkey=CMS1iK4K&hl=en"><strong>Camino</strong></a>.<span style="color: white;">zip</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Descripción</span>.</span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"> <span style="color: white;">Este programa únicamente te calcula cuántos kilómetros de distancia te faltan para llegar a tu destino dependiendo de la cantidad a recorrer, la distancia que avanzas y la distancia que te regresas.</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi5ebnJZP2EXWNl_cEXKmo3xWXsp7jzEIUUJiCpyY2KXyDGsTjxZgflCX060OUB3U10PHURE7f7HH6bmQ3a3x5COj0gyOrJfEd7AaCFRcQBZdwmMo0v1XIU7f8jafX4qn5PzKGEX646jLX/s1600/c%252B%252B1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="243" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi5ebnJZP2EXWNl_cEXKmo3xWXsp7jzEIUUJiCpyY2KXyDGsTjxZgflCX060OUB3U10PHURE7f7HH6bmQ3a3x5COj0gyOrJfEd7AaCFRcQBZdwmMo0v1XIU7f8jafX4qn5PzKGEX646jLX/s400/c%252B%252B1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Captura</span></em></strong></td></tr>
</tbody></table><span style="color: white;"> <span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Además de eso, no todo se queda en números pues te puede decir si ya te pasaste y por cuanta distancia; o si aun no llegas, además de cuánta distancia te falta.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCzO5zh5Ivr72Nhqvp8rXHEuMYhBgLaPYExU7yrF09nhVOYKKfCzaV3-DCiISN3thi3R0I3s8xeVj4_fLh8wCRzaC82gC6VVf9DPGi-a-EP-dfBWEiiAbjmmyOzU-a8uHG9G2K-Wq_gfA/s1600/c%252B%252B2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcCzO5zh5Ivr72Nhqvp8rXHEuMYhBgLaPYExU7yrF09nhVOYKKfCzaV3-DCiISN3thi3R0I3s8xeVj4_fLh8wCRzaC82gC6VVf9DPGi-a-EP-dfBWEiiAbjmmyOzU-a8uHG9G2K-Wq_gfA/s400/c%252B%252B2.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Resultado</span></em></strong></td></tr>
</tbody></table> <span style="color: white;"> <span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Para correr el programa debes de teclear:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Courier New"; font-size: 11pt; line-height: 115%;"><span style="color: #bf9000;">g++ apli.cpp camino.cpp</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Courier New"; font-size: 11pt; line-height: 115%;"><span style="color: #bf9000;">./a.out</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><u><span lang="ES" style="font-family: "Arial", "sans-serif"; line-height: 115%;"><span style="color: #0b5394;"><span style="font-size: large;">Python</span></span></span></u></i></b></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Nombre</span></span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">. <a href="https://docs.google.com/uc?id=0B3_-USmqViKzY2FkMDM3OGEtMGM0ZC00ODY5LWFhN2MtYzQwYmM0YTYzNzA3&export=download&authkey=CPbg8ooM&hl=en"><strong>CDS</strong></a>.<span style="color: white;">py</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Descripción</span></span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">. <span style="color: white;">Basado en el programa de Cuenta.py, le dices al programa cuantos discos de música discos de música estás adquiriendo para tu estuche de 400 discos dependiendo de la clasificación que te está preguntando.</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFK9fZRX9poyJs3awhJtKNavxOCrYw3kk6sciz_kNEdUBRNfIGFWAOW4uFqxbX7DrC55pohp3iEUd30ckdEhWlSYNrJh8bUz2d4AX6__KMWxgljTqE6NZD93e31QIZuQiy3JOYQNlntT1N/s1600/py1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFK9fZRX9poyJs3awhJtKNavxOCrYw3kk6sciz_kNEdUBRNfIGFWAOW4uFqxbX7DrC55pohp3iEUd30ckdEhWlSYNrJh8bUz2d4AX6__KMWxgljTqE6NZD93e31QIZuQiy3JOYQNlntT1N/s400/py1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Entrada</span></em></strong></td></tr>
</tbody></table> <span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Pero no solo eso, pues también estamos hablando que te pregunta por discos que le sacas al estuche dependiendo de cierta claseficación.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxL5ivpBjCW-7_vhoIQP19xSdegn39fR3ljI9ocC0raT35bMZlRJWxW_EHHYwVIVyHvBA5aQxxiyr3hnsldz5Sy8chWy4Uz2CsuVySsw-tOuVtU7PocFsKq5_RAkwiAd_jXGk3nftBq9P0/s1600/py2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxL5ivpBjCW-7_vhoIQP19xSdegn39fR3ljI9ocC0raT35bMZlRJWxW_EHHYwVIVyHvBA5aQxxiyr3hnsldz5Sy8chWy4Uz2CsuVySsw-tOuVtU7PocFsKq5_RAkwiAd_jXGk3nftBq9P0/s400/py2.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Salida</span></em></strong></td></tr>
</tbody></table><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Al final te da el contenido de tu estuche, como el resultado de balance si es que decides no hacer un nuevo conteo por si te equivocaste en el primero.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: white;"> </span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xrrUKtqz9jb2wUpSJnbE_j5UTDCkqVodydzKy2UsyVjdVEJgtzb8iMNOAfxrI9JiluI73FPPOX11PoGWobm3ToJDUO88NGGnEebjZheBhok3NeKseT61mcPToy4ecXRO2dwyTqy50lgw/s1600/py3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2xrrUKtqz9jb2wUpSJnbE_j5UTDCkqVodydzKy2UsyVjdVEJgtzb8iMNOAfxrI9JiluI73FPPOX11PoGWobm3ToJDUO88NGGnEebjZheBhok3NeKseT61mcPToy4ecXRO2dwyTqy50lgw/s400/py3.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Resultado</span></em></strong></td></tr>
</tbody></table> <span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Si salen resultados negativos es porque diste, sacaste o perdiste discos que no te pertenecían.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">La forma de corres este código es con la siguiente línea:</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Courier New"; font-size: 11pt; line-height: 115%;"><span style="color: #bf9000;">python cds.py</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><u><span lang="ES" style="font-family: "Arial", "sans-serif"; line-height: 115%;"><span style="color: #0b5394;"><span style="font-size: large;">JAVA</span></span></span></u></i></b></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Nombre</span></span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">. <a href="https://docs.google.com/uc?id=0B3_-USmqViKzZDE5ZjVjMzItNjVjMS00YjQ0LWE1MjktNGI4NzliOGRkNzAx&export=download&authkey=CNncsIgB&hl=en"><strong>Utilidad</strong></a><span style="color: white;">.java</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #00000a;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;"><span style="color: #b45f06;">Descripción</span></span></i></b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">. <span style="color: white;">Basándome nuevamente en el programa de las cuentas, este pequeño código sólo te regresa el valor en moneda que tu tienes dependiendo de una serie de ingresos que te llegan por hacer “x” negocio y los costos que estos mismos generan.</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: white;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Las cantidades ya estan definidad en el código (pues es sólo para demostración) por lo que sólo veras en pantalla el resultado de lo que tienes.</span> </span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAEp7w0MKJoSLW5HHQ2Lf3uDfsWGQYJGH0WdPl7BwtvjHslA4ABppt8WMQu8CZ6R9ApWpUh5sKIxdov59NRqpbDxnNyqNAtT35Te4IF04iFz7Spl9DTOb5mu_-meYarRFPE-Hab5_uUDQf/s1600/java.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="205" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAEp7w0MKJoSLW5HHQ2Lf3uDfsWGQYJGH0WdPl7BwtvjHslA4ABppt8WMQu8CZ6R9ApWpUh5sKIxdov59NRqpbDxnNyqNAtT35Te4IF04iFz7Spl9DTOb5mu_-meYarRFPE-Hab5_uUDQf/s400/java.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Resultado de JAVA</span></em></strong></td></tr>
</tbody></table><span style="color: white;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Para poder ejecutar este programa se debe dar:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Courier New"; font-size: 11pt; line-height: 115%;"><span style="color: #bf9000;">javac Utilidad.java</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Courier New"; font-size: 11pt; line-height: 115%;"><span style="color: #bf9000;">java Utilidad</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="color: white; font-family: "Arial", "sans-serif"; font-size: 11pt; line-height: 115%;">Saludos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-13733914432013215592010-11-22T03:59:00.001-08:002010-11-22T05:58:57.185-08:00.: Entrada Estandar de C :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Problemas con el Scanf de C ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí les compartiré uno de mis últimos conocimientos interesantes inculcado sobre lenguaje C. A pesar de que ya deberíamos saberlo, lo interesante es que puede ser nuevo para muchos de nosotros.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Se han preguntado por que al capturar nombres completos y mandarlos imprimir sólo muestra el primer nombre?</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Esto se debe a que el <b style="mso-bidi-font-weight: normal;">scanf </b>sólo lee o guarda la cadena hasta donde encuentra el valor nulo de una cadena de caracteres: <b style="mso-bidi-font-weight: normal;">“\0”</b></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><em><u><span style="color: #0b5394; font-size: large;">Comprobación</span></u></em></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El siguiente código:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#include <stdio.h></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<span style="color: #bf9000;"></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#define TAM 30</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<span style="color: #bf9000;"></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">int main(int argc, char** args) {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char nombre[TAM];</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("Entrada -> ");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>scanf("%s", &nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\nSalida -> %s", nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return 0;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Me muestra:</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="Imagen_x0020_1" o:spid="_x0000_i1027" style="height: 2in; mso-wrap-style: square; visibility: visible; width: 343.5pt;" type="#_x0000_t75"><imagedata cropbottom="27486f" cropleft="16046f" cropright="16245f" croptop="14835f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIUChAiJZIlukiRTUqpO4CgeUtLcn0MchZFem5X7Buf1I4Asb7eVdyqHgRQN9ZYpGs7pzAn9ffJe903zJwJSYvNTTfIQYE10ndVNbtq0DUJp6WpGETx9aEdKyo5xvfWWxY7AZJ4d4cY28/s1600/Imagen21.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGIUChAiJZIlukiRTUqpO4CgeUtLcn0MchZFem5X7Buf1I4Asb7eVdyqHgRQN9ZYpGs7pzAn9ffJe903zJwJSYvNTTfIQYE10ndVNbtq0DUJp6WpGETx9aEdKyo5xvfWWxY7AZJ4d4cY28/s400/Imagen21.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Entonces la solución planteada fue utilizar una subrutina en la cual se usa la función <b style="mso-bidi-font-weight: normal;">getchar()</b>, la cual ira obtenido carácter por carácter y lo ira guardando en una cadena sin importar que coloquemos espacio. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cuando demos un <b style="mso-bidi-font-weight: normal;">ENTER</b> dejara de funcionar esta subrutina, esa es la condición para dejar de leer.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Veamos la implementación:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">void captura(char* texto, int largo) {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>char simbolo;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>int pos;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<span style="color: #bf9000;"></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>pos = 0;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("Entrada -> ");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>while (1) {</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>simbolo = getchar(); -</span><span style="color: #6aa84f;"><strong>-->> Leemos un carácter y se asigna a<br />
simbolo</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>if (simbolo == '\n') { </span><span style="color: #6aa84f;"><strong>-->> Condición para dejar de capturar</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>texto[pos] = '\0';<span style="mso-spacerun: yes;"> </span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>break;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>if (pos < largo) { </span><span style="color: #6aa84f;"><strong>--->> Cond. para almacenar en la cadena</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>texto[pos++] = simbolo; </span><span style="color: #6aa84f;"><strong>-->> Colocamos en la posición de la<br />
cadena</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-spacerun: yes;"> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>return;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al momento de dar <b style="mso-bidi-font-weight: normal;">ENTER</b>, la última posición de la cadena tendrá su valor nulo o valor final de una cadena de caracteres, se invalida el <b style="mso-bidi-font-weight: normal;">WHILE</b> con el break y dejamos de capturar para pasar a regresar el valor o contenido actual de la cadena.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Recuerden que una cadena de caracteres es sólo un arreglo de tipo carácter.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Esto lo recuerdo por dos motivos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Porque cada carácter lo estamos posicionando en una posición específica de la cadena.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Porque al mandar la variable de la cadena, se envía de la misma manera como un arreglo. Recordemos que maneja la sintaxis de un puntero en los parámetros que recibe la función de captura por una razón: <b style="mso-bidi-font-weight: normal;">los arreglos son punteros, y las cadenas de caracteres son arreglos; entonces las cadenas también son punteros</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Demostración de la solución.</u></em></strong></span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_2" o:spid="_x0000_i1026" style="height: 159.75pt; mso-wrap-style: square; visibility: visible; width: 357.75pt;" type="#_x0000_t75"><imagedata cropbottom="35096f" cropleft="34763f" cropright="3561f" croptop="10199f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_HiLGwhpNTBIcSRMX-YvlI5XqAon93fr8J3Q6Y7n8749cjEbzH66MAEqpZx2Fpo4AQrSxsLzRTEzGWxXOXvFnbMqVVmVdrGyL1hGmL9_TsQw49ZzN9iO6iHEPfL_BktyGzddrxkVHb-SK/s1600/Imagen22.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="177" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_HiLGwhpNTBIcSRMX-YvlI5XqAon93fr8J3Q6Y7n8749cjEbzH66MAEqpZx2Fpo4AQrSxsLzRTEzGWxXOXvFnbMqVVmVdrGyL1hGmL9_TsQw49ZzN9iO6iHEPfL_BktyGzddrxkVHb-SK/s400/Imagen22.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Consideren que si se sobrepasa el límite de la cadena de caracteres, los valores que ingresemos más allá de la cadena, ya no se imprimirán.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nuestro ejemplo tiene una cadena de tamaño 30. Ahora capturemos lo mismo con una longitud de 10.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_3" o:spid="_x0000_i1025" style="height: 186.75pt; mso-wrap-style: square; visibility: visible; width: 390.75pt;" type="#_x0000_t75"><imagedata cropbottom="32528f" cropleft="7678f" cropright="32489f" croptop="12795f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Ven a que me refiero?</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHv0VTnkTvQ-LQ48iEjApXEsmj50nfqbHc_yzcN3MOV0MwazsuVEEYli5glM4SlQV1rMA-GmmoAdBkPBUtASnkj0GLudTlSuxNwzzj7i5XZQ1lL9yP-WEJTI-5vJrXsvIL2pVFy59zxgHd/s1600/Imagen23.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHv0VTnkTvQ-LQ48iEjApXEsmj50nfqbHc_yzcN3MOV0MwazsuVEEYli5glM4SlQV1rMA-GmmoAdBkPBUtASnkj0GLudTlSuxNwzzj7i5XZQ1lL9yP-WEJTI-5vJrXsvIL2pVFy59zxgHd/s400/Imagen23.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">Conclusiones</span></u></em></strong>:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De alguna manera he comprendido que <b style="mso-bidi-font-weight: normal;">scanf</b> es un completo MUGRERO para leer cadenas de caracteres.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><u>NOTA.</u></i></b> Esta entrada es sólo una introducción de los defectos de <b style="mso-bidi-font-weight: normal;">scanf</b>, hay más, pero con la pena, les deberé esa información.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Espero haberles abierto más las ideas con esta entrada al momento de hablar de cadenas de caracteres.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí les dejo el código.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzOWY1NjA3NjgtZTk5MC00MzM4LTk0YzEtMTM0MTEzODk0YTg1&export=download&authkey=CJi9yJ0J&hl=en"><strong>Captura</strong></a></span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-29140057724053682452010-11-22T03:50:00.001-08:002010-11-22T05:58:57.198-08:00.: Árboles Binarios vs Listas :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Árboles Binarios o Listas Enlazadas ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En la siguiente entra, e inspirándome en mi programa realizado en base a listas para el reporte de Lenguajes Imperativos, decidí hacer la comparación en cuestión de listas y los árboles binarios.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Primeramente, pasaré a hacer el recordatorio de lo que es un árbol binario.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Definición de Árbol Binario.</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Estructura de datos de memoria dinámica de una cantidad finita de elementos que consta de un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Raíz”</i></b> y del cual sólo pueden partir máximo<span style="mso-spacerun: yes;"> </span>dos nodos más. <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Izquierdo”</i></b> y <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Derecho”</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Prácticamente, cada nodo consta de los siguientes elementos principales:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #6aa84f;">Info</span></i></b>. Es el espacio que contiene la información en nuestra estructura del Nodo.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #6aa84f;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Dos áreas de enlace</i></b>.</span> Nosotros tenemos en cada nodo dos áreas destinadas a lo que son los apuntadores que nos servirán en el momento que requiramos accesar a un nodo que le siga.</span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Por ejemplo, en la siguiente imagen podemos decir que <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">14</i></b> pertenece a <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">info</i></b>, mientras las flechas asimilan lo que serían nuestros punteros para el acceso a los nodos izquierdo y derecho.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape alt="Descripción: http://computacion.cs.cinvestav.mx/~acaceres/courses/estDatosCPP/ordArbol.jpg" id="Imagen_x0020_1" o:spid="_x0000_i1028" style="height: 210pt; mso-wrap-style: square; visibility: visible; width: 227.25pt;" type="#_x0000_t75"><imagedata cropbottom="3307f" cropleft="12070f" cropright="11671f" croptop="4059f" o:title="ordArbol" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZG316BOw0zQj4krklUvlI5-UmgqJU-RFsZip5bDG0qzb1yRPWX4Ff7sxQarw_A5k7zZqEjv4A-iVCeRQoukskowfdqxw0lTk21h8Hf0u7HUxT-tLDVTE76aX0gbbXhrjLDQzAYR_MGUld/s1600/Imagen17.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="365" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZG316BOw0zQj4krklUvlI5-UmgqJU-RFsZip5bDG0qzb1yRPWX4Ff7sxQarw_A5k7zZqEjv4A-iVCeRQoukskowfdqxw0lTk21h8Hf0u7HUxT-tLDVTE76aX0gbbXhrjLDQzAYR_MGUld/s400/Imagen17.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Ejemplo de árbol binario</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">La forma, como pueden ver, de acomodar elementos es la siguiente (por lo común):</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Si tenemos dos elementos que saldrán del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Raiz”</i></b>, el elemento menor (dependiendo del valor del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Raíz”</i></b>) se colocara en el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Izquierdo”</i></b>, mientras el elemento mayor, se colocará en el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Nodo Derecho”</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en listas, en esta estructura requerimos del uso de punteros para el acceso a los diferentes nodos de nuestro árbol.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">Listas</span></u></em></strong>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pasando a una pequeña definición de listas, tenemos que también son estructuras dinámicas de datos, la diferencia con los árboles binarios es que cada nodo al crearse, se va haciendo de manera continua.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como pudieron apreciar, en los árboles binarios, se percibe una jerarquía y una organización de elementos. En las listas no es así.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Podemos tener una lista linealmente enlazada, en la cual solo se puede accesar al nodo que sigue. Es decir, sólo se puede ir hacia adelante.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape alt="Descripción: http://www.es.gnome.org/Documentacion/Desarrollo/Glib/EstructuraDeDatosListasEnlazadasPilasYColas?action=AttachFile&do=get&target=lista.png" id="Imagen_x0020_4" o:spid="_x0000_i1027" style="height: 61.5pt; mso-wrap-style: square; visibility: visible; width: 228pt;" type="#_x0000_t75"><imagedata croptop="41652f" o:title="EstructuraDeDatosListasEnlazadasPilasYColas?action=AttachFile&do=get&target=lista" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKkt22icNAuithQSC053i56FpWlk7uVGIH39vH-qwpCdFMkzpHfej_pALeBGtfxhon_kFqtN928V5Vka7MJixxtnfI-9gB9FUzKaiATPY4BMlOxmtcMDDm2vuhPF-tr_edcDPWQKnt2JCe/s1600/Imagen18.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="135" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKkt22icNAuithQSC053i56FpWlk7uVGIH39vH-qwpCdFMkzpHfej_pALeBGtfxhon_kFqtN928V5Vka7MJixxtnfI-9gB9FUzKaiATPY4BMlOxmtcMDDm2vuhPF-tr_edcDPWQKnt2JCe/s320/Imagen18.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Lista Enlazada Simple</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en los árboles binarios, en listas contamos con lo que es nuestra parte <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">info</i></b> donde tendremos nuestros datos, y con la parte de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">enlace</i></b> que funciona con los apuntadores y así poder tener acceso a lo que son los nodos de nuestra lista, pero como se comentó antes, una vez pasado al siguiente nodo, no hay vuelta de regreso.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Es por esta situación, que cuando a veces se requiere volver al nodo anterior, también podemos contar con las <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">listas doblemente enlazadas</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En las en las <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">listas enlazadas simples</i></b> únicamente contamos con una sección de enlace hacia adelante. En las <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">listas doblemente enlazadas</i></b> contamos con el área que nos mueve hacia <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">adelante</i></b> y otra que nos permite el acceso hacía atrás.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De hecho, mi programa de listas maneja <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">listas doblemente enlazadas</i></b> para poder hacer uso de las funciones presentes en el menú de dicho programa.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape alt="Descripción: http://www.monografias.com/trabajos38/manual-programacion/Image9977.gif" id="Imagen_x0020_7" o:spid="_x0000_i1026" style="height: 71.25pt; mso-wrap-style: square; visibility: visible; width: 385.5pt;" type="#_x0000_t75"><imagedata cropbottom="29055f" cropleft="1749f" cropright="3848f" croptop="5811f" o:title="Image9977" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image005.gif"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUUDd7qOrv9a0kSavlvn6_C51Y3BgN-z0ec_VwS-fbK1UtizT9jd7Uw-c_9vT22qWTy3EytGyZe4RoodZpJPboYf7IdfKKlfUbIJ_SPrPCng34IbpGVL1wXsfsZtNIoimBIiDK-YZkt6MI/s1600/Imagen19.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="105" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUUDd7qOrv9a0kSavlvn6_C51Y3BgN-z0ec_VwS-fbK1UtizT9jd7Uw-c_9vT22qWTy3EytGyZe4RoodZpJPboYf7IdfKKlfUbIJ_SPrPCng34IbpGVL1wXsfsZtNIoimBIiDK-YZkt6MI/s400/Imagen19.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Lista Doblemente Enlazada</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Ahora bien, podemos contar con las listas <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">circulares</i></b>. Como se han podido percatar, llega un momento en el que el último elemento sólo llega a un valor <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">NULL</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Con las listas circulares, al momento de llegar a lo que debería de ser este valor <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">NULL</i></b>, en realidad tenemos que el área que le corresponde el acceso al siguiente nodo, nos manda a lo que es el inicio de la lista.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape alt="Descripción: http://ayura.udea.edu.co/~jlsanche/listas_circulares/Dibujo_representacion.gif" id="Imagen_x0020_10" o:spid="_x0000_i1025" style="height: 91.5pt; mso-wrap-style: square; visibility: visible; width: 463.5pt;" type="#_x0000_t75"><imagedata cropbottom="9198f" cropleft="2509f" cropright="1003f" croptop="9581f" o:title="Dibujo_representacion" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image007.gif"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6j7-FOj5FvHuSeDVFBRn-MHOhQ1ZxL6M_epZoNTXqYWN1-D4UF1yXHjT5NIwFY9nwhpyo8PZ4nAeph1QRajQh4PLXhM-lm0cxs8bc8eEQAjVnWn3UnCFigeHwxjGqkE1sGfYFCGAEW5Z/s1600/Imagen20.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="105" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc6j7-FOj5FvHuSeDVFBRn-MHOhQ1ZxL6M_epZoNTXqYWN1-D4UF1yXHjT5NIwFY9nwhpyo8PZ4nAeph1QRajQh4PLXhM-lm0cxs8bc8eEQAjVnWn3UnCFigeHwxjGqkE1sGfYFCGAEW5Z/s400/Imagen20.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Lista Enlazada Circular</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">No podemos limitarnos a esto, podemos hacer combinaciones de los tipos de listas con los que contamos dependiendo de nuestra necesidad.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><u><em>Desventaja de las listas en contra de los árboles binarios.</em></u></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El programa que muestro sobre listas comenzó simplemente como una base de datos que se registra y muestra información.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Este proyecto realizado el semestre pasado en compañía de otro compañero se extendió. De repente decidimos incrustar funciones para buscar, eliminar y modificar los registros que tuviéramos en nuestra lista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En conclusión todo se basaba más que nada en la función que es de búsqueda.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sin embargo, al finalizar el proyecto, nos dimos cuenta de la ineficiencia de nuestro código, pues al momento de buscar, no tenemos otra opción más que ir comparando el dato de la lista nodo por nodo hasta encontrar el dato buscado, y si es que se encuentra en la lista. Piensen como sería teniendo cientos de registros.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Es aquí donde entraba el papel de los árboles binarios.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como se apreció antes, los nodos en un árbol están más jerarquizados, pues para hacer la búsqueda de nodos, nos hubiera sido más útil, ya que tenemos la opción de, antes de ir a algún nodo, preguntar si el elemento del nodo al que vamos a accesar es mayor o menos al valor del dato que buscamos. Esto nos ayudará a definir si entramos o no a esa rama.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De esta manera, aún teniendo miles de registros, el proceso de búsqueda es mucho más eficiente que en una lista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nosotros incrustamos una serie de instrucciones para que al momento de agregar registros, se ordenen ascendentemente dependiendo de la variable <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">ID</i></b>. Sin embargo, aun y con todo esto, no llegamos a la eficiencia de una búsqueda dentro de un árbol binario.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #0b5394; font-size: large;"><strong><em>Conclusión</em></strong></span>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Antes de realizar algún código con estructuras dinámicas, hay que pensar que es lo que vamos a hacer para así poder definir claramente que nos puede ser de utilidad.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier comentario es bienvenido.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-59321725828838576712010-11-22T03:33:00.001-08:002010-11-22T05:58:57.208-08:00.: Pila :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Concepto de Pila e Implementación ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Volviendo a recordar ciertas cosas que en teoría conocemos, ahora hablaremos acerca de las pilas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para empezar, hay que reconocer lo que es una pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Podemos decir que una pila es una estructura de datos que obedece siguiente disciplina:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“LIFO (Last In, First Out): El último en entrar es el primero en salir”</i></b>.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="Imagen_x0020_1" o:spid="_x0000_i1030" style="height: 174pt; mso-wrap-style: square; visibility: visible; width: 335.25pt;" type="#_x0000_t75"><imagedata cropbottom="12077f" cropleft="16920f" cropright="20119f" croptop="27126f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="separator" style="clear: both; margin: 0cm 0cm 10pt; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGJZRA-k8gZ3h0ZUkCxlWj_SMLvyGRZ7kQVFAh51t4kvp5UuJ9W06YVtaGaTqpRG0ursZ5TEEW5nuZzjvnC8jcC1FFFo5jfZMgJq8lULa1-Cw9jWzp8of99MTy8R8nGYelcDznp5UrsCl/s1600/Imagen10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="207" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimGJZRA-k8gZ3h0ZUkCxlWj_SMLvyGRZ7kQVFAh51t4kvp5UuJ9W06YVtaGaTqpRG0ursZ5TEEW5nuZzjvnC8jcC1FFFo5jfZMgJq8lULa1-Cw9jWzp8of99MTy8R8nGYelcDznp5UrsCl/s400/Imagen10.jpg" width="400" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Las funciones principales asociadas con las pilas son las siguientes:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><span style="color: #6aa84f;">Push.</span></b> Insertar un elemento.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><span style="color: #6aa84f;">Pop.</span></b> Extraer un elemento.</span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Veamos cómo se vería el ingreso y extracción de elementos en una pila por medio de la siguiente imagen:</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_2" o:spid="_x0000_i1029" style="height: 133.5pt; mso-wrap-style: square; visibility: visible; width: 430.5pt;" type="#_x0000_t75"><imagedata cropbottom="20987f" cropleft="11243f" cropright="6537f" croptop="18216f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYgV_s7tIT5HtSsO6d5YykQaP_4XVGuz4x2c9aPbjoWTZbijuTRUy0ERNp4BmVrwt1s1zs4cSj4pj-50kUW2sK6z2BBt6I0AgaSX7fq_iNXG-ICJ8K4vlDdf8gbSKENoEjfDOANqsG7jhi/s1600/Imagen11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYgV_s7tIT5HtSsO6d5YykQaP_4XVGuz4x2c9aPbjoWTZbijuTRUy0ERNp4BmVrwt1s1zs4cSj4pj-50kUW2sK6z2BBt6I0AgaSX7fq_iNXG-ICJ8K4vlDdf8gbSKENoEjfDOANqsG7jhi/s400/Imagen11.jpg" width="400" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">Cuando nosotros tenemos por ejemplo la siguiente operación en notación sufija:</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="font-family: Arial, Helvetica, sans-serif;">7 3 – 2 1 + *</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Se implementa una pila para esto, de modo que tendríamos lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi78-6ekaYzLmmWSQ42HNSFL6P4sPuzYtH_tyAntEJFTCjwtHUfKKGxFyH4UIk65Ix2_UM9GhR5U-aIPFwK1yoYOWEdh4BvgiyrrAkAnjm0ZUHu__6HlMxwFrdSlWHmQK1agaNvgD1wnlfv/s1600/Imagen16.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi78-6ekaYzLmmWSQ42HNSFL6P4sPuzYtH_tyAntEJFTCjwtHUfKKGxFyH4UIk65Ix2_UM9GhR5U-aIPFwK1yoYOWEdh4BvgiyrrAkAnjm0ZUHu__6HlMxwFrdSlWHmQK1agaNvgD1wnlfv/s320/Imagen16.jpg" width="320" /></a></div><span style="font-family: Arial, Helvetica, sans-serif;">La forma en la cual se lee esto es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cuando se lee un operando (número), se ingresa a la pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al momento de leer un operador, como en el primer caso que fue el de suma (+), se toman los últimos dos números ingresados a la pila y se realiza la operación ingresada para tener un nuevo valor.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Se vuelven a leer números y se van ingresando a la pila y al momento de ingresar un operador se leen los últimos dos elementos de la estructura para realizar la operación. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Todo esto hasta terminar.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Quizás no quedo muy claro, por lo que se los expondré así:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Visualicen cuando manejamos nuestros programas con subrutinas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Estamos haciendo un proceso en nuestra función <b style="mso-bidi-font-weight: normal;">main</b>, y de repente necesitamos un resultado que debe adquirirse por medio de una función.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Entonces, es como si el proceso de <b style="mso-bidi-font-weight: normal;">main</b> estuviera dentro de una pila, y al momento de mandar llamar la función que necesitamos, ésta es introducida a la pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al momento que la función termina lo que debe de hacer, es como si la función saliera de la pila dejándole o devolviéndole el valor que obtuvo a <b style="mso-bidi-font-weight: normal;">main</b> para que pueda continuar con el proceso en el cual se quedó.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nosotros manejamos pilas a cada momento, no sólo en el manejo de subrutinas, sino también por ejemplo las vemos en las siguientes aplicaciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Historial de Internet</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Portapapeles de Office</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Los botones de ATRÁS y ADELANTE del explorador de Windows e IE.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Los documentos que se encuentran pendientes para imprimir obedecen el comportamiento <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">LIFO</i></b>.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Entre otros.</span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cuando me tocó ver lo que era la estructura de pilas en la clase de Estructuras de Datos, creamos un pequeño programa, el cual tiene las siguientes opciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">1. Introducir datos a la pila </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">2. Borrar un dato de la pila </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">3. Mostrar elemento en el tope de la pila </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">4. Imprimir elementos de la pila </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cada una de estas opciones está siendo manipulada a través de un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">SWITCH</i></b>. Antes de proseguir, aclaro que en sí nuestra “<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">PILA”</i></b> está siendo implementada a través de lo que es un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“ARRAY”</i></b> de tamaño 15. Sé que no es precisamente la estructura de pila que quizás esperaban ver, pero recuerden que en sí el propósito de esta entrada es la comprensión del concepto pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora pasemos a detallar las acciones para cada función.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Introducir datos a la pila.</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">printf("\n\nDame el valor: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-ansi-language: EN-US;">scanf("%d", &temp);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-ansi-language: EN-US;">tope ++;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">pila[tope + 1] = temp;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nosotros tenemos una variable <b style="mso-bidi-font-weight: normal;">temp</b> de tipo entero que funciona como la <b style="mso-bidi-font-weight: normal;">“celda”</b> de nuestra pila donde vamos a estar guardando datos.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Tenemos la variable de tipo entero llamada <b style="mso-bidi-font-weight: normal;">“tope”</b>, que funciona como nuestro indicador de la cima de la pila, la cual, a la vez, también le asignamos el valor de <b style="mso-bidi-font-weight: normal;">“-1”</b>. Después explicaremos por qué se usó de esta forma.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Nuestra <b style="mso-bidi-font-weight: normal;">“pila”</b> como ya mencionamos, es un arreglo <b style="mso-bidi-font-weight: normal;">“pila[15]”</b>. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pasando al proceso del ingreso de datos a la pila, nosotros ingresamos un número que se guardará en la variable <b style="mso-bidi-font-weight: normal;">“temp”</b>. Lo siguiente fue incrementar el valor de <b style="mso-bidi-font-weight: normal;">“tope” </b>en una unidad, para después pasar a utilizar el valor de tope como índice de nuestro arreglo <b style="mso-bidi-font-weight: normal;">“pila”</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="mso-spacerun: yes;"> </span>¿Recuerdan que <b style="mso-bidi-font-weight: normal;">“tope”</b> valía al inicio <b style="mso-bidi-font-weight: normal;">“-1”</b>? Esto fue así, debido a que al momento de ingresar el primer dato a la pila, ahora <b style="mso-bidi-font-weight: normal;">“tope”</b> se incrementaría a <b style="mso-bidi-font-weight: normal;">“0”, </b>y recuerden que los arreglos empiezan desde la posición <b style="mso-bidi-font-weight: normal;">“0”</b>. A esto se debía la naturaleza de haber asignado el valor de <b style="mso-bidi-font-weight: normal;">“-1”</b> a la variable que utilizaríamos como nuestro indicar de la cima de la pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Por último, el valor de <b style="mso-bidi-font-weight: normal;">“temp”</b> se asigna a la posición <b style="mso-bidi-font-weight: normal;">“tope”</b> de nuestro arreglo <b style="mso-bidi-font-weight: normal;">“pila”</b>.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_3" o:spid="_x0000_i1028" style="height: 163.5pt; mso-wrap-style: square; visibility: visible; width: 394.5pt;" type="#_x0000_t75"><imagedata cropbottom="30887f" cropleft="17254f" cropright="15776f" croptop="10692f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTAeD0mN6grD8rxESrCa2Is01a1er0NacGrMGlPj2fCKF9Znm_BPSKvW4RfDjRyDubDfrelNgPabgrTJ5WL0etc0eHjVhVi8_lvG_1yd_6qGgLC41b4KJU0wprOxCg4EbjjUSVgWZEziUR/s1600/Imagen12.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="264" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTAeD0mN6grD8rxESrCa2Is01a1er0NacGrMGlPj2fCKF9Znm_BPSKvW4RfDjRyDubDfrelNgPabgrTJ5WL0etc0eHjVhVi8_lvG_1yd_6qGgLC41b4KJU0wprOxCg4EbjjUSVgWZEziUR/s640/Imagen12.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Ingreso de Datos</span></em></strong></td></tr>
</tbody></table><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Imprimir Elementos de la pila</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para esto, recuerden que nuestra implementación de pila es un arreglo, por lo que se utiliza un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">FOR</i></b> para mostrar datos introducidos.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sin embargo, tenemos una restricción. Teniendo de nueva cuenta el valor de <b style="mso-bidi-font-weight: normal;">“tope = -1”</b>, aquí lo usamos de base para decir si la pila se encuentra vacía a través de un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">IF</i></b>; de lo contrario, nos mostrara el contenido de la pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">if (tope <= -1) {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\nLa pila se encuentra vacia\n\n");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-ansi-language: EN-US;">} else {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>for (i = tope; i > -1; i--) {</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\t\t\t|<span style="mso-spacerun: yes;"> </span>%d<span style="mso-spacerun: yes;"> </span>|\n", pila[i]);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>}</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como se pudieron percatar, la forma en que mandamos imprimir nuestro <b style="mso-bidi-font-weight: normal;">“arreglo (alias pila)”</b>, es de una manera inusual a como solemos hacerlo normalmente. Por lo común iniciamos desde el primer elemento del arreglo, o sea desde <b style="mso-bidi-font-weight: normal;">“0”</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero recuerden que la pila obedece la disciplina <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">LIFO</i></b>. Esto significa que primero debemos mostrar el último elemento que entro a nuestro <b style="mso-bidi-font-weight: normal;">“arreglo”</b>...<span style="mso-spacerun: yes;"> </span>perdón,<span style="mso-spacerun: yes;"> </span>nuestra <b style="mso-bidi-font-weight: normal;">“pila”</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Entonces, la impresión debe ir desde el último elemento hasta cuando el valor de <b style="mso-bidi-font-weight: normal;">“tope”</b> sea mayor a <b style="mso-bidi-font-weight: normal;">“-1”</b>, porque recuerden que con ese valor, definimos que la pila está vacia. Obviamente el valor de tope irá decreciendo en cada impresión.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Pero cómo saber desde que posición comenzará a imprimir? Recuerden que al momento de capturar datos, <b style="mso-bidi-font-weight: normal;">“tope”</b> se incrementa en una unidad por cada lectura; por consiguiente tenemos un contador en automático.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Veamos cómo se vería ingresar números del 1 hasta el 5:</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_4" o:spid="_x0000_i1027" style="height: 191.25pt; mso-wrap-style: square; visibility: visible; width: 426pt;" type="#_x0000_t75"><imagedata cropbottom="28709f" cropleft="17254f" cropright="15776f" croptop="10890f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwIsjI8wKFGXrr11lKq1ymGrAS5X4hP7JipW_yaYdZjwJkcp5jSjbCq1wn_ZhKVKNlpwJunPayVUivNphYntVfsA8FqeBxaagQclWdlvhWeCW659mhfTKgvxIah_JnPgDVfJeeeHXQeWXN/s1600/Imagen13.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="286" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwIsjI8wKFGXrr11lKq1ymGrAS5X4hP7JipW_yaYdZjwJkcp5jSjbCq1wn_ZhKVKNlpwJunPayVUivNphYntVfsA8FqeBxaagQclWdlvhWeCW659mhfTKgvxIah_JnPgDVfJeeeHXQeWXN/s640/Imagen13.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Impresión de Elementos en la pila</span></em></strong></td></tr>
</tbody></table><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Mostrar elemento en el tope de la pila.</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Esta función no tiene gran ciencia, simplemente mandamos a imprimir el elementos de la<span style="mso-spacerun: yes;"> </span><b style="mso-bidi-font-weight: normal;">”pila”</b> que se encuentra en la posición <b style="mso-bidi-font-weight: normal;">“tope”</b>, dependiendo de cuál sea el valor de esta variable en ese momento debido al número de datos ingresados en la pila.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">También nos seguimos basando en la restricción del valor de <b style="mso-bidi-font-weight: normal;">“tope”</b> para saber si la pila se encuentra vacía.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">if (tope <= -1) {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\nLa pila se encuentra vacia\n\n");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-ansi-language: EN-US;">} else {</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>printf("\n\n\t\t\t|<span style="mso-spacerun: yes;"> </span>%d<span style="mso-spacerun: yes;"> </span>|\n", pila[tope]);</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">}</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_5" o:spid="_x0000_i1026" style="height: 191.25pt; mso-wrap-style: square; visibility: visible; width: 426pt;" type="#_x0000_t75"><imagedata cropbottom="28907f" cropleft="17254f" cropright="15776f" croptop="10692f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4C5xq_BATlRXRA5BRq8xDFjd7cVBkwQwpkuGwrLvRYxyFO5sQggK7ipRwPVNEf-QhmxqFDWeHkZdHr8WgEFAgP4eL5dGw2VDmzNqbULzfBVxgZulxjUnTIDMfbeZPK9lS3cGsy15qayA/s1600/Imagen14.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="286" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4C5xq_BATlRXRA5BRq8xDFjd7cVBkwQwpkuGwrLvRYxyFO5sQggK7ipRwPVNEf-QhmxqFDWeHkZdHr8WgEFAgP4eL5dGw2VDmzNqbULzfBVxgZulxjUnTIDMfbeZPK9lS3cGsy15qayA/s640/Imagen14.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="color: #bf9000; font-size: small;"><strong><em>Elemento en el tope de la pila</em></strong></span></td></tr>
</tbody></table> <span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Borrar un dato de la pila</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Por último mostramos el proceso para <b style="mso-bidi-font-weight: normal;">“borrar”</b> un elemento de la pila. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para esto, sólo basta una instrucción que decrementa el valor de <b style="mso-bidi-font-weight: normal;">“tope”</b> en una unidad.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">tope = tope - 1;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">¿Qué pasa si entro dos veces a esta opción y después muestro los elementos de la pila? Veamos.</span></div><div align="center" class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="mso-fareast-language: ES-MX; mso-no-proof: yes;"><shape id="Imagen_x0020_6" o:spid="_x0000_i1025" style="height: 189.75pt; mso-wrap-style: square; visibility: visible; width: 419.25pt;" type="#_x0000_t75"><imagedata cropbottom="29897f" cropleft="17477f" cropright="15776f" croptop="9702f" o:title="" src="file:///C:\Users\-KRIS~1.-\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png"><span style="font-family: Arial, Helvetica, sans-serif;"></span></imagedata></shape></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd7nL74GFPBqlQ_CxGSnjPCAYp9rHjI69sP_IyP1iYrZDOqDUpoW3qYFl1WkFOZdKLOh4kSMAZN1N12X9efXIqpcygn6iuQ1YTAmnpC4XczZ1OrU39dD9M2okOIrR46p9i5LTNSpH-_Lyf/s1600/Imagen15.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="288" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd7nL74GFPBqlQ_CxGSnjPCAYp9rHjI69sP_IyP1iYrZDOqDUpoW3qYFl1WkFOZdKLOh4kSMAZN1N12X9efXIqpcygn6iuQ1YTAmnpC4XczZ1OrU39dD9M2okOIrR46p9i5LTNSpH-_Lyf/s640/Imagen15.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Eliminación de dos elementos de la pila para después mostrar los restantes</span></em></strong></td></tr>
</tbody></table> <span style="font-family: Arial, Helvetica, sans-serif;">¿Notaron el cambio?</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">NOTA. </i></b><i style="mso-bidi-font-style: normal;">Hago la aclaración, en realidad, no borramos el dato de la pila (que vuelvo a lo mismo, es un arreglo), simplemente con el hecho de retarle 1 al valor del tope en cada entrada a esta función es para que al momento de mostrar los datos, el programa imprima desde el valor actual de <b style="mso-bidi-font-weight: normal;">tope</b>. ¿Recuerdan cómo tenemos el <b style="mso-bidi-font-weight: normal;">FOR</b>? A eso me refiero.</i></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Vuelvo a lo mismo, este código es sólo para dejar lo más claro posible el concepto de lo que es <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">pila</i></b><i style="mso-bidi-font-style: normal;">.</i> </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Lo que se hizo con estas funciones fue sólo demostrar el comportamiento <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">LIFO</i></b> de lo que es la estructura <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">pila</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Les dejo el código a continuación.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Comentarios y sugerencias son bienvenidas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-63424992310840489602010-11-22T02:58:00.001-08:002010-11-22T05:58:57.225-08:00.: Compilar y Ejecutar Lenguajes Imperativos :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Compilar y Ejecutar Lenguajes Imperativos ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="Default" style="margin: 0cm 0cm 10pt;"><br />
<span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Para poder compilar los lenguajes imperativos que se utilizaron sólo es cuestión de seguir las siguientes imágenes:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">C</span></u></em></strong></span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Para lenguaje C ya todos sabemos cómo se lleva a cabo, prácticamente sólo lo recordaremos:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">gcc programa.c</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">./a.out</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplo:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBG9i-g4rHMkSRnPMNz1s-GVFOvRMBZHUcqThkD8sZl6_7YHi-UkC8bzNBBTHvnRC5T8ask8GfqhvX0zPxl_OuzgLI6QnOOERWfWo5peyANvywjq2gqUK_W7-DGYMf3ReCmujTabcr0LsU/s1600/compilar_c.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="243" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBG9i-g4rHMkSRnPMNz1s-GVFOvRMBZHUcqThkD8sZl6_7YHi-UkC8bzNBBTHvnRC5T8ask8GfqhvX0zPxl_OuzgLI6QnOOERWfWo5peyANvywjq2gqUK_W7-DGYMf3ReCmujTabcr0LsU/s400/compilar_c.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Compilación y Ejecución de Lenguaje C</span></em></strong></td></tr>
</tbody></table></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Pascal</span></u></em></strong></span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Para compilar en Pascal es importante contar con la paquetería que se necesita: <strong><span style="color: #6aa84f;">fpc</span></strong>.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Una vez adquirida se siguen los pasos que se presentan:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">fpc programa.pas</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">./programa</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplo:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tWaqbi1S4bCRBY7ub0HnCt3dEdCCf79nDmaaqjflauJAeKCDFtlCVu0dFcXfeQZiKuLKSgpTjnzsVNih73xbvKjHOjfxhILqdXe0Gcv7UU-FWlw5GeOuO_wsv5YFBTdee1b9w1PQewtQ/s1600/compilar_pas.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="227" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tWaqbi1S4bCRBY7ub0HnCt3dEdCCf79nDmaaqjflauJAeKCDFtlCVu0dFcXfeQZiKuLKSgpTjnzsVNih73xbvKjHOjfxhILqdXe0Gcv7UU-FWlw5GeOuO_wsv5YFBTdee1b9w1PQewtQ/s400/compilar_pas.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Compilación y Ejecución de Pascal</span></em></strong></td></tr>
</tbody></table><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Fortran</span></u></em></strong></span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en Pascal, es necesario contar con la paquetería correspondiente para poder compilar en este lenguaje, en el caso de Fortran es <strong><span style="color: #6aa84f;">gfortran.</span></strong></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Una vez hecho esto, se colocan las siguientes instrucciones:</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">gfortran programa.f</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">./a.out</span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Imagen de ejemplo;</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGq6oVzH8MLI2xlpQs2oDdIDEdJF6RUZK5ZPMLRfIHN0LQGFzGi9J1s4ns0vHMJWWtWIQ0vMJGv4UldYSf-iR7gnx9gR2dEKMoa6sAacCduwP9H004jqN-1Fxwno-PLhRq83rLBgq2bMW/s1600/compilar_fortran.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="226" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSGq6oVzH8MLI2xlpQs2oDdIDEdJF6RUZK5ZPMLRfIHN0LQGFzGi9J1s4ns0vHMJWWtWIQ0vMJGv4UldYSf-iR7gnx9gR2dEKMoa6sAacCduwP9H004jqN-1Fxwno-PLhRq83rLBgq2bMW/s400/compilar_fortran.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Compilación y Ejecución en Fortran</span></em></strong></td></tr>
</tbody></table><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">ALGOL 68</span></u></em></strong></span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Este lenguaje tiene un caso especial. Si no lo recuerdan, descargamos lo que fue el compilador en una carpeta comprimida que después extrajimos.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">El punto es que para compilar en ALGOL, debemos estar dentro de este directorio para que se lleve a cabo con éxito. Para esto, también el código debe de estar dentro de este fichero, ya sea en la misma ubicación del compilador o en una carpeta dentro de la misma.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Una vez resuelto esto y posicionarnos en el directorio de ALGOL, pasamos a seguir el siguiente proceso. Noten que aquí lo principal es identificar que la forma de compilar inicia con </span><strong><span style="color: #6aa84f; font-family: Arial, Helvetica, sans-serif;">a68g</span></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyt2aGjicUoGdLnFehewL9Z6DhvKU4S1fpAk9AB9lKW9cMoD7iyhPWB113lVZjGe6yv0RDYc6zKpAomtQJZ0lDxuCA2IJjzj0WabR9EmC6Kd0vsL0jKrPHo7zndcbZnq5BNu_yGs9iLG5S/s1600/compilar_a68.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyt2aGjicUoGdLnFehewL9Z6DhvKU4S1fpAk9AB9lKW9cMoD7iyhPWB113lVZjGe6yv0RDYc6zKpAomtQJZ0lDxuCA2IJjzj0WabR9EmC6Kd0vsL0jKrPHo7zndcbZnq5BNu_yGs9iLG5S/s400/compilar_a68.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Compilación y Ejecución de ALGOL 68</span></em></strong></td></tr>
</tbody></table><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">En mi caso, la carpeta de ALGOL para que pudiera compilar en mi PC se encontraba en el escritorio y el código que compile se encontraba dentro del directorio demo.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Espero que con esto, algunos entiendan porque me desespera.</span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span lang="ES" style="font-family: "Calibri", "sans-serif"; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span></span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-90512697662329621492010-11-22T02:39:00.001-08:002010-11-22T05:58:57.231-08:00.: Lenguajes Imperativos (LB) :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Lenguajes Imperativos (LB) ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<div class="Default" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En la siguiente entrada presento un par de programas que he realizado referente al tema de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Lenguajes Imperativos”</i></b>. Los links de descarga de los códigos están sobre los nombres de los programas.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Los lenguajes que utilice aquí fueron los siguientes:</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">C</span></span></u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;">Nombre.</span></i></b> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzOTQ0OGZjNTAtZDJhMy00ZjE5LThkNmItNWMxNzczZDdlZjEx&export=download&authkey=CJ6sm_EK&hl=en"><strong>Registros</strong></a>.c</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Descripción</i></b>.</span> Este programa es una pequeña implementación de lo que pueden ser las listas vinculadas.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Lo que realiza este programa es la captura de registros de alumnos. Además de eso, los puede mostrar, buscar, modificar y eliminar.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIH0ucesuI1f7_bhyy5VzwWKLCjvHRCoBE0cm86S_ZUuRMmIox9iFLMWSdhHCw-KjQ3aOMgnjTytUWOzLJhoajM1SVUhUU45Poa2QOwnCHfk4EUTYp23hPRCaRislOfT4lB3Hmce-UHcAg/s1600/i_01lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="251" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIH0ucesuI1f7_bhyy5VzwWKLCjvHRCoBE0cm86S_ZUuRMmIox9iFLMWSdhHCw-KjQ3aOMgnjTytUWOzLJhoajM1SVUhUU45Poa2QOwnCHfk4EUTYp23hPRCaRislOfT4lB3Hmce-UHcAg/s400/i_01lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Menú de Funciones</span></em></strong></td></tr>
</tbody></table><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En si este código es sólo una modificación de un proyecto final para la clase de “Estructuras de Datos” que realice en colaboración de otro compañero y el cual nos quedó un poco mal.</span></div><div class="separator" style="clear: both; text-align: center;"></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: x-small;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #6aa84f;">Limitantes</span>:</i></b> <span style="color: #bf9000;"><i style="mso-bidi-font-style: normal;">Se presenta en la captura de cadenas de caracteres con espacios y en la impresión de registros muy largos.</i></span></span></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Pascal</span></span></u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Nombre</i></b>.</span> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzOTc3Yzg4NTAtYmE1Ny00OTFkLWIwMDktZGNmYjY1NTdjZDJl&export=download&authkey=CPHP2PcK&hl=en"><strong>Gauss</strong></a>.pas</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;">Descripción</span></i></b>. Una vez más (como ya es costumbre la mía supongo), no supe que hacer en Pascal, por lo que hice una nueva adaptación desde C a Pascal.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En esta ocasión les presento el algoritmo (otra vez) de la solución de ecuaciones lineales de 3 por 3 mediante el método de Gauss-Jordan.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJE_FJchCxJ3SWKMnQDw2OeYsyxQ6HusiGDV4iADQDxUGX68hYOC7yhbt10mpbAOzMW-EeVCcIoxTFMFAEcAD5z_O04d1khRtp5Uu6SuM4HmjgXKskc_6dnb4ygCdXP6dibvCX1qXI7OXi/s1600/pass1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="236" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJE_FJchCxJ3SWKMnQDw2OeYsyxQ6HusiGDV4iADQDxUGX68hYOC7yhbt10mpbAOzMW-EeVCcIoxTFMFAEcAD5z_O04d1khRtp5Uu6SuM4HmjgXKskc_6dnb4ygCdXP6dibvCX1qXI7OXi/s400/pass1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><span style="color: #bf9000; font-size: small;">Captura</span></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Este algoritmo ya fue explicado con anterioridad en una entrada distinta, por lo que no será necesario explicarla.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3zXPu12t_ic_yHIYgozTdWdfzwGzhVapp1p3BJkUuaghmnUdy8BadAb4ZPvZL8v2M4Ulon8UOwOUhTNYDEkqM8jgIoE7nUeMLXs8v__fKHwx_Sk0DVQdONf0VqYvEbPnIUKJckyTvZRyD/s1600/pass2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3zXPu12t_ic_yHIYgozTdWdfzwGzhVapp1p3BJkUuaghmnUdy8BadAb4ZPvZL8v2M4Ulon8UOwOUhTNYDEkqM8jgIoE7nUeMLXs8v__fKHwx_Sk0DVQdONf0VqYvEbPnIUKJckyTvZRyD/s400/pass2.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><span style="color: #bf9000; font-size: small;">Resultado</span></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Algo de lo que es la sintaxis de Pascal será explicada en otra entrada diferente.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-28317779324090664432010-11-22T02:19:00.001-08:002010-11-22T05:58:57.242-08:00.: Sintaxis Pascal :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Sintaxis de Pascal ::</marquee></span></b></i><br />
<br />
<hr /><hr /><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora veamos algo de la sintaxis que corresponde al lenguaje de Pascal:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Estructura General de Pascal</span></u></em></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">program nombre;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">const</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>Declaración de constantes;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">var</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>Declaración de variables;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">begin</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>proceso del programa principal;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">end.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Declaración de variables</span></u></em></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #45818e;">Variables Comunes</span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para declarar variables normales sólo se colocan dentro de la sección <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">var</i></b> de la siguiente forma:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">var</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>nombre_de_la_variable : tipo_de_dato;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">var</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-tab-count: 1;"> </span>A, B, C: integer; <strong><span style="color: #6aa84f;">--->> Variables de tipo entero</span></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-tab-count: 1;"> </span>D : real; <strong><span style="color: #6aa84f;">--->> Variable tipo real (punto flotante)</span></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #45818e;">Arreglos</span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para la definición de arreglos, primero debemos definir el tipo de dato del arreglo a como sigue:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">type</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>list = array[inicio .. fin, inicio .. fin] of integer </span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Con esto sólo definimos una especie de tipo de dato (como cuando hacemos estructuras en lenguaje C) del tipo arreglo, que por cierto, es bidimensional.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Las palabras <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">inicio</i></b> se refieren a los índices iniciales de nuestro arreglo, y las de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">fin</i></b>, pues los índices finales del arreglo. A diferencia de C que siempre comienzan con posición cero (0), en Pascal podemos definir desde que posición comenzará el arreglo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Lo siguiente es declarar la variable que se utilizará como arreglo en la sección <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">var</i></b>:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">var</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>Matriz : list;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Si se dan cuenta, <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">list</i></b> corresponde a lo que es el tipo de dato que es un arreglo bidimensional.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Todo junto, lo tendríamos así:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">type</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>list = array[inicio .. fin, inicio .. fin] of integer;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">var</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>Matriz : list;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Definición de funciones.</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En Pascal es más fácil identificar una subrutina si es una función o sólo un procedimiento.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el procedimiento, para empezar, sabemos que no devuelve valores. Lo identificamos por la palabra <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“procedure”</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La función sabemos que si nos regresa un valor, y la podemos identificar por medio de la palabra <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“function”</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Debido a que sólo utilice lo que es la función, sólo podré hablarles de ella.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La sintaxis de una función a la cual le enviamos parámetros desde el proceso principal puede ser el siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">function nombre_función (var_1:tipo;<br />
var_2:tipo;var_3:tipo):tipo_de_resultado;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">begin</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>proceso de la función;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">end;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Un ejemplo de ello puede ser la que utilice en mi programa se suma de matrices:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">function suma(A<span style="mso-tab-count: 1;"> </span>: list; B:list; ren:integer;<br />
col:integer):integer;</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">begin</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>suma:= A[ren,col] + B[ren,col];</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">end;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Entrada y Salida Estándar</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para lo que es la salida estándar, contamos con dos instrucciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">writeln</i></b>. Con esto, comenzando desde la línea en donde se encuentra la ejecución del programa, brinca un salto de línea y coloca en pantalla lo que le ordenas. Ejemplos de escritura:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">writeln(‘Suma = ‘, suma); </span><span style="color: #6aa84f;"><strong>--->> Impresión del texto “Suma =” y la<br />
variable suma.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el terminal quedaría así:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #6aa84f;"><strong>Línea 1: -></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><span style="color: #6aa84f;"><strong>Línea 2: -></strong></span> Suma = 20 <strong><span style="color: #6aa84f;">--->> Suponiendo que suma es igual a 20</span></strong></span><strong><span style="color: #6aa84f;">.</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">write</i></b>. A diferencia del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">writeln</i></b>, esta instrucción imprime todo en la misma línea.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Viendo el mismo ejemplo:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">write(‘Suma = ‘, suma); </span><span style="color: #6aa84f;"><strong>--->> Impresión del texto “Suma =” y la<br />
variable suma.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el terminal saldría:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><strong><span style="color: #6aa84f;">Línea 1 -></span></strong> Suma = 20 </span><span style="color: #6aa84f;"><strong>----->> Suponiendo que suma es igual a 20.</strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Hablando de la entrada estándar o la lectura de variables, tendríamos también dos instrucciones:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">readln</i></b>. Al igual que en el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">writeln</i></b>, dependiendo de la línea donde nos encontremos, se hace un salto de línea y se comienza la captura. Ejemplo:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">write(‘Dame número: ‘);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">readln(numero);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En la ejecución tendríamos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><strong><span style="color: #6aa84f;">Línea 1 -></span></strong> Dame un número:</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><strong><span style="color: #6aa84f;">Línea 2 -></span></strong> **captura aquí**</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">read</i></b>. Al igual que en <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">write</i></b>, todo lo hace en el mismo renglón. Tomando el ejemplo anterior podemos entenderlo aun más:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">write(‘Dame número: ‘);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">readln(numero);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En la ejecución tendríamos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><strong><span style="color: #6aa84f;">Línea 1 -></span></strong> Dame un número: **captura aquí**</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Asignación</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Este proceso nunca nos falta en algún programa de problemas numéricos, en donde le damos un valor a una variable o en donde escribimos una operación matemática.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En lenguaje C, Python, Perl, etc, solemos usar el signo clásico del igual (<b style="mso-bidi-font-weight: normal;">=</b>).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En Pascal se escribe de la siguiente forma: (<b style="mso-bidi-font-weight: normal;">:=</b>). Ejemplos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">i:=1;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">C:=A+B;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: large;"><strong><em><u><span style="color: #0b5394;">Uso del punto y coma</span></u></em></strong></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El uso de este signo de admiración lo resumo a como sigue:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">SI se escribe:</span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al final del encabezado del programa.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al final de la declaración de alguna variable, constante o tipos.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Después de cada línea de código, ya sea de entrada, salida, operación, asignación, etc.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el último <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">END</i></b> presente en una subrutina o de cualquier otro proceso que inicio con in <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">BEGIN</i></b>.</span></div></li>
</ul><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">NO se escribe:</span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Cuando en la siguiente línea tenemos un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">END</i></b>.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Después de la condición de algún <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">FOR </i></b>o <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">IF</i></b></span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al final de las palabras <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">BEGIN, THEN, CONST, VAR, TYPE, DO</i></b>; sólo por decir algunas.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El último <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">END</i></b> presente en nuestro programa termina con un punto (.).<span style="mso-spacerun: yes;"> </span><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">END.</i></b></span></div></li>
</ul><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Sintaxis del FOR</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La sintaxis presente en esta instrucción iterativa es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">for i:=inicio to final do</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>begin</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span>proceso iterativo</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>end;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Donde <b style="mso-bidi-font-weight: normal;">i</b> representa nuestra variable que funciona de contador; <b style="mso-bidi-font-weight: normal;">inicio</b> se refiere al valor inicial del contador;<b style="mso-bidi-font-weight: normal;"> final</b> hace referencia al valor máximo que deberá tener el contador para que no se invalide lo que es el FOR.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Un FOR anidado seria de la siguiente forma:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">for i:=inicio1 to final1 do for j:=inicio2 to final2 do</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-tab-count: 1;"> </span>begin</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-tab-count: 2;"> </span>proceso iterativo</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;"><span style="mso-tab-count: 1;"> </span>end;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplo:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">for i:= 1 to ren do</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>begin</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>writeln;</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>for j:= 1 to col do</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>begin</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>write(M[i,j]:0:2,'<span style="mso-spacerun: yes;"> </span>')</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>end</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>end;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="font-size: large;"><span style="color: #0b5394;">Sintaxis de IF</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La sintaxis manejada en Pascal es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">if condición</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>then</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span>begin</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 3;"> </span>proceso IF</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span>end;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Veamos un ejemplo:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">if i <> k </span><span style="color: #6aa84f;"><strong>----->> Si "i" es diferente de "k"</strong></span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>then</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>begin</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>fact:= - M[i,k];</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span></span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>for j:= 1 to col do </span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span>begin</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span>M[i,j]:= M[i,j] + fact * M[k,j]</span></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span>end</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span>end;</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sé que esto es muy básico para Pascal. Sólo trate de ser lo más explicito posible más que nada por la razón de que yo siempre busco una explicación detallada de algo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;"><span style="font-size: large;">Tutorial Pascal</span></span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí les comparto lo que es el tutorial que me fue de utilidad para este lenguaje.</span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzY2ZkY2MzNzctYWFlMy00MjAzLWFlMGQtZWUyYWU2NmZjNzVm&export=download&authkey=CKT2ql0&hl=en"><strong>Tutorial Pascal en PDF</strong></a></span></div></li>
</ul><span style="font-family: Arial;">Saludos.</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com3tag:blogger.com,1999:blog-8552655506552543708.post-26452773851478953332010-11-22T01:42:00.001-08:002010-11-22T05:58:57.359-08:00.: Instalar GO en UBUNTU :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Instalación de GO en Ubuntu ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para instalar GO, basándonos en el tutorial presente en el link de nuestras diapositivas es el siguiente proceso:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sólo se teclea en el terminal</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">cd go/src</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">./all.bash</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero en ese momento no habíamos leído todo, pues debíamos hacer más cosas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El caso es que con sólo esto, no se instala GO. Busque otra cosa, que es lo que a continuación se presenta, que de hecho me di cuanta tarde que es lo mismo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Pero en fin, aquí les facilito la búsqueda y la traducción para quienes batallan aún con el inglés.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Se supone que los pasos para instalar GO fueron los siguientes:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial;">-------------------------------------------------------------------------------------------------------------------------</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;">1. Variables de entorno</span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Edita tu archivo personal oculto .bashrc (para definir las variables como globales para todos los usuarios habría que editar /etc/environment)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">gedit ~/.bashrc</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La verdad es que yo no le hice nada de este primer paso, así que fue como si no hubiera hecho.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Añade estas líneas</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">export GOROOT=$HOME/go</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">export GOOS=linux</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">export GOARCH=386</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">export GOBIN=$HOME/bin</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">export PATH=$PATH:$GOBIN</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La variable <b style="mso-bidi-font-weight: normal;">GOROOT</b> hace referencia al directorio donde se guardará el código fuente, y puedes definir otro distinto. No debe existir o en todo caso estar vacío.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La variable <b style="mso-bidi-font-weight: normal;">GOOS</b> se refiere al sistema operativo que uses y puede adoptar los valores linux, darwin (si instalas en Mac) o nacl (cliente nativo; puerto todavía incompleto, no hagas caso de esta posibilidad. Lógicamente escogeremos linux si inhstalamos en Ubuntu.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La variable <b style="mso-bidi-font-weight: normal;">GOARCH</b> tiene que ver con la arquitectura y puede adoptar los valores amd64, 386 y arm.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La variable <b style="mso-bidi-font-weight: normal;">GOBIN</b> se refiere al directorio destino de los binarios, y puedes elegir otro distinto.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Finalmente, añadimos esta ruta al PATH para poder compilar en cualquier directorio donde nos encontremos.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Actualizamos las variables, sin reiniciar el sistema:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">source ~/.bashrc</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Creamos el directorio definido en la variable GOBIN:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">mkdir $GOBIN</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;">2. Mercurial</span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Mercurial es el cliente para el control de versiones. Lo instalamos:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">sudo apt-get install mercurial</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394;">3. Herramientas</span></u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Asegúrate de tener instalados estos paquetes:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">sudo aptitude install bison gcc libc6-dev ed</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><u><em><span style="color: #0b5394;">4. Go</span></em></u></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><em><u><span style="color: #6aa84f;"><strong>Descarga:</strong></span></u></em></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">hg clone -r release https://go.googlecode.com/hg/ $GOROOT</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><i style="mso-bidi-font-style: normal;"><u><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #6aa84f;">Compila:</span></strong></span></u></i></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">cd $GOROOT/src</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">./all.bash</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El proceso (dura unos minutos) debería acabar con el mensaje</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">— cd ../test/bench</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">fasta</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">reverse-complement</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">nbody</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">binary-tree</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">binary-tree-freelist</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">fannkuch</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">regex-dna</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">spectral-norm</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">k-nucleotide</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">mandelbrot</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">meteor-contest</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">pidigits</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">threadring</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">chameneosredux</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="font-family: "Courier New", Courier, monospace;">— cd ../test</span></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">0 known bugs; 0 unexpected bugs</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: "Courier New";"><span style="font-family: Arial;">No pienso decir que espero que les funcione porque si funciona, yo lo puse en la USB de la clase y otros compañeros también ya lo pusieron.</span></span><br />
<br />
<span style="font-family: Arial;">Se supone que el terminal te dice cuál es tu compilador. En mi caso me dijo que es <strong>8g.</strong></span><br />
<br />
<span style="color: #0b5394; font-family: Arial; font-size: large;"><strong><em><u>5. Compilando</u></em></strong></span><br />
<br />
<span style="font-family: Arial;">Para compilar en GO, se usan las siguientes líneas. Tomemos de ejemplo un código con el nombre de "<strong>helloworld.go</strong>" (el más famoso):</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">8g helloworld.go</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">8l helloworld.8</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">8.out</span></div><div class="MsoNormal" style="margin: 0cm 0cm 0pt;"><br />
<span style="font-family: "Courier New";"><span style="font-family: Arial;">Saludos a todos.</span></span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com3tag:blogger.com,1999:blog-8552655506552543708.post-25586828691937795242010-11-22T01:04:00.001-08:002010-11-22T05:58:57.403-08:00.: Sintaxis ALGOL 68 :.<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Sintaxis ALGOL 68 ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">He aquí una de las razones que me impidieron colocar a tiempo mi reporte de imperativos (aclaro, no me estoy justificando, sólo comento).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Vamos a hablar de la sintaxis que me causo problemas en su momento: <strong><span style="color: #bf9000;">ALGOL 68</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Estructura General del Programa</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La estructura general de un programa en ALGOL 68 es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">BEGIN</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>PROCESO</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">END</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Es decir, la estructura es muy parecida a la de Pascal, sin embargo, permítanme comentar que no use estas palabras reservadas en mi programa (como pudieron o debieron ver ya), y corrió muy bien.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">De hecho compare con los códigos que venían ya hechos en la carpeta del compilador y tampoco lo están manejando.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Salida Estándar</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Osea lo que se nos puede mostrar en pantalla.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Es muy simple, es sólo un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“print”</i></b>. Pero OJO, tiene su gracia; pues cuando imprimes una sola cosa usas dos paréntesis, al imprimir dos cosas, se usan dobles paréntesis. Ejemplo</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al imprimir una sola cosa:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print("CONVERTIDOR PESOS MEXICANOS-DOLARES");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al imprimir dos o más cosas (sin importar si es texto con variables u otras cosas):</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print((new line, "--->> Monto a cambiar: $ "));</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Si se dan cuenta, además de los paréntesis dobles que se deben de usar, usamos comas para separar cada elemento a imprimir.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en otros lenguajes el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“printf”</i></b> sigue jugando un papel importante, pues con esta impresión con formato es de gran utilidad al imprimir números, pues de manera general, imprime muchas decimales.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En el tutorial que les dejo en la parte de abajo podrán ver algo sobre esto que les comento. Por lo pronto, les comento que sólo use la conversión para la impresión siguiente: <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">30zd.2d</i></b>:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">printf(($30zd.2d," DLLS = $",30zd.2d," M.N."$, monto, cambio))</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La instrucción ya mencionada me dice que dejo 30 espacios (30z –la z es espacio en blanco-) para los enteros y 2 decimales después del punto (2d).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Éste “rollo” es como colocar el <b style="mso-bidi-font-weight: normal;">%.2f</b><i style="mso-bidi-font-style: normal;"> </i>en C para los punto flotante que sólo queremos que salgan dos decimales.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Entrada Estándar.</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Esta sección es la más larga y difícil de esta entrada. Para leer datos desde el teclado y guardarlos en una variable, es de la siguiente forma:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">read(variable)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplo:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">read(monto)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Sí que es muy difícil verdad. De acuerdo, no lo es, lo sé.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Declaración de variables</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Hay algo que se me hizo muy interesante cuando quería declarar variables en ALGOL, pues en el tutorial que maneje lo hacía con minúsculas, y no me funcionaba el código.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Después de revisar códigos ya hechos, me percate que estaban declaradas con mayúsculas, por lo que también intente hacer lo mismo, y listo, funcionaba mi programa. Ejemplo</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">int option <strong><span style="color: #6aa84f;">--------->>> Marca ERROR</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">INT option <strong><span style="color: #6aa84f;">--------->>> ¡FUNCIONA!</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Otras instrucciones de sintaxis</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Generalmente llegamos a un punto en el que estamos acostumbrados a escribir el punto y coma después de cada línea ( <b style="mso-bidi-font-weight: normal;">; </b>).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En ALGOL, si por ejemplo sólo escribimos un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">print</i></b>, no es necesario colocar dicho signo de admiración después de esa línea. Demostración:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">INT option <span style="color: #6aa84f;"><strong>----->> Está correcto</strong></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: Arial, Helvetica, sans-serif;">Si sigue otra instrucción después de la línea que escribimos, si es necesario colocar el punto y coma al final. Ya hasta el final de la línea. Ya la última línea de código puede quedarse sin el punto y coma.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">INT option; <strong><span style="color: #6aa84f;">----->> Correctamente escrito.</span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">REAL monto</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<span style="color: #bf9000;"></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">INT option <strong><span style="color: #6aa84f;">----->> Mal escrito. Error de sintaxis.</span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">REAL monto</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Lo anterior mencionado aplica para casi cualquier línea de código e instrucción; ya sea entrada o salida estándar, declaración de variables, operaciones, etc.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Hay excepciones en la cuales aunque siga otra línea de código no se usa punto y coma. Esto se presenta cuando después de los llamados identificadores. Estas palabras incluyen por ejemplo las siguientes: <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">FI, ELIF, THEN, etc</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Arial, Helvetica, sans-serif;">Ustedes mismos se pueden percatar de esto dentro del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">IF</i></b><i style="mso-bidi-font-style: normal;"> </i>que estoy utilizando en dicho programa.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Uso del IF-ELSE</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí seré más breve pues es la única instrucción de selección que hice. La sintaxis del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">IF-ELSE</i></b> es la siguiente:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">IF <i style="mso-bidi-font-style: normal;">condición_1</i></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>THEN <i style="mso-bidi-font-style: normal;">proceso_1</i></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;">ELIF <i style="mso-bidi-font-style: normal;">condición_2</i></span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>THEN <i style="mso-bidi-font-style: normal;">proceso_2</i></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">FI</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Como se pueden dar cuenta, en lugar de manejar la palabra <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">else</i></b> a la que estamos acostumbrados, se usa <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">ELIF</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Al igual que en <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Shell</i></b> (por si no lo recuerdan muy bien), los <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">IF</i></b> también se cierran con <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">FI</i></b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>La última y nos vamos</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">new line: </span></strong>instrucción que indica salto de línea. El equivalente al “\n” en C.</span></li>
<li><a href="https://docs.google.com/uc?id=0B3_-USmqViKzNWUzMmQ3ZDgtNzY4MS00MWU5LWE5NzYtOTA3NWZmYTU5NmI0&export=download&authkey=CPKmmVg&hl=en"><strong><span style="font-family: Arial, Helvetica, sans-serif;">Tutorial </span><span style="font-family: Arial, Helvetica, sans-serif;">ALGOL 68 en PDF</span></strong></a></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Arial, Helvetica, sans-serif;">Gracias por su visita.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: justify;"><span style="font-family: Arial, Helvetica, sans-serif;">Saludos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-37509457331263958122010-11-22T00:20:00.001-08:002010-11-22T05:58:57.411-08:00.: Lenguajes Imperativos (CO) :.<div class="Default" style="margin: 0cm 0cm 10pt;"><i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Lenguajes Imperativos (CO) ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<br />
</div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Que tal compañeros, aquí está mi entrada donde presento los programas sobre el tema de “Lenguajes Imperativos”. Los links de descarga de los programas, de nueva cuenta, se encuentran sobre los títulos de los programas.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Los lenguajes que utilice fueron los siguientes:</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Pascal</u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Nombre</i></b>.</span> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzZmRiYzFhNmUtZTM5NC00YTFhLWIzNDAtYmI4Y2Q0OTQ0NTQy&export=download&authkey=CIylzr0C&hl=en"><strong>Suma_Matriz</strong></a>.pas</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;">Descripción.</span></i></b> Este programa hecho en Pascal únicamente realiza la suma de dos matrices de 2 x 2. </span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Arial, Helvetica, sans-serif;">Este procedimiento se lleva a cabo primeramente capturando mediante el teclado lo que son dos matrices del mismo tamaño: <b style="mso-bidi-font-weight: normal;">A</b> y <b style="mso-bidi-font-weight: normal;">B.</b></span></div></div><div class="Default" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUd1tOr118D43Wj86OrPGdJ-sMOgI_S2kW9C5YNekhTBX-RiIIFyn8ajNyvuyx15nyfmrPCrX3QSaJucPhkzoEv8PQ9qdyexk506ke8N7Wcey89cUQ7EVG0uEUUL2BwZuKdYEsCMdBT6Oq/s1600/i_01co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUd1tOr118D43Wj86OrPGdJ-sMOgI_S2kW9C5YNekhTBX-RiIIFyn8ajNyvuyx15nyfmrPCrX3QSaJucPhkzoEv8PQ9qdyexk506ke8N7Wcey89cUQ7EVG0uEUUL2BwZuKdYEsCMdBT6Oq/s400/i_01co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><span style="color: #bf9000; font-size: small;"><em>Captura de Matrices</em></span></strong></td></tr>
</tbody></table></div><div class="Default" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El proceso de la suma de matrices se basa en el hecho inicial de que deben de ser del mismo tamaño. Lo siguiente es sumar los elementos de las mismas posiciones de <b style="mso-bidi-font-weight: normal;">A</b> y <b style="mso-bidi-font-weight: normal;">B</b> para así ir obteniendo un nuevo elemento en la misma posición de los sumandos dentro de una nueva matriz <b style="mso-bidi-font-weight: normal;">C</b>.</span> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: center;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-JlRgma16GM5mmzoT8iodKtCT2xDbimmMykqWxcDex6uCaOFj70J0tvHIcAnPWewuNCJvjj6gmr3q463qgRWZydMPMMcuE2V7RXHJu4AxsbpqnIw-NkvhnSzcoy4_yicqnUlXKNuoBp3R/s1600/matriz.jpg" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="55" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-JlRgma16GM5mmzoT8iodKtCT2xDbimmMykqWxcDex6uCaOFj70J0tvHIcAnPWewuNCJvjj6gmr3q463qgRWZydMPMMcuE2V7RXHJu4AxsbpqnIw-NkvhnSzcoy4_yicqnUlXKNuoBp3R/s320/matriz.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGcLlHQYGmtw7nn_cf2lSn1WGjpJWGBg2mcWvis6yu4yQd8aWoiEfofe-yp0T9BftAPEwDVNoHHg-D5lQjPXsyyjlOyJR5HHj_c4gIwhWl1jjnLiPJsAIM7N1KafCpGPdTiMX1I7SxtxjQ/s1600/i_02co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGcLlHQYGmtw7nn_cf2lSn1WGjpJWGBg2mcWvis6yu4yQd8aWoiEfofe-yp0T9BftAPEwDVNoHHg-D5lQjPXsyyjlOyJR5HHj_c4gIwhWl1jjnLiPJsAIM7N1KafCpGPdTiMX1I7SxtxjQ/s400/i_02co.jpg" width="400" /></a></div></td></tr>
<tr><td class="tr-caption" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; text-align: center;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><strong><em><span style="color: #bf9000; font-size: small;">Resultado de la Suma de Matrices</span></em></strong></div></td></tr>
</tbody></table></div><div class="Default" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Este programa simplemente me surgió de la nada (para qué les miento), en una de esas noches en las cuales no tenía ni la menor idea sobre qué hacer y con el sueño encima.</span></div><div class="Default" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora permítanme compartirles el tutorial que me sirvió para la sintaxis de Pascal:</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><ul><li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzY2ZkY2MzNzctYWFlMy00MjAzLWFlMGQtZWUyYWU2NmZjNzVm&export=download&authkey=CKT2ql0&hl=en"><strong>Tutorial Pascal en PDF</strong></a></span></li>
</ul></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>C</u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;"><strong>Nombre:</strong></span><a href="http://www.blogger.com/goog_105740009"><strong> </strong></a></i><a href="https://docs.google.com/uc?id=0B3_-USmqViKzODQ2NGQzODAtZWZhNy00NTY0LWI2NTEtYWU3Y2IxNzhjYzk2&export=download&authkey=CM355u8J&hl=en"><strong>Pila</strong></a>.c</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;">Descripción:</span></i></b> Este programa en lenguaje C simplemente es una pequeña demostración de la estructura de datos <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“Pila”</i></b> y la forma en la que labora mediante el uso de un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">SWITCH</i></b> e instrucciones sencillas para su funcionamiento dependiendo del caso escogido en el menú.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdw2JDal6UDApmsUXh10Vh4275mbxVWrSwPAaMVvexTrKslrvBj1kOFxnxAspr9QOywdZu715wv-8SQEDnK3uO4sCb406-xEyMb_mbqu2yP9U3kXLVXtNazoJfw03eJQVB428E_nKssbvn/s1600/i_03co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdw2JDal6UDApmsUXh10Vh4275mbxVWrSwPAaMVvexTrKslrvBj1kOFxnxAspr9QOywdZu715wv-8SQEDnK3uO4sCb406-xEyMb_mbqu2yP9U3kXLVXtNazoJfw03eJQVB428E_nKssbvn/s400/i_03co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Acciones del Programa Pila.c</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Las funciones que podemos hacer son de:</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Agregar elementos </span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Borrar elementos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Mostrar los elementos contenidos </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Imprimir el elemento tope en la pila.</span></li>
</ul></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZV-eFF-FcE_jELCi7Ajyma09p6HjjgbmIpBsPFbtafCKz462e_H7HGdVyXqjRDOUsTMvvglAOh4WwJoZs8szh1s6GQjMzN1XMCoMvn35agkq5iTtOqCd4m7mA299epd8a70fMnGX_SjmU/s1600/i_04co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="226" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZV-eFF-FcE_jELCi7Ajyma09p6HjjgbmIpBsPFbtafCKz462e_H7HGdVyXqjRDOUsTMvvglAOh4WwJoZs8szh1s6GQjMzN1XMCoMvn35agkq5iTtOqCd4m7mA299epd8a70fMnGX_SjmU/s400/i_04co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Impresión de Elementos de la Pila</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">De hecho hablo un poco más detalladamente<span style="mso-spacerun: yes;"> </span>de esta estructura de datos en la entrada de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">PILA</i></b> realizada para la clase de laboratorio. No sólo de las instrucciones de este código, sino también de cómo funciona, qué es y en dónde vemos las pilas.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>ALGOL 68</u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Nombre</i></b>.</span> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzOTQ0OTZjNTgtNzNlNy00YTRiLWJjMzYtYWFmM2Y4OWZkODJm&export=download&authkey=CN7gz5kE&hl=en"><strong>Convertidor</strong></a>.ag68</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #b45f06;">Descripción.</span> </i></b>La verdad siento que este código fue algo realmente sencillo, pero debido a que tampoco tuve grandes ideas para hacer en ALGOL 68, sólo se me vino a la mente la idea de crear un convertidor de moneda.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Este programa te pide saber si vas a convertir de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">DOLARES A PESOS MEXICANOS</i></b> o viceversa.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPtApYQGtEDVkA6-HH_kUV-fCzMPljxqmMO6z2WU_Pix2OMJz7yoR_yKEaA1nrCTm-5OyLzKadvD1tV6FsBCz8ozZRG28j_eGNNCG0ov8U2soDDHk35DLNcWdokq8b3GCD_GAyi2EpRV0Y/s1600/i_05co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="226" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPtApYQGtEDVkA6-HH_kUV-fCzMPljxqmMO6z2WU_Pix2OMJz7yoR_yKEaA1nrCTm-5OyLzKadvD1tV6FsBCz8ozZRG28j_eGNNCG0ov8U2soDDHk35DLNcWdokq8b3GCD_GAyi2EpRV0Y/s400/i_05co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Introducción de Datos al Programa</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Lo siguiente es que ingresas la cantidad y te imprimirá la equivalencia de la cantidad ingresada.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUPmDqpis4sy935LZkIpQUFM6hayUWebUcBwomIO_hOCVC8gpQ6n8G5DDO4oxQ5IzK9ub9-Fx5hvAtI52VvN-dLZE51rFLeJaJcXUwaNGZ3S35nBuas-widh0_u7l2ZE2Y3NinnT68tvZ/s1600/i_06co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="217" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrUPmDqpis4sy935LZkIpQUFM6hayUWebUcBwomIO_hOCVC8gpQ6n8G5DDO4oxQ5IzK9ub9-Fx5hvAtI52VvN-dLZE51rFLeJaJcXUwaNGZ3S35nBuas-widh0_u7l2ZE2Y3NinnT68tvZ/s400/i_06co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Muestra de Resultado Final</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Nuestro tipo de cambio del dólar utilizado como factor de conversión para nuestro programa es $12.37 M.N.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí les dejo también mi tutorial de ALGOL 68, espero que les sirva de algo.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzNWUzMmQ3ZDgtNzY4MS00MWU5LWE5NzYtOTA3NWZmYTU5NmI0&export=download&authkey=CPKmmVg&hl=en"><strong>Tutorial ALGOL 68 en PDF</strong></a></span></li>
</ul></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><em><span style="color: #bf9000;"><strong>PD.</strong> De hecho no como que yo no lo comprendí muy bien, aclaro.</span></em></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>FORTRAN</u></em></strong></span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Nombre</i></b>.</span> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzMTI5ZjZiNzctNTc0Ny00MzY4LWJlNzktM2VmOGVlMTA0M2Qx&export=download&authkey=CMjw4dML&hl=en"><strong>Area</strong></a>.f</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #b45f06;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Descripción</i></b>.</span> Este programa no tiene gran ciencia en sí, aunque lo que deseaba comprobar era algo más allá que sólo la demostración de mi parte para con este lenguaje.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para mí lo principal era demostrar algo de la gran precisión en cantidades numéricas decimales que<span style="mso-spacerun: yes;"> </span>posee Fortran en comparación con otros lenguajes de programación.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para dicha acción use la recomendación que se me hizo al hablar de este tema: <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Obtener el valor de pi</i></b>.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Quería obtener unos 20 decimales para dicho valor, pero fracase en el intento: sólo obtuve 14 al hacer una conversión de tipo de real a doble precisión anteponiendo la palabra <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">“dble”</i></b> antes de la variable a imprimir.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">En fin, para obtener <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">pi</i></b> me base en el concepto de que 180° son equivalentes a <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">pi rad</i></b>. De modo que tenemos las siguientes igualdades (consideren que estamos en el sistema de radianes):</span></div><div class="Default" style="margin: 0cm 0cm 10pt; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; font-size: 14pt; mso-bidi-font-size: 11.0pt;">180° = π rad<br />
Cos 180 = -1 ∴ Cos π = -1<br />
π = arcCos -1</span></b></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Una vez definido esto, y obtenido el valor <strong><em>“REAL”</em></strong> de pi, decidí darle un uso por más simple que haya sido, de modo que no se quedara sólo en la impresión de esta constante.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Por lo que en sí, el programa (usando el valor de pi) obtiene el valor del área circular de un cilindro así como su volumen. (Ya sé que es cosa de kínder, peor todas mis ideas se fueron por la borda al no encontrar una conversión más precisa).</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzaMu0NTuC1sIbAvwkF-FiBnUkNPu3CGtgr1udC77Ttz4e6vEJ1b5mYK4kDqzaGyw-eEWQIaH779hI9JDnk_njSu3pnm8XjqVSWKbvqMl0ZhisCjnrzDxWlfEcVMlIU90b4a4FuWWQY56E/s1600/i_07co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzaMu0NTuC1sIbAvwkF-FiBnUkNPu3CGtgr1udC77Ttz4e6vEJ1b5mYK4kDqzaGyw-eEWQIaH779hI9JDnk_njSu3pnm8XjqVSWKbvqMl0ZhisCjnrzDxWlfEcVMlIU90b4a4FuWWQY56E/s400/i_07co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000; font-size: small;">Ejecución del Programa</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Hay algo que le note a FORTRAN, y es el manejo que tiene en la precisión que le sigue a la doble: la cuádruple. Sin embargo, no encontré la forma para aplicar esta conversión de tipo para mi valor de pi.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí les dejo el tutorial que me auxilio en parte en este lenguaje utilizado.</span></div><div class="Default" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZTAyYzBmNDEtZjJmOS00ZDA3LThjNWMtYWExZDI4ZWFmOWY4&export=download&authkey=CPXv0JsD&hl=en"><strong>Tutorial Fortran en PDF</strong></a></span></li>
</ul></div><span style="font-family: Arial;">Saludos a todos.</span><br />
<div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com0tag:blogger.com,1999:blog-8552655506552543708.post-13775669115090825642010-11-09T20:46:00.000-08:002010-11-11T22:59:05.222-08:00.: Tipos de Datos :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Video Tipos de Datos ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> M1 - M3<em> (Martes)</em></span></span><br />
<br />
Compañeros, aquí les dejo el video con el cual presento mi ejemplo sobre tipos de datos. Cualquier comentario es bienvenido.<br />
<br />
<span style="color: #3d85c6; font-family: "Courier New", Courier, monospace; font-size: x-large;"><strong><em>Video - Clase</em></strong></span><br />
<span style="color: #f1c232; font-family: "Courier New", Courier, monospace; font-size: large;"><strong><em>By Kris</em></strong></span><br />
<br />
<div style="text-align: center;"><object height="437" width="550"><param name="movie" value="http://www.youtube.com/v/Qf1l_xCXXrM?fs=1&hl=es_MX&color1=0x234900&color2=0x4e9e00"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Qf1l_xCXXrM?fs=1&hl=es_MX&color1=0x234900&color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="437"></embed></object></div><br />
También les dejo lo que es la pequeña implementación en código de la estructura ya planteado. Les pido que bajen tanto el código como el archivo fuente para que al momento de compilar en UBUNTU, se lean los datos del archivo. Cualquier problema hagánmelo saber.<br />
<ul><li><strong><em><span style="color: #3d85c6; font-size: large;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZGZmNzYwYTAtZGQ3ZS00ZGZmLWJkZGItMTg3YWFkNTc4ZTAz&export=download&authkey=CLOAwIAB&hl=en">Código en C</a></span></em></strong></li>
<li><strong><em><span style="color: #3d85c6; font-size: large;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzMTkyMzBmYTYtYzg0Zi00YThmLTllZjEtODU2ZmM4MmIyZDc4&export=download&authkey=CMXxoL4E&hl=en">Archivo Fuente</a></span></em></strong></li>
</ul><span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Saludos.</strong></span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com8tag:blogger.com,1999:blog-8552655506552543708.post-87339194097291536262010-11-08T22:25:00.000-08:002010-11-09T19:16:43.992-08:00.: Incrustar Videos desde YouTube :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Incrustar Videos de YouTube ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<br />
<div style="text-align: left;"><strong><em><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">Compañeros, aquí les muestro un video-tutorial creado por mí para aquellos que no saben como subir la última clase de lenguajes al blog para no sólo poner un simple link a YouTube. </span></em></strong><br />
<span style="color: #bf9000;"><br />
</span><br />
<strong><em><span style="color: #bf9000; font-family: Courier New;">Lo principal es que lo suban, claro. Sólo creen una cuenta si no la tienen y suban su clase.</span></em></strong><br />
<br />
<strong><em><span style="color: #3d85c6; font-family: "Courier New", Courier, monospace; font-size: large;">Video Tutorial </span></em></strong></div><div style="text-align: left;"><strong><em><u><span style="color: #7f6000; font-family: Courier New;">By Crispín</span></u></em></strong></div><div align="center" style="text-align: left;"><br />
</div><div align="center" style="text-align: center;"></div><div style="text-align: center;"><object height="437" width="550"><param name="movie" value="http://www.youtube.com/v/GAm4p3BBayU?fs=1&hl=es_MX&color1=0x234900&color2=0x4e9e00"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/GAm4p3BBayU?fs=1&hl=es_MX&color1=0x234900&color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="550" height="437"></embed></object></div><br />
<div style="text-align: center;"></div>Saludos.Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com4tag:blogger.com,1999:blog-8552655506552543708.post-4657057722885823952010-10-25T11:29:00.002-07:002010-10-25T11:29:48.207-07:00.: Especialidades de Lenguajes Script :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Especialidades de los lenguajes script ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>M1 -M3 (Martes)</em></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Que tal compañeros, estoy aquí de nuevo para informarles las acciones específicas o lo que se puede hacer con cada lenguaje script que vimos en le semana 3 de la clase ordinaria de Lenguajes de Programacion:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Awk</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Modificar archivos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Buscar y transformar bases de datos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Generar informes simples.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Buscar un nombre particular en una carta.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Añadir un nuevo campo a una base de datos pequeña.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Realizar el tipo de funciones que proporcionan muchas de las herramientas de UNIX:</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Buscar patrones (egrep)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Modificar archivos (tr o sed)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Especialmente diseñado para trabajar con archivos estructurados y patrones de texto.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Descomponer líneas de entrada de campos y comparar estos campos con patrones que se especifiquen.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Shell</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Considerado como intérprete de comandos de Linux y su programación (programación Shell)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Es sólo un programa con el cual interactúan el usuario y el sistema operativo.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Generalmente se usa para agilizar los comandos de Shell sin la necesidad de estar escribiéndolos repetidamente.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Perl</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Lenguaje interpretado orientado a búsqueda ,extracción y formateado de ficheros de tipo texto.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Muy usado para gestión y manejo de procesos (conteo, extracción de parámetros característicos…)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Combinación de las características de los lenguajes más usados por los programadores en UNIX como awk y Shell.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Su potencia se basa en la similitud con las mejores características del lenguaje estructurado C.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier utilidad de sh, awk o sed se puede implementar de una manera más potente y sencilla en Perl.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Construcción de pequeños programas que pueden usarse como filtros para ordenar información de ficheros, realizar búsquedas, etc.</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;"><em><strong>PD.</strong> Significa que mis programas de Perl no los hice en base a su especialidad por lo que pude comprender con esta sección.</em></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Python</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Lenguaje de programación multiparadigma. Permite varios estilos de programación, como la programación:</span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Orientada a objetos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Estructurada.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Funcional</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Orientada a aspectos</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>TCL</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Lenguaje script diseñado para integrarse en otras aplicaciones (como otros lenguajes scripts)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Soporta listas y arreglos, e implementa estructuras de control y llamadas a procedimientos</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Tk es el toolkit de TCL para crear interfaces gráficas.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">TCL/TK está diseñado para poder incorporarse como intérprete a otras aplicaciones</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>JavaScript</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Lenguaje de tipo script compacto.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Basado en objetos y guiado por eventos</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Diseñado específicamente para el desarrollo de aplicaciones para interactuar con la página Web. Hay una interacción cliente – servidor.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Se usa para pedir datos, confirmaciones, mostrar mensajes, crear animaciones, etc.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ejemplos de uso de javascript: Tenemos a Hotmail, Facebook, etc.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Bibliografía</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">VIDAL CORTÉS, J Alberto. “<em>El Lenguaje de Programación AWK/GAWK</em>”. Córdoba.2001. Pag 1. <a href="http://blyx.com/public/docs/programacion/Manual_Awk_castellano.pdf">http://blyx.com/public/docs/programacion/Manual_Awk_castellano.pdf</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">_______________. “<em>Programación Shell en Linux</em>”. casidiablohost.googlepages.com/ProgramacinenshellLinux.pdf</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">_______________. “<em>Introducción al Lenguaje Perl</em>”. <a href="http://www.pablin.com.ar/computer/cursos/varios/perl1.htm">http://www.pablin.com.ar/computer/cursos/varios/perl1.htm</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Usabilidadweb.com.ar. “<em>Introducción a Python</em>”. <a href="http://www.usabilidadweb.com.ar/python.php">http://www.usabilidadweb.com.ar/python.php</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">TODOROVICH, Elias. “<em>Tcl/Tk para Herramientas EDA</em>”. <a href="http://arantxa.ii.uam.es/~mcts/papers/Tcl-Tutorial-definitivo.pdf">http://arantxa.ii.uam.es/~mcts/papers/Tcl-Tutorial-definitivo.pdf</a></span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">WebEstilo. “<em>JavaScript</em>”. http://www.webestilo.com/javascript/js00.phtml</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-34982808130063894782010-10-25T11:29:00.001-07:002010-10-25T11:29:28.476-07:00.: Lenguajes Lógicos (CO) :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Caballos ::</marquee></span></b></i><br />
<br />
<hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>M1 -M3 (Martes)</em></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Compañeros, aquí les presento el problema lógico que saque de una página aparte a la que estábamos viendo en clase, el cual resolví y después lo adapte a un código en Prolog.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El problema planteado fue el siguiente:</span><br />
<br />
<strong><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"><em>“Caballos”</em></span></strong><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<em><span style="color: #bf9000; font-family: Arial, Helvetica, sans-serif;">El caballo de Mac es más oscuro que el de Smith, pero más rápido y más viejo que el de Jack, que es aún más lento que el de Willy, que es más joven que el de Mac, que es más viejo que el de Smith, que es más claro que el de Willy, aunque el de Jack es más lento y más oscuro que el de Smith. ¿Cuál es el más viejo, cuál el más lento y cuál el más claro?</span></em><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para la solución, primeramente obtuve las siguientes preposiciones de acuerdo a la redacción y luego las clasifique de acuerdo a las categorías de las preguntas que plantea el problema:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"><em><strong>*Edad</strong></em></span><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Mac es más viejo que el caballo de Jack</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Willy es más joven que el caballo de Mac</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Mac es más viejo que el caballo de Smith</span></li>
</ol><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"><strong><em>*Velocidad</em></strong></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Mac es más rápido que el caballo de Jack</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Jack es más lento que el caballo de Willy.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Jack es más lento que el caballo de Smith</span></li>
</ol><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;"><strong><em>*Tonalidad de color</em></strong></span><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Mac es más oscuro que el caballo de Smith</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Smith es más claro que el caballo de Willy</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">El caballo de Jack es más oscuro que el caballo de Smith</span></li>
</ol><span style="font-family: Arial, Helvetica, sans-serif;">Para poder obtener la solución, ordené a cada caballo de cada uno de las personas mencionadas en orden decreciente, dependiendo quien era más que el otro.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Por ejemplo, si nos vamos a la sección de edad, se obtiene lo siguiente:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<strong><em><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;">**Edad (El más viejo)</span></em></strong><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">Mac</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Jack</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Willy</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Smith</span></li>
</ol><span style="font-family: Arial, Helvetica, sans-serif;">Hay de aclarar que los últimos tres lugares son arbitrarios, pues lo único que nos interesa aquí es notar que el caballo de Mac es el más viejo de los cuatro.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Analizando las clasificaciones obtenemos lo siguiente:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<strong><em><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;">**Velocidad (El más lento)</span></em></strong><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">Jack</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Mac</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Willy</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Smith</span></li>
</ol><strong><em><span style="color: #3d85c6; font-family: Arial, Helvetica, sans-serif;">**Tonalidad de Color (El más claro)</span></em></strong><br />
<ol><li><span style="font-family: Arial, Helvetica, sans-serif;">Smith</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Mac</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Willy</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Jack</span></li>
</ol><span style="font-family: Arial, Helvetica, sans-serif;">Por consiguiente, tenemos los siguientes resultados:</span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">Caballo más viejo.</span></strong> El de Mac.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">Caballo más lento.</span></strong> El de Jack.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">Caballo más claro.</span></strong> El de Smith</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Como se puede apreciar, nunca pensé que fuera a ser así de sencillo. Meter este problema en prolog tampoco tuvo gran ciencia, como pueden apreciarlo en el código a continuación:</span><br />
<br />
<span style="color: #0b5394; font-family: Arial; font-size: large;"><strong><em><u>Código en Prolog.</u></em></strong></span><br />
<br />
<ul><li><span style="color: #bf9000; font-family: Arial, Helvetica, sans-serif;"><em><strong><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZTk4OWMzMjYtMmZiNy00MTg4LWIxMGYtYzNhOWRlZDAwNjFk&export=download&authkey=CMSnk-YM&hl=en">Caballos.pl (Archivo Prolog)</a></strong></em></span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Al momento que ejecuten swi-prolog en el terminal, seguir estas intrucciones:</span><br />
<ul><li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">consult('Caballos.pl').</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">listing.</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Si desean revisar una de las cuestiones del problema, sólo hay que teclear el nombre de la función tal y como nos aparece en pantalla con ayuda de lo que fue el <strong>"listing"</strong>, sólo que en lugar de terminar la línea con <span style="font-family: "Courier New", Courier, monospace;"><strong>:-</strong></span>, deberá terminar el punto (<strong> .</strong> ).</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Se teclea punto y coma (<strong> ;</strong> ) después de cada respuesta dada para poder ver más resultados.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #3d85c6;"><strong>PD</strong></span>. <em>Fue demasiado fácil al final, considerando que el código está bien hecho y el problema se planteó de manera correcta.</em></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Fuente del Problema.</u></em></strong></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">__________. “<em><strong>Lógica</strong></em>”. </span><a href="http://platea.pntic.mec.es/jescuder/logica.htm"><span style="font-family: Arial, Helvetica, sans-serif;">http://platea.pntic.mec.es/jescuder/logica.htm</span></a><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-25167337160954132892010-10-25T11:29:00.000-07:002010-10-25T11:29:08.378-07:00.: Especialidades de Lenguajes Funcionales :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Especialidades de Lenguajes Funcionales ::</marquee></span></b></i><br />
<br />
<hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En estos lenguajes lo que predomina principalmente son la definición y aplicación de las funciones que vayamos a utilizar.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Anteriormente comenté algo acerca de las especialidades de los lenguajes script, en lo que se enfocaban.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora veremos algo similar, pero de algunos lenguajes funcionales.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Lenguaje R</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Sistema para análisis estadísticos y gráficos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Programar bucles para analizar conjuntos sucesivos de datos.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Cálculo Lambda</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Sistema formal diseñado para investigar:</span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">La definición de una función.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La aplicación de una función.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">La recursividad.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Lisp</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Lenguaje para Procesar Listas.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Creado por John McCarthy, el cual tenía el interés especial en aplicaciones matemáticas puesto que trataba de ofrecer un mecanismo alternativo a las Maquinas de Turing para poder formalizar algoritmos.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Implementaciones principalmente matemáticas.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Posee un manejo de memoria que libera el espacio utilizado por los objetos que ya no son requeridos.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Scheme</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">La verdad no localice nada concreto en cuestión de utilidad. Sólo que es un lenguaje derivado de LISP, donde su principal metodología se basa en la resolución de problemas.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Scheme permite resolver problemas complejos con programas cortos y elegantes.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Haskell</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">En concreto, Haskell únicamente surgió como un lenguaje funcional que reuniera todas las características de los lenguajes funcionales de la época (1980). He de ahí que se diga que Haskell es un lenguaje funcional de propósito general.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Incluye soporte para tipos de datos y funciones recursivas, listas, etc.</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Erlang</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Se usa en el contexto de sistemas distribuidos de control (NCS) tolerante a fallos de software.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Como lenguaje funcional tiene su uso en aplicaciones complejas, configurables dinámicamente, de modo que son casi inmunes ante fallos de software y hardware de modo que garantiza una operación sin detenerse en áreas como organización del control del tráfico aéreo/ferroviario, mensajería instantánea, servicios basados en Web (Amazon, Google, Yahoo, Facebook, etc.)</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Su especialidad, que queda en contraste con la gran parte de otros lenguajes funcionales, es su gran naturaleza dinámica; las variables son dinámicas pues no son verificadas en tiempo de compilación, sino en el de ejecución, lo que quizás disminuya su rendimiento.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Y aunque este lenguaje provee de mecanismos tolerantes a fallos y a cubrir errores residuales en el código de producción, un sistema de tipos estáticos produciría claros beneficios en la práctica. Pero esto es un tema que aún se discute.</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Si en sí desean conocer algo en específico que no se aclare aquí, no duden en comentarlo para ver que podemos encontrar.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-62321579438498945602010-10-25T11:28:00.001-07:002010-10-25T11:28:38.378-07:00.: Lenguajes Script (LB) :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Programas en Lenguajes Script (LB) ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1 (Jueves)</em></span></span><br />
<br />
<span style="font-family: "Arial", "sans-serif";">Como ejercicio referente al tema de lenguajes script y como algo similar al reporte tres de la clase ordinaria, también realice programas en los mismos lenguajes script que en el reporte de la clase ordinaria. Vamos a ver de qué se tratan:</span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Awk</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">Nombre.</span> </span></i></b><span style="font-family: "Arial", "sans-serif";"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZjFlZmJlYjctNDBkNS00NTU5LWJkZjctMTg4OTQxNjA5NTQ0&export=download&authkey=CKWJsewB&hl=en">Utilidad</a>.awk</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif";">Descripción</span></i></b><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">.</span> En esta aplicación de awk, contamos con un archivo fuente que contiene las cantidades de costo e ingreso de todo un semestre.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXi7JR34A0e547FuFGX9KlzSf2vdVVsQQDjKXiDJJ1PL_1fkr8NThnRu5hD4H_6LTrT9MGeWdBQXN2C-dSYMcezK9bOg06rE4ivbNHEA7xtUD2RDvyHD6o3N5-6l300D3PT7klMurvQ4PI/s1600/awk_1_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="277" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXi7JR34A0e547FuFGX9KlzSf2vdVVsQQDjKXiDJJ1PL_1fkr8NThnRu5hD4H_6LTrT9MGeWdBQXN2C-dSYMcezK9bOg06rE4ivbNHEA7xtUD2RDvyHD6o3N5-6l300D3PT7klMurvQ4PI/s400/awk_1_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Código Fuente</span></em></strong></td></tr>
</tbody></table> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioiUXvJQDm8SFYjvPyubhucwpUzi3Rf6G7WjwOVM3kmUmatOrRQU7MfEKKsDZxFmaVe2UhluG7s-WOgsh7k1c1mNDNkBcdg_rtBQoNizWHwGWDMSCH2ClfBbQPoCWLfQAM8genh3rvx8no/s1600/awk_2_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="208" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioiUXvJQDm8SFYjvPyubhucwpUzi3Rf6G7WjwOVM3kmUmatOrRQU7MfEKKsDZxFmaVe2UhluG7s-WOgsh7k1c1mNDNkBcdg_rtBQoNizWHwGWDMSCH2ClfBbQPoCWLfQAM8genh3rvx8no/s400/awk_2_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="color: #bf9000;"><strong><em>Archivo Fuente</em></strong></span></td></tr>
</tbody></table><span style="font-family: "Arial", "sans-serif";">Aquí lo que se hace es que el programa lee la información contenida en el archivo llamado <span style="color: #7f6000;"><b style="mso-bidi-font-weight: normal;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZmI3ZjJkODUtZDQ0Ny00MjA1LWIzY2MtOTE2ODEwZDhmODlh&export=download&authkey=CP74oc0M&hl=en">Registro</a>.txt</b>,</span> de modo que obtiene la utilidad de cada mes en base al costo y el ingreso que tiene ese mes.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Al mismo tiempo va haciendo una suma total de todo el semestre sobre costos, ingresos y utilidades.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Durante el proceso del programa, se va imprimiendo (línea por línea) los meses, la cantidad de costo, ingreso y utilidad de ese mes en un archivo con el nombre de <span style="color: #7f6000;"><b style="mso-bidi-font-weight: normal;">Utilidad.txt</b>.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #7f6000; font-family: "Arial", "sans-serif";">NOTA</span></i></b><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #7f6000;">.</span> Como pueden apreciar en el código, vemos un formato de impresión para cada uno de los campos que se van a imprimir en el archivo de destino. Por ejemplo:</span></i></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">printf “%-10s”, $1</span></i></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";">Este formato indica que debe darse un ancho de 10 al campo número 1. El signo ( <strong><span style="color: #7f6000;">-</span></strong> ) indica que debe alinearse a la izquierda. Al no colocar ese signo, por lo normal, el contenido del campo se alineará a la derecha.</span></i><span style="font-family: "Arial", "sans-serif";"></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWrDr3bFv3825gpDqtntkGStQ192C7MygF7Oxbb0vHLotTR54FKQX_WojdcaVhghFjm2QNREtkz2N8Zd88SXmxh1SZOmLTUJw-MnJmmcjsXQsJ6Cshk42C9S0v10dZY3-D6h2a2eLYkwvl/s1600/awk_3_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="248" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWrDr3bFv3825gpDqtntkGStQ192C7MygF7Oxbb0vHLotTR54FKQX_WojdcaVhghFjm2QNREtkz2N8Zd88SXmxh1SZOmLTUJw-MnJmmcjsXQsJ6Cshk42C9S0v10dZY3-D6h2a2eLYkwvl/s400/awk_3_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Archivo de destino (Resultados)</span></em></strong></td></tr>
</tbody></table><span style="font-family: "Arial", "sans-serif";">Después de hacer todas estas impresiones y finalizar la lectura del archivo fuente y los cálculos realizados, al final del archivo se imprimen los totales de los costos, ingresos y utilidades en todo el semestre; además de decir si fue un semestre de pérdidas o de ganancias.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Al igual que en el programa de la clase ordinaria de awk, también se ejecuta de la siguiente manera:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">awk -f utilidad.awk Registro.txt > Utilidad.txt</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8U0BLb0snkzUwmyEJ7-729Tzf7vFVcJyokJe7UT5Eo49bPio5BvyNH8dSPDrKemg8i6CIHqv9BlVf0SdCWuGJB3CEFyMVn_4ztRf0RYReYK5D8K3mpy7a8DvZsI5m3nen4NcqBnt0mq8/s1600/awk_4_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz8U0BLb0snkzUwmyEJ7-729Tzf7vFVcJyokJe7UT5Eo49bPio5BvyNH8dSPDrKemg8i6CIHqv9BlVf0SdCWuGJB3CEFyMVn_4ztRf0RYReYK5D8K3mpy7a8DvZsI5m3nen4NcqBnt0mq8/s400/awk_4_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Instrucción Mencionada en el terminal</span></em></strong></td></tr>
</tbody></table><span style="font-family: "Arial", "sans-serif";">Recuerden que al usar “<span style="color: #7f6000;"><strong>></strong></span>” sobre escribimos todo el contenido del archivo de destino; mientras que al usar “<strong><span style="color: #7f6000;">>>”</span></strong> ingresamos los resultados al final de los datos ya contenidos en el archivo de destino.</span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Shell</u></em></strong></span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">Nombre.</span> </span></i></b><span style="font-family: "Arial", "sans-serif";"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzMDE3ZTg0ZmYtZWI0OS00ZDU5LTgwMWItZmJkNjJlODgwYWZm&export=download&authkey=CLW0iZ8P&hl=en">Manejo_Carpetas</a>.sh</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif";">Descripción</span></i></b><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">.</span> Esta “pequeño” código que realice en Shell hace algo parecido a mi programa de Shell de la clase ordinaria; sin embargo, la diferencia está en que en lugar de manipular archivos, manipula directorios.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Las acciones que realiza son las siguientes:</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Crear</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Mover</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Copiar</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Renombrar</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Elimina</span></div></div><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhU8UiTb6VUKRgmPt_rV-XQiOeDOSlVM2NhRUvtO1p-f-cZ1Pc5xMQtymfqOwwiJ3hBYlJnxooNh1q5nxKRbkw30L2WHlKRAP8CDWT2vPWIggXHm5ghyphenhyphen1LAdY3Ny_JHgIXqsyCych44iwz/s1600/sh_1_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhU8UiTb6VUKRgmPt_rV-XQiOeDOSlVM2NhRUvtO1p-f-cZ1Pc5xMQtymfqOwwiJ3hBYlJnxooNh1q5nxKRbkw30L2WHlKRAP8CDWT2vPWIggXHm5ghyphenhyphen1LAdY3Ny_JHgIXqsyCych44iwz/s400/sh_1_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Menú de Opciones</span></em></strong></td></tr>
</tbody></table></div><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Obviamente, antes de ejecutar alguna de estas acciones, te pregunta si la ubicación donde te encuentras es en la que deseas trabajar. Si no es así, tienes la opción de moverte hacía adelante o hacía atrás. Ya es decisión de cada usuario.</span></div><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAQGCdiGuoNKUcPSssqI4Qb-TVefu0kM2-edJOCBJpvZrEiwJR3DyXOhQOiOFILfDvRv5zNAizOI5EGZC0b2iqoIAl0FeZimufWVBVrluoPbQfP0yPlvc_RmLg5i71cYMsI5a01XTQZyE/s1600/sh_2_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjAQGCdiGuoNKUcPSssqI4Qb-TVefu0kM2-edJOCBJpvZrEiwJR3DyXOhQOiOFILfDvRv5zNAizOI5EGZC0b2iqoIAl0FeZimufWVBVrluoPbQfP0yPlvc_RmLg5i71cYMsI5a01XTQZyE/s400/sh_2_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Inicio del Programa</span></em></strong></td></tr>
</tbody></table><span style="font-family: "Arial", "sans-serif";">Al igual que en el otro programa en este lenguaje, mi principal objetivo personal era adaptar algunas de las instrucciones de Shell de modo que si deseaba hacer algo con un directorio en el terminal, no tener que estar escribiendo repetidas veces lo mismo, es decir, tener algo más automático.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Perl</u></em></strong></span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif";">Nombre.</span></i></b><span style="font-family: "Arial", "sans-serif";"> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzZWEwMDU2MjQtOWY5Yi00MTNhLTliYTQtMzFhYjRmZjA4ZGE5&export=download&authkey=CP2kxOIH&hl=en">Prom_Arrays</a>.pl</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif";">Descripción</span></i></b><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">.</span> Nuevamente, volvemos con los arreglos de Perl, pero ahora usamos algo súper clásico conocido por todos: <span style="color: #7f6000;"><b style="mso-bidi-font-weight: normal;">La obtención de promedios</b>.</span> </span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Aquí, se captura una<strong><span style="color: #7f6000;"> N</span></strong> cantidad de agentes de telemarketing, para los cuales (en cada uno) se registra su puntaje en sus llamadas en las áreas de:</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Calidad.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Tiempos.</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font-family: "Times New Roman";"> </span></span></span><span style="font-family: "Arial", "sans-serif";">Adherencia.</span></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkDvfUyIQ4l50X7p83KAIR4QncsfJlLU3P2DdpMYmz2Z7urdjV3QE7GmZJQaLtKxIjGTZIt5jUW-y0KC0KXSWGGDi5PLH3eQyvBorjfnzTo7TZxVOK5frwW2G2jbbklnPTwMvISHEtCQjt/s1600/pl_1_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkDvfUyIQ4l50X7p83KAIR4QncsfJlLU3P2DdpMYmz2Z7urdjV3QE7GmZJQaLtKxIjGTZIt5jUW-y0KC0KXSWGGDi5PLH3eQyvBorjfnzTo7TZxVOK5frwW2G2jbbklnPTwMvISHEtCQjt/s400/pl_1_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Captura de Datos</span></em></strong></td></tr>
</tbody></table><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Al mismo tiempo que hacíamos el registro de cada agente, se va obteniendo el promedio en las métricas del mismo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif";">Después de estos cálculos, se va haciendo una suma de los promedios finales de cada uno de los agentes, para que al final podamos apreciar, no solo las métricas individuales de cada agente, sino un promedio final de grupo para darnos una idea de que tan afectado está tu supervisor en el mes.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWch_aPBEMfSHaHe3QqLWgpS_yQHSJNqpEPkE9QFt6s2XudE0VUA1hlLY3SnBaWpxJSE-aJt5hmrGlnCuzPkWVt5xO4eY4uiQSCcdIc2n94_bqLug1RdQ39c4aoaP5dcHRPxMigpXHx2lM/s1600/pl_2_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="248" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWch_aPBEMfSHaHe3QqLWgpS_yQHSJNqpEPkE9QFt6s2XudE0VUA1hlLY3SnBaWpxJSE-aJt5hmrGlnCuzPkWVt5xO4eY4uiQSCcdIc2n94_bqLug1RdQ39c4aoaP5dcHRPxMigpXHx2lM/s400/pl_2_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Impresión de Resultados</span></em></strong></td></tr>
</tbody></table><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #7f6000; font-family: "Arial", "sans-serif";">NOTA</span></i></b><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #7f6000;">.</span> Las métricas de los agentes también afectan a las métricas del supervisor.</span></i></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Python</u></em></strong></span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif";">Al momento de hacer los programas de Python para la clase de laboratorio, de tan dormido que estaba ya, no me percate que había hecho dos:</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #6aa84f; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em>Primer Programa</em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">Nombre.</span> </span></i></b><span style="font-family: "Arial", "sans-serif";"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzZWM1NjgxOTMtYmZiNC00ZjE1LTliZjQtM2Y5OGNlMDY3ZTAw&export=download&authkey=CJ3IgJkK&hl=en">Suma_Multiplos</a>.py</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">Descripción.</span> </span></i></b><span style="font-family: "Arial", "sans-serif";">Este pequeño y fácil programa en este particular lenguaje, lo que hace es que le ingresas un número <strong><span style="color: #7f6000;">N</span></strong>, y el proceso que realiza por medio de un “<span style="color: #7f6000;"><strong>IF</strong></span>” dentro de un “<strong><span style="color: #7f6000;">WHILE</span></strong>” es verificar si el número “<strong><span style="color: #7f6000;">i</span></strong>” que se va corriendo es divisible, ya sea entre 3 ó 5.</span></div></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPgx3GprvytQqO9ONK98hEGFCa899xxkn5SXJqIm64apUhjox-5wh05sBHFQweqWYAj-pNpo9pm8AYBws66tJ-b93XuJq9BmRqfJbWQsq5_NSI8nH_vRrvvjm8M21TwuYkhlgSonqdrSUZ/s1600/py_1_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="248" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPgx3GprvytQqO9ONK98hEGFCa899xxkn5SXJqIm64apUhjox-5wh05sBHFQweqWYAj-pNpo9pm8AYBws66tJ-b93XuJq9BmRqfJbWQsq5_NSI8nH_vRrvvjm8M21TwuYkhlgSonqdrSUZ/s400/py_1_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Inicio del Programa</span></em></strong></td></tr>
</tbody></table><div class="MsoNormal" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">De ser esto cierto, imprimirá el número “<span style="color: #7f6000;"><strong>i</strong></span>”. Aclarando que en sí, el número <span style="color: #7f6000;"><strong>N</strong></span> que se ingresó al principio, sólo funciona como un límite para verificar números desde <span style="color: #7f6000;"><strong>1</strong></span> hasta <span style="color: #7f6000;"><strong>N</strong></span>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif";">Al final de la aplicación, se nos mostrara la suma de todos estos múltiplos de 3 ó 5.</span></div></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFmWYNizUp72n4x-_KTB3CoII8_lkB4xFuRc79UhQAPCrjvXa54iB-A7iLplR-sHtZMULOxz1ieXqAPjKqRkBGiVaVpSdHrEeZsm9TDj54syQ1nP20evOCouZoC9vuSTVgginSHMv5YYwf/s1600/py_2_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="248" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFmWYNizUp72n4x-_KTB3CoII8_lkB4xFuRc79UhQAPCrjvXa54iB-A7iLplR-sHtZMULOxz1ieXqAPjKqRkBGiVaVpSdHrEeZsm9TDj54syQ1nP20evOCouZoC9vuSTVgginSHMv5YYwf/s400/py_2_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Resultado Final</span></em></strong></td></tr>
</tbody></table><span style="font-family: "Arial", "sans-serif";">La verdad es que este programa lo saque de un conjunto de ejercicios complementarios de Python, pues no tenía ni las más remota idea que hacer.</span><br />
<br />
<span style="color: #6aa84f; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em>Segundo Programa</em></strong></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";"><span style="color: #e69138;">Nombre.</span> </span></i></b><span style="font-family: "Arial", "sans-serif";"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzMWY0ZDg5MjktNzViYy00YTY3LWFkZTctMjQxZjU3Y2IyZjZj&export=download&authkey=CLjNk64J&hl=en">Suma_Potencias</a>.py</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif";">Descripción.</span></i></b><span style="font-family: "Arial", "sans-serif";"> Nuevamente (nada más por no dejar) no volví a tener ni idea de que hacer. </span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif";">Por lo que comencé a verificar los ejercicios en lenguaje C de un libro que tengo, por lo que decidí adaptar el programa que dice:</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif";">“Escribe el programa que al recibir como dato un número <strong><span style="color: #7f6000;">N</span></strong> entero, obtenga el resultado de la siguiente seríe:”</span></i> <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAQGb_WW0Z69CSVO-lkvjk_a4xATnyflFaSMn4GKx2NRH-Pg4Z7qOKLjAt398S01RhvptOx_3P2OYPh9mEpa3yamiQAf5Um6gHYpdXsRj64DhrUhw19YX6eMQGLQs2F4FLzx0tXf2EM_Mz/s1600/py_3_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAQGb_WW0Z69CSVO-lkvjk_a4xATnyflFaSMn4GKx2NRH-Pg4Z7qOKLjAt398S01RhvptOx_3P2OYPh9mEpa3yamiQAf5Um6gHYpdXsRj64DhrUhw19YX6eMQGLQs2F4FLzx0tXf2EM_Mz/s400/py_3_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Resultado de la serie hasta N = 5</span></em></strong></td></tr>
</tbody></table><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;"><strong><em><u>TCL</u></em></strong></span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #e69138; font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Nombre.</span></i></b><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;"> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzNzU4NTVlYmMtMjY2NC00YTU0LThmNzEtMTliYzYyYTZlNzdl&export=download&authkey=CPPNhqgN&hl=en">Votos</a>.tclsh</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;"><span style="color: #e69138;">Descripción.</span> </span></i></b><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Para este programa en TCL, volví a optar por la práctica de la instrucción “<span style="color: #7f6000;"><strong>SWITCH</strong></span>”.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Ahora lo que realice fue un sencillo contador de votos en el proceso de las elecciones, donde te pide a qué partido fue el voto a favor.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_aoko4ygqliAIkGRsQeINN9J-SV5MV9CGST-ynI80g6iH-OkO2eTSV1inSCJhMRZWkbgQh9icYXxV15j3Yc9mpyvJkkEtqw5KTux3za_-ORcb1J85BVgYF-fKMy7HRC2ham_mSa8oNQck/s1600/tclsh_1_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_aoko4ygqliAIkGRsQeINN9J-SV5MV9CGST-ynI80g6iH-OkO2eTSV1inSCJhMRZWkbgQh9icYXxV15j3Yc9mpyvJkkEtqw5KTux3za_-ORcb1J85BVgYF-fKMy7HRC2ham_mSa8oNQck/s400/tclsh_1_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Menú de Opciones</span></em></strong></td></tr>
</tbody></table><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Cuando llegue el momento que decidas ya no registrar votos, al final te mostrará el total de votos que recibió cada partido, el total de votos en todo el proceso y el resultado de cuál fue el partido ganador en el proceso de elecciones.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmaRh0XBsTgt1nfIWvJvh9CFYcG8v7md98XaYvLn_nEhJPtw-DXzXLhiPSYaXhsBW2HSeuw8Thus1KJEqmhAtft8jhZGXtrrEEaBc95ziTJRElNNNE9V9thkoSmlDUJI0pOrOFz33m6OG5/s1600/tclsh_2_lb.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmaRh0XBsTgt1nfIWvJvh9CFYcG8v7md98XaYvLn_nEhJPtw-DXzXLhiPSYaXhsBW2HSeuw8Thus1KJEqmhAtft8jhZGXtrrEEaBc95ziTJRElNNNE9V9thkoSmlDUJI0pOrOFz33m6OG5/s400/tclsh_2_lb.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Impresón de Resultados</span></em></strong></td></tr>
</tbody></table><div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Si se percataron, en el nombre de cada programa, encontramos el link de descarga para los códigos de los mismos.</span></div></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Cualquier aporte que tengan para los códigos ya hechos son bienvenidos.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif"; mso-fareast-font-family: "Times New Roman"; mso-fareast-theme-font: minor-fareast;">Saludos.</span></div><div class="separator" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;"></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-82453755840424560262010-10-25T11:28:00.000-07:002010-10-25T11:28:20.227-07:00.: Lenguajes Lógicos (LB) :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Deportistas ::</marquee></span></b></i><br />
<br />
<hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1(Jueves)</em></span></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Compañeros, aquí les presento el problema lógico que saque de una página aparte a la que estábamos viendo en clase, el cual resolví y después lo adapte a un código en Prolog.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">El problema planteado fue el siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: Arial, Helvetica, sans-serif;">“Las Deportistas”</span></i></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><i style="mso-bidi-font-style: normal;">Ana, Beatriz y Carmen. Una es tenista, otra gimnasta y otra nadadora. La gimnasta, la más baja de las tres, es soltera. Ana, que es suegra de Beatriz, es más alta que la tenista. ¿Qué deporte practica cada una?</i></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Lo primero a realizar, fue obtener las preposiciones que me proporcionaba el problema para analizar las condiciones de cada deportista:</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span>La gimnasta es la más baja de las tres.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span>La gimnasta es soltera.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span>Ana es suegra de Beatriz</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l1 level1 lfo1; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span>Ana es más alta que la tenista.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">La respuesta fue fácil:</span></div><div class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> <span style="color: #0b5394;"> </span></span></span></span><b style="mso-bidi-font-weight: normal;"><span style="color: #0b5394;">Gimnasta</span>.</b> Carmen.</span></div><div class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span><b style="mso-bidi-font-weight: normal;"><span style="color: #0b5394;">Tenista.</span></b> Beatriz.</span></div><div class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; mso-list: l0 level1 lfo2; text-indent: -18pt;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><img alt="*" height="12" src="file:///C:/Users/-Kris-/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif" width="12" /><span style="font-family: "Times New Roman";"> </span></span></span><b style="mso-bidi-font-weight: normal;"><span style="color: #0b5394;">Nadadora</span>.</b> Ana.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Para llegar a esta conclusión, primeramente partimos del hecho de que sólo hay tres mujeres: Ana, Carmen y Beatriz.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Deduje que Carmen es la gimnasta, pues la condición para la gimnasta es que debía ser soltera, y debido a que Ana es suegra de Beatriz, se me indica que tienen un parentesco en el cual ninguna de las dos partes son solteras.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Ahora sólo me queda Beatriz y Ana. </span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Concluí que Ana es la nadadora a causa de la preposición que dice que “Ana es más alta que la tenista”, la cual me dice que Ana no es la tenista y por consiguiente, debía de ser la nadadora.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">Y por último, y debido a concepto de eliminación, es por lógica definir que Beatriz es la Tenista, pues es la persona que queda y ya sólo queda un deporte sin definir.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Código en Prolog</u></em></strong></span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzNzA1NmVlYzYtODdiMi00MzIxLTliZTEtMjljOTBjNTdkZGJj&export=download&authkey=CNj2kYQL&hl=en">Deportistas.pl (Archivo Prolog)</a></span></div></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Al momento que ejecuten swi-prolog en el terminal, seguir estas intrucciones:</span><br />
<ul><li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">consult('Deportistas.pl').</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">listing.</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Si desean revisar una de las cuestiones del problema, sólo hay que teclear el nombre de la función tal y como nos aparece en pantalla con ayuda de lo que fue el <strong>"listing"</strong>, sólo que en lugar de terminar la línea con <span style="font-family: "Courier New", Courier, monospace;"><strong>:-</strong></span>, deberá terminar el punto (<strong> .</strong> ).</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Se teclea punto y coma (<strong> ;</strong> ) después de cada respuesta dada para poder ver más resultados.</span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
<span style="color: #0b5394; font-family: Arial; font-size: large;"><strong><em><u>Fuente del Problema</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial, Helvetica, sans-serif;">__________. “<i style="mso-bidi-font-style: normal;"><u>Lógica</u></i>”. </span><a href="http://platea.pntic.mec.es/jescuder/logica.htm"><span style="font-family: Arial, Helvetica, sans-serif;">http://platea.pntic.mec.es/jescuder/logica.htm</span></a></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com0tag:blogger.com,1999:blog-8552655506552543708.post-17184225548916836012010-10-25T11:27:00.001-07:002010-10-25T11:27:52.639-07:00.: Intrucciones Scheme :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Scheme ::</marquee></span></b></i><br />
<br />
<hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1(Jueves)</em></span></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">En esta ocasión, hablaremos algo sobre el lenguaje Scheme.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Aclaro que me estoy basando al programa <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">“<a href="https://docs.google.com/uc?id=0B3_-USmqViKzYjViMTgyZDQtMzE5Ny00Zjg1LWE0ZTYtOTM3ODg0MmNmYjkw&export=download&authkey=COXhzOQP&hl=en">Cuad</a>.scm”</span></i></b> que realice para la clase normal, el cual te muestra los resultados de la variable <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">x</i></b> de una ecuación de segundo grado.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">A como pude notarlo, un programa sencillo tiene una estructura como la que sigue:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">(define (nombre_función argumentos)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><span style="mso-tab-count: 1;"> </span>(proceso_función)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Con esto simplemente definimos una función que lleva a cabo cierto proceso, donde <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">nombre_funcion</span></i></b> es definido por nosotros mismos, y <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">argumentos</span></i></b> se refiere a las variables de entrada que va a recibir nuestra función para realizar los procesos que le indiquemos.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Para los que ya han visto algo de Scheme, me darán la razón que puede llegar a ser algo confuso, debido al uso de tantos paréntesis.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Y el problema al crear algo sencillo en Scheme directamente en el terminal es más difícil, pues no puedes regresarte en el renglón escrito para teclear algo que se te paso sin prescindir del <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">back space</i></b>. Es decir, si te falto escribir algo, tienes que borrar lo que has escrito en la línea hasta llegar al punto donde vas a colocar aquello que olvidaste.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Yo opino que es por esta razón por la cual recomiendo mejor crear el código en un archivo por medio de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Emacs</i></b>. Cabe mencionar que todo archivo perteneciente al lenguaje de Scheme, tiene la extensión <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">*.scm</span></i></b>. Por consiguiente podemos tener un archivo así:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">nombre_del_archivo.scm</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Hablando de algo más, por si se dan cuenta, el ordenamiento de las operaciones en lenguaje Scheme es <b style="mso-bidi-font-weight: normal;">prefija</b>.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Es decir, el operador aparece antes de los dos argumentos que va a operar.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Por ejemplo, en elnguaje Scheme:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">+ 4 5 <strong><span style="color: #6aa84f;">----->>> ES LO MISMOS QUE ----->>></span></strong> 4 + 5</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Calibri; font-size: large;"><strong><em><u>Otras instrucciones presentes</u></em></strong></span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #45818e; font-family: "Courier New", Courier, monospace;"><strong>(cond ((condición) (proceso))<br />
(else (otro proceso)))</strong></span><span style="font-family: Calibri;"><br />
</span><span style="font-family: Calibri;">Esta instrucción funciona como un simple <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">IF - ELSE</span></i></b> totalmente conocido en lenguaje C. Si la <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">condición</span></i></b> se cumple, se realiza el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">proceso</span></i></b> indicado. De lo contrario, se lleva a cabo el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">otro proceso</span></i></b> que hayamos estipulado.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #45818e; font-family: "Courier New", Courier, monospace;"><strong>(newline)</strong></span><span style="font-family: Calibri;">Sólo imprime una nueva línea al momento de mostrar resultados en pantalla. Es como el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">\n</span></i></b> en lenguaje C.</span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #45818e; font-family: "Courier New", Courier, monospace;"><strong>(display “xxx”)</strong></span><span style="font-family: Calibri;">Muestra <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">xxx</span></i></b> en pantalla como si fuera un simple texto. Comparando con C nuevamente, es como el <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">printf</span></i></b> en Scheme.</span></div></li>
</ul><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Calibri; font-size: large;"><strong><em><u>Ejecutar un Archivo de Scheme</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Para poder ejecutar un archivo de Scheme, primeramente debes tener instalado la paquetería <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">Mit-Scheme</span></i></b>. Lo siguiente es seguir los pasos a continuación.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Escribir en el terminal </span><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">Mit-Scheme</i></b></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Calibri;">Teclear (load “nombre_del_archivo.scm”)</span></li>
<li><span style="font-family: Calibri;">Para ejecutar la función contenida en tu código se escribe lo siguiente:</span></li>
</ul></div><div style="text-align: center;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">nombre_de_la_función argumentos)</span></i></b></div><br />
<span style="font-family: Calibri;">Donde <span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">argumentos</i></b> </span></span>son las variables que le mandas a la función para poder trabajar.</span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Por ejemplo: mi código de Scheme es el siguiente:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New";">(define </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(ceros A B C)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(cond ((>= (raiz A B C) 0) (solucion A B C))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(else (display "\n\nNO HAY SOLUCION REAL"))))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New";">(define </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(raiz A B C)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(- (* B B) (* (* 4 A) C)))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New";">(define </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(solucion A B C)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(display (/ (+ (- B) (sqrt (raiz A B C))) (* 2 A)))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(/ (- (- B) (sqrt (raiz A B C))) (* 2 A)))</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Para correr mi programa ya dentro de la paquetería <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">Mit-Scheme</span></i></b> tuve que teclear lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">(ceros A B C)</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Como pueden apreciar, los argumentos o variables que le mando a mi función <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">ceros</span></i></b> se encuentran separados por espacios en blanco.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: Calibri; font-size: large;"><strong><em><u>Problemas con el Código</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #6aa84f; font-family: Calibri; font-size: large;"><strong><em><u>Planteamiento</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Tuve un ligero problema con mi código al momento de ejecutar el mismo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Como todos saben, las ecuaciones de segundo grado tienen dos resultados para <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">x</span></i></b>, ya sean iguales o diferentes.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Por consiguiente, en la función que me calculaba los dos valores requeridos, incruste dos funciones para que sacara el valor negativo y el positivo, pues en la formula general para la ecuación de segundo grado, recuerden que tenemos un <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">±</span></i></b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri;">El problema era que al calcular el primer resultado, lo mostraba en pantalla y ahí terminaba mi programa. Ya no obtenía el segundo resultado.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri;">La función que tenía para calcular dichos resultados es la siguiente:</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New";">(define </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(solucion A B C)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(/ (+ (- B) (sqrt (raiz A B C))) (* 2 A))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(/ (- (- B) (sqrt (raiz A B C))) (* 2 A)))</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Verifique el código mediante el siguiente llamado</span>:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">(ceros 2 3 1)</span></i></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">En teoría, debía mandarme los resultados <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">-1/2</span></i></b> y el resultado <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">1</span></i></b>, justo en ese orden. Sin embargo sólo mostraba el resultado <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">-1/2</span></i></b> y ahí acababa.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #6aa84f; font-family: Calibri; font-size: large;"><strong><em><u>Solución implementada</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Llegue a la conclusión que no podía hacer que Scheme mostrara dos resultados con la misma función, así que implemente la instrucción de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">display</span></i></b> a la primera operación, de modo que el resultado lo implementara como un texto, y así poder pasar a calcular la segunda función y mostrarme el segundo resultado.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Efectivamente, así fue; ahora mi programa me muestra los dos valores de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">x</i></b>. La función ahora quedo así:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New";">(define </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(solucion A B C)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(display (/ (+ (- B) (sqrt (raiz A B C))) (* 2 A)))</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(newline)</span></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000;"><br />
</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Courier New";"><span style="color: #bf9000;"><span style="mso-spacerun: yes;"> </span>(/ (- (- B) (sqrt (raiz A B C))) (* 2 A)))</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Cualquier comentario o sugerencia, son bienvenidas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">También les comento que aquí les dejo los dos tutoriales en PDF sobre Scheme que me ayudaron para la realización de mi programa en cuestión de sintaxis.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="font-family: Calibri;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzN2M0ZTllZGQtZDIyNy00NDI0LWIyZjctYmE0YjQ5ZDE0ZGQ3&export=download&authkey=CInog6kB&hl=en"><strong>Tutorial Scheme Part 1 (PDF)</strong></a></span></li>
<li><span style="font-family: Calibri;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzNjdkM2U2NjYtODJjNi00OWRhLTg1Y2MtYjAzN2E0MjUwYjM1&export=download&authkey=CNDUqvsK&hl=en"><strong>Tutorial Scheme Part 2 (PDF)</strong></a></span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: left;"><span style="font-family: Calibri;">Saludos a todos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-28082807479886373252010-10-25T11:27:00.000-07:002010-10-25T11:27:03.778-07:00.: Intrucciones Erlang :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Erlang ::</marquee></span></b></i><br />
<br />
<hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lab de Leng de Progr</em></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>V1(Jueves)</em></span></span><br />
<br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Continuando con la breve explicación sobre sintaxis y creación de archivos en lenguajes funcionales, continuaremos con el lenguaje Erlang.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Nuevamente me baso en gran parte sobre mi programa <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzOTkyZDAxOTUtNTRkZC00OGM2LTgzOWMtZWQ4MzYxYzU4MTBi&export=download&authkey=CLybvaIF&hl=en">probabilidad</a>.erl</span></i></b>, creado para la clase de laboratorio, el cual te ayuda en el cálculo de combinaciones y permutaciones. Las cuales son funciones muy usadas en la materia de probabilidad.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Inicio de un archivo en Erlang</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Primeramente, todo archivo que se crea para el lenguaje Erlang debe iniciar de la siguiente forma:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none; text-align: left;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>-module(nombre_del_archivo).</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none; text-align: left;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>-export([funcion1/N, funcion2/N,funcionM/N]).</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Para la primera línea, se aclara que siempre se debe declarar en primera instancia un módulo con la extensión de erl, donde <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">nombre_del_archivo</span></i></b> es el nombre que se le dio al archivo.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">No les voy a mentir, no me quedo perfectamente claro en sí para qué se hace esto. Sin embargo, lo interpreto como los encabezados que manejábamos en lenguajes script, como por ejemplo:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><ul><li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#!/usr/bin/perl</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#!/usr/bin/python</span></li>
</ul></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">La función <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #f1c232; font-family: "Courier New", Courier, monospace;">export</span></i></b> simplemente funciona (a como yo lo veo) como la definición o la declaración que se le hace a nuestro código erl de que va a usar todas las funciones que tengamos ahí. Pueden ser una, dos o más funciones las que declaren o se vayan a utilizar en el código, nada más es de que deben ir separadas por una coma ( <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">,</i></b> ).</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Si se dan cuenta las funciones se declaran escribiendo <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">función / N</span></i></b>, donde <span style="color: #bf9000;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="font-family: "Courier New", Courier, monospace;">función</span></i></b> </span>representa el nombre la función que vamos a manejar en nuestro programa.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">N</span></i></b><span style="font-family: "Arial", "sans-serif";"> representa un número entero que hace referencia al número de variables que maneja dicha función.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Para que lo visualicen un poco más, mi programa empieza así;</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>-module(probabilidad).</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>-export([fac/1, permu/2, combi/2]).</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Donde sí se dan cuenta, en la instrucción <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">module</span></i></b> tengo escrito en nombre de mi programa.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Si nos vamos a la declaración de funciones, vemos que <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">fac</span></i></b> se encuentra sobre <span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">1</i></b>;</span></span> esto es porque esta función sólo recibe una variable para trabajar.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Nos vamos a las otras dos funciones, y vemos que ambas se encuentran sobre <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">2</span></i></b>, y es porque requieren de dos variables que se le deben proporcionar para trabajar.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Simplemente compruébenlo.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>fac(1) -> 1;</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>fac(N) -> N * fac(N - 1). <span style="mso-tab-count: 1;"> </span><span style="color: #6aa84f;"><- USA UNA VARIABLE</span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<strong><span style="color: #bf9000;"></span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>permu(N,X) -> ((fac(N)) / (fac(N - X))). <span style="mso-tab-count: 1;"> </span><span style="color: #6aa84f;"><- USA 2 VARIABLES</span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="font-family: "Courier New", Courier, monospace;"><br />
<strong><span style="color: #bf9000;"></span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>combi(N,X) -> ((fac(N)) / (fac(N - X) * fac(X))). <span style="color: #6aa84f;"><- USA 2 VAR.</span></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><em><u><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;">Creación de procesos e Instrucciones.</span></u></em></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Primeramente, lo que se debe de saber es que para colocar una función, el símbolo de <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">=</span> </i></b><span style="mso-spacerun: yes;"> </span>que normalmente usamos, en Erlang se coloca </span><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #bf9000;"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">-></i></b>.</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Todo proceso e instrucción debe terminar con un punto ( <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">.</i></b> ), pues es lo que me indica el fin de mi proceso o función.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Cuando en un mismo proceso, se manejan más de una línea, únicamente se coloca punto y coma ( <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">;</i></b> ) al final de cada renglón.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">La manera de escribir una función (por lo más común) es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>función(arg1, arg2) -> Proceso a realizar.</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Donde <span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>arg1, arg2</strong></span>… representan las variables con las que va a trabajar nuestro código.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Un ejemplo de lo antes mencionado puede ser:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt; mso-layout-grid-align: none;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>fac(1) -> 1;</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>fac(N) -> N * fac(N - 1).</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="color: #0b5394; font-family: "Arial", "sans-serif"; font-size: large;"><strong><em><u>Ejecución de un código en Erlang</u></em></strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Antes que nada, debemos escribir en el terminal <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">erl</i></b>. Una vez hecho esto, se escribe lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>c(nombre_del_archivo.erl)</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Por ejemplo en caso, escribiría:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>c(probabilidad.erl)</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Y para hacer funcionar alguna de esas funciones es la siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>nombre_del_archivo:nombre_de_la función(argumentos).</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Para que lo aprecien un poco más, si desea calcular <b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;">5 Combinación de 3</i></b> sólo se escribe lo siguiente:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt; text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"><strong>probabilidad:combi(5, 3).</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">De cualquier forma les dejo el tutorial que maneje para Erlang y un link que también me fue de mucha utilidad.</span></div><ul><li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzNGNlMzdiMzQtMTU4Ny00OWNiLWI2NjktY2NjZjk3NTk0MzIy&export=download&authkey=CJXozccN&hl=en"><strong>Tutorial Erlang (PDF)</strong></a></span></div></li>
<li><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Arial;"><a href="http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Erlang"><strong>Programación en Erlang (HTML)</strong></a></span></div></li>
</ul><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: "Arial", "sans-serif";">Por mi parte es todo, ya saben que cualquier comentario no duden en hacerlo.</span></div><div style="text-align: left;"><span style="font-family: "Arial", "sans-serif"; line-height: 115%; mso-ansi-language: ES-MX; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;">Saludos a todos.</span></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com0tag:blogger.com,1999:blog-8552655506552543708.post-8243640209177136782010-10-25T11:24:00.000-07:002010-10-25T11:26:22.747-07:00.: Lenguajes Script (CO) :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Programas en Lenguajes Script (CO) ::</marquee></span></b></i><br />
<br />
<div></div><hr /><hr /><span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Materia.</em></strong> <em>Lenguajes de Programación</em></span></span><br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="color: #38761d;"><strong><em>Hora.</em></strong> <em>M1 -M3 (Martes)</em></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En esta entrada, me dedicare solamente a hablar sobre los programas de lenguajes script que pertenecen al tercer reporte que tenía pendiente.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Los programas que realice fueron en cinco lenguajes diferentes. Los links para descargar los códigos están sobre los nombres de cada programa.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Awk</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Nombre:</span></em></strong> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzZTkzNGI1NmMtYzQyZi00ZDdiLWI3MzEtNzU1NmMwYjcyNTJj&export=download&authkey=CKzDzM8H&hl=en">editor</a>.awk</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Descripción.</span></em></strong> Este programa lo único que hace es leer la letra de una canción y sustituir todas las palabras “<span style="color: #7f6000;"><strong>llorar</strong></span>” por la palabra “<span style="color: #7f6000;"><strong>cry</strong></span>” con la ayuda de la instrucción:</span><br />
<br />
<div style="text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">gsub (“texto_inicial”, “texto_final”);</span></div><div style="text-align: center;"><br />
</div><div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">Aquí lo que se indica es que <span style="color: #7f6000;"><strong>texto_inicial</strong></span> será sustituido por la cadena de <span style="color: #7f6000;"><strong>texto_final.</strong></span> </span><br />
<br />
</div><div style="text-align: left;"></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZES2nPefkD7WhxktlDWyL__Btm_kGRHMA6uM_ZbYW-b_V4Nls0l2bpQvloLkLNbJV6BcStki8l-iEs7i_Z4CMiVhQ7a2RTbkmgaWyUmyKJHVFh83SB3aLLlqT8Wf4znXrNrtqaCouBGb/s1600/awk_1_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="281" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZES2nPefkD7WhxktlDWyL__Btm_kGRHMA6uM_ZbYW-b_V4Nls0l2bpQvloLkLNbJV6BcStki8l-iEs7i_Z4CMiVhQ7a2RTbkmgaWyUmyKJHVFh83SB3aLLlqT8Wf4znXrNrtqaCouBGb/s400/awk_1_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Código Fuente</span></em></strong></td></tr>
</tbody></table><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMDXyScuMMZmoNxdrMr9KWoHUpPHAskgyzC_i5eJfFI64cWweXJynf3FYbSvs_yh7nQcOjizlf722QzcVoPrzjXTZj_aJtXVNUM4Hwewz5qHJyt7tU9KCJC1H-P0_PCkK3S6sFEJEcbtCI/s1600/awk_2_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="278" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMDXyScuMMZmoNxdrMr9KWoHUpPHAskgyzC_i5eJfFI64cWweXJynf3FYbSvs_yh7nQcOjizlf722QzcVoPrzjXTZj_aJtXVNUM4Hwewz5qHJyt7tU9KCJC1H-P0_PCkK3S6sFEJEcbtCI/s400/awk_2_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Archivo Fuente</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">La manera en que se manda llamar esta instrucción es escribiendo en el terminal:</span><br />
<br />
<div style="text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">awk -f editor.awk Lyric.txt > Lyric2.txt</span> <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtAKOgs96TTfHMzeOItyCZS19v4uPP24dTS95dAK7DNnT2rVfo9ZopUZMHXtSWTpmwp6ljzVL9rkF3LexB0FTQY5lJupM2U6SfxL_UOkmO0rqHLXv1WDhyGFF2pMDl2vTBTWjtrQNK2jc/s1600/awk_3_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="147" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtAKOgs96TTfHMzeOItyCZS19v4uPP24dTS95dAK7DNnT2rVfo9ZopUZMHXtSWTpmwp6ljzVL9rkF3LexB0FTQY5lJupM2U6SfxL_UOkmO0rqHLXv1WDhyGFF2pMDl2vTBTWjtrQNK2jc/s400/awk_3_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Instrucción Mencionada en el Terminal</span></em></strong></td></tr>
</tbody></table></div><div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;">Esta instrucción indica la ejecución de un código en lenguaje awk desde un fichero con nombre editor.awk el cual toma como datos de entrada el contenido del fichero <strong><span style="color: #7f6000;"><a href="https://docs.google.com/uc?id=0B3_-USmqViKzMmU4YTM5OWMtOTk2Ny00ZjI1LThlMTEtOTYwNTU3NjZkZDVm&export=download&authkey=CJO6vosD&hl=en">Lyric</a>.txt</span></strong> para realizar las sustituciones del texto indicado e imprimir el resultado en un nuevo archivo con el nombre <span style="color: #7f6000;"><strong>Lyric2.txt</strong></span>.</span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong>NOTA.</strong> <em>Al usar el símbolo “<strong><span style="color: #7f6000;">></span></strong>” indicamos que el resultado del programa sobre escribirá todo el contenido del archivo de destino. Sin embargo, al usar el símbolo “<span style="color: #7f6000;"><strong>>></strong></span>”, decimos que el resultado del programa se imprima al final del contenido ya situado dentro del archivo de destino si es que lo hay.</em></span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiocg66Qflhu9tUw0Hwwdzqpngm2qSeThmuJx4DGH1WGPyKVwHSxg8IQTVHG0ysP27x8TVo47moOboYxWvvlDRqIpT0AyCKMISSRHnCbd6qWqRAnDbTpkvLMwmcp27BxQVuWkmrKoh-UQ_W/s1600/awk_4_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiocg66Qflhu9tUw0Hwwdzqpngm2qSeThmuJx4DGH1WGPyKVwHSxg8IQTVHG0ysP27x8TVo47moOboYxWvvlDRqIpT0AyCKMISSRHnCbd6qWqRAnDbTpkvLMwmcp27BxQVuWkmrKoh-UQ_W/s400/awk_4_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Diferencia entre ">" y ">>"</span></em></strong> </td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">La razón por la cual decidí hacer algo como esto fue más que nada por la idea que me dieron de cuando deseas cambiar ciertos textos en los documentos sin la necesidad de abrirlos y hacerlo manualmente, de modo que a la vez estaría utilizando una de las característica para las cuales está hecho este lenguaje.</span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em>Shell</em></strong></span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Nombre.</span></em></strong> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzNmEwOTdhMDAtNjE3OS00MDRjLThkYWQtZGM1NTgzNDFmYmIx&export=download&authkey=CK-24iI&hl=en">Manejo_Archivos</a>.sh</span></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Descripción.</span></em></strong> Este programa creado en Shell, es capaz de manipular los archivos presentes en el directorio donde nos encontremos. Entre estas manipulaciones, contamos con las órdenes de:</span></div><ul><li><span style="font-family: Arial, Helvetica, sans-serif;">Mover</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Copiar</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Renombrar</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Eliminar</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Al inicio de la ejecución, primero el programa te ayuda a ubicar el archivo, ya sea que se encuentre en tu ubicación actual en el directorio, o si se encuentra en otra parte, te da la opción de moverte un directorio adelante o hacía atrás, dependiendo de dónde se encuentre el archivo que deseas manipular.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimTmb6_EPNFHmRzVuyz2L_uazJexf5ZVQ5Xn_Q6mMdJ7HHZZ6xTRwcB21P9ikxgkQ4AkB4MQKaMHRjkH4s4nTx0wIFGzvaUDP69Y7QeYB5dzO397UyLeNJ-bc0eF9OOQeoK3rm2mQsZ3Aj/s1600/sh_1_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="280" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimTmb6_EPNFHmRzVuyz2L_uazJexf5ZVQ5Xn_Q6mMdJ7HHZZ6xTRwcB21P9ikxgkQ4AkB4MQKaMHRjkH4s4nTx0wIFGzvaUDP69Y7QeYB5dzO397UyLeNJ-bc0eF9OOQeoK3rm2mQsZ3Aj/s400/sh_1_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Programa en Ejecución</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">La manera de hacer correr este programa es escribiendo en el terminal:</span> <br />
<br />
<div style="text-align: center;"><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">sh Manejo_Archivos.sh</span><br />
</div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4oyIkALFtjDtLd8thp3GY3as0M3exRhvrWAxWAEa-aQySF8wR1wKa3danSqhyphenhyphenfhvVTtYzRb1moil79G-c_xWgk9n9B2oAzu3YV-BUiHHOwKllhkAXLYYt_tEZHnO_W12QA5J1A3VLmU0_/s1600/sh_2_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="137" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4oyIkALFtjDtLd8thp3GY3as0M3exRhvrWAxWAEa-aQySF8wR1wKa3danSqhyphenhyphenfhvVTtYzRb1moil79G-c_xWgk9n9B2oAzu3YV-BUiHHOwKllhkAXLYYt_tEZHnO_W12QA5J1A3VLmU0_/s400/sh_2_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="color: #bf9000;"><strong><em>Instrucción para Ejecutar un programa de Shell</em></strong></span></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Decidí hacer este programa por la idea que me surgió al pensar en el hecho de que el lenguaje es para facilitar instrucciones del terminal, de modo de no estar escribiéndolas repetidamente cada vez que fueran necesarias y a la vez estar procurando sintaxis de las mismas instrucciones. Prácticamente me base en la forma de trabajar del explorador de Windows, aunque es como una especie de réplica un poco menos vistosa y menos usual de manejar.</span> <br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Perl</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Nombre.</span></em></strong> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzNjBiYWY0MWYtMmNmOS00N2NkLWJhMGUtODZiY2FkYzhjODk5&export=download&authkey=CLXJ3J0H&hl=en">Producción</a>.pl</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Descripción.</span></em></strong> Básicamente el proceso general de este programa lo que hace es pedirte los costos e ingresos de una empresa en la producción de un producto de un periodo bimestral cualquiera.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrrFDDbytj5M6tYK-6i4T2tr1unr_jgGDOrmO9vvOqJ2sGanp0lNTBY2caYFz_RHuhr67yPjg2OGv7dnUoJjDsvOVhzEVG5luFgcO2njG9M5IuBfkpI8B59GkPPNVwxtFkmpC4cSoNt-WY/s1600/pl_1_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrrFDDbytj5M6tYK-6i4T2tr1unr_jgGDOrmO9vvOqJ2sGanp0lNTBY2caYFz_RHuhr67yPjg2OGv7dnUoJjDsvOVhzEVG5luFgcO2njG9M5IuBfkpI8B59GkPPNVwxtFkmpC4cSoNt-WY/s400/pl_1_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Incio del Programa y Captura de Algunos Datos</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Estos datos se almacenan en un arreglo bidimensional, y al mismo tiempo que vas registrando los valores solicitados, va calculando la suma total de costos en el bimestre así como la suma total de los ingresos en ese bimestre.</span> <br />
<span style="font-family: Arial, Helvetica, sans-serif;">Adicionalmente calcula la utilidad individual de en cada mes, la imprime y la evalúa para decir si hubo perdida o ganancia en ese mes. </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">De los cálculos totales de costos ingresos de todo el bimestre, obtenemos la utilidad total del bimestre; resultado que también es evaluado para decidir si en el bimestre hubo pérdidas o ganancias.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para ejecutar este programa, se hace normalmente como es para un lenguaje script: se dan permisos al usuario dueño y se corre el programa (proceso que ya conocemos).</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKPXVEC8lYK48PwaNR0GNR7W7-PZQHfZ8drKLXVgsz5rXgwPAez-8eD9v3nRJT9aQPqDnrBK1-xO50-YkT_jrRJ92rLMoGb5eDAEU05YYd5IP43wqq3Qx7pifMkc2V-LYlPIZWxfxG7ax2/s1600/pl_2_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKPXVEC8lYK48PwaNR0GNR7W7-PZQHfZ8drKLXVgsz5rXgwPAez-8eD9v3nRJT9aQPqDnrBK1-xO50-YkT_jrRJ92rLMoGb5eDAEU05YYd5IP43wqq3Qx7pifMkc2V-LYlPIZWxfxG7ax2/s400/pl_2_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Impresión de Resultados</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">No tuve una razón especial por la cual hice un programa así, sólo puedo decir que me interesaba más que nada practicar la manera de trabajar con los arreglos en Perl.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>TCL</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Nombre.</span></em></strong> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzNTBiM2Y1ZDEtY2E5MS00YTYzLWEzYTUtOWYzN2I0OTcyMzEx&export=download&authkey=CLO3stYH&hl=en">Areas</a>.tclsh</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Descripción.</span></em></strong> Este sencillo programa lo único que hace es mostrarte un listado de cuatro figuras geométricas las cuales puedes elegir para obtener el área de la misma.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi5VIdCRTv9uUomy3juu7PEIhR9PisPQqT4Ml4KoTNWgsH3DUp9g0GVffkRdzGtiSrTWwtlGDzM3zSjjYeOhFkRvX42cwK2sM7rqbbpyNkWA_GrbHZaH7DKsMXCvTYs5yzOWU1XA7YlW1G/s1600/tclsh_1_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi5VIdCRTv9uUomy3juu7PEIhR9PisPQqT4Ml4KoTNWgsH3DUp9g0GVffkRdzGtiSrTWwtlGDzM3zSjjYeOhFkRvX42cwK2sM7rqbbpyNkWA_GrbHZaH7DKsMXCvTYs5yzOWU1XA7YlW1G/s400/tclsh_1_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Menú de Opciones A Elegir</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Aquí más que nada fue para practicar un poco la sintaxis de la sentencia “<strong><span style="color: #7f6000;">switch</span></strong>” de TCL. Si quieren verlo de la siguiente manera, un propósito de este programa puede ser el de ayudar a aquellas personas que aún no saben definir el área de las figuras aquí presentadas. Pero eso ya depende de la forma de cada quien.</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFnMInio3LUf1Z8m4wa5zZGA9eOCRCL3JiTi7hD7CVAEfTqxndq6JpG3qNPYTDZUnDS71jUhZBuBE-JozVKhyphenhyphenrQw_qEpkcN1kmQnmyBDslACs-eg3nvVZTgZrxQKZmDyTcCeDUHW3Qr1P/s1600/tclsh_2_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFnMInio3LUf1Z8m4wa5zZGA9eOCRCL3JiTi7hD7CVAEfTqxndq6JpG3qNPYTDZUnDS71jUhZBuBE-JozVKhyphenhyphenrQw_qEpkcN1kmQnmyBDslACs-eg3nvVZTgZrxQKZmDyTcCeDUHW3Qr1P/s400/tclsh_2_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Muestra de Algún Resultado</span></em></strong></td></tr>
</tbody></table><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Python</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Nombre</span>.</em></strong> <a href="https://docs.google.com/uc?id=0B3_-USmqViKzYTA2ZDQzOTQtMDcxZC00Y2E1LWIxNTctMmE5NGM3ZDU3NGJi&export=download&authkey=CNWl11M&hl=en">Digitos</a>.py</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><span style="color: #e69138;">Descripción</span>.</em></strong> No pienso mentirles, pues debido a que no tenía ni idea que hacer en Python, me puse a buscar ejercicios complementarios, y encontré uno que decía que desarrollaras un programa que calcule la suma de los dígitos de un número entero cualquiera que ingreses.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><em><strong>Por ejemplo:</strong> la suma de los dígitos de 147 es 12.</em></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Y como algo adicional (aunque prácticamente basado en lo mismo) introduje la operación necesaria para que calcule el producto de los dígitos.</span><span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><em><strong>Por ejemplo:</strong> el producto de los dígitos de 147 es 28.</em></span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu7wy3i7yN6aVVg15T_RZ2Hz7lZLhF01fCSPsFi_rhGeuPOgOUgDgBMiOEP01t9cjUZWWHJZWS1JYw6KTDWBDGlpjTAkY9UlNZs0IvyAgIZLqzka4KWHFCqs0clPcKibNA0l9VFdw2w5Oj/s1600/py_1_co.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" nx="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu7wy3i7yN6aVVg15T_RZ2Hz7lZLhF01fCSPsFi_rhGeuPOgOUgDgBMiOEP01t9cjUZWWHJZWS1JYw6KTDWBDGlpjTAkY9UlNZs0IvyAgIZLqzka4KWHFCqs0clPcKibNA0l9VFdw2w5Oj/s400/py_1_co.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><strong><em><span style="color: #bf9000;">Impresión de Resultados del Número 12569</span></em></strong></td></tr>
</tbody></table><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier aporte que tengan para los códigos ya hechos son bienvenidos. Algún problema con los links, también hagánmelo saber.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span><br />
<div style="text-align: center;"></div>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-11702608709345444722010-10-25T11:01:00.000-07:002010-10-25T11:20:13.252-07:00.: Instrucciones Perl :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Instrucciones de Perl ::</marquee></span></b></i><br />
<br />
<hr /><hr /><br />
<span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Materia.</strong> <em>Lenguajes de Programación</em></span><br />
<br />
<span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Hora.</strong> <em>M1 -M3 (Martes)</em></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como varios quizas ya sabemos, lo que es el lenguaje Perl, tiene mucha utilidad al momento de usar arreglos. Aqui les voy a hablar acerca de las instrucciones con las que tuve problemas al momento de crear mis pequeños programas en Perl.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Primeramente, deseo mencionar el gusto que me da el manejo de arreglos en este lenguaje, ya que a diferencia de C, no le especificas un limite a tu arreglo, pues funciona como memoria dinámica, es decir, va utilizando un tamaño en ese arreglo de acuerdo a como se vaya requiriendo.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Un arreglo de declara con la palabra my seguida del simbolo arroba y el nombre del arreglo. Despues del signo de igualdad, entre parentesis, colocamos el numero de corchetes vacios que indican si el arreglo es lineal, bidimensional, etc. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">my @PROD = ( [] , [] ) ;</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">NOTA: AL igual que es C, las lineas terminan en punto y coma ( ; ).</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Uso de variables</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Las variables escalares normales, al momento que se declaran, que se les asigna un valor, que se mandan a imprimir, se usan como contadores, o se usan para almacenarles un valor mediante el teclado, se les antepone el signo de pesos ( $ ) y luego el nombre de la variable. Ejemplos: </span><br />
<ul><li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">$COST = 0;</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">for ( $i = 0; $i < 2; $i++ ) {</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">chop ( $PROD [$i][0] = <STDIN><stdin>);</span></li>
<li><span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print $PROD [$i][0]."\t\t";</span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Generalmente, no es necesario declarar las variables escalares normales, ya que en cualquier momento que la utilicemos, tendremos que anteponerle el simbolo ya mencionado, podemos empezar a utilizarla en cualquier parte de nuestro programa sin la necesidad de declararla al principio. Esto no funciona así con lo que son los arreglos, aclarando.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Una comprobación de esto, sería en mi programa titulado “Prom_Arrays”, donde se puede apreciar que la variable P, sino hasta casi al final del código.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora bien, sabemos que para mostrar texto en pantalla, utilizamos la función “print”. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print "Cantidad de Agentes a Registrar: ";</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Leer Datos</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Y, ¿qué se usa para guardar los datos mediante el teclado en una variable? Si en lenguaje C es scanf, ¿cúal es en perl?</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Respondiendo a esta pregunta, se usa la instrucción chop y entre parentesis se incluye el nombre de la variable igualada a la instruccion <STDIN> <stdin>. Un ejemplo seria:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print "Cantidad de Agentes a Registrar: ";</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">chop( $agentes = <STDIN><stdin>);</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Estructuras condicionales y bucles</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como notas extras, puedo mencionar que las instrucciones del if y el for tienen la misma sintaxis que la que usamos en lenguaje C.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Tutorial</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">A continuación les dejo el link de descarga para el tutorial de Perl que me sirvio de apoyo para la creación de esta entrada y de los programas hechos.</span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://docs.google.com/uc?export=download&id=0B3_-USmqViKzYjY2YmI2MjMtZTVjOS00ODZkLTk5NmYtMGQ1YWYyYTFmYjQx&authkey=CL-NruIN"><strong>Tutorial Perl</strong></a></span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Comentarios u observaciones al respecto son bienvenidas al igual que aportaciones. </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1tag:blogger.com,1999:blog-8552655506552543708.post-70527280539661864092010-10-25T10:02:00.000-07:002010-10-25T11:20:13.256-07:00.: Instrucciones Python :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Instrucciones de Python ::</marquee></span></b></i><br />
<br />
<hr /><hr /><br />
<span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Materia.</strong> <em>Lenguajes de Programación</em></span><br />
<br />
<span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Hora.</strong> <em>M1 -M3 (Martes)</em></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora hablaremos algo de python, basándome de nuevo en lo que realice de python, puedo mencionar que es muy fácil de aprenderlo, además de su sencilles de entendimiento.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Antes de comenzar, aclaro que en Python, no es necesario colocar punto y coma ( ; ) ni ningún signo al final de cada linea como en Perl o en C.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Comenzare por mencionar la instrucción para mostrar en pantalla, que al igual que en Perl, usamos print. Sin embargo en Perl, anteponiamos el simbolo “$” antes de la variable. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print $P;</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En Python ,no es necesario, ya que podemos colocar la variable sola, siempre y cuando que no este entre comillas dobles o simples. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print sum</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora bien, tenemos casos interesantes al momento de imprimir variables y texto juntos dentro del mismo print.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Uno de los casos es cuando se usan comillas simples para el texto ( ' ' ).</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En Perl usabamos comillas dobles para el texto ( “ “ ) y al momento de pedir colocar el valor de una variable teniamos que cerrar las comillas dobles, colocar un punto, el simbolo $ seguido del nombre de la variable, colocar otro punto, abrir comillas sobles y seguir con el texto para cerrar de nuevo las comillas antes abiertas al terminar el texto. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print "\n\nPromedio de Grupo: ".$P."\n\n";</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En Python es algo similar, sin embargo, en lugar de comillas dobles ( “ “ ), son comillas simples ( ' ' ), como se dijo al anteriormente. Y en lugar de puntos ( . ) para separar la variable del texto, se usan comas ( , ). Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print ' \t \t \t ', sum , ' \t \t \t ' , prod , ' \n \n '</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El otro caso es cuando en verdad usamos las comillas dobles ( “ “ ) como en el lenguaje C. Aunque con ciertas diferencias. Ejemplo: </span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print "- ( %d ^ %d )" % (i, i),</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como se puede apreciar, para ya no usar las comas ni las comillas simples, en el lugar donde deseamos las variables, colocamos los tipos de datos a los que corresponden las variables (como en C). Al final de las comillas, se coloca el simbolo %, el cual sólo funciona como un separador entre la cadena de texto y las variables.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En este caso en el cual se usaron dos variables, sólo se uso un simbolo % y entre parentesis se colocaron las variables presentes en la cadena separadas por una coma ( , ).</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Caso Extrano</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">En mi programa titulado “Digitos.py”, en la parte donde esta asi:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print ' \n \t --->>El numero es: ' , num</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Intento colocarla asi:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print “ \n \t --->>El numero es: %d “ % num</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Y me marca error. Me dice que se requiere un valor numerico. Esto es porque cuando se me pide el valor de num, se guarda como cadena de caracteres de esta forma:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = raw_input ( " Dame un numero: " )</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">NOTA . Volviendo a lo del print, a difrencia de C que teniamos que usar “\n” para pasar a otra linea, en Python, por cada print, tenemos una linea. Si deseamos que se continuen los print en la misma linea, al final de los print se coloca una coma ( , ).</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Leer datos</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tenemos dos para guardar datos, uno viene siendo como el que se vio anteriormente:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = raw_input ( " Dame un numero: " )</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El cual todos sus valores los guarda en cadenas de caracteres gracias a la instruccion “raw_input”.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">S</span><span style="font-family: Arial, Helvetica, sans-serif;">in embargo, cuando colocamos:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = input ( " Dame un numero: " )</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El valor se guarda como valor entero.</span><br />
<br />
<span style="color: #38761d; font-family: Arial, Helvetica, sans-serif;"><strong><em><u>Demostracion</u></em></strong></span><br />
<br />
<span style="color: #e69138; font-family: Arial, Helvetica, sans-serif;"><strong><em>Caso 1</em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Con el siguiente programa en el cual num = 10,</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#!/usr/bin/python</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = input ("Numero")</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">prod = num * 5</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print prod</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tendremos en el terminal:</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">50</span><br />
<br />
<span style="color: #b45f06; font-family: Arial, Helvetica, sans-serif;"><strong><em>Caso 2</em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora bien, al tener num = 10, pero de la siguiente forma:</span><br />
<br />
<span style="color: #bf9000; font-family: Courier New;">#!/usr/bin/python</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = raw_input ("Numero")</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">prod = num * 5</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print prod</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tendremos el siguiente resultado en nuestro terminal:</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">1010101010</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">¿Por qué pasa ésto?</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Se debe al hecho de que con “raw_input” guardamos una cadena de caracteres, y con el hecho de haberla multiplicado 5 veces, lo que se hace es concatenar la cadena a sí misma 5 veces.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ahora que si colocamos el mismo código también con num = 10 de la siguiente forma:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">#!/usr/bin/python</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">num = raw_input ("Numero")</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">prod = int (num) * 5</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">print prod</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tendemos el siguiente resultado:</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">50</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">¿Por qué?</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Porque con sólo anteponerle a la variable antes guardada como cadena de caracteres la palabra “int” le estamos indicando que se trate como una variable de tipo entero.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Otras Instrucciones antes vistas</u></em></strong></span><br />
<br />
<span style="color: #38761d; font-family: Arial, Helvetica, sans-serif;"><strong><em><u>Sintaxis del IF y el While</u></em></strong></span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">if condicion :</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">while condicion :</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como podemos ver, la condicion no necesita ir entre parentesis como en C y al final lleva dos puntos.</span><br />
<br />
<span style="color: #38761d; font-family: Arial, Helvetica, sans-serif;"><strong><em><u>Sintaxis del FOR</u></em></strong></span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">for elemento in secuencia :</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">A diferencia del for que usabamos en C, aqui se incrementan los valores en automático. Este for, lo que dice es:</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para cada elemento presente en la secuencia, realizar este proceso.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">for i in num:</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> sum = sum + int(i)</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> prod = prod * int(i)</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Por cada elemento “i” presente en la secuencia “num” … en fin, el resto ya sabran lo que dice.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><em><strong><u>NOTAS.</u></strong></em></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Si se fijaron, en el IF, WHILE, FOR, los procesos ya no se encierran entre llaves como en C. Quizás se pregunten cómo van a saber que pertenece al proceso de dichas instruccione.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">La clave esta en la sangría que le pongan a los procesos. Es decir, a los procesos, deben darle una tabulacion hacía adelante de modo que paresca que quedan dentro de las instrucciones, de lo contario, si queda alguna instruccion en linea con el for, if o while, el programa creera que ya se termino alguna de estas intrucciones.</span><br />
<br />
<span style="color: #38761d; font-family: Arial, Helvetica, sans-serif;"><strong><em><u>Demostracion de anterior.</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Si ponemos:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">i = 1</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">n = 10</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">while i < n :</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> print i</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> i = i + 1</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tendremos: 1, 2, 3, 4, 5, 6, 7, 8, 9</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Pero si por el contrario tenemos:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">i = 1</span><br />
<span style="color: #bf9000; font-family: Courier New;">n = 10</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">while i < n:</span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> print i</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">i = i + 1</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Lo que tendremos sera una lista sin fin de puros “1”.</span><br />
<br />
<span style="color: #0b5394; font-family: Arial; font-size: large;"><strong><em><u>Tutorial.</u></em></strong></span><br />
<br />
<span style="font-family: Arial;">Aquí les dejo el tutorial de Python que me sirivio de apoyo. Acalaro que hubo ocasiones que buscaba instrucciones en Internet; no me conforme con lo del tutorial.</span><br />
<ul><li><span style="font-family: Arial;"><a href="https://docs.google.com/uc?export=download&id=0B3_-USmqViKzM2RhZTFmZjUtNmI2YS00NGRjLWI2ZDQtZjM1YTVmZDcwYjYw&authkey=CP_unY0G"><strong>Tutorial Python</strong></a></span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Cualquier comentario, es bienvenido.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com2tag:blogger.com,1999:blog-8552655506552543708.post-91858187252695313202010-10-25T09:55:00.000-07:002010-10-25T11:20:13.260-07:00.: Instrucciones de Shell :.<i><b><span style="font-family: Papyrus; font-size: large;"><marquee behavior="alternate">:: Instrucciones de Shell ::</marquee></span></b></i><br />
<hr /><hr /><span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Materia.</strong> <em>Lenguajes de Programación</em></span><br />
<br />
<span style="color: #38761d; font-family: "Courier New", Courier, monospace;"><strong>Hora.</strong> <em>M1 -M3 (Martes)</em></span><br />
<br />
<strong><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif;"><em>Ejecutar un programa en Shell:</em></span></strong><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">sh <nombre_programa>.sh</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">A diferencia de los demás lenguajes en los que he hablado, este no tendrá gran problema, pues la mayoría sabemos los comandos de Shell. </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Asi que seré más breve.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">MOSTRAR DATOS EN PANTALLA</span></u></em></strong> </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para esto, solo basta usar la instrucción “echo” y el texto entre comillas dobles ( “ “ ). Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">echo " \n\t\t***Manejo de Directorios**\n"</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">LEER DATOS</span></u></em></strong> </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Es muy sencillo y ovbio, diría yo, para introducir datos a nuestro programa. Sólo basta la palabra read un espacio y el nombre la variable. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">read answer</span><br />
<br />
<span style="font-size: large;"><span style="color: #0b5394;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u>DECLARACION Y USO DE VARIABLES</u></em></strong></span></span></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Al momentos de usar una variable por primera vez, no es necesario declararla con alguna instrucción ni al principio del código.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Generalmente cuando requerimos de una variable, es porque vamos a asignarle un valor, por lo que, (ya sea variable nueva o antes usada) siempre que se asigna un valor a una variable, no se usa el simbolo $. Éste sólo se necesita cuando usamos las variables en operaciones, otras intrucciones de shell, o en condiciones.</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Es importante que cuando se le asigne un valor a una variable, no se coloquen espacios en el signo de igual ( = ). Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">answer=0 </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">folder2=$new_folder </span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">while [ $answer = 0 ] </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> mkdir $name_folder</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">SINTAXIS DEL WHILE</span></u></em></strong> </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">La condicion de coloca entre corchetes ( [ ] ), seguidos de la palabra do en la otra linea, se coloca el proceso y al final se usa la palabra do. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">while [ $answer = 0 ] </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">do </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> clear </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> echo " \n\t\t***Manejo de Directorios**\n" </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> echo "FECHA Y HORA:" </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> date </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> echo "\nSu ubicacion actual es: " </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> pwd </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">done</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #0b5394; font-size: large;"><strong><em><u>SINTAXIS IF – ELSE</u></em></strong></span> </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Tenemos algo interesante aquí, pues la condición del if tiene antepuesta la palabra “test”, que sirve como evaluador, en la siguiente linea se coloca la palabra “then”, colocamos el proceso y cerramos en if con lo contario: “fi”. Ejemplo:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">if test $r = 1 </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">then </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> echo "\nCarpeta a donde desea entrar" </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> read folder </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> cd $folder </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">fi</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Para meter el if – else es de la siguiente manera:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">if test $r = 1 </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">then </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> echo "\nCarpeta a donde desea entrar" </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> read folder </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> cd $folder </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">else </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> cd .. </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">fi</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><strong><em><u><span style="color: #0b5394; font-size: large;">SINTAXIS SWITCH</span></u></em></strong> </span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">El switch que nosotros conocemos normalmente, en Shell cambio radicalmente. Su sintaxis en la siguiente:</span><br />
<br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">case variable_a_analizar in </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">1) </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso 1 </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">;; </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">2) </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso 2 </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">;; </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">N) </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;"> proceso N </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">;; </span><br />
<span style="color: #bf9000; font-family: "Courier New", Courier, monospace;">esac</span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Como pueden apreciar la aplicación de esta instrucción puden verlo en los dos programas de Shell que realice. </span><br />
<br />
<span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>INSTRUCCIONES DE SHELL YA VISTAS</u></em></strong></span><br />
<ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>date.</strong></span> Imprime la fecha y hora del sistema. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">clear</span></strong>. Limpia la pantalla del terminal. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">pwd.</span></strong> Imprime la ubicación del fichero donde te encuentras en ese momento. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">ls -B.</span></strong> Muestra el contenido del fichero donde estas sin mostrar archivos ocultos. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>mkdir folder.</strong></span> Crea una carpeta en la ubicación donde estas con el nombre de “folder”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>cp -pR dir_origen/folder /dir_destino.</strong></span> Copia “folder” con todo y contenido de “dir_origen” a “dir_destino”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>mv -vf dir_origen/folder /dir_destino.</strong></span> Mueve “folder” con todo y contenido de “dir_origen” a “dir_destino”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>mv -vf folder new_name.</strong></span> Cambia el nombre de “folder” a “new_name”. Sin importar que tenga algo no este vacia la carpeta. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: #bf9000;"><strong>rm -rf dir_origen folder.</strong></span> Elimina la carpeta “folder” de la “dir_origen” en la cual nos encontramos, teniendo o no, teniendo la carpeta algún contenido. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">cp dir_origen/file /dir_destino.</span></strong> Copia el archivo “file” de “dir_origen” a “dir_destino”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">mv dir_origen/file /dir_destino.</span></strong> Mueve el archivo “file” de “dir_origen” a “dir_destino”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">mv file new_name.</span></strong> Cambia el nombre del archivo “file” a “new_name”. </span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: #bf9000;">rm -i dir_origen file.</span></strong> Elimina el archivo “file” de la “dir_origen” en la cual nos encontramos, solicitando confirmación para eliminar (como Windows).</span></li>
</ul><span style="color: #0b5394; font-family: Arial, Helvetica, sans-serif; font-size: large;"><strong><em><u>Tutorial</u></em></strong></span><br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">Les comparto el tutorial para Shell Script que me ayudo en gran parte para la creación de mis programas y en donde me base para crear esta entrada.</span><br />
<div><span style="font-family: Arial, Helvetica, sans-serif;"></span></div><div><span style="font-family: Arial, Helvetica, sans-serif;"></span></div><ul><li><span style="font-family: Arial, Helvetica, sans-serif;"><a href="https://docs.google.com/uc?export=download&id=0B3_-USmqViKzYjM5ODlkMzMtODYyYi00NWYzLTk2YWQtZjhhODUxNWZlOWFh&authkey=CNnlknk"><strong>Totorial Shell Script</strong></a></span></li>
</ul><span style="font-family: Arial, Helvetica, sans-serif;">Saludos a todos.</span>Roberto Crispínhttp://www.blogger.com/profile/05472476208989328859noreply@blogger.com1