Diferencia entre revisiones de «Estructuras de Control»

De Wikitronica
Saltar a: navegación, buscar
(While)
Línea 161: Línea 161:
 
  .
 
  .
 
  .
 
  .
 +
 +
====ejemplo en C====
 +
 +
En este ejemplo se calcula la factorial de un número “z” y se guarda en “x”.
 +
 +
.
 +
.
 +
x=1;
 +
while(z>0){
 +
x=x*z;
 +
z=z-1;
 +
}
 +
.
 +
.
 +
 +
====ejemplo en Assembler====

Revisión del 19:38 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, iterativas, e incondicionales. 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.


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:
       PSHA
       BRA fin
caso2: 
       LDA 4
       PSHA 
       BRA fin
caso3: 
       LDA 9
       PSHA
       BRA fin
default:
       PSHA
fin:

Iterativas

While

La estructura de control While “mientras” en español va a realizar un bloque de código infinitas veces hasta que la condición dentro del while sea falsa, luego el codigo continua su flujo normal. Al usar esta estructura se recomienda que sea posible que la variable utilizada en la condición sea alterada dentro del bloque de código, de manera tal de que sea posible en alguna iteración salirse del ciclo, sino se crea un ciclo infinito y el código se estanca.

.
.
WHILE(Condición)
       bloque de código
.
.

Existe una variante del While que es el DO While, “haz mientras”, es exactamente igual al while con la única diferencia que la condición se pregunta al finalizar el bloque de código y no antes. Por lo tanto el bloque se ejecuta al menos una sola vez.

.
.
DO 
       bloque de código 
WHILE(Condición)
.
.

ejemplo en C

En este ejemplo se calcula la factorial de un número “z” y se guarda en “x”.

.
.
x=1;
while(z>0){
x=x*z;
z=z-1; 
}
.
.

ejemplo en Assembler