Aprendiendo a programar C en 7, 13 o 26 segundos (dependiendo de cuán rápido lea Ud.)

julio 18, 2009

Estimados lectores, por fin ha llegado el momento de que aprendamos algo interesante en este Blog.

Hoy aprenderemos a programar.

Más aún, no sólo programaremos, si no que lo haremos en un lenguaje terrible de brígido para la gente que es mala para programar como yo.

Aprenderemos el lenguaje  C.

En realidad aprenderemos lo ultrabásico, pero con esto nos podemos quedar tranquilos.

Programaremos una versión más complicada del clásico HolaMundo.

Observación: los queridos lectores que ya empiecen a odiar este post pueden pasar directamente a la sección comentarios  o cambiar a una página más interesante :P .

Primero tenemos que recordar que los computadores son muy tontos. Esto quiere decir que debemos indicarle a nuestro querido computador cada una de las cosas que estamos haciendo. Esto lo hacemos con una lista de instrucciones que llamamos “código”.

Comencemos mirando el código del programa con el que vamos a jugar, que aparece  a continuación:

void main(){ 
int contador; 
for( contador=1; contador<=10;++contador){ 
printf("Hola Mundito\n");}  
}

Intentaremos entender que significa lo que acabamos de observar.

Lo más básico que  tenemos que decirle a nuestro computador es cuál es “Nuestro Programa”. Esto lo hacemos con la instrucción main():

void main(){
"Nuestro Programa"
}

Con esto, le estamos diciendo a nuestro computador que  todo lo que va entre los parentesis de llave ( {  y } ) es lo que corresponde a nuestro programa.

Poniéndonos un poco más técnicos, main se puede traducir como principal, es decir, es ahí es donde estarán las instrucciones más importantes de nuestro programa (en un programa más complicado puede haber instrucciones en varios lugares O_O). El apellido void le dice al PC que nuestro programa no tiene que retornar  ningún resultado (algunos programas más complicados podrían tener que retornar  como resultado un número, una palabra, etc).

Sigamos mirando el código que define a nuestro programa:

int contador;

Aquí le decimos al computador que necesitamos crear una variable y que además le ponemos de nombre contador. Una variable es un valor que ocupamos en nuestro programa y que tiene la propiedad  de que puede cambiar (por algo se llama variable :P). Para ser más precisos, como estamos escribiendo int contador, le decimos a nuestro computadorcillo que la variable tiene que ser un número entero (…,-2,-1,0,1,2,…). El apellido int, proviene de la gringa palabra integer, que significa entero.

El nombre de la variable podría ser cualquiera, por ejemplo, en el código podríamos cambiar cada aparición en el código de la palabra contador por la palabra supercalifragidisticoespialidoso, y el programa no cambiaría. Nosotros le pusimos contador pues la variable será efectivamente usada como un contador, es decir, en la variable guardaremos el número de veces que ocurre algo ( estamos usando la palabra “contador” que proviene de la palabra “contar”).

Ahora analizaremos quizás la parte más complicada de nuestro código:

for( contador=1; contador<=10;++contador){ 
printf("Hola Mundito\n");}

Veamos por partes.

Primero aprendamos someramente que cosa es un for. Un for es una de las armas favorita de los flojos. Me explico: a veces uno cuando programa necesita repetir muchas veces la misma instrucción y da una lata  ( y paja) enorme repetir las mismas líneas de código una y otra vez. Nuestro amigo for ahorra tamaño esfuerzo.

Seamos más precisos, para ocupar un for necesitamos varias cosas: una variable (ya la tenemos, la variable contador), una condición de parada  (por ejemplo, que la variable sea menor o igual a 10), una regla de evolución para la variable (por ejemplo, que la variable aumente en una unidad en cada paso, que en lenguaje computacional se escribe ++nombredelavariable) y una cantidad de intrucciones a gusto (las instrucciones que queremos repetir!!!).

Con todos estos ingredientes obtenemos algo del estilo:

for( contador=1; contador<=10;++contador){ 
Instrucciones a gusto del consumidor}

Lo que estamos diciendo en el for de arriba es que, partiendo de cuando la variable contador vale uno (por eso ponemos contador=1), si es que tenemos la suerte de que se cumpla la condición (contador<=10) entonces el computador tiene que ejecutar todas las instrucciones que aparecen entre paréntesis de corchete y luego  hacemos evolucionar la variable, que en este caso, aumenta en una unidad (++contador). Si la condición no se cumple entonces el computador no puede hacer ninguna tontera y debe pasar a las instrucciones que están debajo del for, si es que hay alguna :P.

En otras palabras cuando el PC llega a leer el famoso for, lo que hace es decir

