Site hosted by Angelfire.com: Build your free website today!

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»      

º            ɻ˻ɻɻ˻ɻÉ˻ɻɻËɻɻɠ ɻ˻ɻɻËÉ»             º      

º            ̼̹ººº»Ì¹Ì¹ºÊºÌ¹º ºººººº  ººÌ¹Ì¹È»ºº              º      

º            Ê ÊÈȼȼÊÈÊÊÊ ÊÊÊȼÊȼ¼È¼  ȹʼÊÊȼÊȼ             º      

ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹      

º É˻ɻ˻»ÉË É»  É»  º                                          º      

º ºÊºººººººº ºº   ¹  º        PROGRAMACION ESTRUCTURADA         º      

º Ê Êȼʼȼȼȼ  ȼ  º                                          º      

ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹      

º                                                               º

º                 EN ESTA LECCION APRENDERAS...                 º      

º                                                               º      

º  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  º      

º  ³                                                         ³  º

º  ³  þ Las distintas clases de estructuras                  ³  º

º  ³    de control ....................................   2  ³  º

º  ³  þ Estructuras desicionales ......................   2  ³  º

º  ³  þ La estructura IF/THEN .........................   2  ³  º

º  ³  þ La sintaxis de la estructura IF/THEN ..........   3  ³  º

º  ³  þ La estructura IF/THEN/ELSE ....................   3  ³  º

º  ³  þ La sintaxis de la estructura IF/THEN ..........   3  ³  º

º  ³  þ La estructura IF/THEN/ELSE extendida ..........   3  ³  º

º  ³  þ La sintaxis de la estructura IF/THEN/ELSE            ³  º

º  ³    extendida .....................................   4  ³  º

º  ³  þ La estructura SELECT-CASE .....................   4  ³  º

º  ³  þ La sintaxis de la estructura SELECT-CASE ......   4  ³  º

º  ³  þ Las estructuras de repetici¢n .................   5  ³  º

º  ³  þ El Bucle DO-LOOP ..............................   5  ³  º

º  ³  þ La sintaxis del Bucle DO-LOOP .................   5  ³  º

º  ³  þ El Bucle DO-UNTIL-LOOP ........................   5  ³  º

º  ³  þ La sintaxis del Bucle DO-UNTIL-LOOP ...........   6  ³  º

º  ³  þ El Bucle DO-LOOP-LOOP .........................   6  ³  º

º  ³  þ La sintaxis del Bucle DO-LOOP-UNTIL ...........   6  ³  º

º  ³  þ El Bucle DO-WHILE-LOOP ........................   6  ³  º

º  ³  þ La sintaxis del Bucle DO-WHILE-LOOP ...........   6  ³  º

º  ³  þ El Bucle DO-LOOP-WHILE ........................   7  ³  º

º  ³  þ La sintaxis del Bucle DO-LOOP-WHILE ...........   7  ³  º

º  ³                                                         ³  º

º  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  º

º                                                               º

ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹      

º É»Ë»Ë É»É»   É»ËÉ» º                                          º      

º ººÌ¹º Ì º     ¹ººº º     ESTRUCTURAS DE CONTROL EN QBASIC     º      

º ȹʼȼȼȼ   ȼÊȼ º                                          º      

ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ         


 

ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»      

º É»Ë»Ë É»É»   É»ËÉ» º                                          º      

º ººÌ¹º Ì º     ¹ººº º     ESTRUCTURAS DE CONTROL EN QBASIC     º      

º ȹʼȼȼȼ   ȼÊȼ º                                          º      

ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ         

 

 

                 CLASES DE ESTRUCTURAS DE CONTROL

                 --------------------------------

 

     En la lecci¢n 306, cuando tratamos el tema de los bloques de

construcci¢n,   es  decir,   las  unidades  estructurales  de  la

programaci¢n  estructurada,   vimos c¢mo el programa  ADIVINA  UN

N£MERO  estaba  formado  precisamente por  estas  unidades.    Su

diagrama de  flujo nos daba la apariencia de  que  dicho programa

estaba  formado de una serie de bloques,  uno  detr s  del  otro,

caus ndonos  la  impresi¢n  de  que el  programa  estaba  escrito

