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

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

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

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

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

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

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

º ºÊºººººººº ºº  ɼ  º          LO BASICO DEL BASIC             º      

º Ê Êȼʼȼȼȼ  ȼ  º                                          º      

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

º                                                               º

º                 EN ESTA LECCION APRENDERAS...                 º      

º                                                               º      

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

º  ³                                                         ³  º

º  ³  þ  Como saltar de una l¡nea a otra por                 ³  º

º  ³     medio de la sentencia GOTO ..................    2  ³  º

º  ³  þ  La sintaxis de la setencia GOTO .............    3  ³  º

º  ³  þ  ¨Qu‚ es una etiqueta? .......................    4  ³  º

º  ³  þ  El bucle sin fin ............................    5  ³  º

º  ³  þ  Estructura de bifurcaci¢n condicional               ³  º

º  ³     IF/THEN .....................................    7  ³  º

º  ³  þ  Forma general para la estructura de                 ³  º

º  ³     bifurcaci¢n condicional IF/THEN .............    8  ³  º

º  ³  þ  Forma general de la estructura                      ³  º

º  ³     IF/OR/THEN ..................................   10  ³  º

º  ³  þ  ¨Qu‚ es una funci¢n? ........................   11  ³  º

º  ³  þ  Sintaxis de la funci¢n UCASE$ ...............   12  ³  º

º  ³  þ  Sintaxis de la funci¢n LCASE$ ...............   12  ³  º

º  ³                                                         ³  º

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

º                                                               º

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

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

º ººÌ¹º Ì º   ɼººÈ» º     SALTANDO DE UNA LINEA A OTRA         º      

º ȹʼȼȼȼ  ȼȼȼ º                                          º      

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


 

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

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

º ººÌ¹º Ì º   ɼººÈ» º     SALTANDO DE UNA LINEA A OTRA         º      

º ȹʼȼȼȼ  ȼȼȼ º                                          º      

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

 

 

 

     Hasta  este momento,  en las distintas versiones de  nuestro

programa  de  suma,   habr s notado que las l¡neas del mismo  son

ejecutadas una despu‚s de la otra o en forma secuencial.  En esta

lecci¢n aprender s c¢mo saltar de una l¡nea a otra, esto es, c¢mo

transferir  la ejecuci¢n del programa a una l¡nea diferente a  la

que secuencialmente deber¡a transferirse.

 

 

  COMO SALTAR DE UNA LINEA A OTRA POR MEDIO DE LA SENTENCIA GOTO

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

 

     Volviendo  a  la  versi¢n m s reciente de  nuestro  programa

original...

 

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

              ³ REM Suma de dos numeros           ³

              ³ REM -------------------           ³

              ³    CLS                            ³

              ³    INPUT "Entra el valor de a"; a ³

              ³    INPUT "Entra el valor de b"; b ³

              ³    LET total = a + b              ³

              ³    REM                            ³

              ³    PRINT "El Total es ="; total   ³

              ³ END 'Programa                     ³

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

 

     ...de seguro que habr s notado otro escollo m s en ‚l, y  es

que  al  llegar a la sentencia END,  al programa termina,  y   si

quieres sumar otro par de n£meros,  tienes que ejecutar (RUN)  el

programa  nuevamente.    Una manera de corregir  esta  dificultad 

ser¡a  que,   antes de que la ejecuci¢n del programa llegue a  la

sentencia END,   brinquemos de nuevo al comienzo de la ejecuci¢n,

que es donde se encuentra la sentencia CLS... 

 

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

              ³ REM Suma de dos numeros           ³

              ³ REM -------------------           ³

           ÚÄÄÅÄ>  CLS                            ³

           ³  ³    INPUT "Entra el valor de a"; a ³

           ³  ³    INPUT "Entra el valor de b"; b ³

           ³  ³    LET total = a + b              ³

           ³  ³    REM                            ³

           ³  ³    PRINT "El Total es ="; total   ³

           ÀÄÄÅÄÄ                                 ³

              ³ END 'Programa                     ³

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


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               3 ³

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

 

 

                  SINTAXIS DE LA SENTENCIA GOTO

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

 

     ¨C¢mo   lograrlo?    La  soluci¢n  la  encontraremos  en  la

sentencia  GOTO.  Esta es una sentencia que nos permite saltar de

un n£mero de l¡nea a otro o de una etiqueta (label)  a otra.   Su