“ya loquito, la variable contador vale 1, que es menor que 10, entonces ejecuto las instrucciones y hago evolucionar la variable. Ahora contador vale 2, que es menor que 10, entonces ejecuto las instrucciones  y hago evolucionar la variable. Ahora contador vale 3, que es menor que 10, etc, etc, etc”

así hasta que la variable contador vale 11, que es mayor que 10. Cuando eso ocurre el PC sabe que no puede seguir ejecutando las intrucciones entre los corchetes y que por lo tanto debe comenza a mirar todo lo que esté debajo del for.

Ahora veamos qué significa la instrucción que tenemos es el for de nuestro programa:

printf("Hola Mundito\n");

Bueno, print es una palabra inglesa que significa en español algo como imprimir. Pero no nos referimos a imprimir en hojitas de papel, si no que a imprimir, a mostrar en la pantalla de computador.

Entonces en esa línea le estamos diciendo al computador que imprima en pantalla la frase “Hola Mundito“. El símbolo “\n” que aparece representa un salto de línea, cada vez que aparece ese símbolo es como si apretáramos la tecla enter del teclado.

Con todo lo anterior, podemos interpretar a

for( contador=1; contador<=10;++contador){ 
printf("Hola Mundito\n");}

como la parte del código que le dice al computador que repita muchas veces el escribir la frase “Hola Mundito“(recuerde que estamos dentro de un for).

En resumen,  nuestro programa es una lista de instrucciones que le dice al computador que muestre como salida (output) una frase simpática, escrita varias veces.

Listo! ya entendemos el código a la perfección, con lo que podríamos decir que sabemos ya el escribir un programa no tan sencillo en el famosísimo lenguaje de programación C.

Escribir un programa en otro lenguaje no es tan diferente, de hecho casi todos los lenguajes modernos de computación se parecen entre sí, la única diferencia es la sintáxis, es decir, las palabras que usamos para hacernos entender con el computador (por ejemplo algunos lenguajes usan system.out.println en vez de printf).

Bueno, como lo que hemos  aprendido hasta ahora no es suficiente como para quebrarnos con nuestros amigos en el próximo carrete daremos el próximo paso: ejecutaremos nuestro programa!!! Para esto no necesitamos instalar ningún elemento extraño en nuestro computador, si no que nos aprovecharemos del ocio de algunas personas y usaremos la página:

http://codepad.org/

que nos permitirá ver funcionando nuestro programa.

Entonces, los lectores interesados pueden copiar el código del programa, que repetimos a continuación:

void main(){ 
int contador; 
for( contador=1; contador<=10;++contador){ 
printf("Hola Mundito\n");}  
}

Luego vamos a la página de codepad y pegamos en la ventanita que aparece todo nuestro código. Tenemos que tener cuidado de que el lenguaje seleccionado sea C (mire la columna de la izquierda), para que la gente copuchenta  no intrusee seleccionamos Private (que aparece en parte inferior derecha de la pantalla) y luego presionamos el botón submit. Así de fácil. Como dicen los gringos “As easy as pie de limón”.

Si hicimos todo bien, codepad nos debe mostrar otra página, donde se muestra la ejecución del código en la sección que dice Output. Deberíamos ver 10 veces escrita la frase “Hola Mundito”.

Pero eso no es todo, podemos seguir disfrutando con la entretención total que significa modificar el código y ver qué cosas ocurren. Por ejemplo, podemos modificar la condición del  for (¿Qué ocurre si cambiamos 10 por 100?). O podemos escribir otra frase (“I love you” , “Me gustan las sopaipillas”, “Soy el mejor”, “Tengo piojos”, “Me gusta comer narices”, “C vale callampa”, etc). O tal vez, experimentar qué ocurre si no usamos el símbolo “\n” o usamos varios de ellos. Incluso le pueden pedir ayuda a google y buscar otro tipo de comandos.

Bueno, como todos saben, la imaginación es el límite xD.

La morajela de este post es que programar no es tan difícil como parece. En realidad es sólo un poco foooooomeeee, al menos para los que no tenemos espíritu computín.

De todas maneras no pueden negar que emociona ver cómo los programas funcionan :D.

Hasta el día de hoy me parece un poco de magia, pues basta escribir unas pocas líneas para que el computador ejecute en pocos segundos una tarea que a nosotros nos puede tomar muchas horas de trabajo o de cut&paste (que a veces son sinónimos).


Nos basta con un Té

mayo 18, 2009

Porque esto cada vez se parece más al otoño y luego al invierno, les dejo un link que descubrí hace poco, tanto así que ni siquiera lo he observado ni investigado con detenimiento. 