secuencialmente.

      

     Recuerda  c¢mo  fue que usamos dicho programa para descubrir

las siguientes estructuras de control:

 

     þ Bloque de secuencia (21-9)

     þ Bloque de un bucle en ramas (21-8)

     þ Bloque de un bucle sin contador (21-7)

     þ Bloque de un bucle con su contador despu‚s de la prueba

       IF...THEN (21-6)

     þ Bloque de un bucle con su contador antes de la prueba

       IF...THEN  (21-7)

 

     Pues bien,  el Qbasic tiene dichas estructuras de una  forma

m s  definida  y  f ciles  de usar.    Las  podemos  dividir  en:

Estructuras decisionales (en ramas)  y  estructuras de repetici¢n

(en bucles).   

 

                     ESTRUCTURAS DECISIONALES

                     ------------------------

 

     Por medio de estas estructuras la computadora puede examinar

una situaci¢n  y luego tomar una o varias decisiones seg£n sea el

caso. Entre las estructuras decisionales tenemos:  la estructuras

IF/THEN, IF/THEN/ELSE, y SELECT-CASE.  

 

                      LA ESTRUCTURA IF/THEN

                      ---------------------

 

     Esta estructura se usa cuando la computadora tiene que tomar

una  decisi¢n  donde  se le presente una sola  alternativa.    Su

sintaxis es...

 

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            3 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

     IF respuesta = n£mero.pensado THEN PRINT "­ADIVINASTE!"

        ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÙ        ³

                 ÚÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ¿

                 ³ IF condici¢n THEN haz esto  ³

                 ³             ---             ³

               ÚÄÅ IF condici¢n THEN           ³

            ÚÄÄÅÄÅÄ  haz esto                  ³

         ÚÄÄÅÄÄÅÄÅÄEND IF                      ³

         ³  ³  ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

         ³  ³  ³

         ³  ³  ÀIF respuesta = n£mero.pensado THEN

         ³  ÀÄÄÄÄÄ PRINT "­ADIVINASTE!"

         ÀÄÄÄÄÄ END IF

 

     Aqu¡  la estructura IF/THEN examina la condici¢n  presentada

(respueta=n£mero.pensado)   Si la misma  es cierta,  entonces  la

sentencia (PRINT), despu‚s de la palabra THEN, es ejecutada. 

 

                    LA ESTRUCTURA IF/THEN/ELSE

                    --------------------------

 

     Esta estructura se usa cuando la computadora tiene que tomar

una  decisi¢n u otra.   En otras palabras,  si rechaza la primera

alternativa,  la segunda autom ticamente es tomada.   Su sintaxis

es...

     

                             SUB DiSiAdivinaste                

                             '-----------------                

                               CLS                              

  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄ>   IF tu.numero = numero.pensado THEN

  ³ IF condici¢n THEN ÅÄÙÚÄ>     DiQueAdivinaste                 

  ³   haz esto ÄÄÄÄÄÄÄÅÄÄÁÄ>     EXIT SUB                        

  ³ ELSE ÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ>   ELSE                             

  ³   haz esto otro ÄÄÅÄÄÄÄ>     DiQueNoAdivinaste                

  ³ END IF ÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ>   END IF                           

  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ      END SUB                           

 

 

               LA ESTRUCTURA IF/THEN/ELSE EXTENDIDA

              -------------------------------------

 

     Para  hacer  que  la estructura IF/THEN/ELSE  pueda  ofrecer

m£ltiples  alternativas  hay  que  insertar  la  cl usula  ELSEIF

