Décimo Curso de Programación Básica con NQC “Tercera Clase” Cristián A. Arenas Ulloa...

14
Décimo Curso de Programación Básica con NQC “Tercera Clase” www.cursolego.elo.utf sm.cl Cristián A. Arenas Ulloa Septiembre 5 de 2009

Transcript of Décimo Curso de Programación Básica con NQC “Tercera Clase” Cristián A. Arenas Ulloa...

Page 1: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

Décimo Curso de

Programación Básica con NQC

“Tercera Clase”

www.cursolego.elo.utfsm.cl

Cristián A. Arenas Ulloa

Septiembre 5 de 2009

Page 2: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

Resumen

• Variables de Salida : Actuadores

– OUT_A– OUT_B– OUT_C

• Se pueden sumar para ahorrar código: On(OUT_A+OUT_C);

• Instrucciones de Movimiento

– On(salida);

– Off(salida);

– Fwd(salida);

– Rev(salida);– Wait(tiempo); Centesimas de segundo

Page 3: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

Resumen

• Variables de Usuario : Manejo de Datos

– Definir: int nombreVariable;– Asignar: myvar = 1;– Aritmética: Suma (+)

Diferencia (-)Producto (*)División (/) Módulo (%)

• Condicionalidad

– if( condición ){ acciones_sí;

} else {

acciones_no;}

Page 4: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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.

– SetSensor(SENSOR_X, SENSOR_XXX);» SENSOR_LIGHT Mode Percent» SENSOR_TOUCH Mode Bool

Page 7: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

if-else

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

}else{

instrucciones si no se cumple condición;}

Page 10: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

if

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

}

• Caso particular de if-else

Page 11: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

while

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

}

Page 12: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

repeat

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

}

• Caso especial de while

Page 13: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 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: Décimo Curso de Programación Básica con NQC “Tercera Clase”  Cristián A. Arenas Ulloa Septiembre 5 de 2009.

Décimo Curso de

Programación Básica con NQC

“Tercera Clase”

Cristián A. Arenas Ulloa

Septiembre 5 de 2009

www.cursolego.elo.utfsm.cl