De todas formas de lo poco que alcancé a ver me bastó para agregarlo a mis links favoritos:

http://www.teapot.cl/

Enjoy it!!

(El té xD)

PD: ni ahí con el café :)


How I met your mother fucker.

enero 18, 2009

Hoy fui al matrimonio de unos amigos míos.

Muy buenas personas ellos.

Resulta que entre todo el público asistente estaba ella.

La pastelera

Pucha que lo pasamos muy bien.

La cita que no era cita
(pero que era lo que debíamos hacer),
salió perfecta.

Con restricciones extrañas, como no anotar nuestros números celulares y entendimientos mutuos que las personas no entienden.

Se acabo la ceremonia y el carrete, pero no nos despedimos.

Es que  la noche tenía que ser para no olvidar jamás,
por eso nos vimos obligados a hacer  ese tipo de sacrificios. 

Sólo disfrutamos el momento.

…Y al final resultó que no fue en un matrimonio ni ella pastelera

 

N del E: pseudo-homenaje a HIMYM y a los 2 matrimonios de amigos míos que en mi vida he asistido. Felicidades a todos los involucrados!!! :) 



Filosofía inversa

enero 16, 2009

“Todo tiempo futuro será mejor”

Salvo su nombre “Tomorrow”, se podría decir que no es una canción que refleje la filosofía del post. Es una sad sad song.

Pero es muuuuy buena.

Mmm, el sentido de las lyrics cambia si uno se pone a pensar como “El roto que engaño al Diablo”.

Enjoy it!


Norte y sur

enero 3, 2009

En este post les comentaré  ligeramente sobre 2 películas que he visto en el último tiempo. La primera de ellas me la recomendó Secu (el significado de esa palabra es uno de los grandes misterios de la vida), acá les muestro el poster/afiche promocional:

los_amantes_del_circulo_polar_poster

Me gusta como suena el título:

“Los amantes de circulo polar”

“Los amantes de circulo polar”

“Los amantes de circulo polar”

eeeh, bueno,  sigamos…

Del poster no se puede saber mucho de la movie, de hecho uno puede hasta confundirse e imaginarse que es una película que transcurre en un 100% en el polo norte, todos cagaos de frío o algo así.

Como no les voy a contar el argumento, pero quiero que se hagan una buena imagen de la película, googlié (?) hasta encontrar 2 imágenes que representaran más el estilo y espíritu de la movie y que no fueran muy spoiler (no tuve mucho éxito :P): 

amantes_del_circulo_polar

Les puedo decir que tiene un excelente guión, sobretodo por el cómo están contados los hechos desde los 2 puntos de vista de los protagonistas. Es un guión lleno de detalles, que uno logra captar si está atento, 1313. Además, el director/guionista hace un truquito que no echa a perder la frase más linda del mundo.

No le voy a dar estrellitas o alguna medida equivalente, pero para que tengan una medida de qué tan buena es la movie les diré que la empecé a ver a las 01:30 de la mañana y no pude parar hasta terminar de verla. Me acosté a las 04:00 am!!! Es que esta película la miré online, y este sistema sólo te permite ver 72 min continuos, luego de los cuales debes esperar unos 40 min para poder seguir disfrutando del buen cine (o series). Es decir, ví los primeros 72 min de movie, esperé los 40 min y después pude disfrutar de los últimos 30 min de película (dura 104 min).

Datofreak: Seba me recomendó  “Los amantes del círculo polar” cuando él sólo había visto los primeros 72 min. Luego de que  yo ví la película, finalmente yo le recomendé que tenía que seguir viéndola. Es decir, fue como una recomendación circular :P

La otra película que ví es (favor de darle click a la imagen para que se vea menos fea de lo que aparece en el post): 

st_and_dd

Eeeh, como la imagen es un poco ambigua, les aclarro que la película que vi es la que aparece a la izquierda :$ “Southland Tales”. 

Donnie Darko es una película buena, entretenida, tiene bastantes personajes notables (por ejemplo, el conejito :D) y es friki, no es una película maestra, pero las  razones anteriores bastan para que estén entre mis favoritas.

En cambio Southland Tales es una película entretenida, con algunos personajes bknes y friki; y creo que no es maestra (debería verla de nuevo para estar seguro : P).

ST es una movie que se va muuucho más en la volá filosófica, apocalíptica, rancia que DD, y es por esta razón quizás que no me gustó tanto, pues al menos a mí me parece que estas cosas como que entorpecen el proceso narrativo.

En fin, como ST es una película rara, me gustó, pero si no han visto DD, les recomiendo que la vean antes de ST, para que el director les caiga mejor.

