<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4399248445812195535</id><updated>2024-09-10T05:46:17.993-07:00</updated><category term="Java"/><category term="SFML"/><title type='text'>4Devs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-263887919142668594</id><published>2013-04-14T21:14:00.001-07:00</published><updated>2013-04-14T21:21:07.455-07:00</updated><title type='text'>El ingeniero y la computadora</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
En una ocasión una computadora extremadamente compleja y costosa se descompuso. Ningún ingeniero de la empresa logro echarla a andar.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
Llamaron a ingeniero externo para arreglarla. Al llegar, &amp;nbsp;se sentó frente a la pantalla, oprimió unas cuantas teclas, asintió con la cabeza, murmuró algo para sí mismo y apagó el aparato.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Saco un pequeño destornillador, dio vuelta y&amp;nbsp;media a un minúsculo tornillo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
Encendió de nuevo la computadora y efectivamente, la computadora se encontraba trabajando&amp;nbsp;perfectamente.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
El director de la compañía se mostró encantado y se ofreció a pagar la&amp;nbsp;cuenta de inmediato.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
- ¿Cuánto le debo?, preguntó el director.&lt;br /&gt;
- Son mil dólares.&lt;br /&gt;
- ¿Mil dólares?, ¿Mil dólares por unos segundos de su trabajo? ¿Mil dólares sólo por apretar un tornillo?.&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;La pagaré sólo&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;si me manda una factura perfectamente detallada que la justifique el costo.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
El ingeniero asintió con la cabeza y se fue.&lt;br /&gt;
A la mañana siguiente, el presidente recibió la factura, la leyó con&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;cuidado, sacudió la cabeza y procedió a pagarla.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
La factura decía:&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
Servicios prestados:&lt;br /&gt;
Apretar un tornillo…………………… 1 dólar&lt;br /&gt;
Saber qué tornillo apretar………. 999 dólares&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;La conclusión es que en algunos trabajos la dificultad y la capacidad necesaria para resolver un problema puede no verse reflejada en el tiempo y en la actividad física necesaria para llegar a una solución.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; color: #333333; font-family: Georgia, &#39;Bitstream Charter&#39;, serif; font-size: 16px; line-height: 24px; margin-bottom: 24px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Esta fue una historia contada por un profesor de mi universidad, no pude evitar recordarla este día.&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/263887919142668594/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2013/04/el-ingeniero-y-la-computadora.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/263887919142668594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/263887919142668594'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2013/04/el-ingeniero-y-la-computadora.html' title='El ingeniero y la computadora'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-1741111252109479026</id><published>2012-06-28T20:52:00.002-07:00</published><updated>2013-07-26T02:44:20.574-07:00</updated><title type='text'>La diferencia entre programadores buenos y regulares</title><content type='html'>Hoy he visto a mis compañeros de trabajo intentando resolver un problema, y yo, me he puesto a meditar un poco.&lt;br /&gt;
&lt;br /&gt;
¿Q&lt;span style=&quot;background-color: white;&quot;&gt;ué hace que un programador sea tan diferente de otro?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;A veces creo que es mejor tener un programador &lt;b&gt;realmente bueno&lt;/b&gt;&amp;nbsp;en vez de 5 programadores mediocres o regulares.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
En otras ramas esto puede sonar realmente imposible.&lt;br /&gt;
¿Tener un albañil realmente genial o 5 regulares?&lt;br /&gt;
&lt;br /&gt;
Creo que la diferencia principales entre un programador realmente bueno y uno regular son dos.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;Curiosidad&lt;/li&gt;
&lt;li&gt;Forma de abordar un problema&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Curiosidad&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
¿Qué es un programador sin ella?, nada. Nunca alguien se ha esforzado en resolver algo que no le interesa. El programador debe ser curioso, debe buscar la solución al problema, no porque la empresa lo necesite, si no porque debe satisfacer su propia necesidad de conocimiento.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Forma de abordar un problema&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
¿Qué hace un programador ante un problema?. Un programador regular depura, verificar linea por linea donde puede estar el error que esta generando el problema,y eso no esta mal, esto también lo hacen los programadores buenos, el problema es que ellos llegan hasta aquí, revisar y revisar hasta encontrar el error. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Entonces, ¿qué hace un programador estrella?. Un programador estrella&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;se formula preguntas, tantas como sean necesarias para llegar a la solución. ¿Bajo que circunstancias ocurre este comportamiento?, ¿ocurría&amp;nbsp;antes?, y la pregunta más importante:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;¿Qué tiene que estar mal para que el software se comporte de esta forma?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Esta pregunta nos lleva directamente a deducir el origen del problema. A veces es mejor pensar un poco lo que debe estar mal para que el software se comporte como lo hace en vez de pasar horas y horas revisando las mismas lineas.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
No es que sean buenos viendo errores, es que son buenos deduciendo cual debe ser el error.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/1741111252109479026/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2012/06/la-diferencia-entre-programadores.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/1741111252109479026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/1741111252109479026'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2012/06/la-diferencia-entre-programadores.html' title='La diferencia entre programadores buenos y regulares'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-8270904605836630902</id><published>2009-03-22T20:15:00.035-08:00</published><updated>2012-02-26T16:36:34.367-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SFML"/><title type='text'>SFML - Creando una ventana</title><content type='html'>SFML en una libreria con la que podremos programar nuestros videojuegos utilizando el lenguaje que mas nos agrade ( D, C++, C, Python, etc). &amp;nbsp;Por gusto personal nosotros programaremos en C++.&lt;br /&gt;
&lt;br /&gt;
Lo primero que tenemos que saber para poder crear nuestros juegos, es como crear una ventana, ya que justo aquí es donde se llevara acabo toda la magia de nuestro juego.&lt;br /&gt;
&lt;br /&gt;
Bien, este sería el código de un programa que lo unico que hace es mostrar una ventana y responder a algunos eventos, como el de cerrar. En proximos ejemplos verémos como mostrar sprites y fuentes.&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;span style=&quot;font-size: 110%;&quot;&gt;&lt;pre class=&quot;brush:cpp&quot;&gt;#include &amp;lt;SFML/Graphics.hpp&amp;gt;
using namespace sf;
int main()
{
  RenderWindow App(VideoMode(250,250,32),&quot;SFML - Mi ventana&quot;);
  bool running = true;
  while (running)
  {
    Event event;
    while(App.GetEvent(event))
    {
      if(event.Type == Event::Closed)
        running = false;
      if(event.Type == Event::KeyPressed &amp;amp;&amp;amp; event.Key.Code == Key::Escape)
        running = false;
    }
  }
  App.Close();
  return 0;
}&lt;/pre&gt;
&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Muy bien, veamos..&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;RenderWindow App(VideoMode(250,250,32),&quot;SFML - Mi ventana&quot;);&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Creamos una variable llamada App, que justamente es la que representará nuestra ventana.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;li&gt;Recive como parametro VideoMode, el cuál contiene el modo de video a utilizar, para este ejemplo hemos utilizado una ventana de 250x250 pixeles y una profundidad de color de 32 bits por pixel.&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;li&gt;El segundo parametro es una cadena será el titulo de nuestra ventana.&lt;/li&gt;
&lt;/span&gt;&lt;/ul&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;bool running = true;
while (running)
{
       ; ...
       ; ...

       ; ...
}&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Este ciclo permitirá a nuestra ventana mantenerse abierta y en constante actualización, pero para que el usuario pueda comuniarse con nuestra ventana en necesario manejar los eventos, que sucederán por ejemplo cuando se trate cerrar la ventana, es decir le diremos a nuestro programa que hacer cuando se pulse sobre la famosa &quot;X&quot; de las ventanas.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;Event event;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;&lt;br /&gt;Creamos una variable &quot;event&quot;, la que nos servirá para recivir todos los eventos que serán producidos en nuestra ventana.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;while(App.GetEvent(event))
{
    ; ...
    ; ...

    ; ...
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;El método GetEvent recive como parametro un objeto de tipo Event, en el cuál guardará el evento que se esta efectuando en la ventana, regresando true en caso de que si exista algún evento que requeira ser manejado o falso en caso de no existir evento para manejar.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;if(event.Type == Event::Closed)
  running = false;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;Los objetos tipo Event tienen un atributo llamado Type, en el podemos obtener el tipo de evento acontesido, en este caso en particular estamos preguntando si el evento aparecido ha sido un clic sobre sobre la X de nuestra ventana y, de ser así hemos puesto la variable running en falso para que nuestro ciclo termine.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;if(event.Type == Event::KeyPressed &amp;amp;&amp;amp; event.Key.Code == Key::Escape)
   running = false;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;Los eventos no sólo son clics por aquí y por alla, sino que tambien al teclear una tecla se considera un evento. Preguntamos si el event ocurrido ha sido un teclaso ejeje(no se me ocurrio de que otra manera referirme) y si la tecla pulsada ha sido la tecla Escape, entonces salimos del ciclo.&lt;br /&gt;&lt;br /&gt;Muy bien!, ahora prueba la aplicación.&lt;br /&gt;&lt;img src=&quot;http://img72.imageshack.us/img72/8099/1run.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;¿Qué?, ¿una mala sorpresa?, si, lo imagino... la ventana se ve, pero tiene un fondo transparente!, ¿verdad?. No te preocupes todo tiene solución. ¿qué fallo?, pues que no dibujamos nada en nuestro contexto, entonces queda transparente.&lt;br /&gt;Primero, borremos la pantalla con un color.&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;App.Clear(Color(100,130,255));&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;El color es especificado en formato RGBA (rojo, verde, azul, opacidad), yo no coloque opacidad ya que si no se indica se asume que es 255.&lt;br /&gt;Muy bien ya dibujamos algo en nuestra pantalla, pero... aún así no se ve ningún resultado, pasa que estamos dibujando en un buffer pero este no se esta mostrando,para mostrar el contenido dibujado basta con llamar el método Display, y el código completo quedaría asi:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;&lt;pre class=&quot;brush:cpp&quot;&gt;#include &amp;lt;SFML/Graphics.hpp&amp;gt;
using namespace sf;
int main()
{
  RenderWindow App(VideoMode(250,250,32),&quot;SFML - Mi ventana&quot;);
  bool running = true;
  while (running)
  {
    Event event;
    while(App.GetEvent(event))
    {
      if(event.Type == Event::Closed)
        running = false;
      if(event.Type == Event::KeyPressed &amp;amp;&amp;amp; event.Key.Code == Key::Escape)
        running = false;
    }
    App.Clear(Color(100,13,,255));
    App.Display();
  }
  App.Close();
  return 0;
}&lt;/pre&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;Fácil, no?&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/8270904605836630902/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2009/03/sfml-creando-una-ventana.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8270904605836630902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8270904605836630902'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2009/03/sfml-creando-una-ventana.html' title='SFML - Creando una ventana'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-6535213453178654183</id><published>2009-03-22T12:49:00.006-08:00</published><updated>2009-03-24T19:19:36.750-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="SFML"/><title type='text'>SFML - Introducción</title><content type='html'>Bueno, si estas leyendo esto es porque ya sabes que son SFML y quieres introducirte al desarrollo de aplicaciones con esta API, por lo tanto lo primero que hay que hacer es preparar nuestro entorno de desarrollo, para lo cuál yo utilizaré Visual C++.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Tenia pensado que esta entrada como preparar nuestro entorno con visual c++, pero para que hacer tutoriales repetidos, si desde la misma pagina podemos encontrar como hacerlo y no solo con visual c++ sino con muchos otros. Así que mejor coloco el link por si alguien no lo ha checado y para la proxima entrada tal vez tratemos como manejar sprites o alguna otra cosa más, para posteriormente ver si desarrollamos un pequeño juego.&lt;br /&gt;&lt;br /&gt;Aquí los tutoriales oficiales:&lt;br /&gt;&lt;a href=&quot;http://www.sfml-dev.org/tutorials/1.4/&quot;&gt;Click aquí&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/6535213453178654183/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2009/03/sfml-introduccion.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/6535213453178654183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/6535213453178654183'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2009/03/sfml-introduccion.html' title='SFML - Introducción'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-9059048799577954522</id><published>2008-03-24T20:41:00.012-08:00</published><updated>2012-02-26T16:02:51.246-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java - Entrada de datos</title><content type='html'>En cualquier programa es indispensable la entrada y salida de datos. Y pues daremos un  vistazo parcial de como aceptar datos en java, no pretendo profundizar mucho el tema ya que más delante se verá de nuevo con mayor calma.&lt;br /&gt;
&lt;br /&gt;
En un sin fin recibiremos los datos de entrada mediante el teclado, así que sólo veremos eso, como poder aceptar datos mediante el teclado.&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;Java nos proporciona la clase Scanner que nos permite capturar datos desde donde se le especifique, esta se encuentra en el paquete java.util por lo cual será necesario importar ese paquete para poder utilizarla o bien, llamándola desde su dirección.&lt;br /&gt;Veamos como se utiliza:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;1  import java.util.Scanner;
2  public class Entrada
3  {
4    public static void main(String[] args)
5    {
6      Scanner entrada = new Scanner(System.in);
7      System.out.print(&quot;Ingrese su nombre: &quot;);
8      String nombre = entrada.nextLine();
9      System.out.print(&quot;Su nombre es: &quot; + nombre);
10    }
11  }&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Este programa produce la siguente salida:&lt;br /&gt;&lt;br /&gt;Ingrese su nombre: Lindor&lt;br /&gt;Su nombre es: Lindor&lt;br /&gt;&lt;br /&gt;Nos pide nuestro nombre, ahora lo tecleamos, damos un enter y posteriorment el programa nos imprime el nombre que hemos escrito.&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;1  import java.util.Scanner;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;La instrucción import es la que utilizamos para decirle a java dónde se encuentran otras clases que no pertenezcan a nuestro paquete, en este caso importamos la clase Scanner que se encuentra en el paquete java.util. También es posible utilizar un asterisco al final en vez de decir Scanner podria ser java.util.*, el asterisco indica que se importara todo lo que se encuentre en ese paquete no sólo una clase en especifico.&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;6  Scanner entrada = new Scanner(System.in);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;Aquí vienen más cosas nuevas, creamos un objeto de la clase Scanner, la forma de hacer objetos es muy sencilla, sólo se especifica el nombre de la clase de la cual se creará el objeto, Scanner en nuestro caso, posteriormente tenemos nosotros entrada el cuál es el identificador para este objeto, puede ser cualquier nombre siempre y cuando este bajo las normas de java. Luego tenemos escrito &lt;span style=&quot;font-weight: bold;&quot;&gt;new&lt;/span&gt; nos permite crear objetos, entre paréntesis tenemos System.in, el cuál le indica a nuestro objeto tipo Scanner que los datos serán leídos desde el teclado, ya que System.in es la entrada estándar de java para el teclado.&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;8  String nombre = entrada.nextLine();&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;Los objetos scanner tienen varios métodos que nos permiten capturar datos según nuestras necesidades, en este caso como lo que leeremos será una cadena de caracteres (String) utilizamos el método nextLine(), ya que este nos devuelve la información tecleada por el usuario hasta llegar a un salto de línea. La información leída es almacenada en nuestra variable nombre de tipo String.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/9059048799577954522/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java-entrada-de-datos.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/9059048799577954522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/9059048799577954522'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java-entrada-de-datos.html' title='Java - Entrada de datos'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-7501716290999986170</id><published>2008-03-23T19:13:00.019-08:00</published><updated>2012-02-26T16:03:05.002-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Sentencias de control III - switch</title><content type='html'>Hoola!, no había tenido tiempo para publicar otra entrada, pero bueno por el momento tampoco tengo mucho tiempo libre… pero por un carajo, que importa. Dejaré mis demás deberes a un lado.&lt;br /&gt;
En ocasiones es necesario realzar una misma variable con otros datos diferentes, este problema puede ser abordado utilizando muchos if, pero esa solución resulta poco  legible en ocasiones. Java nos ofrece la sentencia switch para cuando nos topemos con un caso así, veamos un diagrama de cómo funciona el switch:&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiukV1dwNe_bwWiJHzM4DXgsSvU6ux_gf-LvDQy0R7aS67VYJKjkxHFic_s8Bjtz5I2LtAxTj7UnYjklmcXSHCk0bguvkmWN8x0XxNb43HMdD6XYEfbt2F0wBc2Ss_0q1b1562mhPDFIQ/s1600-h/switch.png&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5181142256398692754&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiukV1dwNe_bwWiJHzM4DXgsSvU6ux_gf-LvDQy0R7aS67VYJKjkxHFic_s8Bjtz5I2LtAxTj7UnYjklmcXSHCk0bguvkmWN8x0XxNb43HMdD6XYEfbt2F0wBc2Ss_0q1b1562mhPDFIQ/s400/switch.png&quot; style=&quot;cursor: pointer;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;Las expresiones pueden ir desde 0 … n, es decir se puede colocar tantas como se quieran, la expresión de el rombo es comparado con las demás expresiones y si es igual a una, se ejecutan las instrucciones del mismo y continua el flujo normal del programa.&lt;br /&gt;&lt;br /&gt;Sintaxis:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;
  switch(expresión)
  {
   case exp1:
    sentencias;
    [break;]
   case exp2:
    sentencias;
    [break;]
   …
   case n:
    sentencias;
    [break;]

   [default: [break]]
  }&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Aquello que se encuentra entre corchetes significa que es opcional colocarlo, el break aquí es utilizado para salir del switch.&lt;br /&gt;Veamos un ejemplo:&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;public class Dias
{
public static void main(String[] args)
{
int dia = 2;
switch(dia)
{
case 1:
System.out.println(&quot;Domingo&quot;);
break;
case 2:
System.out.println(&quot;Lunes&quot;);
break;
case 3:
System.out.println(&quot;Martes&quot;);
break;
case 4:
System.out.println(&quot;Miercoles&quot;);
break;
case 5:
System.out.println(&quot;Jueves&quot;);
break;
case 6:
System.out.println(&quot;Viernes&quot;);
break:
case 7:
System.out.println(&quot;Sabado&quot;);
break;
}
}
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;El programa imprime el nombre del dia según el valor que tenga la variable dia.&lt;br /&gt;Es sencillo si lo analizamos, la variable dia es comparada con las expresiones en los casos.&lt;br /&gt;Cuando entra al swich compara con los casos, es decir se va recorriendo:&lt;br /&gt;&lt;br /&gt;¿Es dia igual a 1? – No&lt;br /&gt;¿Es dia igual a 2? – Si&lt;br /&gt;Imprime(“Lunes”);&lt;br /&gt;&lt;br /&gt;Si quitáramos el break en todos los casos el resultado de nuestro programa seria:&lt;br /&gt;Lunes&lt;br /&gt;Martes&lt;br /&gt;Miércoles&lt;br /&gt;Jueves&lt;br /&gt;Viernes&lt;br /&gt;Sabado&lt;br /&gt;&lt;br /&gt;Ven que sucede, se va recorriendo caso por caso sin ir comparando con las expresiones hasta topar con un break o salir del switch.&lt;br /&gt;Veamos otro ejemplo:&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;public class Numero
{
public static void main(String[] args)
{
int n = 3;
switch(dia)
{
case 1:
System.out.println(&quot;Uno&quot;);
break;
case 2:
System.out.println(&quot;Dos&quot;);
break;
default:
System.out.println(&quot;Otro numero&quot;);
break;
}
}
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;Aquí utilizamos default, este entra cuando la expresión no cumple con ninguno de los casos. Por lo tanto la salida producida por nuestro programa es:&lt;br /&gt;&lt;br /&gt;Otro numero&lt;br /&gt;&lt;br /&gt;Ya que:&lt;br /&gt;¿Es n igual a 1? – No&lt;br /&gt;¿Es n igual a 2? – No&lt;br /&gt;Predeterminado&lt;br /&gt;Imprime(“Otro número”);&lt;br /&gt;&lt;br /&gt;Como no es igual a 1 ni a 2 entonces entra al default e imprime dicho mensaje.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/7501716290999986170/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control-iii-switch.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/7501716290999986170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/7501716290999986170'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control-iii-switch.html' title='Sentencias de control III - switch'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiukV1dwNe_bwWiJHzM4DXgsSvU6ux_gf-LvDQy0R7aS67VYJKjkxHFic_s8Bjtz5I2LtAxTj7UnYjklmcXSHCk0bguvkmWN8x0XxNb43HMdD6XYEfbt2F0wBc2Ss_0q1b1562mhPDFIQ/s72-c/switch.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-8656680842639253691</id><published>2008-03-14T10:34:00.014-08:00</published><updated>2012-02-26T16:03:41.504-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Sentencias de control II - else</title><content type='html'>En bastantes ocasiones no sólo es necesario ejecutar una instrucción dada una condición, sino que hay que realizar otra en caso de no ser verdad la misma.&lt;br /&gt;
&lt;br /&gt;
La sentencia if puede ir sola, o acompañada de un else, la instrucción dentro del else se ejecuta sólo si la condición especificada en el if es falsa, de no ser así, simplemente es ignorado. Veamos un diagrama:&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtWj-CgSxd-yosVo2-8TkWBXKKF1VVejb2-5de2J-De-I8hTXSRigTHIx6yQqwkLBwFG5MgQpvaajgl-XNBnmX2Q1VGTA8MJMG-lQZWSSFNGOD735akHABvts6n-iRsL9Jlb0X_SFofAY/s1600-h/ifelse.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5177668572808059250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtWj-CgSxd-yosVo2-8TkWBXKKF1VVejb2-5de2J-De-I8hTXSRigTHIx6yQqwkLBwFG5MgQpvaajgl-XNBnmX2Q1VGTA8MJMG-lQZWSSFNGOD735akHABvts6n-iRsL9Jlb0X_SFofAY/s400/ifelse.jpg&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;Es sencillo, el rombo representa un if, dentro de él está la condición.&lt;br /&gt;En caso de ser verdadera:&lt;br /&gt;Toma el camino de la derecha, ejecuta la instrucción y continúa el flujo del programa.&lt;br /&gt;En caso de ser falsa:&lt;br /&gt;Toma el camino de la izquierda, ejecuta la instrucción y continúa con el flujo normal del programa.&lt;br /&gt;&lt;br /&gt;En código se vería algo así:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;public class Ejemplo
{
 public static void main(String[] args)
 {
   int a = 5;
  int b = 6;
   if( a &amp;gt; b )
        System.out.print(&quot;a es mayor que b&quot;);
  else
   System.out.print(&quot;b es mayor que a&quot;);
 }
}&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Analicémoslo:&lt;br /&gt;&lt;br /&gt; int a = 5;&lt;br /&gt; int b = 6;&lt;br /&gt;&lt;br /&gt;Declaramos dos variables, a y b.&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;
 if( a &amp;gt; b )
       System.out.print(&quot;a es mayor que b&quot;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;Si a es mayor que b, entonces imprime en pantalla el mensaje dado&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;
 else
  System.out.print(&quot;b es mayor que a&quot;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;En caso de que no se cumpla el if, entra directamente el else, e imprime el mensaje b es mayor que a.&lt;br /&gt;&lt;br /&gt;Podemos saber ahora que el resultado producido por el programa será:&lt;br /&gt;&lt;br /&gt;b es mayor que a&lt;br /&gt;&lt;br /&gt;Creo no requiere mucha explicación, siempre que la condición del if sea falsa entrará al else.&lt;br /&gt;Ahora modifiquemos un poco nuestro ejemplo, asignemos a la variable a y b el mismo valor.&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;public class Ejemplo
{
 public static void main(String[] args)
 {
  int a = 7;
  int b = 7;
  if( a &amp;gt; b )
   System.out.print(&quot;a es mayor que b&quot;);
  else
   System.out.print(&quot;b es mayor que a&quot;);
 }
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;¿Qué mensaje mostrará nuestro programa?&lt;br /&gt;Primero determinemos si la condición del if es verdadera, ¿es 7 mayor que 7?, no, 7 no es mayor que 7 por lo tanto se va al else e imprime el mensaje:&lt;br /&gt;&lt;br /&gt;b es mayor que a&lt;br /&gt;&lt;br /&gt;Esto no es cierto, b no es mayor que a y tampoco es menor, son iguales pero a pesar de ello nuestro programa produce ese resultado.&lt;br /&gt;Una posible solución seria primero verificar si son iguales, en caso de no ser iguales pues nos vamos a un else y ahora si condicionamos para saber cual es mayor.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZu1qrOwQsLwDBCHtCTcgqakpNXbUTQzOLYo8JdOBuzz3VMXrnwxmKv8jmAUjfiBnjxBoT3m0bTGdzPOs76-OxVj5Kc-N_IFfLRYog80EREG0I14asC3jUGLCcA831HMwelCG8-34KvY/s1600-h/ejemploifelse.jpg&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5177669071024265618&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTZu1qrOwQsLwDBCHtCTcgqakpNXbUTQzOLYo8JdOBuzz3VMXrnwxmKv8jmAUjfiBnjxBoT3m0bTGdzPOs76-OxVj5Kc-N_IFfLRYog80EREG0I14asC3jUGLCcA831HMwelCG8-34KvY/s400/ejemploifelse.jpg&quot; style=&quot;cursor: pointer;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;He colocado con color azul a que if corresponde cada else. En este ejemplo primero determinamos si a es igual a b, en caso de ser falso significa que forzosamente uno es mayor que otro y entra al else. Dentro del else se determina cuál es el mayor y se imprime el resultado.&lt;br /&gt;Está es la salida del programa:&lt;br /&gt;&lt;br /&gt;a es igual a b&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/8656680842639253691/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control-ii-else.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8656680842639253691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8656680842639253691'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control-ii-else.html' title='Sentencias de control II - else'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtWj-CgSxd-yosVo2-8TkWBXKKF1VVejb2-5de2J-De-I8hTXSRigTHIx6yQqwkLBwFG5MgQpvaajgl-XNBnmX2Q1VGTA8MJMG-lQZWSSFNGOD735akHABvts6n-iRsL9Jlb0X_SFofAY/s72-c/ifelse.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-8792893854992008550</id><published>2008-03-08T17:03:00.016-08:00</published><updated>2012-02-26T16:14:29.161-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Sentencias de control I</title><content type='html'>Las sentencias de control son las encargadas de que nuestro programa cobre vida, en un sin fin de ocasiones es necesario que nuestro programa tome decisiones o que sea capaz de repetir una instrucción  n número de veces.&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Sentencia if&lt;br /&gt;Permite al programa toma una decisión de si ejecutar una instrucción o no, basándose en un resultado verdadero o falso, es decir un valor booleano.&lt;br /&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBPkPPLNzaYXv69SIsCDRj9giFzKJ5Vn9FMC0bFHwxPfrTvIEjM2qvb6ZpUEj3pXDb8QTUEqEhYl8RHMwzGJecE7nDziEwyfZGmAoR6W4HlrJl70hiVjYjXh-e5AVPLcQBDsHr8rY_o0/&quot; /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;Sintaxis:&lt;br /&gt;&lt;br /&gt;if(condición)&lt;br /&gt; sentencia;&lt;br /&gt;&lt;br /&gt;dónde:&lt;br /&gt;&lt;br /&gt; condición: es una expresión booleana.&lt;br /&gt; sentencia: es una instrucción que puede ser simple o compuesta.&lt;br /&gt;El if evalúa  la condición, si el resultado es true (verdadero), se ejecutará la sentencia. Pero si la condición resulta false (falsa), simplemente se ignora la sentencia y el programa continua con su rumbo.&lt;br /&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;int a = 5;
int b = 5;
if ( a == b )
 System.out.println(“a y b son iguales!”);
int c = a + b;
System.out.println(“La suma de a + b es: ” + c);&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;El programa produciría el siguiente resultado:&lt;br /&gt;&lt;br /&gt;a y b son iguales!&lt;br /&gt;La suma de a + b es: 10&lt;br /&gt;&lt;br /&gt;En este ejemplo, la condición es a == b (¿es a igual a b?), en caso de que se cumpla se ejecuta la sentencia siguiente System.out.println(“a y b son iguales!”). Una vez ejecutada la sentencia el programa continua. Veamos otro ejemplo:&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;int x = 2;
int y = 7;
int z = 0;
if ( x &amp;gt; y )
 z = x;
if ( y &amp;gt; x )
 z = y;
System.out.print(z);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;En este ejemplo podemos observar como la variable c toma su valor según ciertas condiciones. el programa evalúa x &amp;gt; y (¿es x mayor que y?), en caso de ser verdadero asigna el valor de x a la z, ahora el programa evalúa y &amp;gt; x (¿es y mayor que x?), de ser cierto asigna el valor de y a z. Una vez echo esto el programa imprimirá el valor de z.&lt;br /&gt;Resultado producido por el programa:&lt;br /&gt;&lt;br /&gt;7&lt;br /&gt;&lt;br /&gt;Imprime 7, debido a que 7 es mayor que 2, lo asigna en z y luego procede a imprimirlo.&lt;br /&gt;&lt;br /&gt;Algo que debemos tener muy en cuenta es que el if no lleva ; debido a que el mismo representa una instrucción vacía, y seria tomada como la instrucción a realizar en caso de que la condición evaluada fuese verdadera. Veamos un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;int x = 1;
int z = 200;
if( x &amp;gt; z );
 System.out.println(&quot; x es mayor que z &quot;);&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;El resultado del programa anterior es:&lt;br /&gt;&lt;br /&gt;x es maor que z&lt;br /&gt;&lt;br /&gt;El ; (punto y coma) ocasionaría un error lógico en el programa que no será detectado por el compilador de java.&lt;br /&gt;Mencionamos que un if puede ejecutar sentencias simples o compuestas. Las sentencias compuestas son aquellas que van entre {}, para poder así realizar más de una instrucción dentro de un if.&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;pre&gt;
&lt;code&gt;&lt;span style=&quot;font-size: 110%;&quot;&gt;int a = 2, b = 4;
if(a != b)
{
 System.out.println(&quot;a es diferente de b&quot;);
 System.out.println(&quot;a: &quot; + a);
 System.out.println(&quot;b: &quot; + b);
}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;El resultado mostrado por él programa será:&lt;br /&gt;&lt;br /&gt;a es diferente de b&lt;br /&gt;a: 2&lt;br /&gt;b: 4&lt;br /&gt;&lt;br /&gt;Bueeeno, luego le continuamos que ya se extendio bastante jeje, nos vemos.&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/8792893854992008550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8792893854992008550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/8792893854992008550'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/sentencias-de-control.html' title='Sentencias de control I'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBPkPPLNzaYXv69SIsCDRj9giFzKJ5Vn9FMC0bFHwxPfrTvIEjM2qvb6ZpUEj3pXDb8QTUEqEhYl8RHMwzGJecE7nDziEwyfZGmAoR6W4HlrJl70hiVjYjXh-e5AVPLcQBDsHr8rY_o0/s72-c" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-4439492257628156211</id><published>2008-03-08T14:19:00.011-08:00</published><updated>2012-02-26T16:11:11.917-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java - Tipos de datos primitivos</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Bien, entre los conceptos que debemos dominar en cualesquier lenguaje son los tipos de datos primitivos que se manejan en le mismo. Es importante saber que tipo de datos utilizaremos en cualquier momento en nuestro programa, ya que esto nos permite una mejor gestion de memoria para nuestra aplicación.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
La sintaxis para declarar variable es muy sencilla:&lt;br /&gt;
TipoDeDato identificador, identificador2, identificador3;&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Tipos de datos enteros:&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;&lt;/quote&gt;&lt;/span&gt;&lt;br /&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th&gt;Tipo&lt;/th&gt;&lt;th&gt;Tamaño(bytes)&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;byte&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;short&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;int&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;long&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Los tipos de datos pueden ser representados en 3 sistemas numéricos; Decimal, Octal, Hexadecimal.&lt;br /&gt;Ejemplos:&lt;br /&gt;Decimal&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;
&lt;code&gt;
int dec = 10;
int d = 15;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Hexadecimal&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
int hex = 0x10;
int h = 0xE;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Octal:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
int oct = 012;
int o = 017;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Como podemos notar para la utilización de la base 10(decimal) no se requiere de nada en especial, solo se indica el número, cuando se agrega al comenzar  0x se indica la utilización de la base 16 (Hexadecimal) y por ultimo la colocación de un 0 al inicio, marca el comienzo de un número base 8(octal).&lt;br /&gt;&lt;br /&gt;Tipos de datos de coma flotante&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;Tipo     Tamaño
float    4 Bytes
double   8 Bytes&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Cuando se asigna un valor a uno de estos de forma predeterminada se establece como double. Existe la posibilidad de utilizarlo como float, con tan solo agregar una f al final del número.&lt;br /&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
float e = 2.17f;
double e = 2.17;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Tipo de dato boolean&lt;br /&gt;Pueden tomar 2 valores, true o false. Generalmente son utilizados para representar estados.&lt;br /&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
boolean sed = false;
boolean calor = true;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;Tipo de dato carácter&lt;br /&gt;Pueden almacenar como máximo un único carácter encerrado entre comillas simples. Su tamaño es de 2 Bytes.&lt;br /&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
char letra = &#39;a&#39;;
char otra_letra = &#39;j&#39;;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;
&lt;br /&gt;&lt;br /&gt;Estos son los tipos de datos primitivos en java, espero aya quedado todo claro.&lt;br /&gt;me retiro, adios!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/4439492257628156211/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java-tipos-de-datos-primitivos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/4439492257628156211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/4439492257628156211'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java-tipos-de-datos-primitivos.html' title='Java - Tipos de datos primitivos'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-3386145576005446644</id><published>2008-03-07T19:02:00.018-08:00</published><updated>2012-05-06T15:29:02.430-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Hola mundo - Estructura básica de un programa java</title><content type='html'>Bien, listo es hora de ver un poco de la estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con la extensión .java de lo contrario, no nos funcionará.&lt;br /&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
1     public class Hola
2     {
3           public static void main(String[] args)
4           {
5                 // imprimiendo en pantalla
6                 System.out.print(&quot;¡ Hola mundo !&quot;);
7           }
8     }
&lt;/code&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;
Java es un lenguaje sensible a minúsculas y mayúsculas, así que debemos ser muy cuidadosos a la hora de teclear nuestro código, no es lo mismo:&lt;br /&gt;
Public Class&lt;br /&gt;
A:&lt;br /&gt;
public class&lt;br /&gt;
&lt;br /&gt;
Bien, ahora analicemos nuestro código:&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;code&gt;
1     public class Hola
&lt;/code&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;
Comienza con la declaración de una clase nombrada Hola. Toda aplicación java lleva por lo menos una clase.&lt;br /&gt;
La palabra clave class indica una declaración de una clase, la cual debe ir seguida por el nombre de la clase, en nuestro caso Hola.&lt;br /&gt;
Las palabras clave son aquellas que son reservadas exclusivamente por java y son escritas en minúsculas.&lt;br /&gt;
Generalmente los nombres de las clases inician con una letra mayúscula pero bien, pueden llevar el nombre del que el programador guste. El nombre de la clase se conoce como un identificador, y se encuentra compuesto por un conjunto de caracteres, que bien pueden ser letras, dígitos. Sin embargo no se pueden comenzar con dígitos ni incluir espacios, generalmente cuando se desean dejar espacios se utilizan guiones bajos (_).&lt;br /&gt;
Ejemplo de identificadores válidos: hola5, Hola, Hola_mundo, $hola&lt;br /&gt;
Ejemplo de identificadores no válidos: Ho la, 1Hola&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
3     public static void main(String[] args)
&lt;/code&gt;
&lt;/pre&gt;
&lt;br /&gt;
Este marca el punto de inicio del programa. Una clase generalmente contiene métodos, java obliga al programador definir el método main, de lo contrario el intérprete de java mandará un error.&lt;br /&gt;
La palabra clave void indica que el bloque de código siguiente relazará un trabajo pero no regresará ningún dato, simplemente hará acciones.&lt;br /&gt;
La palabra clave static la veremos más adelante por el momento es muy pronto.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
5     // imprimiendo en pantalla
&lt;/code&gt;
&lt;/pre&gt;
&lt;br /&gt;
Cuando se colocan // indica que esa línea será ignorada por el compilador de java. Son utilizadas para agregar comentarios a nuestro programa y existen distintos tipos de comentarios, cuando se desea crear comentarios de más de una línea se incluyen /* y de allí en adelante todo eso será ignorado por el compilador java hasta que se encuentre con */, pudiendo así crear comentarios de más de una línea.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
6     System.out.print(&quot;¡ Hola mundo !&quot;);
&lt;/code&gt;
&lt;/pre&gt;
&lt;br /&gt;
Aquí se indica al computador que imprima en pantalla una cadena de texto, entre paréntesis se coloca lo que se desea imprimir en nuestro caso hemos impreso Hola mundo.&lt;br /&gt;
Notemos que se ha colocado entre comillas, las comillas indican el inicio de una cadena de texto, y será tratada tal como se coloque dentro de las comillas.&lt;br /&gt;
&lt;br /&gt;
Bien, ya hemos visto como esta compuesto un programa java, en próximas entradas veremos ejemplos de unas pequeñas aplicaciones y luego continuaremos con otros temas.&lt;br /&gt;
Adios!&lt;br /&gt;
&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/3386145576005446644/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/hola-mundo-estructura-bsica-de-un.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/3386145576005446644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/3386145576005446644'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/hola-mundo-estructura-bsica-de-un.html' title='Hola mundo - Estructura básica de un programa java'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-1773661325340315960</id><published>2008-03-06T22:53:00.011-08:00</published><updated>2008-03-06T23:12:01.797-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>Java</title><content type='html'>Hola!, ahora toca el turno a hablar un poco de java para dar inicio a otros temas…&lt;br /&gt;&lt;br /&gt;Bien ¿al mal paso darle prisa? jejej bueno, pues Java es un lenguaje de programación orientado a objetos el cual basa su sintaxis en C++.&lt;br /&gt;&lt;br /&gt;Las aplicaciones de java se encuentran compiladas en bytecode, posteriormente este es interpretado a medida que el avanza el programa.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Una de las grandes ventajas que ofrece java es que las aplicaciones generadas con el mismo son multiplataformas, son capases de correr en sistemas operativos distintos, por ejemplo una aplicación java puede correr en Windows, Mac OS, Linux e incluso en dispositivos móviles.&lt;br /&gt;&lt;br /&gt;Esta gran funcionalidad es debido gracias a que las aplicaciones java corren bajo una maquina virtual llamada JVM (Java Virtual Machine), ¿qué significa esto?, pues que las aplicaciones de java no son compiladas en código máquina directamente, sino que como se menciono antes se genera bytecode, el cual es leído por la máquina virtual y se va convirtiendo a código máquina a medida que se ejecute el programa.&lt;br /&gt;En la siguiente imagen se muestra como funciona java:&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFfIxRoV1mTnDGSiVdUf9rP_7EyryM9CHFvXdmtr5mdH4np6NrDIZ9o5-47qHAfbn0-MlNd_aNs0wIh-K3thyphenhyphengD4-P3FAOeyS_-flLIa-mWnkbBo9nLpZPJ6Oj5poxIcDOb2OvO-7n80/s1600-h/JVM.PNG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFfIxRoV1mTnDGSiVdUf9rP_7EyryM9CHFvXdmtr5mdH4np6NrDIZ9o5-47qHAfbn0-MlNd_aNs0wIh-K3thyphenhyphengD4-P3FAOeyS_-flLIa-mWnkbBo9nLpZPJ6Oj5poxIcDOb2OvO-7n80/s400/JVM.PNG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5174890620950437906&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/1773661325340315960/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/1773661325340315960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/1773661325340315960'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/java.html' title='Java'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXFfIxRoV1mTnDGSiVdUf9rP_7EyryM9CHFvXdmtr5mdH4np6NrDIZ9o5-47qHAfbn0-MlNd_aNs0wIh-K3thyphenhyphengD4-P3FAOeyS_-flLIa-mWnkbBo9nLpZPJ6Oj5poxIcDOb2OvO-7n80/s72-c/JVM.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-2184304904672857732</id><published>2008-03-04T23:19:00.005-08:00</published><updated>2009-02-11T18:03:05.614-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><title type='text'>POO</title><content type='html'>Hola, no, no dedicaré una entrada al blog sobre la mierda xD.&lt;br /&gt;&lt;br /&gt;En esta entrada al blog aprenderemos un poco de POO(Programación orientada a objetos), no pretendo adentrarme muy afondo en el tema, me pareció interesante dedicar una entrada al blog sobre este tema debido a lenguajes de hoy implementan este paradigma, por lo cual creo adecuado hablar un poco del mismo.&lt;br /&gt;&lt;br /&gt;Es un paradigma de programación basado en la utilización de objetos con el fin de crear software.&lt;br /&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;br /&gt;Un objeto está compuesto:&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Estado&lt;/span&gt;: serán los atributos a los cuales se les asignarán valores.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Comportamiento&lt;/span&gt;: métodos para operar el objeto.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Identidad&lt;/span&gt;: es aquello que diferencia a un objeto de otro.&lt;br /&gt;&lt;br /&gt;La lógica de la programación orientada a objetos consiste en la creación de objetos, que se interrelacionan para realizar una tarea.&lt;br /&gt;&lt;br /&gt;Los objetos cuentan con métodos que permiten la comunicación entre los objetos, pudiendo así cambiar el estado de los objetos según factores ajenos al mismo.&lt;br /&gt;&lt;br /&gt;Para lograr comprender correctamente este paradigma se requiere dominar los siguientes conceptos:&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Objeto&lt;/span&gt;: conjunto de atributos y de métodos basados en objetos del mundo real u objetos internos de un software.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Clase&lt;/span&gt;: molde utilizado para generar objetos, en este se definen los atributos y métodos con los que contará el objeto.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Método&lt;/span&gt;: acciones que puede realizar un objeto, estos pueden alterar las propiedades del mismo.&lt;br /&gt;&lt;br /&gt;Características de la POO:&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Abstracción&lt;/span&gt;: existen objetos que sirven como modelo general, para partir del mismo e ir siendo más particular.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Encapsulamiento&lt;/span&gt;: es el reunir a todos los elementos que se consideran pertenecientes a una misma entidad.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Polimorfismo&lt;/span&gt;: indica que métodos pueden comportarse de manera distinta en objetos distintos.&lt;br /&gt;&lt;br /&gt;- &lt;span style=&quot;font-weight: bold;&quot;&gt;Herencia&lt;/span&gt;: los objetos heredan las propiedades y el comportamiento de las clases de las cuales se hereda.&lt;br /&gt;&lt;br /&gt;Bueno, lo más probable es que no se ha comprendido correctamente todo, prueba dando una segunda leída y si aun no comprendes, no se preocupe es normal. Conforme avancemos observaremos más claramente que es cada cosa, por el momento es todo.&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/2184304904672857732/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/poo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/2184304904672857732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/2184304904672857732'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/poo.html' title='POO'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4399248445812195535.post-2334803368887631697</id><published>2008-03-04T23:11:00.001-08:00</published><updated>2009-02-11T17:35:43.957-08:00</updated><title type='text'>¡ Hola mundo !</title><content type='html'>Hola, pretendo adentrarme al mundo de los blogs informaticos… y pues he aqui la primera entrada.</content><link rel='replies' type='application/atom+xml' href='http://cdevelop.blogspot.com/feeds/2334803368887631697/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://cdevelop.blogspot.com/2008/03/hola-mundo.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/2334803368887631697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4399248445812195535/posts/default/2334803368887631697'/><link rel='alternate' type='text/html' href='http://cdevelop.blogspot.com/2008/03/hola-mundo.html' title='¡ Hola mundo !'/><author><name>Aban</name><uri>http://www.blogger.com/profile/00526116052867634828</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>