despu‚s de la primera cl usula THEN.  Su sintaxis es... 

 

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            4 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

                                 SUB EscogeOperacion       

    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  '------------------       

    ³ IF condici¢n1 THEN ÄÄÄÄÄÅÄÄ> IF OP$="+" THEN         

    ³   sigue instrucciones1  ÅÄÄ>   LET resultado = n1 + n2

    ³ ELSEIF condici¢n2 THEN  ÅÄÄ> ELSEIF OP$="-" THEN     

    ³   sigue  instrucciones2 ÅÄÄ>   LET resultado = n1 - n2

    ³ ELSEIF condici¢n3 THEN  ÅÄÄ> ELSEIF OP$="*" THEN     

    ³   sigue instrucciones3  ÅÄÄ>   LET resultado = n1 * n2

    ³ ELSEIF condici¢n4 THEN  ÅÄÄ> ELSEIF OP$="/" THEN     

    ³   sigue instrucciones4  ÅÄÄ>   LET resultado = n1 / n2

    ³ ELSE   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄ> ELSE                    

    ³   haz esto  ÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄ>   EXIT SUB              

    ³ END IF ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄ> END IF                  

    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  END SUB                   

 

 

                    LA ESTRUCTURA SELECT-CASE

                    -------------------------

 

     La  estructura IF/THEN/ELSE extendida se asemeja bastante  a

la  estructura  SELECT-CASE  en  el  caso en que las  condiciones

probadas comparan la misma expresi¢n pero con diferentes valores. 

La sintais simple para esta estructura es...

 

                                 SUB EscogeOperacion            

   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿    '------------------            

   ³ SELECT CASE expresion ÄÅÄÄÄÄ> SELECT CASE operacion$       

   ³   CASE expresion1 ÄÄÄÄÄÅÄÄÄÄ>   CASE "+"                   

   ³     sigue instruccion1ÄÅÄÄÄÄ>     LET resultado = n1 + n2   

   ³   CASE expresion2 ÄÄÄÄÄÅÄÄÄÄ>   CASE "-"                   

   ³     sigue instruccion2ÄÅÄÄÄÄ>     LET resultado = n1 - n2   

   ³   CASE expresion3 ÄÄÄÄÄÅÄÄÄÄ>   CASE "*"                   

   ³     sigue instruccion3ÄÅÄÄÄÄ>     LET resultado = n1 * n2   

   ³   CASE expresion4 ÄÄÄÄÄÅÄÄÄÄ>   CASE "/"                   

   ³     sigue instruccion4ÄÅÄÄÄÄ>     LET resultado = n1 / n2   

   ³   CASE ELSE ÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ>   CASE ELSE                  

   ³     haz esto ÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ>     EXIT SUB                 

   ³ END SELECT ÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄ> END SELECT                   

   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ    END SUB                        

 

     La expresi¢n comparada puede ser una expresi¢n en Basic, una

variable, o una funci¢n. 

 

     Como  habr s  notado,  las sintaxis para  estas  estructuras

decisionales  est n  acompa¤adas con un ejemplo para  que  puedas

entenderlas bien.   A  medida que avances en este curso ver s m s

ejemplos de  sus  usos  conjuntamente con  los nuevos ejemplos de 

programas que estudiaremos luego.

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            5 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

                    ESTRUCTURAS DE REPETICI¢N

                    -------------------------

 

     Las  estructuras de repetici¢n llamadas tambi‚n bucles est n

hechas  para  repetir una o m s sentencias.   Ahora  veremos  las

distintas formas y qu‚ significan. 

 

                         EL BUCLE DO-LOOP

                         ----------------

 

     Este  bucle  se repite a medida que el contador llega  a  su

valor m ximo indicado en la cl usula condicional IF/THEN EXIT DO. 

Su sintaxis es:

 

             ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

             ³ DO                                 ³

      ÚÄÄÄÄÄÄ´  Haz esto                          ³

      ³      ³   IF condici¢n salida THEN EXIT DO ³

      ³      ³ LOOP                               ³

      ³      ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

  Ejemplo:   ³ DO                                 ³

      ³      ³  Haz esto                          ³

      ³      ³   IF condici¢n salida THEN         ÃÄÄÄÄÄ¿

      ³      ³    EXIT DO                         ³     ³

      ³      ³   END IF                           ³  Ejemplo:

      ³      ³ LOOP                               ³     ³

     \³/     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ    \³/

   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

   ³ LET pausa = 0                 ³  ³ LET pausa = 0          ³

   ³ DO                            ³  ³ DO                     ³

   ³  LET pausa = pausa + 1        ³  ³  LET pausa = pausa + 1 ³

   ³  IF pausa = 6000 THEN EXIT DO ³  ³   IF pausa = 6000 THEN ³

   ³ LOOP                          ³  ³     EXIT DO            ³

   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ  ³   END IF               ³

                                      ³ LOOP                   ³ 

                                      ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 

 

                      EL BUCLE DO-UNTIL-LOOP

                      ----------------------

 

     Este bucle puede usarse con una condici¢n de salida optativa