Datofreak: en un reportaje sobre el director de DD fue la primera vez que oí la palabra procrastinación. Según recuerdo el director se define como procrastinador o algún rollo tiene con esa palabra :P.


TD

diciembre 19, 2008

Para sus aburridas tardes de verano y tanto para los que trabajan o no, hoy les presentaremos los famosísimos juegos del tipo Tower Defense:

http://en.wikipedia.org/wiki/Tower_defense 

Yo, que no juego mucho estas cosas, y de hecho, ni recuerdo como llegué a conocer este tipo de jueguitos (probablemente en uno de los múltiples momentos de procrastinación) me volví pseudoadicto por un par de días.

Típicamente la idea en estos juegos es siempre la misma: posicionar inteligentemente armas de defensa sobre un territorio predefinido, de manera de destruir a los enemigos que van pasando por parte del territorio. Los juegos varían en  las variedades de armas, el contexto (edad media, naves espaciales, guerra, vectores), sistema de compra/venta de armas, items especiales (aumento de poder, de alcance, mareados de enemigos) etc, etc.

No se asusten, como es un juego de estrategia puede sonar difícil o lento para algunos, pero en mi caso, que  soy muy malo para este tipo de juegos (Ej: en Starcraft valgo peco) no fue así: pasé varias tardes jugando, y probando las distintas versiones, además de que pude pasar caleta de etapas, por lo que podríamos decir que es  un juego de dificultad Playera.  

Uno de los que más me gustan, por sus colores y extrañeza del contexto es Vector TD:

http://www.candystand.com/play.do?id=18047

Que ya tiene segunda parte (que no he jugado, yet :P):

http://www.candystand.com/play.do?id=18281

Y otro recomendado por mi estimado compañero del DIM, Gonzálo Sánchez aka Vikingo:

http://www.miniclip.com/games/canyon-defense/en/

No lo he jugado, pero ayer vi a Sánchez haciéndolo y el juego se veía la raja, pues tenía varias características que no había visto en otros juegos (tipos de armar y de accesorios especiales), tiene buenos efectos de sonido y, bueno, es recomendado por Gonzalo, que es un experto en este tipo de juegos online. 




Cine del recuerdo

diciembre 15, 2008

Hoy hablaremos  sobre 2 movies que vinieron a mi cabeza holísticamente (ni idea de lo que eso significa, pero lo mencionaban en el manual de GRE y creo que pueden estar de acuerdo conmigo en que suena bien)

chasing_amy

“Chasing Amy”

La primera de ellas, que en realidad es la segunda cronológicamente, pero que en realidad  es la primera que miré es Chasing Amy. Desde que esta se estreno ha pasado poco más de 10 años CTM….

….10 años, una decada!! Una cifra más  en las decenas de los numeritos que representan las edades de cada uno!!

Con esa cantidad de años tengo todo el derecho de ponerme nostálgico y wea y recordar mi adolescencia sureña (ie en la vecindad  del año 1997), que básicamente se resumía en: ir al colegio sólo por la mañana con toda la tarde libre para pasar echado viendo TV cable: todas las películas que me pareciesen interesantes, en los canales de película estrella de esa época, al menos en el cable sureño (deben haber sido como15 canales en total :P), el cinecanal y el HBO (una sóla versión de cada uno, nada con  los apellidos este, noroeste, surnoroeste, esteotro, etc). 


mallrats

“Mallrats”

Como achuntarle a una buena película  que no hubiera empezado hace mucho tenía probabilidad baja, y dado que era adolescente, y me gustaba escuchar música, creo que el 60% de mis tardes las pasaba mirando el MTV. En mi defensa debo decir que en aquella época, tenía buenos programas, que animaban algunos locos con humor freak, y que la mayoría de tiempo pasaban videos musicales, y pasaban buenos videos musicales, con directores de la talla de Michel Gondry, Spike Jonze,  aunque yo en ese tiempo no cachaba ni wea.  De ahí viene mi gusto por los videos musicales bien hechos, yo creo porque combinan 2 de mis actividades recreativas favoritas: la música y el cine (imagen en movimiento).

A ver, demás que  hasta el momento deben estar PLOP porque en realidad no les he hablado nada de las movies ni de tramas, ni de actores, ni de banda sonora, nada. Y la verdad es que no lo haré, para no desmotivar a los lectores :P. 

Lo único que les puedo decir es que, ambas películas se alejan del humor común de forma similar a  como lo hace “Superbad”,  no digo que sean la misma cosa, sólo que creo que se encuentran a la misma distancia de las comedias típicas. Y como recomendación, si quieren verlas, traten de no mirar mucho los videos de youtube con los trailers, porque  valen callampa: cuentan algunas tallas o son simplemente muuuy fomes. 

