{"id":742,"date":"2013-06-15T15:02:54","date_gmt":"2013-06-15T21:02:54","guid":{"rendered":"http:\/\/www.lastdragon.net\/?p=742"},"modified":"2013-06-15T15:05:35","modified_gmt":"2013-06-15T21:05:35","slug":"diferencia-entre-aplicaciones-y-programas-informaticos","status":"publish","type":"post","link":"https:\/\/www.lastdragon.net\/?p=742","title":{"rendered":"Diferencia entre aplicaciones y programas inform\u00e1ticos."},"content":{"rendered":"<p>Programa<\/p>\n<p>Un programa es un c\u00f3digo parecido a un Script donde las reglas de operaci\u00f3n son lineales, siempre tienen un inicio y un fin para resolver un prop\u00f3sito especifico. Una vez resuelto ese prop\u00f3sito un programa termina y no se vuelve a ejecutar hasta que no sea necesario resolver otra vez un evento similar.<\/p>\n<p>Los programas son como Script, iguales a un .BAT en Windows o un SH de los *NIX.<\/p>\n<p>Por definici\u00f3n un programa siempre ser\u00e1 de ejecuci\u00f3n lineal con un inicio y un fin, aunque su ejecuci\u00f3n pueda verse afectada por condiciones, como las if, do while, while y for entre otras cosas como funciones y procedimientos. Aunque la l\u00ednea de ejecuci\u00f3n se vea influida por las condiciones inevitablemente llegara a cualquier fin. Ya que puede tener muchas formas de terminar. <\/p>\n<p>El programa hola mundo cl\u00e1sico de muchos lenguajes, es un ejemplo de programa, siempre inicia, hace su prop\u00f3sito el cual es escribir en pantalla hola mundo y despu\u00e9s termina y cada que alguien lo ejecute har\u00e1 exactamente lo mismo una y otra vez, eso es un programa.<\/p>\n<blockquote><p>#include &lt;stdio.h&gt;<\/p>\n<p>int main ()<br \/>\n{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf (&#8220;Hola Mundo\\n&#8221;);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br \/>\n}<\/p>\n<p><\/p><\/blockquote>\n<p>Aplicaci\u00f3n.<\/p>\n<p>Por definici\u00f3n una aplicaci\u00f3n es una herramienta que interact\u00faa con el usuario, esta herramienta nunca llegara a su fin a menos que el usuario que la opera decida que debe cerrar dicha aplicaci\u00f3n. <\/p>\n<p>Una aplicaci\u00f3n no tiene una l\u00ednea de ejecuci\u00f3n definida, puede ejecutar pizas de c\u00f3digo seg\u00fan las necesidades del usuario que la opera y  al terminar de usar esa pieza de c\u00f3digo regresara a un estado de espera a que el usuario haga una acci\u00f3n que active otra pieza de c\u00f3digo y asi. Por lo tanto una aplicaci\u00f3n al regresar a esperar la intervenci\u00f3n de un usuario, puede quedarse en espera indefinidamente y nunca terminara, a menos que el usuario as\u00ed lo decida interviniendo para que se ejecute la pieza de c\u00f3digo que hace llega a su fin la aplicaci\u00f3n.<\/p>\n<p>Las aplicaciones son muy comunes en entornos gr\u00e1ficos GUI aunque tambi\u00e9n las puede haber de consola basadas en texto. Donde una ventana que representa gr\u00e1ficamente la aplicaci\u00f3n se puede quedar ah\u00ed indefinidamente sin hacer nada hasta que el usuario interviene dando click en alguna parte normalmente en alg\u00fan bot\u00f3n, bot\u00f3n que desencadena una pieza de c\u00f3digo que hace algo y una vez terminado de hacer regresa a su estado inicial esperando que el usuario intervenga otra vez<\/p>\n<p>El c\u00f3digo m\u00e1s b\u00e1sico de una aplicaci\u00f3n es un while (true) con un switch-case anidado<\/p>\n<p>El  while true evitara que la aplicaci\u00f3n termine y el case leer\u00e1 eventos, ya sea de memoria, del est\u00e1ndar input, del reloj, de cualquier cosa que lo haga reaccionar y coincidir con un case que ser\u00e1 la pieza de c\u00f3digo a ejecutar.<\/p>\n<p>Toda aplicaci\u00f3n sea grafica o no, se mantiene en ese loop infinito del while (true) y es por ese motivo que no acaba nunca. Las aplicaciones son consumidoras de recursos si se mantienen abiertas por que todo el tiempo consumen un poco de procesador ya que el procesador tiene que mantener el ciclo while activo durante todo el tiempo que la aplicaci\u00f3n est\u00e1 funcionando con su respectiva dosis de memoria RAM<\/p>\n<p>El siguiente ejemplo es el c\u00f3digo de una aplicaci\u00f3n, esta aplicaci\u00f3n nunca termina, en el mismo c\u00f3digo esta la simulaci\u00f3n de un usuario tecleando n\u00fameros como entradas, cuando el usuario teclea 1 o 2 se ejecuta el c\u00f3digo referente a 1 o a 2 y despu\u00e9s regresa al ciclo while para recibir m\u00e1s instrucciones del usuario, esta app nunca va a terminar. A menos que el usuario presione control + c en una GUI ser\u00eda el equivalente a presionar el bot\u00f3n X de la ventana.<\/p>\n<blockquote><p>#include &lt;stdio.h&gt;<\/p>\n<p>void codigo1(){<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf (&#8220;Ejecutando codigo<br \/>\n1\\n&#8221;);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep (1);<\/p>\n<p>}<\/p>\n<p>void codigo2(){<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf (&#8220;Ejecutando codigo<br \/>\n2\\n&#8221;);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep (1);<\/p>\n<p>}<\/p>\n<p>\nint main ()<br \/>\n{<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int input = 0;<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (1)<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\ninput = rand() % 10; \/\/Simula teclazo de usuario<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nprintf (&#8220;Opcion simulada de usuario %d\\n&#8221;,input);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nswitch ( input ) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\ncase 1:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\ncodigo1();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nbreak;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\ncase 2:<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\ncodigo2();<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\nbreak;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n}<\/p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br \/>\n}<\/p><\/blockquote>\n<p>En el siguiente video esta una demostraci\u00f3n de los c\u00f3digos publicados.<\/p>\n<p><iframe loading=\"lazy\" width=\"420\" height=\"315\" src=\"http:\/\/www.youtube.com\/embed\/8Q3lgDP1XIY\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programa Un programa es un c\u00f3digo parecido a un Script donde las reglas de operaci\u00f3n son lineales, siempre tienen un inicio y un fin para resolver un prop\u00f3sito especifico. Una vez resuelto ese prop\u00f3sito un programa termina y no se vuelve a ejecutar hasta que no sea necesario resolver otra vez un evento similar. Los&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-742","post","type-post","status-publish","format-standard","hentry","category-programacion"],"_links":{"self":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=742"}],"version-history":[{"count":0,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=\/wp\/v2\/posts\/742\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lastdragon.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}