sintaxis es...

 

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

          ³ GOTO n£mero de l¡nea ³   ³ GOTO etiqueta ³

          ÀÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÙ   ÀÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÙ

                      ³                        ³     

                GOTO 100                GOTO suma    

                                                     

     Observa   que   tenemos   dos    versiones  para   GOTO.  La  

primera  va  precedida  por  un  n£mero  de l¡nea: la l¡nea donde 

se  desea que el salto ocurra. Y  la segunda,  va  seguida de  un 

label o etiqueta  que  no es otra cosa que un t¡tulo que se le da

al sitio d¢nde queremos saltar.        

                                                                  

     Cuando  estemos  m s adentrado en nuestro curso  atenderemos

este  asunto  del   label  m s detenidamente.   Ya sabes  que  el      

QBasic  no necesita los n£meros de l¡nea,  y  por lo tanto,  para

saltar de un sitio  a  otro lo £nico que requiere es que le digas

d¢nde  saltar.   Y  esto se consigue con un label  (etiqueta  que

indica la direcci¢n donde se encuentra la  instrucci¢n a seguir). 

Veamos, ahora,  los cambios  hechos  a  nuestro  programa de suma

introduciendo la sentencia GOTO en ‚l...

 

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

            ³ 100 REM Suma de dos numeros          ³

            ³ 110 REM -------------------          ³

            ³ 120   CLS                            ³

        ÚÄÄÄÅ>130 'Suma                            ³

     S  ³   ³ 140   PRINT                          ³

     A  ³   ³ 150   INPUT "Entra el valor de a"; a ³

     L  ³   ³ 160   INPUT "Entra el valor de b"; b ³

     T  ³   ³ 170   LET total = a + b              ³

     O  ³   ³ 180   REM                            ³

        ³   ³ 190   PRINT "El Total es ="; total   ³

        ÀÄÄÄÅ 200   GOTO 130 'Suma.                ³

            ³ 210 END 'Programa                    ³

            ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

            ³       PROGRAMA BASICA o GWBASIC      ³

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

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               4 ³

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

 

 

     Nota  como  en la l¡nea 200,  la sentencia GOTO hace  que el

programa  vuelva  a  ejecutarse  nuevamente  desde la l¡nea  130,

rotulada con una sentencia REM en forma de comilla "'".  Observa,

tambi‚n,  c¢mo la l¡nea 200  est  rotulada con otra sentencia REM

en comillas.  Esto, como habr s notado, simplifica grandemente la

lectura del programa. 

 

     En la versi¢n QBasic...

 

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

              ³ REM Suma de dos numeros           ³

              ³ REM -------------------           ³

              ³    CLS                            ³

          ÚÄÄÄÅ>Suma:                             ³

          ³   ³    PRINT                          ³

       S  ³   ³    INPUT "Entra el valor de a"; a ³

       A  ³   ³    INPUT "Entra el valor de b"; b ³

       L  ³   ³    LET total = a + b              ³

       T  ³   ³    REM                            ³

       O  ³   ³    PRINT "El Total es ="; total   ³

          ÀÄÄÄÅ    GOTO Suma                      ³

              ³ END 'Programa                     ³

              ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

              ³          PROGRAMA QBASIC          ³

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

 

                      ¨QUE ES UNA ETIQUETA?

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

 

     ...en  vez de n£meros,  utilizamos etiquetas (labels)   para

identificar  el  sitio  donde se har  el salto.   Esto  se  logra

escribiendo la etiqueta seguida del s¡mbolo  : (semicolon).    El

semicolon  (:),   identifica el texto  que le  precede  como  una

etiqueta, y  ‚sta a su vez, indica el lugar donde se encuentra la

direcci¢n a seguir.  Observa, adem s, que no fue necesario a¤adir

r¢tulos  a  las  nuevas  l¡neas  ya que el nombre  mismo  de  las

etiquetas las identica.

 

     Es   importante  que  el  n£mero  de  l¡nea  o  la  etiqueta

correspondiente a la cual se desea saltar, exista.  Si no existe,

el aviso de error...

 

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

                      ³   Label not defined   ³

                      ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

                      ³  < OK >    < help >   ³

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

      

     ...ser  desplegado en pantalla.    


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               5 ³

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

 

 

     Con  la  introducci¢n  de  la sentencia de control GOTO  (se

llama as¡ porque altera la ejecuci¢n del programa transfiri‚ndola

a  otro lugar en  el mismo programa),  ahora podemos ejecutar  el