EXIT DO.  En otras palabras, puede tener dos salidas: la dada por

la  cl usula DO UNTIL y la brindada por la cl usula EXIT DO.   Su

sint xis es: 

 

 

    

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            6 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

       ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  let p = 0                     

    ÚÄÄÅ DO UNTIL condici¢n salida ÅÄ DO UNTIL p = 10              

    ³  ³   [EXIT DO] ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ   IF C$="OK" THEN EXIT DO      

    ³ÚÄÅ   Haz esto  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ   LET p = p + 1                

  ÚÄÅÅÄÅ LOOP ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ LOOP                           

  ³ ³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                                 

  ³ ³³                                                               

  ³ ÀÅ DO UNTIL pausa = 6000                                  

  ³  ÀÄ  LET pausa = pausa + 1                                     

  ÀÄÄÄ LOOP                                                        

                                                                   

                      EL BUCLE DO-LOOP-UNTIL

                      ----------------------

     Este bucle es semejante al anterior con la £nica diferencia

de  que examina la condici¢n de salida al final del bucle.   Esto

asegura  que  el  bucle  se ejecute por lo menos  una  vez.    Su

sintaxis es:

                                                                       

           ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  let p = 0                        

      ÚÄÄÄÄÅ DO ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ DO                               

      ³ÚÄÄÄÅÄ  Haz esto ÄÄÄÄÄÄÄÄÄÄÅÄ   LET p = p + 1                  

      ³³   ³   [EXIT DO] ÄÄÄÄÄÄÄÄÄÅÄ   IF C$="OK" THEN EXIT DO        

      ³³ÚÄÄÅ LOOP UNTIL condici¢n ÅÄ LOOP UNTIL p = 10                

      ³³³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                                   

      ³³³                                                            

      ³³³                                                              

      ÀÅÅÄ DO                                                        

       ÀÅÄ   LET pausa = pausa + 1                                    

        ÀÄ LOOP UNTIL pausa = 6000                                    

                                                              

             LOS BUCLES DO-WHILE-LOOP y DO-LOOP-WHILE

             ----------------------------------------

 

     Siempre  que  queramos  que una o  varias  instrucciones  se

repitan mientras una condici¢n no sea satisfecha podemos usar las

estructuras de repetici¢n (bucles) cuya sint xis son:

 

                      EL BUCLE DO-WHILE-LOOP

                      ----------------------

       ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  let p = 0                 

    ÚÄÄÅ DO WHILE condici¢n salida ÅÄ DO WHILE p < 11           

    ³  ³   [EXIT DO] ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ   IF C$="OK" THEN EXIT DO 

    ³ÚÄÅ   Haz esto  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ   LET p = p + 1           

  ÚÄÅÅÄÅ LOOP ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ LOOP                      

  ³ ³³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                            

  ³ ³³                                                          

  ³ ÀÅ DO WHILE pausa < 6000                                    

  ³  ÀÄ  LET pausa = pausa + 1                                  

  ÀÄÄÄ LOOP                                                     


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            7 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

                      EL BUCLE DO-LOOP-WHILE

                      ----------------------

 

           ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿  let p=0                    

      ÚÄÄÄÄÅ DO ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄ DO                           

      ³ÚÄÄÄÅÄ  Haz esto ÄÄÄÄÄÄÄÄÄÄÅÄ   LET p = p + 1              

      ³³   ³   [EXIT DO] ÄÄÄÄÄÄÄÄÄÅÄ   IF C$="OK" THEN EXIT DO    

      ³³ÚÄÄÅ LOOP WHILE condici¢n ÅÄ LOOP WHILE p < 11           

      ³³³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ                               

      ³³³                                                         

      ³³³                                                         

      ÀÅÅÄ DO                                                     

       ÀÅÄ   LET pausa = pausa + 1                                

        ÀÄ LOOP WHILE pausa < 6000                                

                                                                   

 

     Este bucle DO WHILE es equivalente al bucle WHILE-WEND...

 

                                           Ejemplo:          

   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

   ³ WHILE condici¢n         ³    ³ WHILE Pausa < 6000      ³

   ³   LET Pausa = Pausa + 1 ³ÄÄÄ>³   LET Pausa = Pausa + 1 ³

   ³ WEND                    ³    ³ WEND                    ³

   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    

     ...que aparece en  BASICA  y GWBASIC y que tambi‚n QBASIC lo

