sábado, 20 de octubre de 2012

Trasteando con C

LLevo ya unos días haciendo varios programas con C (algunos por obligación) y no paro de trastear, ya sabéis lo que me gusta.

LINK DE DESCARGA DEL .C

EJEMPLOS:




He hecho este programa alternativo a todos los que hacía de introducir datos para hacerles el tanto por ciento o cosas así. Puede ser una tontería, pero lo quiero compartir:


#include <stdio.h>
int main() {
    int i;
    scanf("%i", &i);
    int vez;
    int cont=1;
    while (cont<=i) {
        for (vez=1;vez<=cont;vez=vez++)
            printf("-");
        printf("\n");
        cont=cont++;
    }
    cont=cont-2;
    while (cont>=1) {
        for (vez=cont;vez>=1;vez=vez-1)
            printf("-");
        printf("\n");
        cont=cont-1;
    }
}

Yo lo llamaría "Arte ASCII".
Introducid un número natural (a partir del 1, sin decimales) y mirad lo que hace. Se aprecia mejor cuanto más alto sea el número. Podéis cambiar en el printf la "-" por el carácter que vosotros queráis.

Lo he implementado en 20 líneas. ¿Se podría haber hecho en menos?

martes, 16 de octubre de 2012

True y False en C

Mientras que trasteas con C se te presenta un problema: parece como si los booleanos no existieran. Pero, ¿cómo no van a existir en un lenguaje tan extendido?

Me refiero a que en C no existe una variable reservada que sea true o false a diferencia de otros lenguajes como Java o Python. C tiene truco:
  • Para true, C devuelve cualquier número distinto de 0.
  • Para false, C devuelve 0.
Con lo cual, para demostrar la veracidad o falsedad de una declaración solo tendremos que ver si es 0 o no.
Así podremos hacer cosas que antes se nos complicaban. Como, por ejemplo, identificar si un caracter está en mayúsculas o en minúsculas:

#include <stdio.h>
#include <ctype.h>
int main() {
    char c;
    scanf("%c", &c);
    if (islower(c)!=0) { /*Mira a ver si se cumple que c es minúscula (si la condición es true)*/
        printf("Es minúscula");
    } else printf("Es mayúscula");
}

*ctype.h es una librería bastante útil. Comprueba si un caracter está en blanco, es un número, una letra o un signo de puntuación, aparte de comprobar si es mayúscula o minúscula.

Sin embargo, a diferencia de Python, si quieremos repetir un bucle indefinidamente tendremos que poner una obviedad, lo que (en mi opinión) le quita sofisticación al código.

PYTHON:

while True:
     a=a+1


C:

while (1==1) {
    a=a++
}

domingo, 14 de octubre de 2012

Cuando tú haces cola


Me he visto envuelto en esta situción muchísimas veces. ¿Y quien no? Las colas son muy traicioneras, sienten tu presencia y se ríen de tí porque saben que nunca vas a conseguir lo que esperas. Justo cuando te va a tocar surge un imprevisto o los que manejan el cotarro están hasta las narices de atender a gente que no les importa que quedes tú.

Hacer colas, firmar, pagar y reclamar. El ciclo de la vida.
(Para asegurarte de que ves el GIF desde el principio, pulsa sobre él con el derecho y ábrelo en una pestaña nueva).

miércoles, 10 de octubre de 2012

Pikachu on Acid

Dado que hoy no estoy muy creativo os paso un video un poco raro que encontré por internet. Se llama Pikachu on Acid, y hasta aquí puedo teclear. Mirado a ver que tal os parece:




exit(0); xD

lunes, 8 de octubre de 2012

ソードアート・オンライン


*Si ves cuadraditos descárgate la fuente de japonés.

Lo que he puesto ahí arriba (en primer lugar) no es chino xD es japonés (nihongo 日本語), está escrito en katakana (カタカナ) porque es el nombre de una serie.

Y a eso quería yo llegar. Hoy os voy a recomendar una serie que a mí me ha "enamorado" desde que salió el 7 de julio de este año y creo que os gustará. Se trata de Sword Art Online (soudoaatoonrain ソードアート・オンライン en japonés).

