Tutorial: primeros pasos en programación, 1-Nuestras primeras líneas

Esta es la segunda parte de una serie de tutoriales que voy a ir creando llamada "Primeros pasos en programación". Estos tutoriales están hechos para gente que nunca ha programado y para los que han programado y quieren aprender a hacerlo en Lego Mindstorms NXT. Vamos a programar usando NXC (Not eXactly C). Este es un lenguaje de programación parecido a C que tiene muy buenas funciones y es fácil de aprender, ¡así que no tengas miedo!. Voy a explicar todo en detalle, así que si sabes programar en C, por favor, ten un poco de paciencia. En este tutorial vamos a programar nuestras primeras líneas y aprender un poco la sintaxis del lenguaje.
Si quieres ver el primer tutorial "Instalando el software necesario" haz clic aquí.

Parte 2: Nuestras primeras líneas

Conecta tu NXT prendido a la computadora y abre el Bricx Command Center. Selecciona NXT en "Brick Type" y "Automatic" en "Port". Ahora, haz clic en 'file' y selecciona New para crear un documento nuevo.
Crea un nuevo documento
Creemos una variable, esto es un espacio en la memoria en el cual podemos guardar texto, números y recursos. Para usar una variable en un programa, primero debes declararla. Después puedes leer o cambiar su valor.
El nombre de una variable sólo puede tener letras, números y underscores ( _ ), pero deben empezar con una letra. Además, el nombre no puede contener espacios y no pueden ser palabras reservadas. Aquí hay una lista de las palabras reservadas en NXC:
No uses ninguna de estas palabras como nombre de variable
Para declarar una variable en NXC se usa la siguiente sintaxis:
tipo nombre = valor;
El tipo le dice a la computado que esperar. Los tipos más comunos son int (número entero), string (texto). float (número con decimales) y bool (true or false, no te preocupes por esto ahorita). El punto y coma DEBE ir siempre al final de cada instrucción que tengas en tu programa, esto le dice a la computadora que estás terminando una frase o instrucción.
Escribamos:
string textA = "Hola Mundo!";
Esta línea crea una variable llamada textA que contiene texto (string). Nota que el programa distingue entre mayúsculas y minúscula así que textA no es lo mismo que texta o TEXTA. Cuando escribes strings (texto) lo tienes que poner entre comillas. Muy bien, ahora creemos una tarea (task), esto es un bloque de código que agrupa instrucciones o frases. Todo programa necesita al menos una tarea llamada "main". Cuando corres un programa, la tarea main es llamada de manera automática. Añade la tarea main a tu programa:
string textA = "Hola Mundo!";
task main() {  }
La sintaxis de las tareas es:
task nombre() {
 programa
 }
Los paréntesis son usados para pasarle parámetros a la tarea. Discutiremos eso luego, así que por ahora sólo pon () al final del nombre. Las llaves { } indican los límites de la tarea, así que toda instrucción dentro de ellas va a pertener a 'main'. Los espacios entre palabras y líneas son ignorados por el programa así que puedieras escribir:
int                                   string textA             =               "Hola Mundo!"         ;    

Estamos creando un programa que va a mostrar un texto en la pantalla del bloque de NXT. Para hacer eso debemos usar funciones. Las funciones son bloques de código que realizan una tarea determinada.
Para poner texto en la pantalla es recomendable limpiarla primero, si no lo haces, el texto puede quedar debajo de otras cosas de la pantalla. La función ClearScreen() hace eso:
string textA = "Hola Mundo!";
task main() {
ClearScreen();
 }
Nota que si colocas clearscreen(), el programa te va a dar error. Recuerda que se distingue entre mayúsculas y minúsculas en este lenguaje. Ahora que tenemos nuestra pantalla limpia, vamos a añadirle el texto. Para hacer eso vamos a usar la función TextOut(). Esta función necesita 3 parámetros:
TextOut(int coordenada X, int coordenada Y, string Texto)
X e Y son números enteros que representan la posición del texto en la pantalla. El tercer parámetro es lo que vamos a mostrar. Te recomiendo que uses el programa original de Mindstorms NXT para encontrar el X y el Y. Simplemente añade un bloque 'Display', selecciona texto y muévelo a la posición correcta. Ahora mira las coordenadas X Y.
En el programa original de Mindstorms NXT

Perfecto! Vamos a mostrar el texto que está en nuestra variable textA, así que el código debe lucir así:
string textA = "Hola Mundo!";
task main() {
ClearScreen();
TextOut(16, 25, textA);
 }
Si corres el programa ahorita, no verías nada. Eso es porque el programa inicia y termina muy rápido, para arreglar eso, vamos a añadir la función Wait ( time ). Esta función detiene el programa cierta cantidad de milisegundos. Vamos a poner 5 segundos (5000 milisegundos):
string textA = "Hola Mundo!";
task main() {
ClearScreen();
TextOut(16, 25, textA);
Wait(5000);
 }
¡Nuestro programa está listo!. Ahora necesitamos compilarlo. Esto convierte el código en un lenguaje que el bloque de NXT pueda entender, así que tienes que compilar cada programa que hagas ante de descargarlo en el bloque. Enciende tu bloque de NXT y haz clic en el botón de compilar (Compile) en el menú y luego haz clic correr programa (Run Program).
Si sólo quieres descargar el programa en tu brick, haz clic en el botón download
Estos programas hacen lo mismo:
int coorX = 16;
int coorY= 25;
task main() {
ClearScreen();
TextOut(coorX, coorY, "Hola Mundo!");
Wait(5000);
 }
----
int coorX = 4*4;
int coorY= 20+5;
task main() {
ClearScreen();
TextOut(        coorX, coorY, "Hola Mundo!"              )             ;
Wait(5000);
                                                 }
----
int coorX = ((15*2)+2)/2;
int coorY= coorX + 9;
string textB;
int ms= 5000;
task main() {
ClearScreen();
textB  = "Hola Mundo!";
TextOut(coorX, coorY, textB);
Wait(ms);
 }
Juega con el código! Esa es la manera en como se aprenden estas cosas... Bueno, eso es todo por este tutorial.
En el siguiente tutorial vamos a usar motores, sensores, los botones del bloque y mucho más.

Si tienes alguna pregunta sólo coméntala en el post del tutorial en inglés, me encantaría poder ayudarte.