<< Chapter < Page Chapter >> Page >

While

La sentencia de repetición while ya se ha descrito brevemente en la primera parte de este curso. Se trata de una sentencia que permite ejecutar de forma repetida el código que se encuentra definido en su interior mientras se cumpla la condición de permanencia o de ejecución de esta sentencia. La condición de permanencia es un elemento de tipo bit, es decir, de tipo booleano, y para que la sentencia while ejecute el código que se encuentra en su interior, el valor del elemento booleano de permanencia ha de ser de false (falso). En el momento en que este elemento adquiera el valor true (verdadero), la condición de permanencia desaparece y el ciclo while deja de ejecutarse. Se dice que se sale del bucle while , con lo que deja de ejecutarse el código que se encuantra en su interior.

Normalmente, la condición de permanencia suele ser el resultado de una operación lógica, o bien, un pulsador de tipo STOP . Otro elemento que contiene la sentencia while es elíndice i . Este elemento indica el numero de veces que se ha ejecutado el código que se encuentra en el interior de la sentencia.

Un elemento que se suele utilizar mucho a la hora de comprobar el funcionamiento en tiempo de ejecución es el temporizador Wait (ms) . Este objeto se encuentra en Functions/Programming/Timing y lo que hace es insertar un retardo temporal definido en milisegundos (ms) fijado en su entrada (lado izquierdo). El ejemplo que se muestra en , muestra la versión del ejercicio anterior, , pero con una sentencia externa de tipo while , donde se ha insertado un retardo un retardo de 1 segundo en la ejecución del ciclo for interno.

Nodos de realimentaciÓN y registros de desplazamiento

Los nodos de realimentación y registros de desplazamiento son objetos que están relacionados con las sentencias de repetición. Se trata de elementos que se utilizan en módulos de código donde algún o algunos valores pasados son utilizados en el cálculo actual. P.e., si queremos obtener el valor actual de un parámetro donde para obtenerlo hace falta sumar un 2 al valor anterior del mismo, es decir y=y+2 ( léase y_actual= y_anterior+2 ), entonces es necesario utilizar un nodo de realimentación o si no un registro de desplazamiento, tal y como se ve en la derecha.

Para introducir un nodo de realimentación en el diagrama izquierda, se inserta un objeto Feedback Node desde Functions/Programming/Structure , cuya salida se conecta con la otra entrada del sumador, y la salida deéste con la entrada del nuevo objeto. A acontinuación, clickando con el botón derecho del ratón sobre el nuevo objeto, se ejecuta Move Initializer One Loop Out , con lo que el elemento que permite insertar el valor inicial del valor anterior, se desplaza a la sentencia repetitiva, donde se le asigna un valor inicial, en este caso 3.

Para el caso del registro de desplazamiento, también se parte del diagrama de izquierda del caso anterior, solo que ahora nos ubicamos con el ratón en la parte derecha de la sentencia for , justo en el límite, y clickando con el botón derecho ejecutamos Add Shift Register . Seguidamente aparecen dos flechas, , donde la de la izquierda permite asignar el valor inicial del valor anterior, igual que en caso anterior, y es conectada a la otra entrada del sumador. En cuanto a la flecha de la derecha, la salida del sumador se conecta a ella.

Cuando la ecuación a implementar tiene varios valores anteriores, p.e., el valor anterior y su anterior, y(k-1) e y(k-2) , respectivamente, siendo el valor actual y(k) , entonces hay que añadir más elementos a la izquierda de la sentencia for , clicando sobre la flecha que se encuentra ahíy ejecutando Add Element . Cada nuevo elemento insertado es anterior al anterior y se puede inicializar de forma individual. P.e., el siguiente diagrama, , representa a la ecuación en diferencias y(k)=y(k-1)+2+3*y(k-2) .

Ejercicios propuestos

Desarrollar un instrumento virtual que proporcione el valor de una de las cuatro operaciones aritméticas con dos operandos, según el valor del control Operación (si es 0, suma, si es 1, resta, si es 2, producto, y si es 3, división). La aplicación dispondráde un pulsador STOP para que deje de ejecutarse.

Realiza un instrumento virtual que genere las primeras 10 coordenadas y, u ordenadas, de una recta del plano Cartesiano, cuya ecuación es y=m x + d , siendo m la pendiente positiva, d el origen, positivo o negativo, y x la ordenada abcisa positiva. Utiliza la sentencia for.

Construye un VI que genere X números aleatorios entre 0 y 7 con la función Random Number . X estácondicionado al primer número generado fuera del rango pedido.

Construye un VI que genere X números aleatorios entre 4 y 8 con la función Random Number . X estácondicionado al primer número generado fuera del rango pedido.

Implementar la ecuación en diferencias y(k)=[4–3*y(k-1)+ 53*y(k-2)-34*y(t-3)]/7 , siendo los valores iniciales los siguientes: y(k-1)in= -2; y(k-2)in= 6.79; y(k-3)in= 12,09 ;

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Primeros pasos con labview. OpenStax CNX. Oct 29, 2008 Download for free at http://cnx.org/content/col10592/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Primeros pasos con labview' conversation and receive update notifications?

Ask