noveno curso de programación básica con nqc “tercera clase” josé m. galarce h. abril 18 de...
TRANSCRIPT
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