tiene por razones de compatibilidad.  Lo cierto es que este bucle

ya no se acostumbra a usar.

      

     A  continuaci¢n  ver s  el mismo bucle  DO-WHILE,   con  dos

condiciones de salida: la dada por la condici¢n indicada por  una

expresi¢n  Basic  y  la  dada   por   la   estructura condicional

IF/THEN/EXIT DO.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            8 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

       ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿   

ÚÄÄÄÄÄÄÅ DO WHILE condici¢n1  ³  

³ÚÄÄÄÄÄÅÄ  haz esto           ³  

³³   ÚÄÅÄÄ IF condici¢n2 THEN ³

³³ÚÄÄ´ ³     EXIT DO          ³

³³³  ÀÄÅÄÄ END IF             ³

³³³ ÚÄÄÅÄÄ haz esto           ³  

³³³ ³  ³ LOOP                 ³  

³³³ ³  ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ    

³³³ ³

³³³ ³     ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

ÀÅÅÄÅÄÄÄÄ>³ DO WHILE turno < 11                               ³

 ÃÅÄÅÄÄÄÄ>³  LET turno = turno + 1                            ³

 ³³ ³     ³  CLS                                              ³

 ³³ ³     ³  COLOR 10, 0: LOCATE 1, 15: PRINT "LLEVAS";       ³

 ³³ ³     ³  COLOR 13, 0: PRINT turno;                        ³

 ³³ ³     ³  COLOR 10, 0: PRINT "TURNOS DE ";                 ³

 ³³ ³     ³  COLOR 13, 0: PRINT "10"                          ³

 ³³ ³     ³  PRINT : PRINT                                    ³

 ³³ ³     ³  COLOR 12, 0                                      ³

 ³³ ³     ³    LINE INPUT "¨QUE NUMERO PENSE "; numero$       ³

 ÀÅÄÅÄÄÄÄ>³  LET tu.numero = VAL(numero$)                     ³

  ³ ³  ÚÄÄÅ> IF tu.numero = numero.pensado OR turno = 10 THEN ³

  ÀÄÅÄÄ´  ³    EXIT DO                                        ³

    ³  ÀÄÄÅ> END IF                                           ³

    ÀÄÄÄÄÄÅ> DaOrejita                                        ³

          ³ LOOP                                              ³

          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

     Tal  vez  pienses  que es bastante  dif¡cil  retener  en  la

memoria  todas  estas estructuras de control.   El  prop¢sito  de

haberlas  mencionado en esta ocasi¢n es que te  familiarices  con

ellas,   NO QUE TE LAS APRENDAS DE MEMORIA.   La mejor  forma  de

aprenderlas en us ndolas.  Por eso, a  medida que vayamos creando

nuevos programas,  las iremos utilizando.   De esta forma, te las

aprender s sin darte cuenta de ello.

     

     A  continuaci¢n  ver s el listado del  programa  ADIVINA  UN

N£MERO.     Al   leerlo,    notar s  que  hemos   hecho   cambios

significativos,  sobre todo, en las estructuras de control.   Lee

el programa,  pero s¢lo poni‚ndole atenci¢n a dichas estructuras. 

 

 

 

 

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC            9 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

               LISTADO DEL JUEGO ADIVINA UN NUMERO

               -----------------------------------

            CON CAMBIOS EN LAS ESTRUCTURAS DE CONTROL

            -----------------------------------------

 

DECLARE SUB TocaMusica ()

DECLARE SUB Ctr40txt (row!, txt$)

DECLARE SUB Ctr80txt (row!, txt$)

DECLARE SUB DiSiAdivinaste ()

DECLARE SUB DaOrejita ()

