tag:blogger.com,1999:blog-18048083573170469872024-03-05T03:19:10.881-08:00Oscar SalazarLenguajes de programaciónOscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.comBlogger23125tag:blogger.com,1999:blog-1804808357317046987.post-21846150009080386122010-11-23T07:17:00.000-08:002010-11-23T07:17:58.949-08:00Pascal (extra)<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Hola compañeros en esta ocasión les mostrare un programa en pascal el cual no sabía instalar en emacs pero gracias a las entradas de otros compañeros pude saber cómo instalarlo gracias.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Bueno pues</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-size: 12pt;"><span style="font-family: Calibri;">Pascal:</span></span></b><span style="font-family: "Arial", "sans-serif"; font-size: 8.5pt;"> </span><span style="font-size: 12pt; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Calibri;">fue desarrollado en los años 60 con el fin de que dicho lenguaje convirtiera en un lenguaje sencillo para el aprendizaje de la programación. Fue desarrollado por el profesor suizo Niklaus Wirth. Con el paso del tiempo su uso se propago a las grandes escuelas para convertirse en un robusto lenguaje para la creación de todo tipo de aplicaciones. El IDE más popular de este lenguaje fue Turbo Pascal para MS-DOS, es un lenguaje de programación estructurado fuertemente tipificado.<br />
Es también un lenguaje</span></span><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";"> de programación de alto nivel (hay lenguaje maquina de 1 y 0, lenguaje assembler, y los lenguajes de alto nivel como pascal y otros). Su propósito principal es el aprendizaje de la programación estructurada.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">Bueno pues aquí un ejemplo sencillo en pascal:</span></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">En el cual me pide que elija un número de empleado del 1 al 4 y una vez tecleado me aparecerá en la pantalla el nombre y número de empleado.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">Esta es la sintaxis de pascal</span></b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHMAfsosUymjK_J5LuJeMAdGx2pgA5ssSC6juTT9g6ruXWpKrO5hhavcNoTEHEAX_D9aBxT4hsCIe24PuJ6bmGN0OhbT5XBgA84LUvISldmKWpBKlqxYO3rZB-KyLiDE5vC1Xl25aXtwY1/s1600/pascal.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHMAfsosUymjK_J5LuJeMAdGx2pgA5ssSC6juTT9g6ruXWpKrO5hhavcNoTEHEAX_D9aBxT4hsCIe24PuJ6bmGN0OhbT5XBgA84LUvISldmKWpBKlqxYO3rZB-KyLiDE5vC1Xl25aXtwY1/s320/pascal.png" width="320" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">Este es el programa en ejecución</span></b></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBI_B7lEgc0zDY2Ks_Vm62eJHM8n7vfsM4EMCZEMz1f9fOpIsXpu6zo0RG6whzMcAILt0Iz_3RntmBLE-7trnExzGOIU8lLedIEiaHFiTH_4fUOFvhkUmRBLZRGYchsq1dWNn4JTrCg5A/s1600/pascal2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBBI_B7lEgc0zDY2Ks_Vm62eJHM8n7vfsM4EMCZEMz1f9fOpIsXpu6zo0RG6whzMcAILt0Iz_3RntmBLE-7trnExzGOIU8lLedIEiaHFiTH_4fUOFvhkUmRBLZRGYchsq1dWNn4JTrCg5A/s320/pascal2.png" width="320" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">Aquí en pascal</span></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="color: #4f81bd; font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman"; mso-themecolor: accent1;"><span style="color: blue;">VAR</span></span><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">: se declaran variables.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="color: #4f81bd; font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman"; mso-themecolor: accent1;"><span style="color: blue;">BEGIN</span></span><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";"><span style="color: blue;">: </span>es donde tendremos el cuerpo de la codificación, es similar al main de C.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="color: #4f81bd; font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman"; mso-themecolor: accent1;"><span style="color: blue;">WRITE</span></span><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";"><span style="color: blue;">: </span>es para imprimir el mensaje.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="color: #4f81bd; font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman"; mso-themecolor: accent1;"><span style="color: blue;">READLN</span></span><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";"><span style="color: blue;">:</span> lee un valor del teclado y lo almacena donde se declaran las variables.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";"><span style="color: blue;">WRITELN:</span> es un salto de linea.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="ES-AR" style="font-family: "Times New Roman", "serif"; font-size: 12pt; mso-ansi-language: ES-AR; mso-fareast-font-family: "Times New Roman";">Y pues el IF ya lo conocen muy bien.</span></div>Si algo no les quedo claro puede checar este manual de pascal es muy bueno:<br />
<a href="http://proton.ucting.udg.mx/tutorial/pascal/unidad1p.html">http://proton.ucting.udg.mx/tutorial/pascal/unidad1p.html</a>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com2tag:blogger.com,1999:blog-1804808357317046987.post-39621714431369614592010-11-22T22:25:00.000-08:002010-11-22T22:32:40.781-08:00Progama de Contraseña (Extra)<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Hola compañeros bueno pues ahora les voy a poner un programa en el cual tendremos que poner el nombre de usuario en este caso pondré los el usuario y contraseña mas básicos que son:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: Calibri;">Usuario: administrador </span></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: Calibri;">Contraseña: admin</span></b></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">En este programa utilizaremos cadena de caracteres que son tipos de datos estructurados compuesto por caracteres. En C, una cadena de caracteres se define como un arreglo de caracteres que termina con el carácter nulo (‘\0’). El acceso a una cadena se realiza por medio de un apuntador que señala al primer carácter de la cadena.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Para esto hay que utilizar las funciones de entrada y de salida de las bibliotecas stdio.h como: gets, scanf, puts y printf.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Bueno pues aquí está la codificación es C para que lo puedan copiar y checar en su compilador:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">#include <stdio.h><stdio.h><stdio.h></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">#include <<span lang="EN-US" style="font-family: "Calibri", "sans-serif"; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 10.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin;">stdlib.h></span><stdlib.h></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">#include <<span lang="EN-US" style="font-family: "Calibri", "sans-serif"; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 10.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin;">string.h></span><string.h></span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">struct empleado</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;">{</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>int matricula;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>char nombre[50];</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </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;">main()</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>struct empleado a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>int op, i, opcaso1, cont=0;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>char usuario[]="administrador", usuarioing[30];</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">char clave[]="admin", claveing[20];</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>do</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>{</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>system("cls");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("==============DEPARTAMENTO DE RECURSOS HUMANOS=====================\n\niniciar sesion");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">printf("\n\nusuario: ");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(usuarioing);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("clave: ");</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(claveing);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>while (strcmp(usuario,usuarioing)!=0 && strcmp(clave,claveing)!=0);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>printf("\ndatos correctos\nbienvenido");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>do</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nmenu:\n1- para capturar nombre del empleado y matricula \n2- para imprimir los datos ingresados en la opcion 1");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ncual fue su eleccion: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &op);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>switch(op)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>case 1:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a1.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a1.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>printf("desea seguir ingresado datos?: 1- para si......2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if (opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a2.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a2.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a3.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a3.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a4.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a4.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a5.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a5.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a6.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a6.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a7.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a7.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a8.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a8.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a9.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a9.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">scanf("%d", &opcaso1);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(opcaso1==1)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\ningrese la matricula del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &a10.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>fflush(stdin);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("ingrese el nombre del empleado: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>gets(a10.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("desea agregar mas datos?: 1- para si.....2- para no: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>scanf("%d", &opcaso1);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>cont++;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>break;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>case 2:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("datos de los empleados: ");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a1.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a1.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=2)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a2.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a2.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=3)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a3.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a3.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=4)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a4.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a4.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=5)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a5.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a5.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=6)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a6.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a6.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=7)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a7.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a7.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=8)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a8.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a8.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if (cont>=9)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a9.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span lang="EN-US" style="mso-ansi-language: EN-US;">puts(a9.nombre);</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>if(cont>=10)</span></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span lang="EN-US" style="mso-ansi-language: EN-US;"><span style="mso-spacerun: yes;"> </span></span>{</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>printf("\n\nnmatricula: %d\n",<span style="mso-spacerun: yes;"> </span>a10.matricula);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>puts(a10.nombre);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>//royo del caso 2//</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>break;</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}//cierre del switch//</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>while (opcaso1==2);</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>system("pause");</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><span style="mso-spacerun: yes;"> </span>}</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Bueno <span style="mso-spacerun: yes;"> </span>la librerías <strong>#include < </strong><span lang="EN-US" style="font-family: "Calibri", "sans-serif"; font-size: 11pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-size: 10.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin;"><strong>string.h></strong> </span><string.h>es para el manejo de cadenas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><b style="mso-bidi-font-weight: normal;">Strcmp:</b> hace comparaciones de caracteres en este caso comparara que “<b style="mso-bidi-font-weight: normal;">administrador” </b>y <strong>“admin”</strong> sean correctas.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Una vez terminado este paso creamos un swtich para crear el menú de captura de datos, en mi caso yo elegí 10 empleados.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><div class="separator" style="clear: both; text-align: center;"></div><span style="font-family: Calibri;">Después de terminar con la captura de los 10 empleados comenzamos con el case 2 en el cual solo imprimirá los datos ya guardados en la codificación.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: Calibri;">Ahora les mostrare la ejecución del programa:</span></b><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-WDu6Wgq8HDbI0gpkxgakKzYmpJqhLfEAVVmxR7GcSuVBztw80B1WYpJfpuCIZLbQDcQNY_XJXwZFTmlPzylaJDP9ARPNqNfvs2jWSke0c_W2f8VSOoXouGXS1yxsoJxJX-5S5Cd0Kkbb/s1600/siiiii.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-WDu6Wgq8HDbI0gpkxgakKzYmpJqhLfEAVVmxR7GcSuVBztw80B1WYpJfpuCIZLbQDcQNY_XJXwZFTmlPzylaJDP9ARPNqNfvs2jWSke0c_W2f8VSOoXouGXS1yxsoJxJX-5S5Cd0Kkbb/s320/siiiii.png" width="320" /></a></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Aquí yo guarde 3 datos, presiono 1 para capturar datos, después nos preguntara que si ya no queremos capturar datos, pero yo puse que 1 para sí y así capturar los 3 datos que se muestran.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQo4zJXyn2drbIgJCVR69YJoh9bsgaMOR9zVzXN221hwYh2IhGe6mItsDObt3CQQtzW8XaY_Q5-an-ufnDg33pXm3aH2mS1LLqNeeYS8BDbphXnE_sIG4QOFoYo008s3HHEd_8Dy5hMYt/s1600/nooooo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="233" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkQo4zJXyn2drbIgJCVR69YJoh9bsgaMOR9zVzXN221hwYh2IhGe6mItsDObt3CQQtzW8XaY_Q5-an-ufnDg33pXm3aH2mS1LLqNeeYS8BDbphXnE_sIG4QOFoYo008s3HHEd_8Dy5hMYt/s320/nooooo.png" width="320" /></a><br />
<span style="font-family: Calibri;">Después elegimos la segunda opción que es no seguir capturando datos, con esto se nos desglosara nuevamente el menú de capturar datos, pero la segunda opción dice mostrar datos ya almacenado, la elegimos y ahí está el resultado. </span></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com2tag:blogger.com,1999:blog-1804808357317046987.post-3618982945044932162010-11-22T00:46:00.000-08:002010-11-22T01:10:49.244-08:00Lenguajes Go y Oz<b>GO</b> proviene de la fusión de varios lenguajes, entre ellos el afamado lenguaje C. Aún asi incorpora elementos de <b>Python</b> (recordemos que es lenguaje preferido de Google, además que el creador de este lenguaje,, trabaja también alli), así como de la familia de Pascal/Modula/Oberon entre otros programas dinámicos.<br />
<br />
El clásico ejemplo de un programa es el <a href="http://es.wikipedia.org/wiki/Hola_mundo" title="Hola mundo">Hola mundo</a> en Go es similar a como se haría en C++. Con este mítico ejemplo podemos apreciar que en cuanto a sintaxis son muy similares:<br />
<br />
package main<br />
impor "fmt"<br />
func main()<br />
{<br />
fmt. Printf("Hola mundo\n")<br />
}<br />
Go es tambien considerado el lenguaje de Google:<br />
Dado que han pasado 10 años en los que no se ha creado un nuevo lenguaje de programación, Google cree que ya es el momento de dar el gran salto pues, según ellos mismos afirmaron en una conferencia de presentación, el mundo de la web y la computación ha cambiado dramáticamente en esos últimos años, pero los lenguajes de programación no han evolucionado al mismo ritmo.<br />
Pero, Google no solamente va a diseñar un lenguaje de programación que sea bastante eficiente, sino que desea que este lenguaje sea usado masivamente por miles de desarrolladores en la creación de aplicación web y de software a nivel mundial.<br />
<b>Bueno aquí les dejo un vídeo que halle acerca del nuevo Go:</b><br />
<b><a href="http://www.youtube.com/watch?v=rKnDgT73v8s">http://www.youtube.com/watch?v=rKnDgT73v8s</a> </b><br />
<br />
<div style="text-align: center;"><div style="text-align: left;"><b>Lenguaje Oz</b></div><div style="text-align: left;">Oz es un lenguaje de programación multiparadigma, esto quiere decir que incluye paradigmas como programación lógica, funcional, imperativa, orientada a objetos, con restricciones, distribuida, concurrente. </div><div style="text-align: left;">Como un énfasis a la programación multiparadigma, las principales ventajas de Oz están en la programación con restricciones y la programación distribuida. Debido a su diseño, Oz implementa un modelo de programación distribuido que hace a la red transparente. Este modelo hace fácil programar aplicaciones abiertas y tolerantes a fallas en el lenguaje. Para Programación con restricciones, Oz introduce la idea de espacios de computación, los cuales permiten búsquedas definidas por el usuario y estrategias de distribución que son ortogonales al dominio de restricciones.<br />
</div><div style="text-align: left;"><b>Un ejemplo de un programita el clásico hola mundo, que su sintaxis seria así:<br />
declare<br />
{Browse 'Hola Mundo'}</b></div><div style="text-align: left;"><br />
</div><div style="text-align: left;"><br />
</div></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-17631747875160978232010-11-22T00:20:00.000-08:002010-11-22T00:20:20.244-08:00Convertir de binario a decimal o de decimal a binario(Extra)Hola compañero hace poco publique un comentario en una entra que hablaba sobre los codigos decimales y binarios,y de como se convierte uno en otro.<br />
Bueno el punto es que yo le sugerí a mi compañero que realizara un programa que transformara un numero decimal a binario o viceversa.<br />
Y pues yo hice un programa en C que calcula lo ya mencionado.<br />
<b>Recordemos que para convertir un numero decimal a binario o viceversa hay que utilizar las siguientes formulas:</b><br />
<span style="color: blue;">De decimal a binario:</span><br />
Solo tenemos que ir dividiendo nuestro numero entre 2 como el siguiente ejemplo:<br />
<br />
<pre> </pre><pre><span style="font-size: large;">100|0
50|0
25|1 --> 1, 25-1=24 y seguimos dividiendo por 2
12|0
6|0
3|1
1|1 --> <span class="texhtml">(100)<sub>10</sub> = (1100100)<sub>2</sub></span> </span></pre><pre><span style="font-size: small;"> </span></pre><pre style="color: blue; font-family: inherit;"><span style="font-size: small;">De binario a decimal:</span></pre><pre style="font-family: inherit;"><span style="font-size: small;">Solo hay que ir elevando el exponete del numero binario ejemplo:</span></pre><pre style="font-family: inherit;"><span style="font-size: small;"> </span></pre><pre style="font-family: inherit;"><span style="font-size: small;">0010 esto es igual a decir 2 en decimal vamos a comprobarlo </span></pre><pre style="font-family: inherit;"><span style="font-size: small;">
</span></pre><pre><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;">(0)2^3+(0)2^2+(1)2^1(0)2^0= 0+0+2+0=2decimal</span></span></span></pre><pre><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;"> </span></span></span></pre><pre><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;">Codificación de Programa en C:</span></span></span></pre><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5xcI_44kpNb2SK_9Q01wCxflpyy332-xXcsyxJmylLfTgcqxL3y3bc57Y0uRpnNuXdSSPEJnTun6SyMUxMIiwf0UpzCZgwfXQEmNAsMYbsjeZ3FVyU7A9nBjcO_F3UQZYKC6tUgRSlg7y/s1600/binario.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5xcI_44kpNb2SK_9Q01wCxflpyy332-xXcsyxJmylLfTgcqxL3y3bc57Y0uRpnNuXdSSPEJnTun6SyMUxMIiwf0UpzCZgwfXQEmNAsMYbsjeZ3FVyU7A9nBjcO_F3UQZYKC6tUgRSlg7y/s320/binario.png" width="320" /></a></div><pre><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;"> </span></span></span></pre><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMCX6IwFLSrbkrw5zc7CTQHXMLuerkn-tIupjVGF2V-IV3rIH6mxUgB-711h13TVfRqKVLVGVH8qLo20ix0lWhDjwVwiGArSsgkNboSqbZS516Tc1oceb7vgpPhOtRp3GRhyphenhyphenwlMRzY429/s1600/binario2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKMCX6IwFLSrbkrw5zc7CTQHXMLuerkn-tIupjVGF2V-IV3rIH6mxUgB-711h13TVfRqKVLVGVH8qLo20ix0lWhDjwVwiGArSsgkNboSqbZS516Tc1oceb7vgpPhOtRp3GRhyphenhyphenwlMRzY429/s320/binario2.png" width="320" /></a><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;"> </span></span></span></div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;">B<span style="font-size: small;">ueno pues en si esta es la codificación del programa para convertir de decimal a binario solo</span></span></span></span><span style="font-size: small;"><span style="font-size: large;"><span style="font-family: inherit;"> <span style="font-size: small;">hay que dividir entre dos y decirle a nuestro programa que solo imprima el residuo y es asi como obtenemos el numero binario.</span></span></span></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-8JHwbJVgVuScI1T3w1h6BYrDvAiGsaN9d0rqU8tdwghmNsXWZmoUtCf8BkhbsiQrXM1qmtPBhAhZkMz4ZjN5psmscJIPithytr7NMUqTOF8iH7PLps_UJG_VALRiEWLvj_fkJ_FiwlnQ/s1600/binario3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-8JHwbJVgVuScI1T3w1h6BYrDvAiGsaN9d0rqU8tdwghmNsXWZmoUtCf8BkhbsiQrXM1qmtPBhAhZkMz4ZjN5psmscJIPithytr7NMUqTOF8iH7PLps_UJG_VALRiEWLvj_fkJ_FiwlnQ/s320/binario3.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><span style="font-size: small;"><span style="font-family: inherit;">Y para convertir de binario a decimal si batalle un poco mas ya que, tuve que poner un while para que fuera repitiendo las serie de 1 y 0 a calcular y ya con esto imprimir el numero decimal.</span></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtduRXPbd1YT2EyTZa4TuOpBGRscQ0AE_7lhIEzOcVe73YgjMxnKm3V-j0781Rq5sMFWTpbup3iW4nVUS5ZS5ETtAnRLIf4omGzMiRErMpsuZiIoPrsnQxiFMOe613A3ZGuLq6ZXe4Wzu3/s1600/binario4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtduRXPbd1YT2EyTZa4TuOpBGRscQ0AE_7lhIEzOcVe73YgjMxnKm3V-j0781Rq5sMFWTpbup3iW4nVUS5ZS5ETtAnRLIf4omGzMiRErMpsuZiIoPrsnQxiFMOe613A3ZGuLq6ZXe4Wzu3/s320/binario4.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;"><br />
</div><pre></pre><pre></pre>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com9tag:blogger.com,1999:blog-1804808357317046987.post-61713566227382240822010-11-21T23:36:00.000-08:002010-11-21T23:36:24.269-08:00Tratamiento de errores y excepcionesEl tratamiento de errores es una técnica recién incorporada al Object Pascal proveniente de C++, por lo que la voy a comentar de su novedad y la seguridad que aporta. En ANALOGIA.EXE se ha intentado preservar la seguridad en la ejecución, por lo que todas las operaciones de alojamiento dinámico de memoria, gestión de ficheros, etc. se realizan como medida de seguridad entre bloques TRY..EXCEPT o TRY..FINALLY, que veremos a continuación. <br />
<br />
<b>Los errores se pueden dividir en dos grupos</b>: errores en tiempo de compilación (corregibles antes de hacer funcionar el programa), y errores en tiempo de ejecución, más complicados de encontrar, puesto que el error casi siempre es culpa del usuario y suele manifestarse con frecuencia. <br />
Una excepción es una señal provocada por un error, tal como pueda ser una división por cero, el sobrepasar los límites de un array, o el intento de acceso a los datos apuntados por un puntero nulo.<br />
<b>Por ejemplo: </b><br />
La excepción generalmente dispone de la información necesaria para conocer la causa del error. Dicha información la podemos aprovechar en nuestro código si interceptamos la excepción, o bien será mostrada en un mensaje antes de que el programa se interrumpa, si no la interceptamos (no es recomendable). <br />
Para interceptar los errores, trataremos de aislar el bloque a proteger entre la palabra Try y la palabra Except, de forma que si vemos en ANALOGIA.EXE el siguiente código: <br />
<br />
<span style="color: #000099;">try</span> <br />
<span style="color: #000099;"> num:=StrToFloat(Value);</span> <br />
<span style="color: #000099;">for cont:=0 to PanelL.ComponentCount-1 do</span> <br />
<span style="color: #000099;"> if PanelL.Components[cont] is TCompMecanico then</span> <br />
<span style="color: #000099;"> begin</span> <br />
<span style="color: #000099;"> .....................</span> <br />
<span style="color: #000099;"> .....................</span> <br />
<span style="color: #000099;"> end</span> <br />
<span style="color: #000099;">Except {Excepción si es un valor numérico inválido}</span> <br />
<span style="color: #000099;"> PanelL.Pan1.Strg1.Cells[1,ARow]:='';</span> <br />
<span style="color: #000099;">end;</span> <br />
<br />
se ejecutará lo que hay después de la asignación num:=StrToFloat(Value) solo si se ha producido esta asignación correctamente y no ha habido problemas en el procedimiento StrToFloat. En caso de tener en Value un valor incorrecto, se generará una excepción (que no se muestra al usuario), y se salta directamente al código que hay después de la palabra clave Except. Este código se ha utilizado por ejemplo para evitar que el usuario de valores incorrectos (letras, etc) a los valores de los componentes. <br />
Si observamos este otro trozo de código correspondiente a la escritura de un fichero .MEC en disco: <br />
<br />
<span style="color: #000099;">Try Rewrite(Fich);</span> <br />
<span style="color: #000099;"> for cont:=0 to FormDibu.PanelL.ComponentCount-1 do</span> <br />
<span style="color: #000099;"> if FormDibu.PanelL.Components[cont] is TCompMecanico then</span> <br />
<span style="color: #000099;"> begin</span> <br />
<span style="color: #000099;"> Aux:=FormDibu.PanelL.Components[cont] as TCompMecanico;</span> <br />
<span style="color: #000099;"> Reg.left:=Aux.left;</span> <br />
<span style="color: #000099;"> ..................</span> <br />
<span style="color: #000099;"> ..................</span> <br />
<span style="color: #000099;"> write (Fich,Reg); {Escribe componente en el fichero}</span> <br />
<span style="color: #000099;"> end;</span> <br />
<span style="color: #000099;">Finally</span> <br />
<span style="color: #000099;"> CloseFile(Fich); {Cierra en cualquier caso el fichero}</span> <br />
<span style="color: #000099;">end;</span> <br />
<br />
Ahora ocurre lo siguiente: Si la apertura/creación (Rewrite(Fich)) del fichero es correcta, se ejecutará el bucle for cont... y después se ejecutará lo que hay después de Finally (se cerrará el fichero). Sin embargo, si el Rewrite(Fich) provoca un error por cualquier causa (disco lleno, etc.), se saltará directamente al código que hay detrás de Finally, puesto que nos interesará siempre no dejar ficheros abiertos. <br />
Como vemos, con Finally se ejecuta siempre el código que hay a continuación, mientras que con Except se ejecuta solo si se ha producido una excepción. En cualquier caso lo que hay detrás de Try... solo se ejecuta si no se ha producido ningún error. <br />
También es útil un ejemplo de gestión de los errores de memoria que nos muestra también como anidar estructuras Try..Except y Try..Finally: <br />
<br />
<span style="color: #000099;">Try</span> <br />
<span style="color: #000099;"> Try</span> <br />
<span style="color: #000099;"> New (PNumero); {Asignar memoria dinámica}</span> <br />
<span style="color: #000099;"> PNumero:=Dividendo div Divisor;</span> <br />
<span style="color: #000099;"> Finally</span> <br />
<span style="color: #000099;"> Dispose (PNumero); {Liberar siempre recursos}</span> <br />
<span style="color: #000099;"> end;</span> <br />
<span style="color: #000099;">Except {Ejecutar si se produjo una excepción}</span> <br />
<span style="color: #000099;"> Writeln ('Se produjo una excepción');</span> <br />
<span style="color: #000099;">end;</span> <br />
<br />
Estas son las principales herramientas de gestión de excepciones, pero no las únicas (gestión de excepciones según su tipo, creación de excepciones propias, etc.), sin embargo una discusión más amplia del tema se escapa de los límites del proyecto.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-90688122019170242672010-11-21T23:16:00.000-08:002010-11-21T23:16:12.753-08:00Programación de aplicaciones paralelas con MPI (Message Passing Interface)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP061-5w528QQvliv3L_XMn-JA7E_M45o3x9nU5rhiYsbLUbWYSm6dPb89yq0DDDI_-5j9yTinG5O-xyMjduyiDUudCO6rTBcDOQRA3eIRrJEogtlKl0Kc4HKHgd6fun8QHnaIw7LrWL0k/s1600/3A.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP061-5w528QQvliv3L_XMn-JA7E_M45o3x9nU5rhiYsbLUbWYSm6dPb89yq0DDDI_-5j9yTinG5O-xyMjduyiDUudCO6rTBcDOQRA3eIRrJEogtlKl0Kc4HKHgd6fun8QHnaIw7LrWL0k/s320/3A.jpg" width="320" /></a></div>MPI es, como su nombre indica, es un interfaz, lo que quiere decir que el<br />
estándar no exige una determinada implementación del mismo. Lo<br />
importante es dar al programador una colección de funciones para que ésterealize su aplicación, sin que tenga necesariamente que conocer el hardware<br />
concreto sobre el que se va a ejecutar, ni la forma en la que se han<br />
implementado las funciones que emplea.<br />
<br />
MPI ha sido desarrollado por el MPI Forum, un grupo formado por<br />
investigadores de universidades, laboratorios y empresas involucrados en la<br />
computación de altas prestaciones.<br />
<b>Sus objetivos fundamentales del MPI</b><br />
<span style="color: blue;">Forum son los siguientes:</span><br />
1. Definir un entorno de programación único que garantice la portabilidad de<br />
las aplicaciones paralelas.<br />
2. Definir totalmente el interfaz de programación, sin especificar cómo debe<br />
ser la implementación del mismo<br />
3. Ofrecer implementaciones de calidad, de dominio público, para favorecer<br />
la extensión del estándar.<br />
4. Convencer a los fabricantes de computadores paralelos para que ofrezcan<br />
versiones de MPI optimizadas para sus máquinas ( lo que ya han hecho<br />
fabricantes como IBM y Silicon Graphics).<br />
Los elementos básicos de MPI son una definición de un interfaz de<br />
programación independiente de lenguajes, más una colección de bindings o<br />
concreciones de ese interfaz para los lenguajes de programación más<br />
extendidos en la comunidad usuaria de computadores paralelos:<br />
<b>C y FORTRAN.</b><br />
Un programador que quiera emplear MPI para sus futuros proyectos trabajará con una implementación concreta de MPI, que constará de , al menos, estos<br />
elementos:<br />
• Una biblioteca de funciones para C, más el fichero de cabecera mpi.h con<br />
las definiciones de esas funciones y de una colección de constantes y<br />
macros.<br />
• Una biblioteca de funciones para FORTRAN + mpif.h.<br />
• Comandos para compilación, típicamente mpicc, mpif77, que son<br />
versiones de los comandos de compilación habituales (cc, f77) que<br />
incorporan automáticamente las bibliotecas MPI.<br />
• Comandos para la ejecución de aplicaciones paralelas, típicamente<br />
mpirun.<br />
• Herramientas para monitorización y depuración.<br />
MPI no es, evidentemente, el único entorno disponible para la elaboración de<br />
aplicaciones paralelas. Existen muchas alternativas, entre las que<br />
destacamos las siguientes:<br />
• Utilizar las bibliotecas de programación propias del computador paralelo<br />
disponible: NX en el Intel Paragon, MPL en el IBM SP2, etc.<br />
• PVM (Parallel Virtual Machine): de características similares a MPI, se<br />
desarrolló con la idea de hacer que una red de estaciones de trabajo<br />
funcionase como un multicomputador. Funciona también en<br />
multicomputadores, normalmente como una c apa de software encima del<br />
mecanismo de comunicaciones nativo.<br />
• Usar, si es posible, lenguajes de programación paralelos (FORTRAN 90) o<br />
secuenciales (C, FORTRAN 77) con directivas de paralelismo.<br />
• Usar lenguajes secuenciales junto con compiladores que paralelicen<br />
automáticamente.<br />
MPI está aún en sus comienzos, y aunque se está haciendo un hueco<br />
creciente en la comunidad de programadores de aplicaciones científicas<br />
paralelas, no es probable que desplace a corto plazo a los entornos de<br />
programación ya existentes (como los anteriormente citados) o impida la<br />
aparición de otros nuevos.<br />
<br />
<b>El MPI Forum es consciente de que MPI todavía<br />
adolece de algunas limitaciones, e incluso ha identificado bastantes de ellas:</b><br />
• Entrada/salida: no se establece un mecanismo estandarizado de E/S<br />
paralela.<br />
• Creación dinámica de procesos. MPI asume un número de procesos<br />
constante, establecido al arrancar la aplicación.<br />
• Variables compartidas. El modelo de comunicación estandarizado por MPI<br />
sólo tiene en cuente el paso de mensajes.<br />
• Bindings para otros lenguajes, además de C y FORTRAN. Se piensa, en<br />
concreto, en C++ y Ada.<br />
• Soporte para aplicaciones de tiempo real. MPI no recoge en ningún punto<br />
restricciones de tiempo real.<br />
• Interfaces gráficos. No se define ningún aspecto relacionado con la<br />
interacción mediante GUIs con una aplicación paralela.<br />
<br />
Como ya hemos comentado, MPI está especialmente diseñado para<br />
desarrollar aplicaciones SPMD. Al arrancar una aplicación se lanzan en<br />
paralelo N copias del mismo programa * (procesos). Estos procesos no<br />
avanzan sincronizados instrucción a instrucción sino que la sincronización,<br />
cuando sea necesaria, tiene que ser explícita. Los procesos tienen un<br />
espacio de memoria completamente separado. El intercambio de<br />
información, así como la sincronización, se hacen mediante paso de<br />
mensajes.<br />
Se dispone de funciones de comunicación punto a punto (que involucran sólo<br />
a dos procesos), y de funciones u operaciones colectivas (que involucran a<br />
mútiples procesos). Los procesos pueden agruparse y formar<br />
comunicadores, lo que permite una definición del ámbito de las operaciones<br />
colectivas, así como un diseño modular.<br />
La estructura típica de un programa MPI, usando el binding para C, es la<br />
siguiente:<br />
# include "mpi.h"<br />
main (int argc, char **argv) {<br />
int nproc; /* Número de procesos */<br />
int yo; /* Mi dirección: 0<=yo<=(nproc-1) */<br />
MPI_Init(&argc, &argv);<br />
MPI_Comm_size(MPI_COMM_WORLD, &nproc);<br />
MPI_Comm_rank(MPI_COMM_WORLD, &yo);<br />
/* CUERPO DEL PROGRAMA */<br />
}<br />
MPI_Finalize();<br />
Este segmento de código ya nos presenta cuatro de las funciones más<br />
*<br />
Las implementaciones de MPI también suelen permitir lanzar aplicaciones en las que no<br />
todos los procesos ejecutan el mismo programa.<br />
utilizadas de MPI: MPI_Init() para iniciar la aplicación paralela,<br />
MPI_Comm_size() para averiguar el número de procesos que participan en<br />
la aplicación, MPI_Comm_rank(), para que cada proceso averigue su<br />
dirección (identificador) dentro de la colección de procesos que componen la<br />
aplicación, y MPI_Finalize() para dar por finalizada la aplicación.<br />
<br />
MPI_Init(int *argc, char ***argv);<br />
MPI_Comm_size (MPI_Comm comm, int *size);<br />
MPI_Comm_rank (MPI_Comm comm, int *rank);<br />
MPI_Finalize(void);<br />
El ejemplo nos sirve también para que prestemos atención a algunas<br />
convenciones de MPI. Los nombres de todas las funciones empiezan con<br />
“MPI_”, la primera letra que sigue siempre es mayúscula, y el resto son<br />
minúsculas.<br />
La mayor parte de las funciones MPI devuelven un entero, que es un<br />
diagnóstico. Si el valor devuelto es MPI_SUCCESS, la función se ha<br />
realizado con éxito. No se han estandarizado otros posibles valores.<br />
La palabra clave MPI_COMM_WORLD hace referencia a l comunicador<br />
universal, un comunicador predefinido por MPI que incluye a todos los<br />
procesos de la aplicación. Más adelante veremos cómo definir otros<br />
comunicadores. Todas las funciones de comunicación de MPI necesitan<br />
como argumento un comunicador.<br />
En el resto de este tutorial vamos a ir presentando las diferentes funciones<br />
que MPI ofrece para la comunicación y sincronización entre procesos. En la<br />
sección 2 presentamos los mecanismos para la comunicación entre pares de<br />
procesos (Comunicación punto a punto). En la sección 3 presentamos las<br />
funciones para comunicación entre grupos de procesos ( Operaciones<br />
colectivas). La sección 4 discute aspectos de MPI relacionados con la<br />
Modularidad. En la sección 5 se describen las funciones disponibles para<br />
definir Tipos de datos derivados. Por último, la sección 6 (Bibliografía) aporta<br />
referencias para la localización de información adicional sobre MPI.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-30181275297780407322010-11-21T22:54:00.000-08:002010-11-21T22:57:01.578-08:00Sistemas Distribuidos(Extra)Hola compañeros pues aquí les dejo un poco de lo que son sistemas distribuidos ya que en la ultima clase no fue la Doctora.<br />
<div style="font-family: inherit;"><span style="font-size: large;"><br />
</span></div><span style="font-size: large;"><b style="font-family: inherit;">U</b></span><b><span style="font-size: large;"><span style="font-family: inherit;">n sistema distribuid</span>o</span></b>: se define como una colección de computadores libres conectados por una red, y con el software adecuado para que el sistema sea visto por los usuarios como una única corporación capaz de proporcionar facilidades de computación. <br />
El desarrollo de los sistemas distribuidos vino junto de las redes locales de alta velocidad a principios de 1970. <br />
Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de área local, hasta Internet, una colección de redes de área local y de área extensa interconectados, que en lazan millones de ordenadores.<br />
Las aplicaciones de los sistemas distribuidos varían desde la subsistencia de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prácticamente todas las aplicaciones comerciales y técnicas de los ordenadores.<br />
<div style="color: blue;"><b>Características:</b></div><ul><li style="display: inline; list-style: none outside none;"> <b><a href="http://www.blogger.com/post-edit.g?blogID=1804808357317046987&postID=3018127529778040732" id="CARACT" name="CARACT"></a></b><br />
</li>
<li><b>Concurrencia</b>: esta característica de los sistemas distribuidos permite que los recursos disponibles en la <nobr id="epl_kw_cfa010f10016a577_12">red</nobr> puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red. </li>
<li><b>Carencia de <nobr id="epl_kw_cfa010f10016a577_13">reloj</nobr> global: l</b>as coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización <nobr id="epl_kw_cfa010f10016a577_14">general</nobr>, esta más bien distribuida a los componentes. </li>
<li><b>Fallos <nobr id="epl_kw_cfa010f10016a577_15">independientes</nobr> de los componentes: c</b>ada componente del sistema puede fallar independientemente, por lo cual los demás pueden continuar ejecutando sus <nobr id="epl_kw_cfa010f10016a577_16">acciones</nobr>. Esto permite el logro de tareas con mayor efectividad, pues el <nobr id="epl_kw_cfa010f10016a577_17">sistema</nobr> en su <nobr id="epl_kw_cfa010f10016a577_18">conjunto</nobr> continua trabajando. </li>
</ul><div style="color: blue;"><b>Evolución:</b></div><b><a href="http://www.blogger.com/post-edit.g?blogID=1804808357317046987&postID=3018127529778040732" id="EVOL" name="EVOL"></a>Procesamiento central (Host): </b><nobr id="epl_kw_cfa010f10016a577_19">uno</nobr> de los primeros modelos de ordenadores interconectados, llamados centralizados, donde <nobr id="epl_kw_cfa010f10016a577_20">todo</nobr> el procesamiento de la organización se llevaba a <nobr id="epl_kw_cfa010f10016a577_21">cabo</nobr> en una sola computadora, normalmente un Mainframe, y los usuarios utilizaba sencillos ordenadores personales.<br />
<b>Los problemas de este modelo son:</b><br />
<ul><li>Cuando la carga de procesamiento aumentaba se tenía que cambiar el <nobr id="epl_kw_cfa010f10016a577_22">hardware</nobr> del Mainframe, lo cual es más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades.</li>
<li>El otro problema que surgió son las modernas interfases gráficas del usuario, las cuales podían ser a un gran <nobr id="epl_kw_cfa010f10016a577_23">aumento</nobr> de tráfico en los medios de <nobr id="epl_kw_cfa010f10016a577_24">comunicación</nobr> y por consiguiente podían colapsar. </li>
</ul><b><nobr id="epl_kw_cfa010f10016a577_25">Grupo</nobr> de Servidores: </b>otro <nobr id="epl_kw_cfa010f10016a577_26">modelo</nobr> que entró a competir con el anterior, también un tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente de archivos o de impresión, poco <nobr id="epl_kw_cfa010f10016a577_27">inteligentes</nobr> para un <nobr id="epl_kw_cfa010f10016a577_28">número</nobr> de Minicomputadores que hacen el procesamiento conectados a una red de área local.<br />
<b>Los problemas de este otro modelo son:</b><br />
<ul><li>Podría generarse una saturación de los <nobr id="epl_kw_cfa010f10016a577_29">medios</nobr> de comunicación entre los servidores poco inteligentes y los minicomputadores, por ejemplo cuando se solicitan archivos grades por varios clientes a la vez, podían disminuir en un alto porcentaje la velocidad de transmisión de información.</li>
</ul><b>La Computación <nobr id="epl_kw_cfa010f10016a577_30">Cliente</nobr> Servidor: </b>este modelo, es el que predomina en la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos servidores estén dedicados <nobr id="epl_kw_cfa010f10016a577_31">solo</nobr> a una <nobr id="epl_kw_cfa010f10016a577_32">aplicación</nobr> determinada y por lo tanto ejecutarla en forma eficiente.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyNKhD51YwVaGhJU-9R9EM9Gvw625jw6hcCwRSqUTsSAUJh0b_9ecqWoX6r3lk8iwNAsMX_8qXpY0oILwf04aFaxtXXcx9ba4q7MABbGvylQHaZWAqNVF2Lu3bHG3HneWkro5zyH6Qjo5B/s1600/scada_edificiomn.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyNKhD51YwVaGhJU-9R9EM9Gvw625jw6hcCwRSqUTsSAUJh0b_9ecqWoX6r3lk8iwNAsMX_8qXpY0oILwf04aFaxtXXcx9ba4q7MABbGvylQHaZWAqNVF2Lu3bHG3HneWkro5zyH6Qjo5B/s320/scada_edificiomn.gif" width="320" /></a></div><br />
<br />
En conclusión:<br />
<br />
<ul><li>Los sistemas distribuidos abarcan una cantidad de aspectos considerables, por lo cual su desarrollo implica mucha complejidad.</li>
<li>Existen ciertos aspectos que requieren extremo cuidado al desarrollarse e implantarse como el manejo de fallos, el control de la concurrencia, etc.</li>
<li>Existen muchos <nobr id="epl_kw_cfa010f10016a577_132">temas</nobr> de investigación relacionados con los sistemas distribuidos, por ejemplo los planteados en el apartado de Desafíos.</li>
<li>Se nota también que muchas tecnologías están en constante desarrollo y maduración, lo cual implica un minucioso estudio previo de muchos factores antes de <nobr id="epl_kw_cfa010f10016a577_133">apostar</nobr> por alguna tecnología en especial. </li>
</ul>Referencias:<br />
<br />
<a href="http://dmi.uib.es/%7Ebbuades/sistdistr/sld007.htm">http://dmi.uib.es/~bbuades/sistdistr/sld007.htm</a> (Sistemas Distribuidos).<br />
<a href="http://members.fortunecity.es/lrmdl/SO7.htm">http://members.fortunecity.es/lrmdl/SO7.htm#VSDRC</a> (Sistemas Distribuidos).<br />
<a href="http://www-lt.ls.fi.upm.es/sistemas_dist/Introduccion.pdf"> http://www-lt.ls.fi.upm.es/sistemas_dist/Introduccion.pdf</a> (Sistemas Distribuidos).<br />
<a href="http://www.dia.eui.upm.es/cgi-bin/asigfram.pl?cual=sis_dis&nombre=Sistemas-Distribu%EDdos"> http://www.dia.eui.upm.es/cgi-bin/asigfram.pl?cual=sis_dis&nombre=Sistemas-Distribu%EDdos</a> (Sistemas Distribuidos: Aplicaciones).Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-10491836636874182702010-11-21T22:18:00.000-08:002010-11-21T22:25:04.234-08:00Lenguajes Orientados a Objetos<b>El concepto de programación orientada a objetos (OOP)</b> se basa en la idea natural de la existencia de todo aquello que nos rodea<nobr id="epl_kw_cfa010f10016a577_4"></nobr> lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo. <br />
El elemento fundamental de la OOP es tal y como lo indica es un <b>objeto</b>. <b> </b><br />
<b>Podemos definir un objeto como</b> <b>un <nobr id="epl_kw_cfa010f10016a577_5">conjunto</nobr> complejo de datos y programas que poseen estructura y forman parte de una organización</b>.<br />
En <nobr id="epl_kw_cfa010f10016a577_7">primer</nobr> lugar, un objeto no es un dato simple, si no que contiene en su interior cierto <nobr id="epl_kw_cfa010f10016a577_8">número</nobr> de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización conjunta o de otro tipo.<br />
Un objeto puede considerarse como una especie de cápsula dividida en tres partes:<br />
<br />
<b>1 - </b><nobr id="epl_kw_cfa010f10016a577_9"><b>RELACIONES</b></nobr> <br />
<b>2 - PROPIEDADES</b><br />
<b>3 - MÉTODOS</b><br />
Las <b>relaciones:</b> permiten que el objeto se insterte en la organización y están formadas esencialmente por punteros a otros objetos.<br />
Las <b>propiedades:</b> distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus <nobr id="epl_kw_cfa010f10016a577_10">descendientes</nobr> en la organización. <br />
Los <b>métodos</b>: son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.<br />
Algunos lenguajes orientados a objetos son: <br />
<b>C++:</b> Es un lenguaje de programación siendo este una mejora del lenguaje C, con el cual puedes crear muchos tipos de programas. Ademas de que una gran diferencia con el lenguaje<b> C </b>es que <b>C++</b> posee la capacidad de crear objetos y clases (Programacion orientada a objetos) mientras que <b>C </b>solo permite la programación estructurada.<br />
Ejemplo de programa en C++:<br />
Codificación: <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhdYr0D43cSU5Rz4xPRFXbHCJnzoEAlYJ33t6-klk7JrTFN8iPRi1DLo8bOdKpJRpHJnPitadB5lyf2nRLpjl7DmsAlX-cQhxiKiZdgp5soNSZCelcymaq2k2nI-_TulFWQMci2uIHPSD/s1600/c%252B%252B.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGhdYr0D43cSU5Rz4xPRFXbHCJnzoEAlYJ33t6-klk7JrTFN8iPRi1DLo8bOdKpJRpHJnPitadB5lyf2nRLpjl7DmsAlX-cQhxiKiZdgp5soNSZCelcymaq2k2nI-_TulFWQMci2uIHPSD/s320/c%252B%252B.png" width="320" /></a></div>Ejecucion de programa:<br />
<b>Cabe destacar que para compilar C++ en emacs, tenemos que escribir guardar nuestro archivo con la extensión.cpp y el compilador es </b><br />
<b>g++ archivo.cpp</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvP8i3gD1K5jLtGth-2e0kurXGPyEfPSVpgAQrel0-DIL4BoMHfZugnSDVZdh8YR1CEJTM2apzADj4bH56TY7Ln1_hR3x5cGM9Qgrb-N8tTMVGZnxiCIyVtD4IQjoQM6dAGUnV3gxC4E3/s1600/c%252B%252B2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvP8i3gD1K5jLtGth-2e0kurXGPyEfPSVpgAQrel0-DIL4BoMHfZugnSDVZdh8YR1CEJTM2apzADj4bH56TY7Ln1_hR3x5cGM9Qgrb-N8tTMVGZnxiCIyVtD4IQjoQM6dAGUnV3gxC4E3/s320/c%252B%252B2.png" width="320" /></a></div><br />
<b>Java:</b>es un lenguaje de programación y entre sus características se encuentran las siguientes:<br />
<b><br />
Es orientado a objetos: </b>esto es , que el paradigma de programación que utiliza y para el cuál fue construido es la Programación Orientada a Objetos (POO) y consiste en relacionar todo como si se trataran de objetos del mundo real.<br />
En este lenguaje todo son objetos excepto los básicos como<b> ( int, float, double, char... ).</b><br />
<b>Es un lenguaje de propósito general</b>: ya que esta diseñado para que puedas programar cualquier cosa con el.<br />
<b>Es un lenguaje interpretado:</b> esto es, que hay una máquina virtual llamada JVM (Java Virtual Machine) que se encarga de interpretar y ejecutar el código de los programas hechos en Java en tiempo de ejecución. <br />
Es un lenguaje portable: esto significa que si tu escribes el código se debe ejecutar en cualquier Sistema Operativo para el cuál se haya elaborado y tenga instalada la JVM antes mencionada.<br />
<br />
Ejemplo de codificación en java:<br />
Serie Fibonacci:<br />
<style type="text/css">
p { margin-bottom: 0.21cm; }
</style><br />
<div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>public class Fibonacci</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>{</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>public static void main (String [] args)</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>{</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>int f1=1, f2=1;</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>System.out.println (f1);</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>while (f1<500)</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>{</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>System.out.println(f2);</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>f2+=f1; </b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>f1 = f2 - f1;</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>} </b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>}</b></span></div><div style="color: black; line-height: 100%; margin-bottom: 0cm;"><span style="font-size: small;"><b>}</b></span></div><br />
Ejecución del programa:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIRM9Gvr5htvZMMLA8wW84z3lNw57BDotZwMoHvk8rrr305t8dh1LYdcr90lG5xF50uxWhc1B-QVvzhfSO1IqTU58487wcgrCTkVv9k_Wa7laS7i74qhUSqFHszTUPcXKqcI6c2eUnOe7R/s1600/eee.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" ox="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIRM9Gvr5htvZMMLA8wW84z3lNw57BDotZwMoHvk8rrr305t8dh1LYdcr90lG5xF50uxWhc1B-QVvzhfSO1IqTU58487wcgrCTkVv9k_Wa7laS7i74qhUSqFHszTUPcXKqcI6c2eUnOe7R/s320/eee.png" width="320" /></a></div><span id="goog_1949663669"></span><span id="goog_1949663670"></span>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-4956184367833240602010-11-21T19:53:00.000-08:002010-11-21T19:56:20.229-08:00Reporte #6(Lenguajes imperativos)<b>Lenguajes Imperativos</b><br />
<br />
Estos lenguajes cuyo origen está ligado a la propia arquitectura de von Neumann, la <nobr id="epl_kw_cfa010f10016a577_25">arquitectura</nobr> consta de una secuencia de celdas, llamadas memoria, en la cual se pueden guardar en forma codificada, los mismos datos que instrucciones y de un procesador, el cual es capaz de ejecutar de manera secuencial una <nobr id="epl_kw_cfa010f10016a577_26">serie</nobr> de operaciones, principalmente aritméticas y booleanas, llamadas comandos.<br />
Un lenguaje imperativo conceptos que se traducen de forma natural al modelo de la máquina.<br />
<br />
Por ejemplo los lenguajes imperativos más destacados de la historia han sido: Fortran, Algol, Pascal, C, Modula-2, Ada.<br />
<br />
Fortran: es lenguaje de propósito general, principalmente orientado a la computación matemática, por ejemplo en ingeniería. Originalmente fue escrito con mayúsculas como FORTRAN. Pero pos lo habitual es poner sólo la primera letra con mayúscula, que es como se escribe actualmente como Fortran.<br />
Fortran fue el primer lenguaje de programación de alto nivel. Su desarrollo inicio en la decada de 1950 en IBM y han habido muchas versiones desde entonces. Como estas: <br />
<ul><li> <b>Fortran 66 </b></li>
<li><b> Fortran 77 </b></li>
<li><b> Fortran 90 (95) </b></li>
</ul>La versión más común de Fortran actualmente es todavía <b>Fortran 77</b>, sin embargo <b>Fortran 90</b> esta creciendo en popularidad. Fortran 95 es una versión revisada de Fortran 90 la cual fue aprobada por <b>ANSI en 1996.</b> Hay también varias versiones de Fortran para computadoras paralelas. La más importante es HPF (High Performance Fortran), la cual es de hecho el estándar.<br />
Pero se debe ser cuidadoso con los compiladores de Fortran 77, ya que pueden manejar un superconjunto de Fortran 77, por ejemplo contienen extensiones no estándarizadas. <br />
<br />
<b>Programa en Fortran</b><br />
parte 1 <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN_3anAcMHwDf391Hhwve3NRgFoNglwCgig5mYOCXa3e8T5S6O4_T0daeL4jj-QzIyEn-5STYFwhncMNw6LPT17xC8V6psFW5IaDDg-47RiGXPcYOVlTfmN3TsvCWA4DG0wZHN3dZT5GrR/s1600/FORTRAN.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN_3anAcMHwDf391Hhwve3NRgFoNglwCgig5mYOCXa3e8T5S6O4_T0daeL4jj-QzIyEn-5STYFwhncMNw6LPT17xC8V6psFW5IaDDg-47RiGXPcYOVlTfmN3TsvCWA4DG0wZHN3dZT5GrR/s320/FORTRAN.png" width="320" /></a></div><br />
parte 2<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRor1Pb1pJQ6MAsAGwiSXTZrqsnNvyp4qB4csVAvCeokcgU4m-57HDOZ1gB00qLSF1tVZXEMOjly9Ld1EU8OeUDoWEm8lVXOTY2hCX7SYxveOOBw1ooecHkBd9SEKK2AyiM6kMA1fyvD8/s1600/FORTRAN+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHRor1Pb1pJQ6MAsAGwiSXTZrqsnNvyp4qB4csVAvCeokcgU4m-57HDOZ1gB00qLSF1tVZXEMOjly9Ld1EU8OeUDoWEm8lVXOTY2hCX7SYxveOOBw1ooecHkBd9SEKK2AyiM6kMA1fyvD8/s320/FORTRAN+2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvEDYaHS9NMEpZjrC3Q1esNuxJxNoNiFlF3LIlMdGl6LRXFR83SMAiFGumz-ytu1dBbtjRFmAW7gkyuC6_TakutMjG84nSzhM3Qp74h8PNoxRqs3hSch8OjOGLuCI49tetx44vdx3X1nOv/s1600/FORTRAN+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>Este es el compilador de Fortran ya que cada Fortran tiene su propio compilador que es: <b>gfortran -ffree-form nombre del archivo.for y después para ejecutarlo ./a.out</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOX3vqPkUHNtMGNIZrVLZphSd_BGErXhL7ylMWJ5_InEAQbsHaU1cpjaj_ut23tZit7Jrc59tuKABMn1FiXursSx8D54-sMb5cGFJaH34nCnoRq-pcgXQr72CqHOJ0FL9uc95BbdR2wazr/s1600/FORTRAN+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOX3vqPkUHNtMGNIZrVLZphSd_BGErXhL7ylMWJ5_InEAQbsHaU1cpjaj_ut23tZit7Jrc59tuKABMn1FiXursSx8D54-sMb5cGFJaH34nCnoRq-pcgXQr72CqHOJ0FL9uc95BbdR2wazr/s320/FORTRAN+3.png" width="320" /></a></div><br />
<b>Ejecución de programa en Fortran</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvEDYaHS9NMEpZjrC3Q1esNuxJxNoNiFlF3LIlMdGl6LRXFR83SMAiFGumz-ytu1dBbtjRFmAW7gkyuC6_TakutMjG84nSzhM3Qp74h8PNoxRqs3hSch8OjOGLuCI49tetx44vdx3X1nOv/s1600/FORTRAN+4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvEDYaHS9NMEpZjrC3Q1esNuxJxNoNiFlF3LIlMdGl6LRXFR83SMAiFGumz-ytu1dBbtjRFmAW7gkyuC6_TakutMjG84nSzhM3Qp74h8PNoxRqs3hSch8OjOGLuCI49tetx44vdx3X1nOv/s320/FORTRAN+4.png" width="320" /> </a></div><br />
<br />
Pues en si no hay mucho que explicar de este programa ya que solo se esta implementando una sentencia que en C conocemos como switch, el cual calcula las cuatro operaciones aritméticas básicas.<br />
Bueno aqui les dejo un excelente manual de Fortran ya que explica a detalle cada sentencia, variable y operaciones aritméticas.<br />
<br />
<span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><span class="f"><cite><a href="http://www.uam.es/.../kike/FORTRAN/FORTRAN.html">www.uam.es/.../kike/FORTRAN/FORTRAN.html</a></cite></span></span></span><br />
<span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><span class="f"><cite> </cite></span></span></span><span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><span class="f"><cite> </cite></span></span></span><br />
<span id="main" style="visibility: visible;"><span id="search" style="visibility: visible;"><span class="f"><cite><i><b>Lenguaje C:</b> Bueno ya todos conocemos este lenguje desde el semestre pasado pero como quiera le voy a poner una breve explicacion.</i></cite></span></span></span><br />
<br />
<br />
C es un lenguaje de programación de propósito <nobr id="epl_kw_cfa010f10016a577_0">general</nobr> que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen <nobr id="epl_kw_cfa010f10016a577_1">conjunto</nobr> de operadores.<br />
No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de <nobr id="epl_kw_cfa010f10016a577_2">aplicación</nobr>.<br />
Es fácil de dominar y en poco tiempo, un <nobr id="epl_kw_cfa010f10016a577_5">programador</nobr> puede utilizar la totalidad del lenguaje. <br />
Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en C.Introducción al lenguaje C.<br />
<br />
<b>Ejemplo de programa en C </b><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiExTPFSriJoBFlZ4Z0NcgeW549HqeQi3AB2vS4vYxQvmF3weYwQ26d46dZmJkQEaNaCaVIbJWsUSWgM88YMOMx3f8rK_VmeE4v50hONMny7jldegd9r9vK4KQW6KrG7-Qm_LSBQb3-r6_2/s1600/c2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiExTPFSriJoBFlZ4Z0NcgeW549HqeQi3AB2vS4vYxQvmF3weYwQ26d46dZmJkQEaNaCaVIbJWsUSWgM88YMOMx3f8rK_VmeE4v50hONMny7jldegd9r9vK4KQW6KrG7-Qm_LSBQb3-r6_2/s320/c2.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbvBw-91nQdgS7QYeOT_qgnCF-D1TxrdnDX7OUxXJgqeVPhEvnqWhApMLsOclu6zpFtwGLoGcMTgSlgyibeAZ8HexotvDqS4uqVXxXEnrCp4WWBvNZni5XGO0aTvaHqcpMf13VTTZ0B0Z/s1600/c3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbvBw-91nQdgS7QYeOT_qgnCF-D1TxrdnDX7OUxXJgqeVPhEvnqWhApMLsOclu6zpFtwGLoGcMTgSlgyibeAZ8HexotvDqS4uqVXxXEnrCp4WWBvNZni5XGO0aTvaHqcpMf13VTTZ0B0Z/s320/c3.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4cXaCxb4BXhIWmB2cQdsXAXAP1krPhmUz_K50VMOFcAh_u0yOnZKT5nn0egWtZK5Q_T-zFaOpkb7ukFPJOQnfdFlysB-Kh-R3P8SkNujtJEqbPZXQ8H0QNk0I5NOC-7xrETeUNJi5c2OS/s320/c1.png" width="320" /></div>Disculpen el pagadero de imágenes pero bueno este es nuestro programa en C el cual su función es insertar una cantidad N de numero y luego el programa te los acomoda en ordene ascendente.<br />
Para lograr esto vamos a utilizar la secuencia repetitiva for la cual leerá, acomodara e imprimirá dicho resultado. <br />
<br />
<b>Su ejecución seria la siguiente:</b><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg68jUKxHPv1QeqSgsuaQIgVyEg52sqUB0Qog5VqFiGd9ko22PUCLmygi_hfSmo8t2Sk0y-P0kX8swBvkPtiTcNOW-ChVafPjYZxwy3wqh7si_3yOp8GvXgNnr_P4frLtNnlfVnEa7CS1nH/s1600/c4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg68jUKxHPv1QeqSgsuaQIgVyEg52sqUB0Qog5VqFiGd9ko22PUCLmygi_hfSmo8t2Sk0y-P0kX8swBvkPtiTcNOW-ChVafPjYZxwy3wqh7si_3yOp8GvXgNnr_P4frLtNnlfVnEa7CS1nH/s320/c4.png" width="320" /></a></div><br />
<br />
<nobr id="epl_kw_cfa010f10016a577_27"></nobr><nobr id="epl_kw_cfa010f10016a577_28"></nobr><nobr id="epl_kw_cfa010f10016a577_29"></nobr><nobr id="epl_kw_cfa010f10016a577_30"></nobr><nobr id="epl_kw_cfa010f10016a577_31"></nobr><nobr id="epl_kw_cfa010f10016a577_32"></nobr>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-76642655418451799602010-11-15T22:12:00.000-08:002010-11-15T22:12:14.585-08:00Lenguaje Logico en C (Extra)<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Hola compañeros, acabo de utilizar el problema lógico que nuestro compañero Guillermo realizo como reporte 5, bueno ambos somos compañeros desde la preparatoria y ese problema yo también ya lo tenía resuelto.</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Bueno pues como ya saben el problema lógico consiste en un granjero que quiere proteger a sus ovejas de los lobos, para esto nesecitara una alarma que se active cuando:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>1.- Las ovejas estén afuera y la puerta este abierta.</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>2.- Cuando los lobos estén cerca y las ovejas estén fuera del corral.</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Utilizando los siguientes valores:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>Ovejas dentro: 0<span style="mso-spacerun: yes;"> </span>Puerta cerrada: 0<span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>Lobos lejos: 0</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>Ovejas afuera: 1<span style="mso-spacerun: yes;"> </span>Puerta abierta: 1<span style="mso-spacerun: yes;"> </span>Lobos cerca: 1</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;">Estas son las combinaciones en una tabla de verdad de 3 variables donde para que la alarma se active es de la siguiente manera:</span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>O: ovejas<span style="mso-spacerun: yes;"> </span>P: puerta<span style="mso-spacerun: yes;"> </span>L: lobos<span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>A: alarma</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>O P L<span style="mso-spacerun: yes;"> </span>A</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>0 1 1<span style="mso-spacerun: yes;"> </span>1</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>1 1 0<span style="mso-spacerun: yes;"> </span>1</strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><span style="font-family: Calibri;"><strong>1 1 1<span style="mso-spacerun: yes;"> </span>1 </strong></span></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="font-family: Calibri;">Codificacion en C</span></strong></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57rkPMu3JULFCJlhDYQ7n96e6jTp8I634NeNe3qD33fpNOX12ZB9YO9XpUBuHhUDAdFMuiwzFPP-hPpFLJn2noPPgQ2IBrFXPIr_spS-hJVzxYMwLesgk0DfyrHtq4hbgfEIFAgG6Neum/s1600/c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi57rkPMu3JULFCJlhDYQ7n96e6jTp8I634NeNe3qD33fpNOX12ZB9YO9XpUBuHhUDAdFMuiwzFPP-hPpFLJn2noPPgQ2IBrFXPIr_spS-hJVzxYMwLesgk0DfyrHtq4hbgfEIFAgG6Neum/s320/c.png" width="320" /></a></div><strong>Ejecucion del programa en Dev c(Windos)</strong><br />
<strong>Cuando se activa la alarma:</strong><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPAg0UVgDoG3Dzv-3IW277_-pUa_qUnfrNiSFgZuUREPhyYdjyUdaxQcq6bRnBLBtk9WiCyTnE1guLFb-jEJ2MgcwsbNtBcTbYnwMai7kuHJQt3Vfqc7nn38s7mdT06rN4UzxayLljtzMF/s1600/si.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPAg0UVgDoG3Dzv-3IW277_-pUa_qUnfrNiSFgZuUREPhyYdjyUdaxQcq6bRnBLBtk9WiCyTnE1guLFb-jEJ2MgcwsbNtBcTbYnwMai7kuHJQt3Vfqc7nn38s7mdT06rN4UzxayLljtzMF/s320/si.png" width="320" /></a></div><strong>Cuando la alarma no se activa:</strong><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOYXf0CRW4iGKKjb7YwCGzRC2Io_6MMrrqlgOZP1mdZ9A-Qls_ft1I3j9oEXlDWR_J4UhcVvB_S5hjthk67t8eeBVqaVfZ6f9Q6_8MJUwjG5U-6TG0XN2vAC_6IUOOykPaTqF1CKQd5Hcu/s1600/ok.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="291" px="true" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOYXf0CRW4iGKKjb7YwCGzRC2Io_6MMrrqlgOZP1mdZ9A-Qls_ft1I3j9oEXlDWR_J4UhcVvB_S5hjthk67t8eeBVqaVfZ6f9Q6_8MJUwjG5U-6TG0XN2vAC_6IUOOykPaTqF1CKQd5Hcu/s320/ok.png" width="320" /></a></div><strong>Explicacion:</strong><br />
<br />
Bueno pues en si lo que ise en este programa fue utilizar puro<strong> if-else</strong> y utulizando los valores de la tabla de verdad hise que la funcion fuera solo verdadera para que la alarma sonara, utilizando las conjunciones basicas.<br />
Y basicamente es el mismo proceso para cuando no suena la alarma.<br />
Para lograr que el programa se buelva a ejecutar sin necesedad de salir de la aplicacion, solo ahy que usar las funciones <strong>do-while</strong>.<br />
En mi caso yo hice que el programas se regrese solo si presionamos 5, esto lo hice poniendo una variable entera, despues coloque el "<strong>do"</strong> despues de introducir las variables y al final coloque un "<strong>while(C==5)"</strong> de esta manera el programa segura una secuencia recursiva cada vez que coloquemos el nuemero 5.<br />
Y en si creo que es todo.<br />
Bueno y grasias a Guillermo por darme permiso en subir esto.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-42249109253845715282010-11-14T23:21:00.000-08:002010-11-14T23:21:27.411-08:00Arreglos(Extra)<style type="text/css">
p { <span style="background: none repeat scroll 0% 0% yellow;" class="goog-spellcheck-word">margin</span>-<span style="background: none repeat scroll 0% 0% yellow;" class="goog-spellcheck-word">bottom</span>: 0.21cm; }
</style> <br />
<div style="margin-bottom: 0cm;"><span style="font-size: medium;"><span lang="es-MX"><b>Arreglos</b></span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX"><b>Un arreglo</b></span></span><span style="font-size: small;"><span lang="es-MX"> es una colección finita, homogénea y ordenada de elementos.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX"><b>Finita</b></span></span><span style="font-size: small;"><span lang="es-MX">, porque todo arreglo tiene un límite, ósea, se debe determinar el número máximo de elementos en un arreglo. </span></span><span style="font-size: small;"><span lang="es-MX"><b>Homogénea</b></span></span><span style="font-size: small;"><span lang="es-MX">, porque todos sus elementos deben ser el mismo tipo. </span></span><span style="font-size: small;"><span lang="es-MX"><b>Ordenada</b></span></span><span style="font-size: small;"><span lang="es-MX">, porque se puede determinar cuál es el primer elemento, el segundo, ya así hasta llegar al número máximo en un arreglo.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX"><b>Existen Arreglos Unidimensionales y multidimensionales</b></span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX"><b>Arreglos Unidimensionales</b></span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Es una colección finita, homogénea y ordenada de datos, en la que se hace referencia a cada elemento del arreglo por medio de un índice, esto quiere decir que indica la casilla donde se encuentra el elemento.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Permite almacenar </span></span><span style="font-size: small;"><span lang="es-MX"><b>N</b></span></span><span style="font-size: small;"><span lang="es-MX"> elementos del mismo tipo ya sean enteros, reales, caracteres, cadena de caracteres, entre otros, y acceder a ellos por medio de un índice. En los </span></span><span style="font-size: small;"><span lang="es-MX"><b>arreglos Unidimensionales</b></span></span><span style="font-size: small;"><span lang="es-MX"> dos partes fundamentales: los </span></span><span style="font-size: small;"><span lang="es-MX"><b>componentes </b></span></span><span style="font-size: small;"><span lang="es-MX">y el </span></span><span style="font-size: small;"><span lang="es-MX"><b>índice</b></span></span><span style="font-size: small;"><span lang="es-MX">. Los </span></span><span style="font-size: small;"><span lang="es-MX"><b>componentes</b></span></span><span style="font-size: small;"><span lang="es-MX"> son aquellos que hacen referencia a los elementos que se almacenan en cada una de las celdas o casillas. El </span></span><span style="font-size: small;"><span lang="es-MX"><b>índice</b></span></span><span style="font-size: small;"><span lang="es-MX"> especifica la forma de acceder a cada uno de estos elementos.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><b><span style="font-size: small;"><span lang="es-MX">Se declaran de la siguiente manera:</span></span></b></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">main()</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">{</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Int A[10]; Aquí definimos un arreglo de 10 elementos de tipo entero.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Float B[6]; Aquí definimos un arreglo de 6 elementos de tipo real.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">}</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Una vez que se definen los arreglos, sus elementos puede recibir valores a través de múltiples asignaciones, o bien, en un ciclo.</span></span></div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><div lang="es-MX" style="margin-bottom: 0cm;">Aquí un programas simple de como funciona un arreglo unidimensional:</div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><div lang="es-MX" style="margin-bottom: 0cm;">Codificación en C, con terminal emacs :</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Z-IRtStKA22pQ42U7Ipi5eH_A72RbDJVcnx8sULVTL-SsXfDSYz8GumsxgBvVZLrneyVYbJflQnyow0IIbjePac_CX5ak-KRzgCRq_D9X2p8OYNaAeK2LCssEcUsIR2ZDdgD9l95Us72/s1600/Pantallazo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4Z-IRtStKA22pQ42U7Ipi5eH_A72RbDJVcnx8sULVTL-SsXfDSYz8GumsxgBvVZLrneyVYbJflQnyow0IIbjePac_CX5ak-KRzgCRq_D9X2p8OYNaAeK2LCssEcUsIR2ZDdgD9l95Us72/s320/Pantallazo.png" width="320" /></a></div><div lang="es-MX" style="margin-bottom: 0cm;"> Ejecución del programa en emacs:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDaG3SCOmZUUdSaOhGoI3VKbzE1yBsTXI6bCAtlTWPUITRMYuQfQWq8EiKKM22emH-34B-WpnKGEVwhGpFIHktRBcfVORhuWhans_sMqdvoBBJmePWRpp8qQ443E25bShrFs1HmSUGBqP/s1600/Pantallazo-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiDaG3SCOmZUUdSaOhGoI3VKbzE1yBsTXI6bCAtlTWPUITRMYuQfQWq8EiKKM22emH-34B-WpnKGEVwhGpFIHktRBcfVORhuWhans_sMqdvoBBJmePWRpp8qQ443E25bShrFs1HmSUGBqP/s320/Pantallazo-1.png" width="320" /></a></div><div lang="es-MX" style="margin-bottom: 0cm;"> En si en este programa colocamos 10 arreglos y le daremos un valor numerico a cada una de los 10 arreglos, lo que va hacer el programa es buscar un valor en estos 10 arreglos e imprimir el numero buscado y cuantas veces se repite en dicho programa.</div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><b><span style="font-size: small;"><span lang="es-MX">Arreglos Multidimensionales</span></span></b></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Es una colección finita, homogénea y ordenada de datos, en la que se hace referencia a cada elemento del arreglo por medio de dos índices. El primero de los índices se utiliza para indicar la fila y el segundo, para indicar la columna.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Estos arreglos permiten almacenar N x M elementos del mismo tipo ya sean enteros, reales, caracteres, cadena de caracteres, entre otros, y acceder a cada uno de ellos.</span></span></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><b><span style="font-size: small;"><span lang="es-MX">Estos se declaran de la siguiente manera:</span></span></b></div><div style="margin-bottom: 0cm;"><br />
</div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">main()</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">{</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">int A[10][20]; Aquí se declara un arreglo bidimensional de tipo entero con 10 filas y 20 columnas.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">float B[10][10]; Aquí se declara un arreglo bidimensional de tipo real con 10 filas y 10 columnas.</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">}</span></span></div><div style="margin-bottom: 0cm;"><span style="font-size: small;"><span lang="es-MX">Una vez que se definen los arreglos, sus elementos puede recibir valores a través de múltiples asignaciones, o bien, en un ciclo.</span></span></div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><br />
<div lang="es-MX" style="margin-bottom: 0cm;">Aquí un programas simple de como funciona un arreglo multidimensional:</div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><div lang="es-MX" style="margin-bottom: 0cm;">Codificacion del programa en C, con terminal emacs:</div><div lang="es-MX" style="margin-bottom: 0cm;"> </div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjHry0B_YMHj7V1oeMzYTWE9lEofXQ1rf0bwCGTYNvF0LVnekFt3RJZN0PZf51rGc_vBz16ZeOjfuTdqp4jmvFPnYY6Eczwa1CBUhJAoNYTJroJpJIJgZw10tzr0MQx_wdL1gBbU3WEz55/s1600/Pantallazo-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjHry0B_YMHj7V1oeMzYTWE9lEofXQ1rf0bwCGTYNvF0LVnekFt3RJZN0PZf51rGc_vBz16ZeOjfuTdqp4jmvFPnYY6Eczwa1CBUhJAoNYTJroJpJIJgZw10tzr0MQx_wdL1gBbU3WEz55/s320/Pantallazo-2.png" width="320" /></a></div><div lang="es-MX" style="margin-bottom: 0cm;"><br />
</div><div lang="es-MX" style="margin-bottom: 0cm;">Ejecución del programa en emacs:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMIv0lYiMVyEFIse3pE3bU4ukqAdJzH3TrW2u9ak8bOzbCW_SUL5_LQLAsCKEl7sDACGBgs9U48AcK482Q6aMWY91X1vU0x_iszoZPDa-fIxniTUV7cY578Mx3Nf9e8OKfl_kLPlGzhLF/s1600/Pantallazo-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="187" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMIv0lYiMVyEFIse3pE3bU4ukqAdJzH3TrW2u9ak8bOzbCW_SUL5_LQLAsCKEl7sDACGBgs9U48AcK482Q6aMWY91X1vU0x_iszoZPDa-fIxniTUV7cY578Mx3Nf9e8OKfl_kLPlGzhLF/s320/Pantallazo-3.png" width="320" /></a></div><div lang="es-MX" style="margin-bottom: 0cm;">En este programa en si colocaremos las filas y la columnas con las queremos trabajar y una vez que les demos valores a cada fila y a cada columna, este programa sumara los valores de todas la filas y columnas imprimiendo el resultado.</div><br />
<div lang="es-MX" style="margin-bottom: 0cm;"> </div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com2tag:blogger.com,1999:blog-1804808357317046987.post-41332336208057665252010-11-14T21:12:00.000-08:002010-11-14T21:12:24.084-08:00Punteros(Extra)<div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: ES-MX; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX;"></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 2;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Punteros</span></b></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Los punteros permiten simular el paso por referencia, osea crear y manipular estructuras dinamicas de datos, tales como listas encadenadas, pilas, colas y árboles. Generalmente las variables contienen valores especificos. Los punteros son variables pero en vez de contener un valor especifico, contienen las direcciones de las variables a las que apuntan. Para obtener o modificar el valor de la variable a la que apuntan se utiliza el operador de indirección. Los punteros, al ser variables deben ser declaradas como punteros antes de ser utilizadas.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><b><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Sintaxis</span></b><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"></span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int *ptrID, ID;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ID = 8;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrID = &ID;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrID es un puntero a int, mientras que la variable ID es solo una variable del tipo int. Todo puntero debe ser precedido por un asterisco <b>(*)</b>.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Esto se representa graficamente de la siguiente manera:</span></b><span style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: ES-MX; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX;"></span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Se puede declarar mas de un puntero en la misma sentencia. En el ejemplo que sigue se ve la declaración de dos punteros a int.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int *ptrY, *ptrX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3; text-align: justify;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Operadores</span></b></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Existen dos operadores a tener en cuenta cuando trabajamos con punteros. El <b>operador de dirección (&)</b> que devuelve la dirección de memoria de su operando y el <b>operador de indirección (*)</b> que devuelve un alias para el objeto al cual apunta el operando del puntero.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">En el siguiente ejemplo vemos como se inicializa una variable X con el valor 15. Luego se crea un puntero a int y por último el puntero pasa a apuntar a la variable X. Esto es, ptrX es un puntero a X.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int X = 15;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int *ptrX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrX = &X;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Punteros y matrices</span></b><span style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: ES-MX; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX;"></span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Las matrices son punteros constantes. Una matriz sin subindice es un puntero al primer elemento de la matriz.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int X[15];</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int *ptrX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrX = X; // ptrX recibe la dirección del primer elemento ( 0 ) de X</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Asi como tambien podria escribirse</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int X[15];</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int *ptrX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrX = &X[0]; // ptrX es igual a la dirección del primer elemento de X</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Se pueden utilizar distintos elementos de la matriz teniendo en cuenta la sintaxis de punteros.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">int X[15], Y, *ptrX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">ptrX = X;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Y = *( ptrX + 7 );</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">En este caso puede verse que Y toma el valor del elemento 7 de la matriz X, siendo 7 el desplazamiento dentro de la matriz. El operador de indirección queda fuera del parentesis porque tiene una prioridad superior a la del operador +. De no existir los parentesis, se sumaria 7 al elemento X[0]. Teniendo en cuenta que las matrices son punteros constantes, el nombre de la matriz puede tratarse como un puntero:</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Y = *( X + 7 );</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3; text-align: justify;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3; text-align: justify;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Aritmética de Punteros</span></b></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Al usar punteros a matrices, hay que tener en cuenta que la aritmética cambia sensiblemente.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">#include <iostream></span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">using std::cout;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">using std::endl;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">void main()</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">{</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>int X[6] = { 1, 2, 3, 4, 5, 6 };</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>int *prtX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>prtX = X; // incializo el valor del puntero.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><br />
</div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">cout << endl << *prtX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>prtX += 2;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>cout << endl << *prtX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>prtX -= 2;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>cout << endl << *prtX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span>prtX++;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-ansi-language: EN-US; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;"><span style="mso-spacerun: yes;"> </span></span><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">cout << endl << *prtX;</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">}</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">En el siguiente código, primero se crea un puntero a un arreglo de 6 elementos y si inicializa el puntero prtX al primer elemento del arreglo X[0]. Si tenemos en cuenta que el siguiente ejemplo se ejecuta en una computadora con enteros de 4 bytes, el segundo elemento de la matriz tendrá en memoria un desplazamiento de 4 bytes, el 2 de ocho y asi sucesivamente. La operación prtX += 2; produce un desplazamiento llevándolo al 3 elemento dentro del arreglo. Debe entenderse que prtX ahora apunta a una dirección de memoria y la instrucción cambia esta dirección de memoria sumándole 2 multiplicado por el tamaño del tipo de dato del arreglo que en este supuesto sería de 4. (dir = ( dir + 2 * 4 )), dando por resultado un desplazamiento de 8 bytes. Sería igual que ejecutar la operación prtX = &X[2];. La operación prtX -= 2 obedece a la misma lógica estableciendo el puntero al primer elemento del array X[0] y el operador ++ modifica el puntero desplazándolo 4 bytes y asignándole el segundo elemento de la matriz.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-outline-level: 3; text-align: justify;"><b><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Matrices de punteros</span></b></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Para realizar una estructura de datos dinámica, se puede utilizar una matriz donde sus elementos sean punteros. Suponiendo que queramos hacer un calendario y lo dividamos por semanas. Podríamos utilizar una matriz con los días de la semana.</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 0pt; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">const char *dias[7] = { "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado" }</span></div><div class="MsoNormal" style="background: #fffeee; line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: justify;"><span lang="ES" style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-bidi-font-style: italic; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES;">Cada día de la semana, no es un elemento de la matriz, sino que la expresión dias[7] crea una matriz de siete elementos como punteros a char.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-5389142287117553502010-11-14T20:55:00.000-08:002010-11-14T20:55:35.721-08:00Gnerador de Numeros Aleatorios(Extra)<span lang="ES" style="font-family: "Arial", "sans-serif";">Un <strong>Generador de números aleatorios</strong> es un componente que crea números o símbolos para un programa en una forma que carezca de un patrón evidente, y que así parezcan ser números aleatorios.</span> <div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">La mayor parte de los generadores de números aleatorios son, en realidad, pseudoaleatorios: se calcula<span style="mso-spacerun: yes;"> </span>un valor <strong>X0</strong>, que se le podría llamar semilla, y, a partir de él, se van generando <strong>X1, X2, X3, ... Xn.</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Siempre que se parta de la misma semilla, se obtendrá la misma secuencia de valores.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">El algoritmo básico es el<strong> método congruencial123</strong>, que genera valores en el intervalo [0,1), mediante el siguiente esquema: </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Se fijan A, B, enteros positivos (deben tener ciertas propiedades para obtener un buen generador), y, a partir de una semilla X0 en el conjunto 0,1,...,(N-1), se generan<strong> X1 = A*X0+B (mod N) X2 = A*X1+B (mod N) X3 = A*X2+B (mod N) ... X(k+1) = A*Xk+B (mod N) ...</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>donde A*X+B (mod N) es el resto de la división entera de A*X+B entre N</strong>. Por ejemplo, 16 (mod 7) es 2.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">A partir del método congruencial, es posible tomar valores pseudoaleatorios en el intervalo [0,1) como sigue: Se toma<strong> N</strong>, entero, muy grande, se toman A, B adecuados, y una semilla X0 en 0,1,..,(N-1). A partir de ella, se generan <strong>X1,X2,X3,...</strong> por el método congruencial, y a partir de ellos, <strong>Y0,Y1,Y2,Y3,...</strong> mediante la fórmula <strong>Yk = Xk /N</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"></span><span lang="ES" style="font-family: "Arial", "sans-serif";">El método base es el método congruencial de generación de números en el </span><span lang="ES" style="font-family: "Arial", "sans-serif";">conjunto </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"></span><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>{1,2...,(N-1)}</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Para ello, se toman A,B enteros adecuados, se indica un valor inicial (semilla) X0 en el conjunto <strong>{1,2,...,(N-1)},</strong><span style="mso-spacerun: yes;"> </span>y se aplica el esquema recursivo<strong>:</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>X1=(A.X0+B)ModN, X2=(A.X1+B)modN.</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>Xk+1=(A.Xk+B)modN:=: donde por XmodN indica el resto de la división entera de X entre N. </strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>Por ejemplo, 12mod7 = 5</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Si se conoce cómo generar valores en <strong>{1,2,...,(N-1)},</strong> es posible generar valores en el intervalo [0,1), como sigue: Se toma <strong>N</strong>, muy grande, entero, se toma una semilla <strong>X0E {1,2,...,(N-1)</strong>},<span style="mso-spacerun: yes;"> </span>y se construye la secuencia <strong>Y0,Y1,Y2...,</strong> obtenida aplicando la expresión <strong>Yk = Xk / N</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Hay varias formas de generar números aleatorios con las librerías de JAVA 2. Si no se utiliza </span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">el método adecuado, seguramente obtendremos resultados inesperados o mal distribuidos en la generación de números aleatorios.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">La libreria java.util.Random está disponible desde la versión 1.2 del SDK. La libreria tiene un método nextInt() que acepta un argumento entero.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;">public int nextInt(int n)</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Dado algún valor mayor o igual cero pero menor que el entero pasado: 0 <= nextInt() < n.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Como muestra, aquí vemos el código que genera un conjunto de números aleatorios e imprime la media:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>int count = 1000000;</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>int range = Integer.MAX_VALUE / 3 * 2;</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>double sum = 0;</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>Random rand = new Random();</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>for (int i=0; i</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>sum += rand.nextInt(range);</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>}</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>System.out.println(sum/count);</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Existen métodos más antiguos, como el uso de la función nextInt() sin parámetros y después aplicar el operador abs y %, de la siguiente forma:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>Math.abs(rand.nextInt()) % range;</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Pero no es un sistema equivalente y tiene varios problemas.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>Aqui en lenguaje C</strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong><span style="font-size: large;">Números aleatorios en C</span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">La generación de números aleatoreos es una de las prácticas mas importantes en cualquier lenguaje de programación, sobre todo cuando deseamos desarrollar juegos, por ejemplo. Para usar números aleatorios en C podemos utilizar la clase Random del nombre espacio System, de la siguiente manera:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>1 Random objeto = new Random();<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>2 int numero = objeto.Next(); </strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">El método Next de la libreria Random genera y devuelve un número aleatorio entre 0 y la constante Int32.MaxValue (2,147,483,647). El número es generado después complejos procesos matemáticos, y como en casi todos los lenguajes necesitan de una semilla para ser generados, que por defecto es la hora del sistema.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Aún así, muchas veces necesitamos que el número sea generado en un rango específico de valores. Por ejemplo, para una aplicación que simula el lanzamiento de un dado de seis caras necesitamos generar números entre 1 y 6. Para lograr esto, el método Next puede recibir además un entero que indica el rango máximo del número aleatorio. Por ejemplo, el código:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>1 Random objeto = new Random();<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>2 int numero = objeto.Next(6); </strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">generaría un número aleatorio entre 0 y 7 (pero no 6), es decir, seis posibles números. Pero, si desearamos algún rango más exacto, podríamos hacer algo como:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>1 Random objeto = new Random();<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>2 int numero = objeto.Next(1, 7); </strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">lo que generaría números entre 1 y 7 (pero no 7), de nuevo seis números posibles.</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">Ejemplo</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";">En el siguiente ejemplo se utilizará la clase Random para generar una serie de números aleatorios cada vez que se presiona un botón:</span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><br />
</div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>01 private Random obj = new Random();<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="ES" style="font-family: "Arial", "sans-serif";"><strong>02 //Método ejecutado al presionar el botón<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>03 protected virtual void generar_Click (object sender, System.EventArgs e)<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>04 {<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>05<span style="mso-spacerun: yes;"> </span>etiqueta.Text = "";<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>06<span style="mso-spacerun: yes;"> </span>for(int i = 0; i < 4 ; i++)<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>07<span style="mso-spacerun: yes;"> </span>{<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>08<span style="mso-spacerun: yes;"> </span>for(int j = 0; j < 4 ; j++)<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>09<span style="mso-spacerun: yes;"> </span>etiqueta.Text += obj.Next(1, 10) +"\t\t";<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>10<span style="mso-spacerun: yes;"> </span>etiqueta.Text += "\n\n";<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>11<span style="mso-spacerun: yes;"> </span>}<span style="mso-spacerun: yes;"> </span></strong></span></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt;"><span lang="EN-US" style="font-family: "Arial", "sans-serif"; mso-ansi-language: EN-US;"><strong>12 }</strong></span></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com2tag:blogger.com,1999:blog-1804808357317046987.post-83453471439200017752010-11-04T13:48:00.000-07:002010-11-07T19:11:12.269-08:00Reporte #5(Problema Logico)<b>¿Qué son los lenguajes lógicos?</b> <br />
Los lenguajes lógicos son declarativos, como opuestos a los lenguajes procedimentales. En un lenguaje de programación lógica típico, de los que Prolog es claramente el mejor representante, cada aserción o sentencia expresa una proposición que puede ser representada por una fórmula lógica. Las proposiciones son hechos o reglas. Nuevos hechos pueden ser evaluados frente a otros hechos existentes dados por verdaderos. Las reglas matemáticas de la lógica que pueden reducir sentencias textuales a representaciones simbólicas existen desde hace mucho tiempo, aunque tan sólo desde 1965 contamos con el denominado principio de resolución, que mostraba cómo estas representaciones podían ser integradas en un ordenador digital para su análisis. El software que utiliza el principio de resolución trabaja con cláusulas lógicas, y utiliza la unificación para intentar identificar las partes derecha e izquierda de las cláusulas de una forma lógica, investigando los valores de la variable que permitirá una identificación correcta.<br />
<br />
<b>¿Para qué sirven?</b><br />
<br />
Direcciona métodos de procesamiento basados en el razonamiento formal. Los objetos de tales razonamientos son "hechos" o reglas "if then". Para computar lógicamente se utiliza un conjunto de tales estamentos para calcular la verdad o falsedad de ese conjunto de estamentos. Un estamento es un hecho si sus tuplas verifican una serie de operaciones.<br />
Un hecho es una expresión en la que algún objeto o conjunto de objetos satisface una relación específica. Una tupla es una lista inmutable. Una tupla no puede modificarse de ningún modo después de su creación. Una regla if then es un estamento que informa acerca de conjuntos de tuplas o estamentos relacionados que pueden predecir si otras tuplas satisficieran otras relaciones.<br />
Un estamento que es probado verdadero como resultado de un proceso se dice que es una inferencia del conjunto original. Se trata por tanto de una descripción de cómo obtener la veracidad de un estamento dado que unas reglas son verdaderas. La computación lógica está por tanto relacionada con la automatización de algún conjunto de métodos de inferencia.<br />
<br />
<b>Problema</b> <strong>numero 1</strong><br />
<div style="color: black;"><b>Dos hermanos y su destino</b></div>Juan y Pedro son dos gemelos que van al colegio en autobús, ya que éste es diez veces más rápido que ellos. En la calle donde viven hay dos paradas de la misma línea de autobuses y, aunque viven juntos, Juan siempre sale hacia la parada del norte, que es la más cercana, y Pedro lo hace a la vez hacia la parada del sur, en la misma dirección que el autobús. Curiosamente siempre llegan al colegio en el mismo autobús. Si a Juan le cuesta nueve minutos llegar a su parada,<br />
<br />
<b>¿Cuánto tiempo tarda Pedro en llegar a la suya?</b><br />
Solución: <br />
Son 11 minutos. <br />
<br />
<b>¿Por qué?</b><br />
<br />
Ambos siempre llegan en el mismo autobús esto quiere decir que o los dos lo toman o lo pierden. Esto es porque el tiempo que tarda Pedro en llegar a su parada es igual a la suma del tiempo que tarda Juan en llegar a su parada más el tiempo que tarda el autobús en ir de una parada a otra. Un muchacho haría 9+11=20 minutos en ir de una parada a la otra. El autobús, que es 10 veces más rápido tarda 2 minutos, lo que significa que 2=11-9 que es la ventaja de tiempo que Juan tenía sobre Pedro. Ósea los dos minutos de ventaja de Juan es el tiempo que tarda en ir de una parada a otra el autobús.<br />
<br />
<span style="font-family: "Arial", "sans-serif"; font-size: 12pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: ES-MX;"><span style="font-family: "Calibri", "sans-serif"; font-weight: normal; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;"><strong>Problema numero 2 </strong></span></span><br />
<div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="font-family: "Calibri", "sans-serif"; font-weight: normal; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;">El campesino amable:<br />
tres guapas muchachas se presentan en casa de un campesino para pedirle que les venda huevos frescos.<br />
<br />
<strong>CAMPESINO les voy a dar los que tengo, en la despensa, pues últimamente mis gallinas ponen pocos huevos.<br />
1.- A ti Luisa, te doy la mitad de todos mas medio huevo.<br />
2.- Y a ti, maria, la mitad de los que quedan, más otro medio huevo.<br />
3.- A ti, ilenia, también te doy la mitad de los huevos restantes mas medio huevo.<br />
No le <span style="mso-spacerun: yes;"> </span>ha quedado ni un solo huevo y a tenido que romper ninguno. Os veo asombradas. ¿Cómo le a hecho</strong></span></strong></div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><strong><span style="font-family: "Calibri", "sans-serif"; font-weight: normal; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-bidi; mso-hansi-theme-font: minor-latin;">El problema, aparentemente, consiste en el hecho de que el campesino da a las niñas medio huevo sin romper ninguno. Esto no sucede así porque si, sino por la presencia de determinados números. Para entender cómo es posible, se piensa un número inicial de huevos hipotético y se efectúan los cálculos requeridos para el problema.<br />
<br />
1. ° Caso hay 20 huevos para la primera niña, el campesino regala la mitad de <br />
todos los huevos, es decir, 10+1/2, y <span style="mso-spacerun: yes;"> </span>no puede hacerlo<br />
<br />
2.° Caso hay 21 huevos para luisa da la mitad de todo, es decir,10<br />
huevos y medio +1/2 huevo en total,11 huevos.<br />
para maría da la mitad de los huevos <br />
que quedan, es decir, 5 huevos +1/2 huevo, y esto<br />
no es posible.<br />
<br />
estos intentos , sin embargo te han hecho entender que los numeros de huevos a dividir deben ser siempre impares<br />
prueba ahora de resolver el problema por intentos hasta que encuentres el numero justo, teniendo en cuenta que siempre debes partir de un número impar<br />
<br />
3.° Caso hay 3 huevos, pero no son suficientes para las tres niñas.<br />
<br />
4.° Caso hay 5 huevos, para luisa son 5:2+1/2=3 huevos que le quedan 2 huevos<br />
para maría 2:2+1/2=1 huevo y1/2. <br />
no es posible.<br />
<br />
5.° Caso hay 7 huevos para luisa 7:2+1/2=4 huevos que quedan 3 huevos<br />
6.° Caso 3:2+1/2=2 huevos. queda 1 huevo a maría<br />
7.° Caso 1:2+1_/2=1 huevo.<span style="mso-spacerun: yes;"> </span>le quedan 0 huevos a ilena.<br />
<br />
<br />
Esto concluye que los huevos a repartir son solo 7.</span></strong></div><div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 10pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div><div class="MsoNormal" style="margin: 0cm 0cm 10pt;"><br />
</div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-66616926776216024062010-10-25T20:46:00.000-07:002010-10-25T20:46:24.499-07:00Presentacion Numero 3 (Bfs en Grafos)Hola compañeros aquí les dejo la presentación de la clase pasada la cual fue presentada por Guillermo, Alfonzo y por supuesto yo.<br />
<br />
<br />
En esta presentación nosotros trabajamos con BFS que por sus siglas en ingles significa búsqueda en anchura, trata de un algoritmo de búsqueda en un grafo y su principal función consiste en recorrer cierto grafo, nodo por nodo hasta llegar a su nodo de destino.<br />
<br />
Aquí están las diapositivas que presentamos en clase.<br />
<br />
<div style="width:425px" id="__ss_5541694"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/QRTU/bfs-en-grafos-5541694" title="Bfs en grafos">Bfs en grafos</a></strong><object id="__sse5541694" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bfsengrafos-101023234440-phpapp01&stripped_title=bfs-en-grafos-5541694&userName=QRTU" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5541694" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bfsengrafos-101023234440-phpapp01&stripped_title=bfs-en-grafos-5541694&userName=QRTU" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/QRTU">Oscar Jose </a>.</div></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-61544559770581512942010-10-23T20:47:00.000-07:002010-10-23T20:47:54.787-07:00Presentacion Numero 2 (Recursividad)Compañeros Disculpen la tardansa pero aqui esta la segunda presentacion que me toco exponer junto a mis compañeros Guillermo y David.<br />
A nosotros nos toco el tema de recursividad en focado mas que nada a los palindromos los cuales son aquellos que disen lo mismo, tanto si lo lees de izquierda a derecha o visebersa.<br />
<br />
<div style="width:425px" id="__ss_5541469"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/QRTU/palindromos-5541469" title="Palindromos">Palindromos</a></strong><object id="__sse5541469" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=palindromos-101023223810-phpapp01&stripped_title=palindromos-5541469&userName=QRTU" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5541469" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=palindromos-101023223810-phpapp01&stripped_title=palindromos-5541469&userName=QRTU" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/QRTU">Oscar Jose </a>.</div></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0tag:blogger.com,1999:blog-1804808357317046987.post-27929095582179013672010-09-26T21:30:00.000-07:002010-09-26T21:30:47.812-07:00Reporte numero 3Pues en este reporte utilizaremos lengujes script como:<br />
awk, sh, python, perl, TLC y java script<br />
<br />
En esta tarea se realizaran 3 programas con los lenguajes ya mencionados, estos programas<br />
se realizaran con awk, sh y python este ultimo elegido libremente por un mi.<br />
<br />
<span style="font-size: large;">awk</span><br />
Su nombre lo recibe de sus autores Alfred <span style="font-weight: bold;">A</span>ho, Peter <span style="font-weight: bold;">W</span>einberger y Brian <span style="font-weight: bold;">K</span>ernighan, es un lenguaje de programación que fue diseñado con el objetivo de procesar datos basados sobre texto y una de las primeras herramientas en aparecer en Unix. Utiliza listas en un índice ordenado por cadenas clave (listas asociativas) y expresiones regulares. Es un lenguaje ampliamente utilizado para la programación de guiones ejecutables pues añade funcionalidad a las tuberías en los sistemas operativos tipo <span style="font-weight: bold;">POSIX</span>. Está incluido en las instalaciones básicas de prácticamente todas las distribuciones de GNU/Linux.<br />
<br />
<br />
<span style="font-size: large;">sh</span><br />
<br />
<br />
<span style="font-size: large;">python</span><br />
<span style="color: black;">es un </span><span style="color: black;">lenguaje de programación</span><span style="color: black;"> de </span><span style="color: black;">alto nivel</span><span style="color: black;"> cuya sintaxis es muy limpia y favorezca a un código legible.</span><br />
<span style="color: black;">Se trata de un lenguaje de programación </span><span style="color: black;">multiparadigma</span><span style="color: black;"> ya que soporta </span><span style="color: black;">orientación a objetos</span><span style="color: black;">, </span><span style="color: black;">programación imperativa</span><span style="color: black;"> y, en menor medida, </span><span style="color: black;">programación funcional</span><span style="color: black;">. Es un </span><span style="color: black;">lenguaje interpretado</span><span style="color: black;">, usa </span><span style="color: black;">tipado dinámico</span><span style="color: black;">, es </span><span style="color: black;">fuertemente tipado</span><span style="color: black;"> y es </span><span style="color: black;">multiplataforma</span><span style="color: black;">.</span><br />
<span style="color: black;">Es administrado por la </span><span style="color: black;">Python Software Foundation</span><span style="color: black;">. Posee una licencia de </span><span style="color: black;">código abierto</span><span style="color: black;">, denominada </span><span style="color: black;">Python Software Foundation License</span><span style="color: black;">,que es compatible con la </span><span style="color: black;">Licencia pública general de GNU</span><span style="color: black;"> a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores.</span>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com2tag:blogger.com,1999:blog-1804808357317046987.post-20741646922378188302010-09-26T20:39:00.000-07:002010-11-04T20:29:48.672-07:00¿Porque hay tantos lenguajes de programación?(Puntos extras)La computadora, a diferencia de otras herramientas que por lo general apoyan el esfuerzo físico de los humanos, fue inventada para facilitar el trabajo intelectual. Si el hombre tiene algún problema, por ejemplo "sumar dos y dos", el diseñador define el algoritmo que resuelve el problema, el programador lo codifica en un lenguaje de programación, el cual la computadora es capaz de "entender", luego la computadora ejecuta el algorítmo expresado como programa en el lenguaje de programación en cuestión, y listo. La máquina le entrega al hombre la respuesta "4", sin que éste tuviera que esforzar sus neuronas.<br />
<b>¿Cuál es el papel del lenguaje de programación en este proceso? </b><br />
Es muy importante, el lenguaje de programación es el medio de comunicación entre el hombre y la máquina. El modelo general de las computadoras, desde que fue esbozado por von Neumann, no ha cambiado mucho, mientras que la invención humana para proponerse nuevos problemas a resolver, usando la computadora, parece no tener límites. En consecuencia, los lenguajes de programación tienen que adaptarse a éstas crecientes necesidades y aumentar la expresividad para poder resolver problemas muy diversos y cada vez más complejos.<br />
Además, tienen que ofrecer cierta eficiencia en la ejecución. Es un logro difícil de alcanzar y por lo tanto, se requiere una búsqueda constante de nuevos lenguajes para ello.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-63609828947201583252010-09-26T20:08:00.000-07:002010-09-26T20:08:34.994-07:00Maquinas Turing(Puntos extras)¿QUE SON Y COMO FUNCIONAN?<br />
Una máquina de Turing consiste, básicamente, en una cinta infinita, dividida en casillas. Sobre esta cinta hay un dispositivo capaz de desplazarse a lo largo de ella a razón de una casilla cada vez. Este dispositivo cuenta con un cabezal capaz de leer un símbolo escrito en la cinta, o de borrar el existente e imprimir uno nuevo en su lugar. Por último, contiene además un registro capaz de almacenar un estado cualquiera, el cual viene definido por un símbolo. Los símbolos que definen el estado del dispositivo no tienen por que coincidir con los símbolos que se pueden leer o escribir en la cinta. En los programas presentados en el artículo, los posibles símbolos a leer o escribir en la cinta son el 0 y el 1, y los posibles estados se representan con letras mayúsculas. En el emulador, existe un cambio en la representación del estado, usando para ello los números del 0 al 99, para permitir un mayor número de ellos.<br />
La máquina tiene un funcionamiento totalmente mecánico y secuencial. Lo que hace es leer el símbolo que hay en la casilla que tiene debajo. Después toma el símbolo del estado en que se encuentra. Con estos dos datos accede a una tabla, en la cual lee el símbolo que debe escribir en la cinta, el nuevo estado al que debe pasar y si debe desplazarse a la casilla izquierda o derecha.<br />
Para entender mejor el funcionamiento de dicha maquina, vamos a ver un simple ejemplo: sea la máquina de Turing capaz de leer o escribir los símbolos 0 y 1 en la cinta (en la definición original de Turing, el número de símbolos a usar podía ser cualquiera, con la única condición de ser un número finito, y no tenían por qué ser números; sin embargo, en aplicaciones prácticas se suelen limitar a estos dos), y que puede tener los estados A, B y C (una máquina de Turing puede tener cualquier número de estados; la única condición es que sea un número finito). Supongamos que definimos la siguiente tabla:<br />
estado símbolo nuevo nuevo sentido de<br />
inicial leído estado símbolo avance<br />
<br />
A 0 B 1 DERECHA<br />
A 1 B 0 IZQUIERDA<br />
B 0 A 1 DERECHA<br />
B 1 C 0 DERECHA<br />
C 0 A 0 IZQUIERDA<br />
C 1 C 0 DERECHA<br />
La cual vamos a simplificar de la siguiente manera: <br />
0 1 <br />
<br />
A B,1,> B,0,<
B A,1,> C,0,> <br />
<br />
C A,0,< C,0,> <br />
Hemos puesto los posibles estados en columna, y los posible símbolos en fila, y hemos expresado el nuevo estado, símbolo y sentido todo junto. El sentido lo expresamos con la dirección en la que apunta el símbolo < o >. <br />
Vamos a poner nuestra máquina sobre esta cinta: <br />
cabezal<br />
v<br />
... 0 0 0 0 0 1 0 0 0 0 ... <br />
Indicaremos el estado actual de la máquina encima del cabezal. Veamos los sucesivos pasos de esta máquina si partimos del estado A: <br />
1) A El estado es A y leemos un cero;<br />
v luego debemos cambiar al estado B,<br />
... 0 0 0 0 0 1 0 0 0 0 ... escribir un 1 y movernos a la derecha <br />
<br />
2) B El estado es B y leemos un cero;<br />
v luego debemos cambiar al estado A,<br />
... 0 0 0 1 0 1 0 0 0 0 ... escribir un 1 y movernos a la derecha<br />
<br />
3) A El estado es A y leemos un uno;<br />
v luego debemos cambiar al estado B,<br />
... 0 0 0 1 1 1 0 0 0 0 ... escribir un 0 y movernos a la izquierda<br />
<br />
4) B El estado es B y leemos un uno;<br />
v luego debemos cambiar al estado C,<br />
... 0 0 0 1 1 0 0 0 0 0 ... escribir un 0 y movernos a la izquierda<br />
<br />
5) C El estado es C y leemos un uno;<br />
v luego debemos cambiar al estado C,<br />
... 0 0 0 1 0 0 0 0 0 0 ... escribir un 0 y movernos a la derecha<br />
<br />
6) C El estado es C y leemos un cero;<br />
v luego debemos cambiar al estado A,<br />
... 0 0 0 0 0 0 0 0 0 0 ... escribir un 0 y movernos a la izquierda<br />
<br />
7) A El estado es A y leemos un cero;<br />
v luego debemos cambiar al estado B,<br />
... 0 0 0 0 0 0 0 0 0 0 ... escribir un 1 y movernos a la derecha<br />
La ejecución de esta máquina seguiría indefinidamente, rellenando la cinta con unos y ceros de una manera más o menos aleatoria. Realmente, una máquina de Turing útil debería poder detenerse; esto es, tener un estado en el que se detiene. Dicho estado se alcanzaría igual que cualquier otro estado. Esto es, supongamos que el estado D es el de paro; lo único que debemos hacer es que, cuando la máquina halla terminado el cálculo, pase a estado D; de este modo se detiene y permite examinar la cinta para buscar el resultado. <br />
Vemos que esta máquina no hace gran cosa. Sin embargo, una máquina de Turing puede hacer cosas útiles, tales como sumar dos números, multiplicarlos, copiarlos, etc. Disponiendo de una máquina con el suficiente número de estados, podríamos hacer con ella cualquier operación que un ordenador normal pudiese realizar. <br />
Las máquinas de Turing plantean una deducción bastante curiosa: dado que en ellas se puede realizar cualquier trabajo computable, es posible programarlas para que simulen el comportamiento de un potente ordenador. Y como una máquina de Turing puede ser codificada en CUALQUIER ordenador, por pequeño que sea, sería posible (si disponemos de memoria suficiente, claro) emular en nuestro ordenador de casa una máquina de Turing que simule un superordenador. Esto significa que todos los ordenadores pueden realizar exactamente el mismo tipo de tareas, y que los cálculos que pueda realizar el más grande los puede llevar a cabo también el más pequeño. La única diferencia sería, obviamente, la velocidad. <br />
Descripción La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita en la que el cabezal lee el contenido, borra el contenido anterior y escribe un nuevo valor. Las operaciones que se pueden realizar en esta máquina se limitan a: <br />
Avanzar el cabezal lector/escritor para la derecha; • avanzar el cabezal lector/escritor para la izquierda. El cómputo es determinado a partir de una tabla de estados de la forma: (Estado, valor)-→(\nuevo estado, \nuevo valor, dirección) <br />
Definición Una máquina de Turing con una sola cinta puede ser definida como una 6-tupla M=(Q,L,s,b,F,o) , donde •Q es un conjunto finito de estados. •L es un conjunto finito de símbolos de cinta, el alfabeto de cinta. •s E Q es el estado inicial. •b E L es un símbolo denominado blanco, y es el único símbolo que se puede repetir un número infinito de veces. •F _C Q es el conjunto de estados finales de aceptación. •o : Q x L → Q x L x {L,R} es una función parcial denominada función de transición, donde L es un movimiento a la izquierda y R es el movimiento a la derecha. <br />
Existen en la literatura un abundante número de definiciones alternativas, pero todas ellas tienen el mismo poder computacional, por ejemplo se puede añadir el símbolo S como símbolo de “no movimiento” en un paso de cómputo o el símbolo Σ para indicar el alfabeto de entrada. <br />
Ejemplo Definimos una máquina de Turing sobre el alfabeto {0,1}, donde 0 representa el símbolo blanco. La máquina comenzará su proceso situada sobre un símbolo “1″ de una serie. La máquina de Turing copiará el número de símbolos “1″ que encuentre hasta el primer blanco detrás de dicho símbolo blanco. Es decir, situada sobre el 1 situado en el extremo izquierdo, doblará el número de símbolos 1, con un 0 en medio. Así, si tenemos la entrada “111″ devolverá “1110111″, con “1111″ devolverá “111101111″, y sucesivamente. <br />
La máquina realiza su proceso por medio de un bucle, en el estado inicial s1, reemplaza el primer 1 con un 0, y pasa al estado s2, con el que avanza hasta la derecha, saltando los símbolos 1 hasta un 0 (que debe existir), cuando lo encuentra pasa a ser s3, con este estado avanza saltando los 1 hasta encontrar otro 0 (la primera vez no habría ningún 1). Una vez en el extremo derecho, añade un 1. Después comienza el proceso de retorno; con s4 vuelve a la izquierda saltando los 1, cuando encuentra un 0 (en el medio de la secuencia), pasa a s5 que continúa a la izquierda saltando los 1 hasta el 0 que se escribió al principio. Se reemplaza de nuevo este 0 por 1, y pasa al símbolo siguiente, si es un 1, se pasa a otra iteración del bucle, pasando al estado s1 de nuevo. Si es un símbolo 0, será el símbolo central, con lo que la máquina se detiene al haber finalizado su cómputo. <br />
Máquina de Turing Cuántica En 1985, Deutsch presentó el diseño de la primera Máquina Cuántica basada en una máquina de Turing. Con este fin enunció una nueva variante la tesis de Church dando lugar al denominado “Principio de Church-Turing-Deutsch”. La estructura de una máquina de Turing cuántica es muy similar a la de una máquina de Turing clásica. Está compuesta por los tres elementos clásicos: •Una cinta de memoria infinita en que cada elemento es un Qu Bit? •Un procesador finito •Un cursor <br />
Diagrama de transición para la maquina de turing <br />
Las transiciones de una maquina de turing pueden representarse visualmente, un diagrama de transición esta formado por un conjunto de nodos que nodos que corresponde a los estados de la MT. En un arco que vaya del estado q al esta p, apareceran una o varias etiquetas de la forma X/YS, donde X e Y son símbolos de cintan y S indica un sentido, que puede se I o D. es decir, si δ(q,X) = (p,Y,S),en el arco que va de q a p se encontrara la etiqueta X/YS.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-24208909794634055892010-09-03T21:09:00.000-07:002010-09-26T20:46:38.315-07:00Presentacion en clase<div id="__ss_5126707" style="width: 425px;"><b style="display: block; margin: 12px 0pt 4px;"><a href="http://www.slideshare.net/QRTU/generador-de-codigointermedio-5126707" title="Generador de codigo_intermedio">Generador de codigo_intermedio</a></b><object height="355" id="__sse5126707" width="425"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=generadordecodigointermedio-100903230308-phpapp02&stripped_title=generador-de-codigointermedio-5126707" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5126707" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=generadordecodigointermedio-100903230308-phpapp02&stripped_title=generador-de-codigointermedio-5126707" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><br />
<div style="padding: 5px 0pt 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/QRTU">Oscar Jose </a>.<br />
<br />
Bueno esta es la primera presentacion que me toco exponer con mis compañeros Guillermo y Daniel.<br />
<br />
A nosotros nos toco hablar de generador de código intermedio que en términos simples es el lenguaje que se encuentre entre el lenguaje maquina y el código del objeto.<br />
<br />
</div></div>Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-64904099966730422552010-08-23T18:49:00.000-07:002010-08-23T18:49:36.229-07:00Visual dialogscripBueno pues a mi me toco el lenguaje de programacion Visual DialogScrip<br />
y esto es lo mas relebante acerca de este lenguaje de programacion:<br />
<br />
Visual DialogScript<br />
<br />
Fue desarrollado originalmente por Julian Moss, pero en la actualidad es un producto de Commercial-Research, Ltd.<br />
<br />
Visual DialogScript es un lenguaje script de programación orientado a objetos, muy robusto, sencillo de aprender y fiable, con muchas posibilidades para que programar sea una tarea sencilla.<br />
<br />
Desde su aparición, con la versión 2, no ha parado de crecer y ofrecer más funcionalidad, con nuevos y mejores comandos y funciones, más potencia y un entorno mejorado. La última versión es la VDS 6.<br />
Visual DialogScript también llamado VDS es un lenguaje de script orientado a objetos con un entorno visual y centrado en el desarrollo de aplicaciones basadas en cuadros de diálogo. <br />
<br />
Funciona en prácticamente todas las versiones 32 bits de Windows. Es un lenguaje es un lenguaje muy eficiente ya que reduce mucho el código a la hora de programar. Es compacto, ocupa poco más de 1 Mb en las versiones 3 y 4, sobre 3 Mb en la versión 5 y cerca de los 5 Mb en la última versión, la 6.0. <br />
<br />
Lo interesante de VDS es su fiabilidad y estabilidad. Al utilizar las API de Windows la compatibilidad con el sistema es muy alta. Ya que al ser un lenguaje script no es compilado ya que previamente traducido en su ejecución. <br />
<br />
El interface es sencillo y manejable, bastante intuitivo y posee un propio editor sensible a los comandos, parámetros y datos. Genera ficheros con extensión .dsc cuyo contenido es texto plano sin formato, que puede editarse fácilmente con cualquier editor de texto (Bloc de notas, por ejemplo). <br />
<br />
Otro punto a destacar del programa es la facilidad de manejo. La ayuda (aunque esta en inglés) es fácil de comprender. La sintaxis del propio lenguaje es tan sencilla que aun que posee algunas peculiaridades con respecto a otros lenguajes, también posee convertidores para las versiones anteriores y algunas herramientas que nos ayudan en la tarea de crear y diseñar las cajas de mensajes o los cuadros de diálogo. Estos últimos son la base de VDS (aunque en la práctica podemos crear aplicaciones que no presenten ninguno de los ya mencionados). <br />
<br />
En los cuadro de diálogo podemos usar cualquiera de los elementos que nos proporciona, de forma estándar, este lenguaje y otros elementos ampliados gracias a las librerías de ampliación que podemos encontrar en la red.<br />
<br />
Estos elementos proporcionan información (como los textos, imágenes, vídeo y sonido) e interactividad con el usuario (como botones, botones de opciones, casillas de verificación, etc.) <br />
<br />
Cuando los propios comandos y funciones que lo componen se quedan cortos entran en juego las librerías que proporcionan nuevas posibilidades.<br />
<br />
Visual DialogScript, como cualquier otro lenguaje de programación, tiene una sintaxis definida que, en algunos aspectos, contiene elementos característicos propios.<br />
Como breve reseña he dividido la sintaxis en tres apartados:<br />
<br />
<span style="color: red;">Sintaxis-Variables</span> <br />
Como en cualquier lenguaje de programación las variables son usadas para almacenar datos necesarios en la ejecución de las aplicaciones. Las variables pueden almacenar texto o datos numéricos de manera que suelen existir distintos tipos de variables: tipo numérico de números enteros, en coma flotante, etc; tipo alfanumérico, y otros. <br />
<br />
<span style="color: red;">Aspectos a Considerar</span><br />
<br />
En VDS, a diferencia de la mayoría de los lenguajes, no hay que definir las variables, es decir, no hay que declarar su nombre previamente ni especificar, el tipo de dato que va a almacenar. De hecho, las variables son considerados cadenas de texto sin ningún formato numérico o de otro tipo, es decir, el valor "89" en la variable "I" son considerados como simples caracteres "8" y "9" y no un número. Sólo cuando vamos a operar como si fuera número se considera como tal.<br />
<br />
Como consecuencia, el uso de una variable no utilizada con antelación o a la cual nunca se le haya asignado un dato contendrá en valor nulo ("null").<br />
<br />
El nombre de las variables comienzan con el signo % (para nombres de variables con un solo carácter) o %% (para nombres de variables de más caracteres). Además, éste no puede tener espacios en medio. Por ejemplo:<br />
<br />
<span style="color: blue;">%I = 89</span><br />
<span style="color: blue;"><br />
</span><br />
<span style="color: blue;">%%nombre_largo = Hola</span><br />
<br />
A la hora de la asignación de datos a una variable hay que dejar un espacio entre el nombre de la variable, el carácter de asignación "=" y el dato a asignar como en el ejemplo anterior.<br />
<br />
• Las variables especiales %1 a %9 son usadas para almacenar los parámetros que se pueden pasar a nuestros programas. Así si queremos hallar la raíz cuadrada de un número con visual dialogscrip sería así:<br />
<br />
<span style="color: blue;">Raíz cuadrada.exe 9</span><br />
<br />
donde Raíz cuadrada.exe es el nombre de nuestro programa y 9 es el parámetro que le pasamos almacenándose de manera automática en la variable %1.<br />
<br />
En el siguiente ejemplo:<br />
<br />
<span style="color: blue;">Suma dos números.exe 12 23</span><br />
<br />
Suma dos números.exe es el nombre del programa y los valores 12 y 23 se pasan a las variables %1 y %2 respectivamente...<br />
<br />
La variable especial %0 es de "sólo lectura" y contiene la dirección completa de la carpeta donde se encuentra el programa en ejecución.<br />
<br />
<span style="color: red;">Sintaxis-Comandos</span> <br />
<br />
Los comandos consisten en un nombre de comando seguido por una cadena de texto usada como argumento o parámetro. Si un comando tiene más de un parámetro éstos deben estar separados por una coma. Los parámetros deben separarse del comando por un espacio. <br />
<br />
Ejemplos:<br />
<br />
<span style="color: blue;">title Mi programa</span><br />
<br />
en el ejemplo el comando está en negrita y el parámetro en itálica aunque no es necesario al programar.<br />
<br />
<span style="color: blue;">info Esto es una caja de texto de información</span><br />
<br />
el comando se muestra otra vez en negrilla y el parámetro en itálica.<br />
<br />
Los parámetros pueden incluir variables y funciones que serán evaluadas antes de ejecutar el comando. Aquí podemos ver un ejemplo de comando que contiene una función y una variable:<br />
<br />
<span style="color: blue;">if @file(%f)</span><br />
<span style="color: blue;"><br />
</span><br />
<span style="color: blue;">info El archivo %f existe</span><br />
<span style="color: blue;"><br />
</span><br />
<span style="color: blue;">end</span><br />
<br />
<span style="color: red;">Sintaxis-Funciones </span><br />
<br />
Las funciones se utilizan generalmente para asignar o para procesar variables. Son procesadas en tiempo de ejecución y se devuelve una cadena de caracteres con información. <br />
Comienzan con el signo "@" seguido por el nombre de la función. Los argumentos de una función se colocan entre paréntesis.<br />
<br />
Ejemplos:<br />
<br />
<span style="color: blue;">@Curdir( )</span><br />
<br />
Esta función devuelve el directorio actual de la unidad especificada. Si ésta no se especifica la función devuelve el directorio en el que el programa se está ejecutando.<br />
<br />
<span style="color: red;">NOTA:</span> las funciones encierran entre paréntesis los argumentos, aunque como en el ejemplo anterior sean nulos.<br />
<br />
Cuando son más de un argumento éstos van separados por comas:<br />
<br />
Ejemplo:<br />
<br />
<span style="color: blue;">%a = @equal(%I,Hola)</span><br />
Esta función devuelve en la variable %a el valor 1 (verdadero) si el contenido de la variable %I es igual a la cadena de caracteres "Hola", en caso contrario devuelve una cadena vacía ["null"] (no se tienen en cuenta las mayúsculas y minúsculas).<br />
<br />
Estas son algunas versiones:<br />
<br />
*Visual Dialogscrip 6<br />
<br />
<span style="color: red;">Tamaño:</span> 4,88 Mb <br />
<br />
<br />
<span style="color: red;">Operatividad:</span> 35 elementos de diálogo, 63 comandos y 136 funciones, aproximadamente.<br />
<br />
<span style="color: red;">Editor:</span> Sensible a los comandos, variables, funciones y parámetros.<br />
<br />
<span style="color: red;">Observaciones:</span> Nueva interface, recoge las ventajas de VDS 5 y aumenta las prestaciones al soportar más de 4032 variables globales, aritmética de 64 bits, gestión de memoria mejorada para un funcionamiento más rápido y con capacidad para cargar grandes listas de texto, soporte integrado para web (HTTP), XML, etc.<br />
<br />
*VSD 5.02<br />
<span style="color: red;">Tamaño:</span> 3,18 Mb <br />
<br />
<br />
<span style="color: red;">Operatividad:</span> 31 elementos de diálogo, 52 comandos y 119 funciones, aproximadamente.<br />
<br />
<span style="color: red;">Editor:</span> Sensible a los comandos, variables, funciones y parámetros.<br />
<br />
<span style="color: red;">Observaciones:</span> Versión renovada, con un interface remodelada. VDS 5 ha ampliado las posibilidades con funciones y comandos definidas por el usuario, llamadas a .dll no VDS, ficheros precompilados (.dsu), trabajo con proyectos y muchas más funciones y comandos.<br />
<br />
Y UNA DE LAS MAS VIEJA<br />
*VDS 2.1<br />
<span style="color: red;">Tamaño:</span> 770 Kb (16 bits) <br />
<br />
<br />
741 Kb (32 bits) <br />
<br />
<span style="color: red;">Operatividad:</span> 14 elementos de diálogo, 36 comandos y 70 funciones, aproximadamente.<br />
<br />
<span style="color: red;">Editor:</span> No sensible a comandos, variables, funciones y parámetros.<br />
<br />
<span style="color: red;">Observaciones:</span> Nombre de variables de un solo carácter (%1 a %9 y %a a %z), sólo admite la creación de un cuadro de diálogo y no tiene la capacidad de mover y cambiar el tamaño de los objetos una vez creados.Oscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-59078552341207098002010-08-09T19:57:00.001-07:002010-08-09T19:58:31.307-07:00<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO0mZzsrw7Y_cv5_-4HTmtBgw_26sDagMNlAsWeFBZpUArmV13tvrRY_MLSxlvAwz2F282nkM-CtC43u23xIgBsefV-7lnhEsV-YVTQbD6jFBI9I6LA4tewqitEKkE5G_IejYRXb9LDoW1/s1600/mapa+conseptual.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO0mZzsrw7Y_cv5_-4HTmtBgw_26sDagMNlAsWeFBZpUArmV13tvrRY_MLSxlvAwz2F282nkM-CtC43u23xIgBsefV-7lnhEsV-YVTQbD6jFBI9I6LA4tewqitEKkE5G_IejYRXb9LDoW1/s320/mapa+conseptual.jpg" /></a></div>Este mapa habla de los lenguajes de programacionOscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com1tag:blogger.com,1999:blog-1804808357317046987.post-83563425187252871132010-08-03T07:19:00.000-07:002010-08-03T07:19:07.541-07:00Oscar Saalazarhola a todos<br />
mi nombres es oscar<br />
escriban y comenten sobre la clase de lenguajes de progamacionOscar Salazarhttp://www.blogger.com/profile/12191012483234412666noreply@blogger.com0