Pamela González Patricio Navarrete Septiembre 11 de 2010 Tercera Clase
Resumen Variables de Salida : Actuadores – OUT_A + OUT_B + OUT_C Instrucciones – On(OUT_X);- OnFwd(OUT_X); – Off(OUT_X);- OnRev(OUT_X); – Fwd(OUT_X);- OnFor(OUT_X, tiempo); – Rev(OUT_X);- Wait(tiempo); Variables de Usuario : Manejo de Datos – Definir: int myvar; – Asignar: myvar = 1; – Aritmética: Suma (+), Diferencia (-), Producto (*), División (/), Módulo (%) – Lógica: Not (!), And (&&), Or (||) – Comparación: Igual (==, !=), Desigual estricto ( ), Desigual inclusivo ( =) – Aleatoriedad: Random(); – Constantes: #define const valor Condicionalidad – if( condición ){ acciones_sí; } else { acciones_no; }
Revisión (Ruteo) #define tg 120 int 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 1Var 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(){} Condición Instrucciones
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 que se realizan mientras se cumple la condición; }
repeat repeat( cantidad ){ instrucciones que se repiten; } 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 (// ó /**/)
Pamela González Patricio Navarrete Septiembre 11 de 2010 Tercera Clase