programa cuantas veces querramos sin  necesidad  de interrumpirlo

para introducir nuevos valores a las variables a y b.   Es decir,

siempre  que digitemos los  valores   de las variables a y b,   y

presionemos  ENTER,   la  computadora desplegar  el  resultado  e

inmediatamente pedir  nuevos valores. 

 

     Sin embargo,  por m s que quisi‚ramos detener el programa no

podr¡amos.   Este seguir  ejecut ndose ininterrumpidamente.   Por

eso, a la sentencia GOTO se  le  llama  sentencia de trasferencia

incondicional.  Es decir,  no se establece ninguna condici¢n para

detener la ejecuci¢n del programa.

 

               EL BUCLE SIN FIN (an endless loop)

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

 

     A  esta ejecuci¢n  "de nunca acabar"  se  le llama un  bucle

sin fin (an endless loop)  y  la £nica forma que puedes detenerlo

es presionando  las teclas Ctrl C al mismo tiempo.   Sin embargo,

el   hecho   de   que  el  programa  se   mantenga   ejecut ndose

indefinidamente no es nada pr ctico.   De  modo  que tenemos  que

buscar  la forma  de detnerlo.   He aqu¡ c¢mo hemos resuelto este

problema...    

 

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

    ³ 100 REM Suma de dos numeros                            ³

    ³ 110 REM -------------------                            ³

    ³ 120   CLS                                              ³

ÚÄÄÄÅ>130 'Suma                                              ³

³   ³ 140   PRINT                                            ³

³   ³ 150   INPUT "Entra el valor de a"; a                   ³

³   ³ 160   INPUT "Entra el valor de b"; b                   ³

³   ³ 170   LET total = a + b                                ³

³   ³ 180   REM                                              ³

³   ³ 190   PRINT "El Total es ="; total                     ³

³   ³ 192   PRINT                                            ³

³   ³ 194   INPUT "¨Quieres terminar (S/N)"; Y$              ³

³ ÚÄÅ 196   IF Y$ = "S" THEN GOTO 202  'Termina.             ³

ÀÄÅÄÅ 200   GOTO 130  'Suma.                                 ³

  ÀÄÅ>202 'Termina                                           ³

    ³ 210 END 'Programa                                      ³

    ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

    ³                PROGRAMA BASICA o GWBASIC               ³

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

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               6 ³

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

 

 

     Como puedes ver, hemos  a¤adido las l¡neas...

 

ÚÄÄÄ> 130 'Suma                                                

³      :                        el (;), pone signo de ?

³      :                                   ³

³     194   INPUT "¨Quieres terminar (S/N)"; Y$            

³ ÚÄÄ 196   IF Y$ = "S" THEN GOTO 202  'Termina.              

ÀÄÅÄÄ 200   GOTO 130  'Suma.                                    

  ÀÄ> 202 'Termina                                             

      210 END 'Programa                                      

 

     ...194, 196 y 202.  La l¡nea 194,  tiene una sentencia INPUT

que le pide al usuario si  quiere  terminar de sumar.  Si este es

el  caso,  que digite S,  si no que digite N.   Cuando el usuario

hace su elecci¢n, digamos que quiera terminar el programa, digita

S.   Este valor literal se  almacena  en la variable alfanum‚rica

Y$.   Como sabes,  una variable alfanum‚rica, adem s de almacenar

n£meros,   tambi‚n  almacena  letras.    Por  eso  se  la   llama

ALFA(letras del alfabeto) NUMERICA (n£meros).

 

     Pues  bien,   cuando  la ejecuci¢n del programa llega  a  la

l¡neas 196, la computadora busca  el valor de la variable Y$,  si

es "S", entonces (THEN) utiliza la sentencia GOTO para transferir

la  ejecuci¢n del programa  a  la l¡nea  202,  que no se  ejecuta

porque  es una l¡nea de comentario.   De  modo que,  la ejecuci¢n

contin£a  hasta  llegar a la l¡nea 210  donde  la  sentencia  END

detiene el programa.

 

     En el caso de que el usuario conteste "N"  en la l¡nea  196,

la variable alfanum‚rica  Y$  tomar  el valor de "N".   Cuando la

ejecuci¢n  del programa llega a la l¡nea 196,  encuentra  que  la

variable alfanum‚rica YS no tiene el valor de "S".  Por lo tanto,

