Noveno Curso de Programación Básica con NQC “Tercera Clase” José M. Galarce H. Abril 18 de...

Post on 29-Jan-2016

218 views 0 download

Transcript of Noveno Curso de Programación Básica con NQC “Tercera Clase” José M. Galarce H. Abril 18 de...

Noveno Curso de

Programación Básica con NQC

“Tercera Clase”

www.cursolego.elo.utfsm.cl

José M. Galarce H.Abril 18 de 2009

Resumen

• Variables de Salida : Actuadores

– OUT_A + OUT_B + OUT_C

• Instrucciones de Movimiento

– On(OUT_X);– Off(OUT_X);– Fwd(OUT_X);– Rev(OUT_X);– Wait(tiempo); Centesimas de segundo

• Síntesis de Instrucciones de Movimiento

– OnFwd(OUT_X);– OnRev(OUT_X);– OnFor(OUT_X, tiempo); Centesimas de segundo

Resumen

• Variables de Usuario : Manejo de Datos

– Definir: int myvar; - Comparación: Igual (==, !=)– Asignar: myvar = 1; Desigual estricto (<,

>)– Aritmética: Suma (+) Desigual

Inclusivo (<=, >=)Diferencia (-) - Logica: Not (!)Producto (*) And (&&)División (/) Or (||)Módulo (%) - Aleatoriedad: Random();

– Constantes: #define const valor

• Condicionalidad

– if( condición ){ acciones_sí;

} else {

acciones_no;}

Revisión (Ruteo)#define tg 120int i, j;int k = 12;task main(){

i = tg / k;j = tg % k;if(i < j){

k = i * j * k;}else{

k = k – i + j;}i = i * k – k;if(i && j){

if(i != k){i = k;

}}else{

if(k || j){j = i / k;

}}k = k + 1;

}

Var 1

Var 2

… Var n

t0

t1

t2

t3

tn

Variables de Entrada del RCX

• Los “Sensores” son recibidos a través de los 3 puertos de “Entrada” del RCX.

• Cada entrada está definida por un nombre de sistema:

– SENSOR_1– SENSOR_2– SENSOR_3

• De acuerdo al programa cargado en el RCX, se puede conocer el estado de los sensores a través del valor de sus variables asociadas y de ésta manera determinar las acciones a tomar a medida que transcurre el programa.

• El kit con el que se trabaja en las actividades prácticas cuenta con 2 sensores:

– Sensor de Luz (2)– Sensor de Tacto (2)

• Por ejemplo, si el sensor de tacto se encuentra conectado a la entrada SENSOR_1, el valor de ésta variable será “1” si el sensor está presionado o “0” si no lo está.

Configuración de Sensores

• En lenguaje NQC se encuentran implementadas funciones que permiten ajustar los parámetros de funcionamiento de los dispositivos de entrada para adecuarlos al tipo de sensor que se tenga conectado.

• Las siguientes instrucciones permiten determinar el tipo de sensor y el modo de representación de datos.

• Primero determinando el tipo:– SetSensorType(SENSOR_X, SENSOR_TYPE_XXX);

» SENSOR_TYPE_LIGHT» SENSOR_TYPE_TOUCH

• Y luego determinando el modo:– SetSensorMode(SENSOR_X, SENSOR_MODE_XXX);

» SENSOR_MODE_PERCENT» SENSOR_MODE_BOOL» SENSOR_MODE_RAW

• O sólo señalando el sensor (tipo y modo por defecto):– SetSensor(SENSOR_X, SENSOR_XXX);

» SENSOR_LIGHT Mode Percent» SENSOR_TOUCH Mode Bool

Ciclos de control Básicos

• Un ciclo de control, como lo indica su nombre, es una estructura que se repite condicionalmente.

• Se realiza mientras se cumple una condición:

– while( condición ){instrucciones;

}

• O se puede realizar una cantidad específica de veces:

– repeat( cantidad ){instrucciones;

}

Diagramas de Flujo

• De acuerdo a las nuevas estructuras de control, se establecen nuevas formas de diagramas de flujo, que enriquecen las alternativas de programas posibles.

• Estructuras de control vistas:

– if(){}else{}– repeat(){}– while(){}

if-else

• if( condición ){instrucciones si se cumple condición;

}else{

instrucciones si no se cumple condición;}

if

• if( condición ){instrucciones si se cumple condición;

}

• Caso particular de if-else

while

• while( condición ){instrucciones mientras se cumple la

condición;}

repeat

• repeat( cantidad ){instrucciones que se repiten cantidad de

veces;}

• Caso especial de while

Aplicación

• Recuerdo : Condicionalidad– if-else (ejemplo empleando aleatoriedad)

• Ciclos:– repeat (ejemplo determinístico)– while (ejemplo dependiente del medio)

• Formato:– Indentación (TAB)– Comentarios (// ó /**/)

Noveno Curso de

Programación Básica con NQC

“Tercera Clase”

www.cursolego.elo.utfsm.cl

José M. Galarce H.Abril 18 de 2009