noveno curso de programación básica con nqc “tercera clase” josé m. galarce h. abril 18 de...

14
Noveno Curso de Programación Básica con NQC “Tercera Clase” www.cursolego.elo.utf sm.cl José M. Galarce H. Abril 18 de 2009

Upload: trinidad-benitez-molina

Post on 29-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

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

Noveno Curso de

Programación Básica con NQC

“Tercera Clase”

www.cursolego.elo.utfsm.cl

José M. Galarce H.Abril 18 de 2009

Page 2: Noveno Curso de Programación Básica con NQC “Tercera Clase”  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

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

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;}

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

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

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

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á.

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

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

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

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;

}

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

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(){}

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

if-else

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

}else{

instrucciones si no se cumple condición;}

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

if

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

}

• Caso particular de if-else

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

while

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

condición;}

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

repeat

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

veces;}

• Caso especial de while

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

Aplicación

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

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

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

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

Noveno Curso de

Programación Básica con NQC

“Tercera Clase”

www.cursolego.elo.utfsm.cl

José M. Galarce H.Abril 18 de 2009