la computadora no modifica la ejecuci¢n  del programa dejando que

‚sta  fluya  normalmente.    Cuando llega a  la  l¡nea  200,   la

ejecuci¢n   del   programa  es  transferida  a  la   l¡nea   130,

repiti‚ndose de esta forma una nueva suma. 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               7 ³

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

 

     La versi¢n del programa para QBasic es la siguiente...

 

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

       ³ REM Suma de dos numeros                        ³

       ³ REM -------------------                        ³

       ³    CLS                                         ³

  ÚÄÄÄÄÅ>Suma:                                          ³

  ³    ³    PRINT                                       ³

  ³    ³    INPUT "Entra el valor de a"; a              ³

  ³    ³    INPUT "Entra el valor de b"; b              ³

  ³    ³    LET total = a + b                           ³

  ³    ³    REM                                         ³

  ³    ³    PRINT "El Total es ="; total                ³

  ³    ³    PRINT                                       ³

  ³    ³    INPUT "¨Quieres terminar (S/N)"; Y$         ³

  ³  ÚÄÅÄÄÄ   IF Y$ = "S" THEN GOTO Termina             ³

  ÀÄÄÅÄÅÄÄÄ   GOTO Suma                                 ³

     ÀÄÅ>Termina:                                       ³

       ³ END 'Programa                                  ³

       ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

       ³                PROGRAMA QBASIC                 ³

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

 

          ESTRUCTURA DE BIFURCACION CONDICIONAL IF/THEN

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

 

     La estructura...

 

                  IF Y$ = "S" THEN GOTO Termina             

 

     ...establece que la ejecuci¢n del  programa ser  transferida

a  la etiqueta  Termina  con  la condici¢n de que la variable  Y$

tenga un valor de "S".   En otras palabras,   condiciona el flujo

de  la  ejecuci¢n del programa de  acuerdo  con  las  condiciones

establecidas.  Por eso se llama tambi‚n estructura de bifurcaci¢n

condicional.  Estudiaremos estas y otras estructura similares con

lujo de detalle en lecciones posteriores. 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               8 ³

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

 

 

   FORMA GENERAL PARA LA ESTRUCTURA DE BIFURCACION CONDICIONAL

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

                      IF/THEN (SI/ENTONCES)

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

 

     La forma general para esta estructura es...

 

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

             ³ IF condici¢n THEN haz lo siguiente ³

             ÀÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÙ

                   ÚÄÄÁÄÄÄÄ¿     ÚÄÄÄÄÄÁÄÄÄÄ¿

                IF Y$ = "S" THEN GOTO Termina             

 

                IF Y$ = "N" THEN STOP

      

     Si ejecutamos el programa...

 

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

       ³ REM Suma de dos numeros                        ³

       ³ REM -------------------                        ³

       ³    CLS                                         ³

       ³ Suma:                                          ³

       ³    PRINT                                       ³

       ³    INPUT "Entra el valor de a"; a              ³

       ³    INPUT "Entra el valor de b"; b              ³

       ³    LET total = a + b                           ³

       ³    REM                                         ³

       ³    PRINT "El Total es ="; total                ³

       ³    PRINT                                       ³

       ³    INPUT "¨Quieres terminar (S/N)"; Y$         ³

       ³      IF Y$ = "S" THEN GOTO Termina             ³

       ³      GOTO Suma                                 ³

       ³ Termina:                                       ³

       ³ END 'Programa                                  ³

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

 

     ...y  contestamos  con  una  "s"  min£scula  a  la  pregunta

"¨Quires terminar (S/N)?,   notaremos que el programa empieza una

ejecuci¢n  nueva  en  vez  de  detenerse.    Ello  es  porque  la

computadora £nicamente reconoce la letra may£scula  S  como valor 

verdadero en la variable Y$ (es as¡ como la estructura IF/THEN lo

establece)  para que el programa se detenga.   Una s min£scula no

es  un  valor  verdadero para dicha  variable,   as¡  que  no  es

