NQC Lazos, Enunciados Condicionales, Lógica Booleana.

Slides:



Advertisements
Presentaciones similares
Curso de java básico (scjp)
Advertisements

Lección 3 Creando un SubVI
Estructuras de Decisión I IF - THEN - ELSE
Programación Básica con NQC Pedro F. Toledo – Patricio Castillo 18/08/2006.
Programación Básica con NQC Pedro F. Toledo Universidad Técnica Federico Santa María Departamento de Electrónica.
Te presento a Python Qué es Python? Lenguaje interpretado
Fundamentos de Programación
PHP-MYSQL OPERADORES EN PHP
Estructuras de control
Seminario de Actualización - Excel Avanzado y Macros
Estructuras de Control
FUNCIONES EN C.
Informática II Prof. Dr. Gustavo Patiño MJ
Estructuras de control
Quinta Clase Patricio A. Navarrete Junio 3 de 2011.
Estructuras de Repetición
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.
SubRutinas Se pueden usar subrutinas cuando se necesita el mismo trozo de código en distintos lugares del programa. En esos casos se escribe una subrutina.
Programación Básica con NQC Patricio A. Castillo 03/05/2008.
Ingeniero Anyelo Quintero
Estructuras de Control de Repetición
Tercera Clase Patricio A. Navarrete Septiembre 10 de 2011.
Patricio A. Navarrete Junio 17 de 2011
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 08/03/2007.
Décimo Curso de Programación Básica con NQC “Tercera Clase” Cristián A. Arenas Ulloa Septiembre 5 de 2009.
Pamela González Patricio Navarrete Septiembre 11 de 2010 Tercera Clase.
Segunda Clase Pamela R. González Patricio A. Navarrete Mayo 8 de 2011.
ESTRUCTURAS DO-WHILE Y FOR.
WHILE Estructuras Repetitivas
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Else Elseif en PHP Programación en Internet II. Else Elseif en PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la.
Programación Básica con NQC Patricio A. Castillo Pizarro 25/08/2007.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Seguir las líneas de guía Presentación introductoria.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Teoría – Alejandro Gonzalez
Lección 5: Tareas Múltiples & Relojes Soluciones de Programación RoboLab a NQC.
Décimo Curso de Programación Básica con NQC “Quinta Clase” Cristián A. Arenas Ulloa Septiembre 26 de 2009.
Tareas NQC puede tener hasta 10 tareas, una de las cuales siempre será main. Las tareas se ejecutan usando el comando start. Las tareas corren simultaneamente.
José M. Galarce Junio 19 de 2010 Quinta Clase. Estructuras de Control Complejas Se basan en las estructuras de control básicas: if(){}else{}while(){}
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/08/2006.
Noveno Curso de Programación Básica con NQC “Tercera Clase” José M. Galarce H. Abril 18 de 2009.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.
Control de Flujo.
Lección 2: Niveles de Potencia, Repeticiones, y Lazos While. Soluciones de Programación: De RoboLab a NQC.
Lección 3: Estados de Espera “Espere Por” Basados en Sensores Soluciones de Programación.
Conceptos Básicos de Programación. Put a pin into input mode Loop Check if the pin is 0 or 5 volts If the pin has 5 volts Do something End if End Loop.
Programación Básica con NQC Patricio A. Castillo 10/05/2008.
COMPUTO III Ing. Jimmy Ojeda Arnica.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 18/05/2007.
Patricio A. Castillo José M. Galarce Agosto 23 de 2008 Segunda Clase.
#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);
Programación Básica con NQC Patricio A. Castillo 12/04/2008.
INTRODUCCIÓN AL LENGUAJE C++. Instrucciones Temas.
Lección 3: Sensores y Untils Soluciones de Programación RoboLab a NQC
Lección 6: Variables Soluciones de Programación RoboLab a NQC
Programación Básica con “NQC” Pedro F. Toledo Universidad Técnica Federico Santa María Departamento de Electrónica.
Estructuras de Control en Visual Basic.net
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
ESTRUCTURAS REPETITIVAS
LENGUAJE “C” Programación.
Introducción al lenguaje PROCESSING para ARDUINO
Noveno Curso de Programación Básica con NQC “Quinta Clase” José M. Galarce H. Mayo 15 de 2009.
Estructuras de Decisión
 Las funciones son un conjunto de instrucciones que realizan una tarea específica. En general toman unos valores de entrada, llamados parámetros y proporcionan.
Décimo Curso de Programación Básica con NQC “Segunda Clase” Cristián Arenas Ulloa Agosto 29 de 2009.
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
1 Clase 6: control (1ª parte) iic1102 – introducción a la programación.
 Do- While y Do- Until Las instrucciones Do-while y Do-until permiten repetir un bloque de código mientras cierta condición sea True o hasta que cierta.