La verdad es que no soy el primero, esta serie está gustando a bastante gente.


Sinopsis (sin destripar): Un Game Over supondría una verdadera muerte, escapar es impsible hasta terminar el juego. Nadie conoce la verdad de este MMORPG con 10000 jugadores, una cruel batalla a muerte. Kirito (キリト) acepta el juego y decide jugar solo. Sin embargo recibe una invitación (a la fuerza) de una guerrera llamada Asuna (アスナ) con la que tendrá que formar equipo.

La verdad es que esta serie engancha sobretodo a los jugadores o ex-jugadores de juegos MMO (como yo xD). Hay que verla.
Podéis encontrarla en Animeid, Animeflv o en Youtube. Hay un nuevo capítulo cada fin de semana (sábado por la noche - domingo de madrugada). Subtitulados al español (doblados en japonés, obviamente).

Ya van a sacar incluso un juego para la PSP...

インフィニティ・モメント, "Infinito Momento".
Ahora mismo van por el capítulo 15 (lo pondrán este finde). Miradlo desde el 1 y se os acabarán haciendo largas las semanas de esperar!!! ありがとう!


domingo, 7 de octubre de 2012

Pokémon World Online

Hoy os recomiendo un MMORPG que a lo mejor habéis oido hablar. O al menos conocéis el RPG en el que está basado.
Fuera líos, se llama Pokémon World Online. Como se puede deducir, es un modo multijugador del juego Pokémon. No es el único que hay, pero al menos es el mejor que he visto.


  • Está basado en Pokémon Rojo Fuego/Verde Hoja (yo creo que es una mezcla de los dos, porque salen Pokémon exclusivos de los dos). 
  • Puedes elegir entre empezar tu aventura en Kanto o en Johto (elijas lo que elijas acabarás yendo a las dos).
  • Permite jugar en modo PvE (jugador contra entorno) y en PvP (jugador contra jugador). 
  • Incluye contenido extra.
  • Nuevo sistema de reputación, que determina contra qué entrenadores puedes luchar.
Aunque de las cosas que más me gusta es que símplemente con entrar a un Centro Pokémon, los Pokémon se curan, no hay que hablar.

Yo ya estoy dentro:



Aún está en fase Beta, con lo cual puede tener unos fallos que se irán perfeccionando con el tiempo. 
Para uniros, id a la página oficial: http://www.pokemonworldonline.net/ y pulsad Registration.
Tenéis que solicitar un código para activar la cuenta y descargaros el cliente (gratis).
A partir de ahí, la cosa es vuestra.

sábado, 6 de octubre de 2012

Matlab, la salvación


Puede que varios lo conozcáis. Matlab es una excelente herramienta para cualquier estudiante y un pasatiempo para un matemático. Obviamente, fijándonos en el nombre, este programa se centra en la Matemática.

Puedes usarla como una potente calculadora (deriva, integra, calcula determinantes y operaciones matriciales hasta con variables simbólicas (útil para resolver sistemas de ecuaciones de tres incógnitas) , etc). Resuelve ecuaciones y sistemas de ecuaciones y ayuda a crear algoritmos. También dibuja gráficas y diseña planos (bastante útil manejando vectores). Todo en un entorno de trabajo simple.

Aunque advierto: está en inglés y requiere 4,5 GB de espacio, porque utiliza muchos módulos (y aún se le pueden añadir más). Tiene fines didácticos (aunque por mí úsalo para lo que quieras). Para manejarlo hay que familiarizarse con su lenguaje de programación (lenguaje M).

Matlab pertenece a MathWorks y por lo tanto es de pago. Podéis comprarlo y bajaros la licencia aquí: http://www.mathworks.es/products/matlab/index.html

es broma, ten (torrent): http://dl.dropbox.com/u/15687359/%5Bkat.ph%5Dmatlab.2012.for.windows.32.64.bit.torrent

De vuelta (I'm back)

Tras un descanso retomo las publicaciones del blog, como en los viejos tiempos, siempre que tenga un rato libre, claro.
Dejé de publicar en verano. Curioso, ¿verdad?