La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

#define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C);

Presentaciones similares


Presentación del tema: "#define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C);"— Transcripción de la presentación:

1 #define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C); } Las primeras dos líneas definen constantes que pueden usarse en el programa. Definir constantes es bueno por 2 razones: facilita la lectura del programa, y es más fácil cambiar los valores. Uso de Macros Las macros permiten definir constantes en el programa.

2 ¿Cuáles son dos buenas razones para usar macros para definir constantes? 1. Facilitan la lectura del código. 2. Facilitan el cambio de valores.

3 More Examples ¿Qué representan las siguientes líneas de código? #define MOVE_TIME 100 #define TURN_TIME 85 #define ROT SENSOR_1 #define THRESHOLD 45 MOVE_TIME es igual a 100 pulsos o un segundo. TURN_TIME es igual a 85 pulsos o 0.85 segundo. ROT es igual a SENSOR_1 THRESHOLD es igual a 45. Cada vez que aparecen MOVE_TIME, TURN_TIME, ROT,o THRESHOLD el programa vé los valores 100, 85, SENSOR_1, y 45.

4 Definiendo “código” con macros #define turn_around OnRev(OUT_C);Wait(340);OnFwd(OUT_A+OUT_C); En el ejemplo anterior, hemos dado un nombre a un pequeño trozo de código. El código: OnRev(OUT_C); Wait(340); OnFwd(OUT_A+OUT_C); Ha recibido el nombre turn_around. Cada vez que necesitemos ese código, usaremos turn_around.

5 Acá hay un programa de ejemplo que usa una macro para girar: #define turn_around OnRev(OUT_C);Wait(340);OnFwd(OUT_A+OUT_C); task main() { OnFwd(OUT_A+OUT_C); Wait(100); turn_around; Wait(200); turn_around; Wait(100); turn_around; Off(OUT_A+OUT_C); } La palabra turn_around tras el enunciado #define, equivale al texto a continuación. En adelante escribir turn_around, reemplaza a ese texto.

6 Los enunciados define son muy poderosos. Pueden tener argumentos. Esto hace su código más compacto y legible. #define turn_right(s,t) SetPower(OUT_A+OUT_C,s);OnFwd(OUT_A);OnRev(OUT_C);Wait(t); #define turn_left(s,t) SetPower(OUT_A+OUT_C,s);OnRev(OUT_A);OnFwd(OUT_C);Wait(t); #define forwards(s,t) SetPower(OUT_A+OUT_C,s);OnFwd(OUT_A+OUT_C);Wait(t); #define backwards(s,t) SetPower(OUT_A+OUT_C,s);OnRev(OUT_A+OUT_C);Wait(t); task main() { forwards(3,200); turn_left(7,85); forwards(7,100); backwards(7,200); forwards(7,100); turn_right(7,85); forwards(3,200); Off(OUT_A+OUT_C); } Acá hay 4 macros; forwards, backwards, turn_left y turn_right. Todas tienen dos argumentos: La velocidad (s) y el tiempo (t).


Descargar ppt "#define MOVE_TIME 100 #define TURN_TIME 85 task main() { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C);"

Presentaciones similares


Anuncios Google