Ciclos Condicionales Dinámicos Luis Beato National University College.
Transcripción de la presentación:

NQC Lazos, Enunciados Condicionales, Lógica Booleana

Lazos Comando Repeat Comando While(true) El enunciado Do

Comando Repeat repeat(número) //número de repetición { La Función; } El número entre paréntesis en el comando repeat, indica el número de veces a repetir el argumento, colocado a continuación entre corchetes, como los postulados en una tarea. Note que, en el ejemplo anterior, usamos indentación sobre los argumentos. Esto no es necesario pero facilita la lectura del programa.

/* 10 Cuadrados, por Robin Shoop, este programa hace al robot girar 10 veces en un cuadrado */ #define MOVE_TIME 100 // Tiempo de movimiento en línea recta #define TURN_TIME 85 // Tiempo de giro en 90 grados task main() { repeat(10) // Haga 10 cuadrados { repeat(4) { OnFwd(OUT_A+OUT_C); Wait(MOVE_TIME); OnRev(OUT_C); Wait(TURN_TIME); } Off(OUT_A+OUT_C); // Ahora, apague los motores

Lazos While task main() { while(condición) { Función; } Mientras la condición entre paréntesis sea cierta complete la función o múltiples funciones al interior de los corchetes. El postulado WHILE ejecuta el código puesto a continuación entre corchetes, en tanto la condición entre paréntesis sea cierta. La palabra especial true es siempre cierta, y dá lugar a que el enunciado entre corchetes se repita para siempre.

Enunciado Condicional If/Else A veces se desea ejecutar un trozo de un programa sólo en ciertas situaciones. En este caso se usa el postulado if.

while(true) { if (Condición 1) { Función 1; } else (Condición 2) { Función 2; } (Sensor_1 < 40) (Sensor_2 <=47) On(OUT_A); Off(OUT_C); On(OUT_C); Off(OUT_A); (Sensor_2>47) Sensor de Rotación Sensor de Luz

Note que el enunciado If tiene dos partes. La función 1 se ejecuta SI la condición 1 se satisface. SINO, la función 2 se ejecuta cuando la condición 2 se satisface. La palabra clave ELSE y la función 2, son opcionales. Se pueden pasar por alto si no hay nada que hacer cuando la condición 1 no es satisfecha.

El Enunciado DO do { enunciados; } while (condición); Los enunciados entre los corchetes se ejecutan mientras la condición sea cierta. La condición tiene la misma forma que en el enunciado if. Hay otra estructura de control, el enunciado DO. Esta es la forma de usarlo:

Comparación de Valores Hay varias formas de comparar valores para verificar si son ciertos o no. Acá se presentan las más importantes: ==igual a <menor que <=menor o igual a >mayor que >=mayor o igual a !=distinto a

¿Por qué usar == en lugar de =? Para distinguir del enunciado que coloca un valor en una variable. task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); OnFwd(OUT_A+OUT_C); while (true) { if (SENSOR_1 == 1) { OnRev(OUT_A+OUT_C); Wait(30); OnFwd(OUT_A); Wait(30); OnFwd(OUT_A+OUT_C); } It initializes the sensor. This should be one of the first lines in programs using sensors. ¿Qué hace SetSensor? Inicializa el sensor. Debería ser la primera línea al programar con sensores.

#define THRESHOLD 40 task main() { SetSensor(SENSOR_2,SENSOR_LIGHT); OnFwd(OUT_A+OUT_C); while (true) { if (SENSOR_2 > THRESHOLD) { OnRev(OUT_C); until (SENSOR_2 <= THRESHOLD); OnFwd(OUT_A+OUT_C); } //inicia puerto 2 para ser un sensor de luz // Si el sensor vé blanco // hasta que el sensor vé oscuro // avanza y repite el lazo El comando until es útil al usar sensores. // el motor c retrocede

task main() { SetSensor(SENSOR_1,SENSOR_ROTATION); ClearSensor(SENSOR_1); SetSensor(SENSOR_3,SENSOR_ROTATION); ClearSensor(SENSOR_3); while (true) { if (SENSOR_1 < SENSOR_3) {OnFwd(OUT_A); Float(OUT_C);} else if (SENSOR_1 > SENSOR_3) {OnFwd(OUT_C); Float(OUT_A);} else {OnFwd(OUT_A+OUT_C);} } Usando Sensores de Rotación

Una aplicación standard es un movimiento en línea recta; ambos motores se deberían mover a la par. PERO, los motores NO son iguales. Al usar los sensores de rotación se puede ver la diferencia en velocidad. Puede detener temporalmente un motor (mejor usar Float() ) hasta que ambos sensores indican lo mismo. El programa previo hace eso. Simplemente, permite al robot viajar en una línea recta. Para usarlo, conecte los dos sensores de rotación a las dos ruedas. Conecte los sensores a los puertos 1 y3.