reconocido.

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA               9 ³

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

 

 

     Tal dificultad puede corregirse de la siguiente manera...

 

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

       ³ REM Suma de dos numeros                        ³

       ³ REM -------------------                        ³

       ³    CLS                                         ³

       ³ Suma:                                          ³

       ³    PRINT                                       ³

       ³    INPUT "Entra el valor de a"; a              ³

       ³    INPUT "Entra el valor de b"; b              ³

       ³    LET total = a + b                           ³

       ³    REM                                         ³

       ³    PRINT "El Total es ="; total                ³

       ³    PRINT                                       ³

       ³    INPUT "¨Quieres terminar? (S/N)?"; Y$       ³

       ³      IF Y$ = "S" THEN GOTO Termina             ³

   ÄÄÄÄÅÄÄÄ>  IF Y$ = "s" THEN GOTO Termina             ³

       ³    GOTO Suma                                   ³

       ³ Termina:                                       ³

       ³ END 'Programa                                  ³

       ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

       ³                PROGRAMA QBASIC                 ³

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

 

     ...a¤adiendo la l¡nea...

 

                  IF Y$ = "s" THEN GOTO Termina              

 

     ...despu‚s  de  la  primera  estructura condicional IF/THEN. 

Ahora, habiendo dos estructuras condicionales IF/THEN, una con un

valor alfa "S"  y  la otra con un valor alfa "s",  la computadora

reconocer  ambos valores como verdaderos.   De modo que,  en este

nuevo programa puedes entrar una "S"  o  una "s"  indistintamente

para detener el programa, y ‚ste se detendr .

 

     Sin embargo, estas dos l¡neas condicionales...  

 

                  IF Y$ = "S" THEN GOTO Termina              

                  IF Y$ = "s" THEN GOTO Termina              

 

     ...pueden combinarse para producir una £nica l¡nea...

 

            IF Y$ = "S" OR Y$ = "s" THEN GOTO Termina  

 

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA              10 ³

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

 

     ...y nuestro programa ser¡a entonces...

 

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

       ³ REM Suma de dos numeros                        ³

       ³ REM -------------------                        ³

       ³    CLS                                         ³

       ³ Suma:                                          ³

       ³    PRINT                                       ³

       ³    INPUT "Entra el valor de a"; a              ³

       ³    INPUT "Entra el valor de b"; b              ³

       ³    LET total = a + b                           ³

       ³    REM                                         ³

       ³    PRINT "El Total es ="; total                ³

       ³    PRINT                                       ³

       ³    INPUT "¨Quieres terminar (S/N)?"; Y$        ³

     ÄÄÅÄÄ>   IF Y$ = "S" OR Y$ = "s" THEN GOTO Termina ³

       ³    GOTO Suma                                   ³

       ³ Termina:                                       ³

       ³ END 'Programa                                  ³

       ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´

       ³                PROGRAMA QBASIC                 ³

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

 

     Si te fijas bien, notar s que esta l¡nea no es otra cosa que

una  operaci¢n  l¢gica  OR  (lecci¢n QB105).   Nos invita  a  que

escojamos  dos alternativas:  "S"  ¢ "s",  y  que ambas deben ser

ciertas.  Su sintaxis es...

 

            FORMA GENERAL DE LA ESTRUCTURA IF/OR/THEN

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

 

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

       ³ IF     condici¢n OR condici¢n  THEN   haz esto ³

       ÀÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÙ

                ÚÄÄÄÁÄÄ¿     ÚÄÄÁÄÄÄ¿         ÚÄÄÄÄÁÄÄÄÄÄ¿ 

         IF     Y$ = "S"  OR Y$ = "s"   THEN  GOTO Termina  

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA              11 ³

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

 

 

     Otra manera manera m s corta de resolver este problema es...

 

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

            ³ REM Suma de dos numeros              ³                 

            ³ REM -------------------              ³                 

            ³    CLS                               ³

            ³ Suma:                                ³                 

            ³    PRINT                             ³

            ³    INPUT "Entra el valor de a"; a    ³

            ³    INPUT "Entra el valor de b"; b    ³

            ³    LET total = a + b                 ³

            ³    REM                               ³                 

            ³    PRINT "El Total es ="; total      ³

            ³    PRINT                             ³

            ³    INPUT "¨Quieres seguir (S/N)"; Y$ ³

        ÄÄÄÄÅÄÄ>   LET Y$ = UCASE$(Y$)             ³

            ³      IF Y$ = "N" THEN GOTO Termina   ³

            ³    GOTO Suma                         ³

            ³ Termina:                             ³               

            ³ END 'Programa                        ³                 

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

 

     En la l¡nea...

 

                       LET Y$ = UCASE$(Y$)                    

 

     ...UCASE$  tiene la funci¢n de convertir la letra asignada a

la variable alfa Y$, en may£scula,   si es min£scula,  y  la deja