DECLARE SUB DiIntentalo ()

DECLARE SUB DiQueAdivinaste ()

DECLARE SUB DiQueNoAdivinaste ()

DECLARE SUB HazPausa ()

DECLARE SUB Despidete ()

DECLARE SUB RepiteJuego ()

DECLARE SUB Adivinalo ()

DECLARE SUB PiensaNumero ()

DECLARE SUB DaInstrucciones ()

DECLARE SUB PresentaPrg ()

 

'Variables compartidas.

  DIM SHARED turno

  DIM SHARED numero.pensado

  DIM SHARED tu.numero

  DIM SHARED numero$

 

REM Juego de Adivina un N£mero

REM --------------------------

CLS : SCREEN 0: WIDTH 80

  PresentaPrg

  DaInstrucciones

  PiensaNumero

  Adivinalo

  DiSiAdivinaste

  RepiteJuego

  Despidete

END

 

SUB Adivinalo

'------------

 CLS : SCREEN 0: WIDTH 40

 DO WHILE turno < 11

  LET turno = turno + 1

  CLS

  COLOR 10, 0: LOCATE 1, 15: PRINT "LLEVAS";

  COLOR 13, 0: PRINT turno;

  COLOR 10, 0: PRINT "TURNOS DE ";

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC           10 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

  COLOR 13, 0: PRINT "10"

  PRINT : PRINT

  COLOR 12, 0: LINE INPUT "¨QUE NUMERO PENSE "; numero$

  LET tu.numero = VAL(numero$)

  IF tu.numero = numero.pensado OR turno = 10 THEN

    EXIT DO

  END IF

  DaOrejita

 LOOP

END SUB

 

'Esta subrutina centraliza el texto cuando

'la pantalla tiene un ancho de 40 chrs.

'

SUB Ctr40txt (row, txt$)

'-----------------------

 LOCATE row, INT(41 - LEN(txt$)) / 2

 PRINT txt$;

END SUB

 

'Esta subrutina centraliza el texto cuando

'la pantalla tiene un ancho de 80 chrs.

'

SUB Ctr80txt (row, txt$)

'-----------------------

 LOCATE row, INT(81 - LEN(txt$)) / 2

 PRINT txt$;

END SUB

 

SUB DaInstrucciones

'------------------

 CLS

 COLOR 12, 0

  Ctr80txt 4, "***  INSTRUCCIONES  ***"

 COLOR 10, 0

  Ctr80txt 7, "LA COMPUTADORA TE PEDIRA "

  Ctr80txt 9, "QUE ADVINES UN NUMERO DEL 1 AL 100."

  Ctr80txt 11, "TIENES DIEZ OPORTUNIDADES"

  Ctr80txt 13, "PARA ADIVINARLO,"

  Ctr80txt 15, "AL CABO DE LAS CUALES"

  Ctr80txt 17, "TE DIRA SI LO ADIVINASTE O NO."

 COLOR 12, 0

  Ctr80txt 20, "PRESIONA ENTER PARA CONTINUAR."

 LET e$ = INPUT$(1)

END SUB

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC           11 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

SUB DaOrejita

'------------

 PRINT

 IF tu.numero < numero.pensado THEN

  'Di que numero es mayor.

    COLOR 13, 0: PRINT "NO, EL NUMERO ES MAYOR QUE";

    COLOR 12, 0: PRINT tu.numero

 ELSE

  'Di que numero es menor.

    COLOR 13, 0: PRINT "NO, EL NUMERO ES MENOR QUE";

    COLOR 12, 0: PRINT tu.numero

 END IF

 PRINT : COLOR 27, 0: PRINT "INTENTALO OTRA VEZ"

 PRINT : PRINT : PRINT : PRINT : PRINT

 COLOR 10, 0: PRINT "PRESIONA ENTER PARA CONTINUAR."

 LET e$ = INPUT$(1)

END SUB

 

SUB Despidete

'------------

 CLS

 COLOR 10, 0: Ctr40txt 5, "ESPERO QUE TE HAYAS DIVERTIDO"

 COLOR 12, 0: Ctr40txt 7, "­HASTA LUEGO!"

END SUB

 

