Sunteți pe pagina 1din 5

OPERADORES DE DESPLAZAMIENTO

Hay dos operadores de desplazamiento de bits en mikroBasic. Son el operador << que realiza un desplazamiento de bits a la izquierda y el operador >> que realiza un desplazamiento de bits a la derecha. Los operadores de desplazamiento de bits tienen dos operandos cada uno. El operando izquierdo es un objeto que se desplaza, mientras que el derecho indica el nmero de posiciones a mover el objeto. Los dos operandos deben ser de tipo entero. El operando derecho debe ser el valor positivo. Al desplazar a la izquierda los bits que salen por la izquierda se pierden, mientras que los nuevos bits a la derecha se rellenan con ceros. Por lo tanto, el desplazamiento del operando que carece de signo a la izquierda por n posiciones equivale a multiplicarlo por 2 si todos los bits descartados son ceros. Lo mismo se puede aplicar a los operandos con signo si todos los bits descartados son iguales que el signo de bit.
n

dim num as word ' declarar la variable num como word num = 1 ' asignarle el valor decimal 1 (00000000 00000001 bin.) num << 5 ' equivale a 32 (00000000 00100000 bin.)
Al desplazar a la derecha los bits que salen por la derecha se pierden, mientras que los nuevos bits a la izquierda se rellenan con ceros (en caso del operando sin signo) o con el signo de bit (en caso del operando con signo). El desplazamiento del operando a la derecha por n posiciones equivale a dividirlo por 2 .
n

dim num as integer ' declarar variable num como signed integer num = 0xFF56 'asignarle el valor hex FF56 (11111111 01010110 bin.) num >> 4 ' equivale a 0xFFF5 (11111111 11110101 bin.)

SENTENCIAS CONDICIONALES
Las condiciones son ingredientes comunes de un programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo de validez de una expresin. En otras palabras, Si se cumple la condicin (...), se debe hacer (...). De lo contrario, se debe hacer (...). Una sentencia condicional puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.

SENTENCIA CONDICIONAL IF
La sintaxis en una forma simple de la sentencia if es:

if expresin then operaciones end if


Si el resultado de la expresin es verdadero (distinto de 0), las operaciones se realizan y el programa contina con la ejecucin. Si el resultado de la expresin es falso (0), las operaciones no se realizan y el programa contina inmediatamente con la ejecucin.

El operador if se puede utilizar en combinacin con el operador else:

if expresin then operaciones1 else other operaciones2 end if


Si el resultado de la expresin es verdadero (distinto de 0), las operaciones1 se realizan. De lo contrario, las operaciones2 se realizan. Despus de realizar estas operaciones, el programa contina con la ejecucin.

SENTENCIAS IF ANIDADAS
La sentencia if anidada necesita una atencin adicional. Es una sentencia utilizada dentro de otra sentencia if. Siguiendo la regla, se descomponen empezando por la sentencia if ms anidada, mientras que cada sentencia else se enlaza a la ms cercana sentencia if disponible a la izquierda.

SENTENCIA CASE STATEMENT


La sentencia select case es una sentencia condicional de ramificacin mltiple. Consiste en una expresin (condicin) selector y una lista de los valores posibles de la expresin. La sntaxis de la sentencia select case es la siguiente:

El especificador selector es una expresin evaluada como un valor entero.

Los especificadores value_1...value_n representan los valores posibles del selector. Pueden ser literales, constantes o expresiones de constantes. Los especificadores statements_1 ...statements_n pueden ser cualquier La clusula case else es opcional. Primero se evala el valor de la expresin selector. Despus se compara con todos los valores disponibles. Si los valores son iguales (selector y uno de valores), se ejecutarn las sentencias que siguen a los valores iguales y termina la sentencia select case. En el caso de que coincidan los valores mltiples se ejecutarn las sentencia.

sentencias que siguen a los primeros valores iguales. Si no coincide ningn valor con el selector, se ejecutarn las sentencias_por_defecto en la clusula case else (si hay alguna).

Ejemplo de la sentencia select case:

select case decimal_digit 'El valor del dgito decimal se est comprobando case 0 mask = %01111110 'Visualizar "0" case 1 mask = %00110000 'Visualizar "1" case 2 mask = %01101101 case 3 mask = %01111001 case 4 mask = %00110011 case 5 mask = %01011011 case 6 mask = %01011111 case 7 mask = %01110000 case 8 mask = %01111111 case 9 mask = %01111011 end select

Esta rutina de programa convierte los dgitos decimales en la combinacin binaria apropiada en el puerto para visualizarlos en el LED.

BUCLES DE PROGRAMA

Algunas instrucciones (operaciones) deben ejecutarse ms de una vez en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuntas veces se ejecutar, es decir cunto tiempo el programa se quedar en el bucle, depende de las condiciones de salir del bucle.

BUCLE WHILE
El bucle while aparece cuando el nmero de iteraciones no est especificado. Es necesario comprobar la condicin de iteracin antes de ejecutar un bucle. En otras palabras, el bucle while se ejecuta una vez cumplidas todas las condiciones necesarias para su ejecucin. La sintaxis del bucle while se parece a lo siguiente:

while expresin sentencias wend


El especificador sentencias representa un grupo de sentencias que se ejecutan repetidamente hasta que el valor del especificador expresin que representa una expresin siga siendo verdadero. En otras palabras, el programa se queda en el bucle hasta que la expresin llegue a ser falsa. El valor de la expresin se comprueba antes de que se ejecute la siguiente iteracin. Si el valor de la expresin es falso antes de entrar el bucle, no se ejecuta ninguna iteracin, esto es las sentencias no se ejecutarn nunca. El programa contina con la ejecucin desde el fin del bucle while (desde las instrucciones que siguen a la instruccin wend). Un tipo especial del bucle de programa es un bucle infinito. Se forma si la condicin para salir del bucle sigue sin cambios dentro del bucle. La ejecucin es simple en este caso ya que el resultado es siempre verdadero (1 siempre ser diferente de 0), lo que significa que el programa se queda en el bucle:

while 1 ' Se puede escribir verdadero en vez de 1 ... ' Las expresiones se ejecutarn repetidamente (bucle infinito) ... wend
BUCLE FOR
El bucle for se utiliza cuando el nmero de iteraciones est especificado. La sintaxis del bucle for es la siguiente:

for contador = valor_inicial to valor_final [step valor_de_paso] sentencias next contador


La variable contador se incrementa por el valor de paso con cada iteracin de bucle.

El parmetro valor_de_paso es un valor entero opcional, que es igual a 1 si es omitido. Antes de ejecutar la primera iteracin el contador se pone al valor_inicial y se incrementa hasta llegar o exceder al valor_ final. Con

cada iteracin se ejecutan las sentencias. Las expresiones valor_inicial y valor_final deben ser compatibles con el contador. El especificador sentencia puede ser cualquier sentencia que no afecta al valor del contador. El parmetro valor_de_paso puede ser negativo, lo que permite contar atrs.

for k=1 to 5 ' La variable k se incrementa cinco veces (de 1 a 5) y operation ' cada vez sigue ejecutndose la "operacin" ... next k
Un conjunto de instrucciones (operacin) se ejecutar cinco veces. Despus, al comprobar que k<5 sea falsa (despus de 5 iteraciones k=5) y el programa saldr del bucle for.

BUCLE DO
La sentencia do se utiliza cuando el nmero de iteraciones no est especificado. El bucle se ejecuta repetidamente hasta que la expresin siga siendo verdadero. La sintaxis del bucle do es la siguiente:

do sentencias loop until expresin


En este caso, el especificador sentencias representa un grupo de sentencias que se ejecutarn hasta que la expresin siga siendo verdadera. Las condiciones del bucle se comprueban al final del bucle, as que el bucle se ejecuta al menos una vez, sin reparar en si la condicin es verdadera o falsa. En el siguiente ejemplo, el programa se queda en el bucle do hasta que la variable a alcance 1E06 (un milln de iteraciones).

a = 0 ' Establecer el valor inicial do a = a+1 ' Operacin en marcha loop until a <= 1E06 ' Comprobar la condicin

S-ar putea să vă placă și