igual si es may£scula.  Por ejemplo, si el valor entrado de Y$ es

"n",   Y$="n".  Cuando la ejecuci¢n del programa llega a la l¡nea

donde  aparece UCASE$,  ‚sta convierte el valor de Y$  que es "n"

min£scula  a "N" may£scula. 

 

     Y$="n"

     Y$ = UCASE$(Y$) = UCASE$("n") ="N"

 

                      ¨QUE ES UNA FUNCION?

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

 

     Como habr s notado,  UCASE$  tiene la funci¢n determinada de

convertir letras min£sculas a may£sculas. Es como un miniprograma

bastante  abreviado  que  puede tener o pedir uno o  m s  valores

reteni‚ndolo(s)  en una variable.  Por eso se le llama la funci¢n

UCASE$.  As¡ que...

 

 

 

 

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA              12 ³

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

 

 

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

         ³                 UNA FUNCION                ³

         ³ ES COMO UN MINIPROGRAMA BASTANTE ABREVIADO ³

         ³  QUE PUEDE TENER O PEDIR UNO O MAS VALORES ³

         ³       RETENIENDOLO(S) EN UNA VARIABLE      ³

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

 

     Hay  una funci¢n de conversi¢n de   caracteres  similar  que

convierte  las  letras  may£sculas  a  min£sculas.   Y   esta  es

Y$=LCASE$(Y$).  Las correspondientes sintaxis para ambas son:

 

                  SINTAXIS DE LA FUNCION UCASE$

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

 

                           UCASE$(Y$)

                                  ³

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

          ³ UCASE$(expresi¢n en cadena de caracteres) ³

          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

                                  ³

                        UCASE$("letra")

 

          Ejemplo:

 

                Si Y$ = "s", entonces,

                Y$ = UCASE$(Y$)

                Y$ = UCASE$("s")

                Y$="S"

 

                  SINTAXIS DE LA FUNCION LCASE$

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

 

 

                           LCASE$(Y$)

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

          ³ LCASE$(expresi¢n en cadena de caracteres) ³

          ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

                        LCASE$("LETRA")

 

          Ejemplo:

 

                Si Y$ = "S", entonces,

                Y$ = LCASE$(Y$)

                Y$ = LCASE$("S")

                Y$="s"

 

     UCASE  significa Upper Case (may£scula),  y  LCASE significa

Lower Case (min£scula).

 


 

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

³ QB205            SALTANDO DE UNA LINEA A OTRA              13 ³

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

 

 

     Si  crees  que hemos acabado con las  dificultades  en  esta

£ltima versi¢n de nuestro programa de suma, te equivocas.  A£n el

programa tiene que ser mejorado.  Por ejemplo, ¨qu‚ pasar¡a si en

vez  de  un  n£mero,   entraras como valor de las letras  a  y  b

respectivamente en las l¡neas...

 

                 INPUT "Entra el valor de a"; a     

                 INPUT "Entra el valor de b"; b     

 

     Si  obraras  as¡,   la computadora desplegar¡a el  siguiente

mensaje en pantalla...

 

     Redo from start

 

     Eso significa que el valor entrado en la variable a ¢ b,  no

es  aceptado por ser un valor alfa y no num‚rico.   Una  variable

num‚rica,  exige un n£mero y una alfanum£rica,  n£meros o letras. 

Como  a  y  b son variables  num‚ricas  no  aceptan  letras  como

valores.   As¡ que hasta que no entres un n£mero,  la computadora

no dejar  de desplegar el mensaje arriba mencionado.

 

     Ahora  bien,  ¨qu‚ ocurrir¡a con estas mismas variables (a y

b) si como valor recibieran un espacio ("  ") o nada ("" equivale

a presionar la tecla ENTER en vez  de un valor)?   Lo que pasar¡a

ser¡a  que  las  variables retendr¡an el valor de "0" previamente

asignado por el int‚rprete Basic como valor inicial.   En Qbasic,

todas  las  variables num‚ricas tienen "0"  asignado  como  valor

inicial.    Y  si ambas variables a y b,  son cero,  el  Total al

sumarlas ser  tambi‚n "0".

 

     En  una  lecci¢n  posterior  aprender s c¢mo evitar  que una

variable num‚rica no acepte valores alfa.   En la pr¢xima lecci¢n

mejoraremos m s nuestro programa de SUMA.  ­Hasta luego, pues! 

 

 

Arriba     Contenido