Intente elegir los posters que representaran fielmente el espíritu de las movies y ojala que eso funcione a manera de trailer.

Películas terrible de noventeras :S!!!
Los noventa se han convertido en los ochentaaaa.


La verdad es que el delta-tiempo me da

absolutamente lo mismo.

Empíricamente comprobado.

“Los años pasan volando”


Lema

diciembre 7, 2008

Farkas la lleva!!!


“Crónica del pájaro que da cuerda al mundo” y otro texto escrito por un nipón seco

julio 13, 2008

De Haruki Murakami:

pajarito

Me gustó harto ese libro. El loco japonés que lo escribió me lo recomendó Francisco Javier Becerra (Hermano de la Nasha).

Este fue el primero y, por el momento, único libro de Murakami que he leído (se vienen “Kafka en la orilla” y “Tokio Blues (Norwegian Blues)” …intentaré leer este último en inglés…necesito aprender Inglish!!! :S).

A pesar de que no es el libro que me recomendaba toda la gente, a me llamó la atención, me atrajo lo extravagante y pintoresco de su nombre y lo cool y nice de la portada. No me decepcionó.

Fue un libro que leí en el momento preciso debo decir, me ayudó a pasar un momento extraño. Mi sueño era leerlo tomandome una buena cervecita helada…no me acuerdo si lo cumplí o no. Pero da lo mismo, a hora me gustan más las (buenas) cervezas (que diré que es la única bebida alcoholica que me gusta).

Yasunari Kawabata:

Leí “Lo bello y lo triste”. Me encantó el nombre. La versión que leí la compré en montevideo el 2006. Junto a este libro compré otro del mismo autor (“El país de Nieve”)….libro que todavía no leo. Es que en realidad estos libros los compré para regalarselos a las mejores amigas del mundo: Nasha y Amiga Naty (la Nasha leyó el libro y la Naty noo :P).

Del libro, más que la historia, me gustó la forma en que está escrito, la prosa (sorry pero soy lo menos literario que hay, así que no sé con que tecnicismo específico referirme). Leerlo me relajaba y me traladaba vívidamente al mundo de paz oriental nipona que se encuentra en mi imaginación (sip..tengo una poca de ella todavía).
Comentario final: leer es bueno.


Yo la Tengo tengo tengo, tú no tienes nada, tengo tres…

julio 13, 2008

Yo la tengo es un grupo greengo bien viejo, como se puede ver en el siguiente link:

“Teenager in Love/Everyday”

Son covers eso sí :P

En fin, para que este Blog no muera indignamente, me he visto en la necesidad de actualizarlo, aunque sea con el fácil recurso de subir videítos de yutub y estrujandome el cerebro y cerebelo literario (que no es fácil que me haga caso tampoco, lo reconozco).

Una de las más famosas canciones de Yo la Tengo es Sugarcube, creo que hasta fue famoso en su época, pero es puro carril mío. De lo que si puedo estar un poco más seguro es que su video es una muestra fiel de que estos tipos tienen uno de los mejores buenos-humores que una banda musical puede tener, tan así que tienen un disco de covers que tocan en vivo, a pedido del público, y sin previo ensayo, en numerosas presentaciones de beneficiencia a una radio independiente gringa se llama “Yo la Tengo is murdering the classics”. Acá les presento el video, que incluso a Campitös le debería gustar, pues sale de manera no muy indirecta Rush.

“Sugarcube”

Ayer sábado 12 andaba, como dice por ahí una chiquilla, “con la wea”, o sea, andaba como enojado-polvorita-chato-pesao sin ninguna razón en especial, como a veces pasa. Pero toda esta maldita sensación desapareció gracias que que fui privilegiado testigo de cuánto un ser humano puede irradiar (y contagiar) felicidad…mmm… FELICIDAD mejor dicho. Esta felicidad infinita provenía de mi hermanita y de Campitös, juntos en Chile, por fin, luego de 10 meses seguidos de aventuras francesas de mi amigo-colega-cuñado Juan. Me gustó verlos así de contentos y de ver qué tan bien se llevan y lo bien que les hace estar togethers. Para ellos la siguiente canción, en la versión de Yo la Tengo (que es un grupo que le gusta al Profesor Jara-Díaz, y que por ende le debería gustar al todo transportista :P). Es bkn el video, pues junto con cantar, hacen la tremenda ni que coreografía.

“You Can Have it All”


No está demás repetir que está canción también es para el personaje incógnito ahora no tan incógnito que me hace sonreir…


Seguir

Get every new post delivered to your Inbox.