Diferencia entre revisiones de «Estructuras de Control»
Línea 97: | Línea 97: | ||
En este ejemplo vamos a utilizar un case para calcular el cuadrado de un numero dado en un dominio [0,3] los demás números quedaran iguales. | En este ejemplo vamos a utilizar un case para calcular el cuadrado de un numero dado en un dominio [0,3] los demás números quedaran iguales. | ||
− | switch (x){ | + | switch (x){ |
− | + | ||
case 0: x=0; break; | case 0: x=0; break; | ||
case 1: break; | case 1: break; | ||
Línea 105: | Línea 104: | ||
default: break; | default: break; | ||
} | } | ||
+ | |||
+ | ====ejemplo en Asembler==== | ||
+ | |||
+ | En este ejemplo vamos a utilizar un case para calcular el cuadrado de un numero dado en un dominio [0,3] los demás números quedaran iguales. El numero a utilizar se encuentra en el tope de la Pila. | ||
+ | |||
+ | inicio: | ||
+ | PULA | ||
+ | CMP 0 | ||
+ | BEQ caso0 | ||
+ | CMP 1 | ||
+ | BEQ caso1 | ||
+ | CMP 2 | ||
+ | BEQ caso2 | ||
+ | CMP 3 | ||
+ | BEQ caso3 | ||
+ | BRA default | ||
+ | caso0: | ||
+ | LDA 0 | ||
+ | PSHA | ||
+ | BRA fin | ||
+ | caso1: | ||
+ | BRA fin | ||
+ | caso2: | ||
+ | LDA 4 | ||
+ | PSHA | ||
+ | BRA fin | ||
+ | caso3: | ||
+ | LDA 9 | ||
+ | PSHA | ||
+ | BRA fin | ||
+ | default: | ||
+ | fin: |
Revisión del 19:05 15 nov 2012
Las estructuras de control en los lenguajes de programación, son las que nos permiten alterar el flujo de ejecución del programa. Entre los tipos de estructuras de control existen las condicionales, e iterativas. Las condicionales como su nombre lo implica, bifurcan el código dependiendo de si se cumple o no 1 o mas condiciones. Mientras que las iterativas repiten una parte del código hasta que se cumpla una condición de salida de este ciclo.
Contenido
Condicionales
IF
La estructura de control “if” o “si” en español requiere como mínimo una condición y un bloque de código a ejecutar si la condición es Verdadera, si es falsa el código ignora el bloque de código y continua su flujo.
. . IF(condición) (bloque de código) . .
La estructura "if" puede venir acompañada de la estructura “else” “si no” en español, para lo cual es necesario dos bloques de códigos. Si la condición es Verdadera se realiza el primer bloque de código y si es Falsa se realiza el segundo bloque de código.
. . IF(condición) (bloque de código 1) ELSE (bloque de código 2) . .
ejemplo en C
Si “x” es menor a 1 ”y” es incrementado 1, sino a “y” se le resta 1.
if(x<1){y=y+1;} else {y=y-1;}
ejemplo en Asembler
Si “x” es menor a 1 ”y” es incrementado 1, sino a “y” se le resta 1.Para este ejemplo vamos a decir que el Apuntador a la PILA esta apuntando a “x” y que “y” esta en la siguiente posición de la Pila.
inicio: PULA CMP 1 BGE bloque2 bloque1: PSHA TSX TXA ADD 1 TAX TXS PULA ADD 1 PSHA TSX TXA ADD -1 TAX TXS BRA fin bloque2: PSHA TSX TXA ADD 1 TAX TXS PULA ADD -1 PSHA TSX TXA ADD -1 TAX TXS fin:
Switch Case
El Switch Case es una estructura de control que consta de varios casos, se pregunta en que caso se encuentra y luego se realiza el bloque de código de ese caso. De estar en un caso que no tiene asignado un bloque de código especifico se realiza el bloque de código “default”.
. . Switch(Caso): caso 0: bloque 1 caso 1: bloque 2 . . . caso n: bloque n default: bloque n+1 . .
ejemplo en C
En este ejemplo vamos a utilizar un case para calcular el cuadrado de un numero dado en un dominio [0,3] los demás números quedaran iguales.
switch (x){ case 0: x=0; break; case 1: break; case 2: x=x*2; break; case 3: x=x*3; break; default: break; }
ejemplo en Asembler
En este ejemplo vamos a utilizar un case para calcular el cuadrado de un numero dado en un dominio [0,3] los demás números quedaran iguales. El numero a utilizar se encuentra en el tope de la Pila.
inicio: PULA CMP 0 BEQ caso0 CMP 1 BEQ caso1 CMP 2 BEQ caso2 CMP 3 BEQ caso3 BRA default caso0: LDA 0 PSHA BRA fin caso1: BRA fin caso2: LDA 4 PSHA BRA fin caso3: LDA 9 PSHA BRA fin default: fin:
Contributors
AK, Anairam, Artdamato, Hyma, JCaceres, Leofragachan, LitzaPinto, Minleung, Racuna