SUB DiQueAdivinaste

'------------------

 COLOR 12, 0

  LOCATE 4, 1: PRINT "­CARAMBA, ADIVINASTE!"

 COLOR 13, 0

  LOCATE 7, 3: PRINT "EL NUMERO ES"; numero.pensado

  LOCATE 9, 3: PRINT "LO ADIVINASTE EN"; turno; "TURNOS DE"; 10

  LOCATE 11, 3: PRINT "O EN UN"; INT((turno / 10) * 100);

  PRINT "% "; "DE LOS TURNOS"

END SUB

 

SUB DiQueNoAdivinaste

'--------------------

 COLOR 11, 0

  LOCATE 4, 1: PRINT "LO SIENTO, NO LO ADIVINASTE."

 COLOR 15, 0

  LOCATE 6, 1: PRINT "EL NUMERO PENSADO ES ";

 COLOR 12, 0

  PRINT numero.pensado

END SUB

 

 

 

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC           12 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

SUB DiSiAdivinaste

'-----------------

 CLS

 IF tu.numero = numero.pensado THEN

  DiQueAdivinaste

  EXIT SUB

 ELSE

  DiQueNoAdivinaste

 END IF

END SUB

 

SUB HazPausa

'-----------

DO

  LET pausa = pausa + 1

  IF pausa = 6000 THEN EXIT DO

LOOP

 

'DO UNTIL pausa = 6000

'  LET pausa = pausa + 1

'LOOP

 

'DO

'  LET pausa = pausa + 1

'  LOOP UNTIL pausa = 6000

 

'DO WHILE pausa < 6000

'  LET pausa = pausa + 1

'LOOP

 

'DO

'  LET pausa = pausa + 1

'  LOOP WHILE pausa < 6000

 

'WHILE Pausa < 6000

'  LET Pausa = Pausa + 1

'WEND

 

END SUB

 

SUB PiensaNumero

'---------------

 CLS : SCREEN 0: WIDTH 40

 RANDOMIZE TIMER

 LET numero.pensado = INT(RND * 100) + 1

 COLOR 11, 0

  Ctr40txt 3, "ESTOY PENSANDO EN UN"

  Ctr40txt 5, "NUMERO DEL 1 AL 100."

 


 

ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿

³ QB310           ESTRUCTURAS DE CONTROL EN QBASIC           13 ³

ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

 

 

 COLOR 13, 0

  Ctr40txt 7, "POR FAVOR, ESPERA UN POCO..."

  HazPausa

 COLOR 10, 0

  Ctr40txt 10, "­YA LO PENSE!"

 COLOR 11, 0

  Ctr40txt 13, "PRESIONA ENTER PARA CONTINUAR."

  LET e$ = INPUT$(1)

END SUB

 

SUB PresentaPrg

'--------------

 CLS

 COLOR 12, 0

  Ctr80txt 4, "QSoft PRESENTA"

 COLOR 11, 0

  Ctr80txt 6, "EL JUEGO DE ADIVINA UN NUMERO"

 COLOR 2, 0

  Ctr80txt 8, "Un programa escrito en QBasic"

  Ctr80txt 9, "por Reinaldo Acevedo"

  Ctr80txt 10, "para las computadoras IBM y compatibles."

 COLOR 12, 0

  Ctr80txt 12, "DERECHOS RESERVADOS 1995"

 COLOR 3, 0

  Ctr80txt 17, "PRESIONA ENTER PARA CONTINUAR."

 TocaMusica

END SUB

 

SUB RepiteJuego

'--------------

 COLOR 10, 0

 LOCATE 14, 1: PRINT STRING$(40, " ")

 LOCATE 14, 1: LINE INPUT "QUIERES JUGAR OTRA VEZ (S/N)"; decision$

 IF decision$ = "S" OR decision$ = "s" THEN

   RUN 'Juego otra vez.

 ELSE

   EXIT SUB

 END IF

END SUB

 

SUB TocaMusica

'-------------

 RANDOMIZE TIMER

 DO

   SOUND RND * 1000 + 37, 2

   K$ = INKEY$

 LOOP UNTIL K$ <> ""

END SUB

 

Arriba     Contenido