SlideShare ist ein Scribd-Unternehmen logo
1 von 15
LA ESTRUCTURA REPETITIVAS:

       La estructura do while es otra estructura repetitiva, la cual ejecuta al menos
una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar
el bloque.

       Esta estructura repetitiva se utiliza cuando conocemos de antemano que
por    lo    menos      una     vez    se    ejecutará    el    bloque     repetitivo.
La condición de la estructura está abajo del bloque a repetir, a diferencia del while
o del for que está en la parte superior.

Representación gráfica:




       El bloque de operaciones se repite MIENTRAS que la condición sea
Verdadera.
Si la condición retorna Falso el ciclo se detiene. En Java, todos los ciclos repiten
por verdadero y cortan por falso.



Es importante analizar y ver que las operaciones se ejecutan como mínimo una
vez.
LA ITERACION DO – WHILE



Su sintaxis será :

do { proposición 1 ;

proposición 2 ;
...............
} while (expresión) ;

Expresado en palabras , esto significa : ejecute las proposiciones , luego repita la
ejecución mientras la expresión dé un resultado CIERTO . La diferencia
fundamental entre esta iteración y la anterior es que el DO-WHILE se ejecuta
siempre AL MENOS una vez , sea cual sea el resultado de expresión.

ITERACION                                                                      FOR
El FOR es simplemente una manera abreviada de expresar un WHILE , veamos
su sintaxis :

for ( expresión1 ; expresión2 ; expresion3 ) {
proposición1 ;
proposición2 ;
       ..............
}
Esto es equivalente a :
expresión1 ;
while ( expresión2 ) {
proposición1 ;
proposición2 ;
       ..............
expresion3 ;
}

Ejemplo de un programa for

#include<stdio.h>
#include<math.h>

/* Programa para tabular la funcion y = Sen(x) */

main()
{
float                                                                 a=0;
float                                                               b=1.6;
float                                                               c=0.1;
floatx,y;
for(x=a;                                 x<=b;                     x=x+c)
{
y=sin(x);
printf("%f                                                        %f",x,y);
}
printf("         Presiona          una              tecla   ");   getch();
}

otro                                                              ejemplo:
#include<stdio.h>
#include<math.h>

/* Programa para tabular la función y = sen(x) */

main()
{
floatx,y;
for(x=0.0;                                   x<=1.6;                         x=x+0.1)
{
y=sin(x);
printf("            x             =           %f        y          =         %f",x,y);
}
printf("Presiona                      una               tecla");              getch();
}

La expresión1 es una asignación de una ó más variables , (equivale a una
inicialización de las mismas ) , la expresión2 es una relación de algun tipo que ,
mientras dé un valor CIERTO , permite la iteración de la ejecución y expresión3 es
otra asignación , que comunmente varía alguna de las variables contenida en
expresión2                                                                           .
Todas estas expresiones , contenidas en el paréntesis del FOR deben estar
separadas         por   PUNTO         Y    COMA    y   NO   por    comas   simples   .
No es imprescindible que existan TODAS las expresiones dentro del paréntesis
del FOR ,pudiendose dejar en blanco algunas de ellas , por ejemplo :

for ( ; exp2 ; exp3)          ó
for (exp1 ; ; )           ó
for ( ; ; )

Estas dos últimas expresiónes son interesantes desde el punto de vista de su falta
de término relacional , lo que implica que el programador deberá haber previsto
alguna manera alternativa de salir del lazo ( probablemente mediante BREAK ó
RETURN como veremos más adelante ) ya que sinó , la ejecución del mismo es
infinita ( ó tan larga como se mantenga encendida la computadora ) .

LA                                        SENTENCIA                           BREAK
El BREAK , ya brevemente descripto con el SWITCH , sirve también para terminar
loops producidos por WHILE , DO-WHILE y FOR antes que se cumpla la condición
normal de terminación . En el EJEMPLO siguiente vemos su uso para terminar un
WHILE indeterminado.



#include<stdio.h>
#include<conio.h>
main()
{
char c ;
printf("ESTE ES UN LOOP INDEFINIDO ") ;
while(1) {
printf( "DENTRO DEL LOOP INDEFINIDO (apriete una tecla):" ) ;
if( (c = getch()) == 'Q' )
break ;
printf( "nNO FUE LA TECLA CORRECTA PARA ABANDONAR EL LOOP ") ;
    }
printf("nTECLA CORRECTA : FIN DEL WHILE ") ;
}



Obsérvese que la expresión while(1) SIEMPRE es cierta , por lo que el programa
correrá imparable hasta que el operador oprima la tecla "secreta" Q . Esto se
consigue en el IF , ya que cuando c es igual al ASCII Q se ejecuta la instrucción
BREAK              ,dando          por      finalizado       el        WHILE    .
El mismo criterio podría aplicarse con el DO-WHILE ó con FOR , por ejemplo
haciendo

for (;;) {     /* loop indefinido */
............
if( expresión )
break ;        /* ruptura del loop cuando expresión sea verdadera */
}
LA                                     SENTENCIA                              CONTINUE
La sentencia CONTINUE es similar al BREAK con la diferencia que en vez de
terminar violentamente un loop , termina con la realización de una iteración
particular y permitiendo al programa continuar con la siguiente.

LA                                          FUNCION                                 EXIT()
La función EXIT() tiene una operatoria mucho más drastica que las anteriores , en
vez de saltear una iteración ó abandonar un lazo de programa , esta abandona
directamente al programa mismo dándolo por terminado . Realiza también una
serie de operaciones útiles como ser , el cerrado de cualquier archivo que el
programa hubiera abierto , el vaciado de los buffers de salida , etc.
Normalmente se la utiliza para abortar los programas en caso de que se esté por
cometer un error fatal éinevitable . Mediante el valor que se le ponga en su
argumento se le puede informar a quien haya llamado al programa ( Sistema
Operativo , archivo .bat , u otro programa ) el tipo de error que se cometió.

SENTENCIA                                                                           GOTO
Si Ud. se ha admirado de que C tenga la operación GOTO , recuerde que el hecho
de existir NO lo obliga a usarla , en el mismo sentido que por tener puertas los
aviones           no      está   obligado   a   saltar   por   ellas   en   pleno   vuelo.
El uso del GOTO implica un salto incondicional de un lugar a otro del programa .
Esta práctica hace que los programas sean muy dificiles de corregir ó mantener.
Si no quedara más remedio que usarlo, (y en programación estructurada
SIEMPRE hay remedio) debe marcarse el destino del salto mediante un nombre
seguido por dos puntos .

if( c == 0 ) goto OTRO_LADO ;
.............................
OTRO_LADO:
printf(........
En este caso si c es cero se saltean todas las sentencias entre el if y el destino
,continuandose con la ejecución del printf() . El destino puede ser tanto posterior
como           anterior           al         GOTO             invocante            .


Estructuras de control

En lenguajes de programación, las estructuras de control permiten modificar el
flujo de ejecución de las instrucciones de un programa.

Con las estructuras de control se puede:

       De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-
       Then-Else y Select-Case)
       Ejecutar un grupo de sentencias mientras exista una condición (Do-While)
       Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until)
       Ejecutar un grupo de sentencias un número determinado de veces (For-
       Next)
       Etc

Todas las estructuras de control tienen un único punto de entrada y un único punto
de salida. Las estructuras de control se puede clasificar en : secuenciales,
iterativas y de control avanzadas. Esto es una de las cosas que permite que la
programación se rija por los principios de la programación estructurada.

Los lenguajes de programación modernos tienen estructuras de control similares.
Básicamente lo que varía entre las estructuras de control de los diferentes
lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la
estructura.

Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos
guardados.
Tipos de estructura de control


Algunas estructuras de control en el lenguaje Java

Antecendentes


El término "estructuras de control", viene del campo de la ciencia computacional.
Cuando se presentan implementaciones de Java para las estructuras de control,
nos referimos a ellas con la terminología de la Especificación del lenguaje Java,
que se refiera a ella como instrucciones.

Ejecución secuencial


Pero por lo general las instrucciones se ejecutan una después de la otra, en el
orden en que están escritas, es decir, en secuencia. Este proceso se conoce como
ejecución secuencial.

Transferencia de control


En Java, como en otros lenguajes de programación por excelencia como C y/o
C++, el programador puede especificar que las siguientes instrucciones a
ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como
transferencia de control. Hay que tener en cuenta que la instrucción goto es una
palabra reservada pero no se utiliza ni se recomienda. Un programa bien
estructurado no necesita de esta instrucción. Si sabes programar no utilizaras
goto.

Estructura de control: selección if simple


Se trata de una estructura de control que permite redirigir un curso de acción
según la evaluación de una condición simple, sea falsa o verdadera. Por ejemplo:
Escribir un programa en Java que compare dos números e indique si cuál es
mayor, menor, mayor y/o igual, menor y/o igual, o si son iguales:
StringstrComparacion = "";

...

if( numero1 == numero2 )
strComparacion += numero1 + " == " + numero2;
if( numero1 > numero2 )
strComparacion += numero1 + " > " + numero2;
if( numero1 < numero2 )
strComparacion += numero1 + " < " + numero2;
if( numero1 >= numero2 )
strComparacion += numero1 + " >= " + numero2;
if( numero1 <= numero2 )
strComparacion += numero1 + " <= " + numero2;
System.out.println(strComparacion);




Estructuras de decisión Contenido III. - Estructuras de decisión 3.1 Selección de

alternativas 3.2 La construcción if-then-else 3.3 Ifs anidados 3.4 C




Estructuras de Selección

LA ESTRUCTURA DE SELECCIÓN IF

La sentenciaifse la conoce como estructura de selección simple y su función es
realizar o no una determinada acción o sentencia, basándose en el resultado de la
evaluación de una expresión (verdadero o falso), en caso de ser verdadero se
ejecuta la sentencia.
Fig. 5.1

La estructura de selección if (que se muestra en la figura 5.1) trabaja de la
siguiente manera: si la evaluación de la expresión o expresiones es verdadera ( 1 )
entonces se ejecuta la sentencia a la cual se refiere la estructura de control if.

Si fueran varias sentencias a las que se refiere la estructura if (como se muestra
en la figura 5.2) se tiene que encerrar todas las sentencias entre llaves ( { } ) y si la
evaluación de la expresión es correcta entonces se ejecuta todas las sentencias
contenidas entre las llaves.




Fig. 5.2

Si la evaluación de la expresión o expresiones resultaría falsa (0), entonces no se
ejecuta las sentencias.

Por ejemplo si dada la edad de una persona quiero dar un mensaje de que es o no
mayor de edad, suponiendo que una persona mayor de edad tiene por lo menos
21 años, el procedimiento será el siguiente.


           #include                                              <iostream.h>
           void                                                          main()
           {
           cout<<"¿Qué               edad             tienes?              n";
           cin>>edad
           if(             edad              >              20                )
                      cout<<"Eres       mayor         de         edad"        ;
           }
#include<iostream.h>

         voidmain()
         {
         cout<<"¿Qué                edad                  tienes?                  n";
         cin>>edad
         if           (            edad               >             20                )
                   {cout<<"Eres               mayor            de                edad";
                   cout<<"Te         estas       volviendo               viejo       ";
              }
         }




En Pseudocódigo el anterior ejemplo se vería de la siguiente forma:


         Inicio
         Mostrar                 “¿Qué                edad                   tienes?”
         Leer                                                                     edad
         Si               Edad            >               20               Entonces
                      Mostrar       “Eres         mayor             de           Edad”
         Fin                                                                         Si
         Fin




El diagrama de flujo de la estructura if se muestra en la Fig. 5.3, este diagrama
contiene el símbolo diamante que es llamado el símbolo de decisión, que indica
que decisión se debe tomar. El símbolo de decisión contiene una expresión, y la
evaluación de ésta será verdadera o falsa. Las flechas nos indican los dos
posibles caminos que se pueden tomar.
fig 5.3

El anterior diagrama de flujo funciona de la siguiente manera:

1. Si Edad es mayor que 20 (verdadero) entonces se muestra “Eres mayor de
Edad”

2. Si no entonces no hace nada

Importante. Para mantener el código legible es bueno dejar espacios o sangrías
en todas las líneas de código que están dentro de una estructura if / else o if, estas
instrucciones se las alinean un poco más a la derecha y así podemos notar
claramente que forman parte de las sentencias que componen a la estructura if.

Esta práctica se puede aplicar a cualquier estructura de control.

ESTRUCTURA DE SELECCIÓN IF / ELSE

La estructura if / else lo que hace es ejecutar una acción si el resultado de la
evaluación de la expresión es verdadera y otra acción si el resultado de la
evaluación es falsa.

La diferencia con utilizar sólo la estructura if es que si la expresión evaluada es
verdadera sólo en ese caso se ejecuta una acción de otro modo se pasa de largo.
En cambio en la estructura if / else si la expresión es falsa entonces se ejecuta
otra acción.
Fig. 5.4

En síntesis lo que hace esta estructura es realizar una acción si la expresión es
verdadera             y             otra            si             es           falsa.
Aquí tenemos un ejemplo para ilustrar la estructura if / else.


            #include <iostream.h>

            void                                                       main()
            {
            if(           edad              >             20                )
                    cout<<"Eres        mayor        de         edad"        ;
            else
                    cout<<"No       eres        mayor     de           edad";
            }


El diagrama de flujo correspondiente a esta estructura es el siguiente:




fig. 5.5

El anterior diagrama de flujo funciona de la siguiente manera:
1. Si Edad es mayor que 20 (verdadero) entonces se muestra: “Eres mayor de
Edad”.

2. Si no entonces se muestra: “NO eres mayor de Edad”.

ESTRUCTURAS CONDICIONALES ANIDADAS

Existe el caso de estructuras if, if/elseanidadas, que no es más que una estructura
if o if/else dentro de otra.

Por ejemplo se desea conocer cuál es el mayor de tres números A, B ,C.


              1:                                               #include<iostream.h>
              2:                                                               voidmain()
              3:                                                                          {
              4:           int              A=0,                    B=0,               C=0;
              5:           cout<<"Ingrese                       3              números";
              6: cin>>A>>B>>C; //Lectura de valores por teclado
              7:if(               A                   >                    B              )
              8:                         {if(A                 >               C          )
              9:                 cout<<"A        es       el        número         mayor";
              10:                                                                      else
              11:                cout<<"C        es       el        número         mayor";
              12:                                                                         }
              13:                                                                      else
              14:                  {if       (            B           >            C      )
              15:                cout<<"B        es       el        número         mayor";
              16:                                                                      else
              17:                cout<<"C        es       el        número         mayor";
              18:                                                                         }
              19: }
Para explicar el funcionamiento del problema anterior se han enumerado todas las
líneas                       de                      tal                programa.
Suponiendo que los valores ingresados por teclado fueran: A=2, B=1, C=5. El
programa          actuaría          de          la         siguiente      manera.
El programa se ejecuta secuencialmente hasta la línea 7 donde encuentra una
expresión. Cuando se evalúe la expresión (A > B) línea 7, el resultado es
verdadero (2 > 1), por lo tanto el programa ejecuta la línea 8, en dicha línea
encuentra otra expresión (A > C) y el resultado de evaluar dicha expresión es falso
(2 > 5) por lo que el programa salta hasta la línea 11 y muestra "C es el número
mayor". Luego va a la línea 12 y verifica el cierre de llaves y finalmente salta
hasta la línea 19 siendo la última línea de ejecución.

Weitere ähnliche Inhalte

Was ist angesagt?

Las estructuras de control en programación presentacion
Las estructuras de control en programación presentacionLas estructuras de control en programación presentacion
Las estructuras de control en programación presentacion
Orangel4
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
starduslex
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
Carlos Pes
 

Was ist angesagt? (20)

Polimorfismo resumen
Polimorfismo resumenPolimorfismo resumen
Polimorfismo resumen
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
 
Las estructuras de control en programación presentacion
Las estructuras de control en programación presentacionLas estructuras de control en programación presentacion
Las estructuras de control en programación presentacion
 
Lenguaje c diapositivas
Lenguaje c diapositivasLenguaje c diapositivas
Lenguaje c diapositivas
 
GRUPO 12 Ámbito: variables locales y globales
GRUPO 12  Ámbito: variables locales y globales GRUPO 12  Ámbito: variables locales y globales
GRUPO 12 Ámbito: variables locales y globales
 
Sistemas dinamicos
Sistemas dinamicosSistemas dinamicos
Sistemas dinamicos
 
Reporte de codigo productos medios
Reporte de codigo productos mediosReporte de codigo productos medios
Reporte de codigo productos medios
 
Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...
Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...
Diagramas de flujo - Estructuras de Control (For, While, Do Whille y Switch C...
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
Introducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje CIntroducción a las funciones en el lenguaje C
Introducción a las funciones en el lenguaje C
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Parcial (estructuras repetitivas"for y while" - herrmanientas case)
Parcial (estructuras repetitivas"for y while" - herrmanientas case)Parcial (estructuras repetitivas"for y while" - herrmanientas case)
Parcial (estructuras repetitivas"for y while" - herrmanientas case)
 
Señales Periódicas y Simetría Par e Impar
Señales Periódicas y Simetría Par e ImparSeñales Periódicas y Simetría Par e Impar
Señales Periódicas y Simetría Par e Impar
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 
Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)
 

Ähnlich wie Estructuras repetitivas

Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Java
quesada_diego
 
Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de control
mariaisabelg
 
Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de control
mariaisabelg
 
DAW-Estructuras de control
DAW-Estructuras de controlDAW-Estructuras de control
DAW-Estructuras de control
vay82
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
Karina Arguedas Ruelas
 
Fpr0407 control
Fpr0407 controlFpr0407 control
Fpr0407 control
labebelo
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Mariannis Ortega
 

Ähnlich wie Estructuras repetitivas (20)

Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Java
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
computacion I
computacion Icomputacion I
computacion I
 
Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de control
 
Iv unidad estructuras de control
Iv unidad estructuras de controlIv unidad estructuras de control
Iv unidad estructuras de control
 
DAW-Estructuras de control
DAW-Estructuras de controlDAW-Estructuras de control
DAW-Estructuras de control
 
5 c iterative
5 c iterative5 c iterative
5 c iterative
 
Lenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de ControlLenguaje Borland C - Estructuras de Control
Lenguaje Borland C - Estructuras de Control
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
C++
C++C++
C++
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Programacion I
Programacion I Programacion I
Programacion I
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y while
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y while
 
Fpr0407 control
Fpr0407 controlFpr0407 control
Fpr0407 control
 
ESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROLESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 

Estructuras repetitivas

  • 1. LA ESTRUCTURA REPETITIVAS: La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque. Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo. La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior. Representación gráfica: El bloque de operaciones se repite MIENTRAS que la condición sea Verdadera. Si la condición retorna Falso el ciclo se detiene. En Java, todos los ciclos repiten por verdadero y cortan por falso. Es importante analizar y ver que las operaciones se ejecutan como mínimo una vez.
  • 2. LA ITERACION DO – WHILE Su sintaxis será : do { proposición 1 ; proposición 2 ; ............... } while (expresión) ; Expresado en palabras , esto significa : ejecute las proposiciones , luego repita la ejecución mientras la expresión dé un resultado CIERTO . La diferencia fundamental entre esta iteración y la anterior es que el DO-WHILE se ejecuta siempre AL MENOS una vez , sea cual sea el resultado de expresión. ITERACION FOR El FOR es simplemente una manera abreviada de expresar un WHILE , veamos su sintaxis : for ( expresión1 ; expresión2 ; expresion3 ) { proposición1 ; proposición2 ; .............. } Esto es equivalente a : expresión1 ; while ( expresión2 ) { proposición1 ; proposición2 ; ..............
  • 3. expresion3 ; } Ejemplo de un programa for #include<stdio.h> #include<math.h> /* Programa para tabular la funcion y = Sen(x) */ main() { float a=0; float b=1.6; float c=0.1; floatx,y; for(x=a; x<=b; x=x+c) { y=sin(x); printf("%f %f",x,y); } printf(" Presiona una tecla "); getch(); } otro ejemplo: #include<stdio.h> #include<math.h> /* Programa para tabular la función y = sen(x) */ main() { floatx,y;
  • 4. for(x=0.0; x<=1.6; x=x+0.1) { y=sin(x); printf(" x = %f y = %f",x,y); } printf("Presiona una tecla"); getch(); } La expresión1 es una asignación de una ó más variables , (equivale a una inicialización de las mismas ) , la expresión2 es una relación de algun tipo que , mientras dé un valor CIERTO , permite la iteración de la ejecución y expresión3 es otra asignación , que comunmente varía alguna de las variables contenida en expresión2 . Todas estas expresiones , contenidas en el paréntesis del FOR deben estar separadas por PUNTO Y COMA y NO por comas simples . No es imprescindible que existan TODAS las expresiones dentro del paréntesis del FOR ,pudiendose dejar en blanco algunas de ellas , por ejemplo : for ( ; exp2 ; exp3) ó for (exp1 ; ; ) ó for ( ; ; ) Estas dos últimas expresiónes son interesantes desde el punto de vista de su falta de término relacional , lo que implica que el programador deberá haber previsto alguna manera alternativa de salir del lazo ( probablemente mediante BREAK ó RETURN como veremos más adelante ) ya que sinó , la ejecución del mismo es infinita ( ó tan larga como se mantenga encendida la computadora ) . LA SENTENCIA BREAK El BREAK , ya brevemente descripto con el SWITCH , sirve también para terminar loops producidos por WHILE , DO-WHILE y FOR antes que se cumpla la condición
  • 5. normal de terminación . En el EJEMPLO siguiente vemos su uso para terminar un WHILE indeterminado. #include<stdio.h> #include<conio.h> main() { char c ; printf("ESTE ES UN LOOP INDEFINIDO ") ; while(1) { printf( "DENTRO DEL LOOP INDEFINIDO (apriete una tecla):" ) ; if( (c = getch()) == 'Q' ) break ; printf( "nNO FUE LA TECLA CORRECTA PARA ABANDONAR EL LOOP ") ; } printf("nTECLA CORRECTA : FIN DEL WHILE ") ; } Obsérvese que la expresión while(1) SIEMPRE es cierta , por lo que el programa correrá imparable hasta que el operador oprima la tecla "secreta" Q . Esto se consigue en el IF , ya que cuando c es igual al ASCII Q se ejecuta la instrucción BREAK ,dando por finalizado el WHILE . El mismo criterio podría aplicarse con el DO-WHILE ó con FOR , por ejemplo haciendo for (;;) { /* loop indefinido */ ............ if( expresión ) break ; /* ruptura del loop cuando expresión sea verdadera */ }
  • 6. LA SENTENCIA CONTINUE La sentencia CONTINUE es similar al BREAK con la diferencia que en vez de terminar violentamente un loop , termina con la realización de una iteración particular y permitiendo al programa continuar con la siguiente. LA FUNCION EXIT() La función EXIT() tiene una operatoria mucho más drastica que las anteriores , en vez de saltear una iteración ó abandonar un lazo de programa , esta abandona directamente al programa mismo dándolo por terminado . Realiza también una serie de operaciones útiles como ser , el cerrado de cualquier archivo que el programa hubiera abierto , el vaciado de los buffers de salida , etc. Normalmente se la utiliza para abortar los programas en caso de que se esté por cometer un error fatal éinevitable . Mediante el valor que se le ponga en su argumento se le puede informar a quien haya llamado al programa ( Sistema Operativo , archivo .bat , u otro programa ) el tipo de error que se cometió. SENTENCIA GOTO Si Ud. se ha admirado de que C tenga la operación GOTO , recuerde que el hecho de existir NO lo obliga a usarla , en el mismo sentido que por tener puertas los aviones no está obligado a saltar por ellas en pleno vuelo. El uso del GOTO implica un salto incondicional de un lugar a otro del programa . Esta práctica hace que los programas sean muy dificiles de corregir ó mantener. Si no quedara más remedio que usarlo, (y en programación estructurada SIEMPRE hay remedio) debe marcarse el destino del salto mediante un nombre seguido por dos puntos . if( c == 0 ) goto OTRO_LADO ; ............................. OTRO_LADO: printf(........
  • 7. En este caso si c es cero se saltean todas las sentencias entre el if y el destino ,continuandose con la ejecución del printf() . El destino puede ser tanto posterior como anterior al GOTO invocante . Estructuras de control En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If- Then-Else y Select-Case) Ejecutar un grupo de sentencias mientras exista una condición (Do-While) Ejecutar un grupo de sentencias hasta que exista una condición (Do-Until) Ejecutar un grupo de sentencias un número determinado de veces (For- Next) Etc Todas las estructuras de control tienen un único punto de entrada y un único punto de salida. Las estructuras de control se puede clasificar en : secuenciales, iterativas y de control avanzadas. Esto es una de las cosas que permite que la programación se rija por los principios de la programación estructurada. Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis, cada lenguaje tiene una sintaxis propia para expresar la estructura. Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.
  • 8. Tipos de estructura de control Algunas estructuras de control en el lenguaje Java Antecendentes El término "estructuras de control", viene del campo de la ciencia computacional. Cuando se presentan implementaciones de Java para las estructuras de control, nos referimos a ellas con la terminología de la Especificación del lenguaje Java, que se refiera a ella como instrucciones. Ejecución secuencial Pero por lo general las instrucciones se ejecutan una después de la otra, en el orden en que están escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial. Transferencia de control En Java, como en otros lenguajes de programación por excelencia como C y/o C++, el programador puede especificar que las siguientes instrucciones a ejecutarse tal vez no sea la siguiente en secuencia. Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita de esta instrucción. Si sabes programar no utilizaras goto. Estructura de control: selección if simple Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de una condición simple, sea falsa o verdadera. Por ejemplo: Escribir un programa en Java que compare dos números e indique si cuál es mayor, menor, mayor y/o igual, menor y/o igual, o si son iguales:
  • 9. StringstrComparacion = ""; ... if( numero1 == numero2 ) strComparacion += numero1 + " == " + numero2; if( numero1 > numero2 ) strComparacion += numero1 + " > " + numero2; if( numero1 < numero2 ) strComparacion += numero1 + " < " + numero2; if( numero1 >= numero2 ) strComparacion += numero1 + " >= " + numero2; if( numero1 <= numero2 ) strComparacion += numero1 + " <= " + numero2; System.out.println(strComparacion); Estructuras de decisión Contenido III. - Estructuras de decisión 3.1 Selección de alternativas 3.2 La construcción if-then-else 3.3 Ifs anidados 3.4 C Estructuras de Selección LA ESTRUCTURA DE SELECCIÓN IF La sentenciaifse la conoce como estructura de selección simple y su función es realizar o no una determinada acción o sentencia, basándose en el resultado de la evaluación de una expresión (verdadero o falso), en caso de ser verdadero se ejecuta la sentencia.
  • 10. Fig. 5.1 La estructura de selección if (que se muestra en la figura 5.1) trabaja de la siguiente manera: si la evaluación de la expresión o expresiones es verdadera ( 1 ) entonces se ejecuta la sentencia a la cual se refiere la estructura de control if. Si fueran varias sentencias a las que se refiere la estructura if (como se muestra en la figura 5.2) se tiene que encerrar todas las sentencias entre llaves ( { } ) y si la evaluación de la expresión es correcta entonces se ejecuta todas las sentencias contenidas entre las llaves. Fig. 5.2 Si la evaluación de la expresión o expresiones resultaría falsa (0), entonces no se ejecuta las sentencias. Por ejemplo si dada la edad de una persona quiero dar un mensaje de que es o no mayor de edad, suponiendo que una persona mayor de edad tiene por lo menos 21 años, el procedimiento será el siguiente. #include <iostream.h> void main() { cout<<"¿Qué edad tienes? n"; cin>>edad if( edad > 20 ) cout<<"Eres mayor de edad" ; }
  • 11. #include<iostream.h> voidmain() { cout<<"¿Qué edad tienes? n"; cin>>edad if ( edad > 20 ) {cout<<"Eres mayor de edad"; cout<<"Te estas volviendo viejo "; } } En Pseudocódigo el anterior ejemplo se vería de la siguiente forma: Inicio Mostrar “¿Qué edad tienes?” Leer edad Si Edad > 20 Entonces Mostrar “Eres mayor de Edad” Fin Si Fin El diagrama de flujo de la estructura if se muestra en la Fig. 5.3, este diagrama contiene el símbolo diamante que es llamado el símbolo de decisión, que indica que decisión se debe tomar. El símbolo de decisión contiene una expresión, y la evaluación de ésta será verdadera o falsa. Las flechas nos indican los dos posibles caminos que se pueden tomar.
  • 12. fig 5.3 El anterior diagrama de flujo funciona de la siguiente manera: 1. Si Edad es mayor que 20 (verdadero) entonces se muestra “Eres mayor de Edad” 2. Si no entonces no hace nada Importante. Para mantener el código legible es bueno dejar espacios o sangrías en todas las líneas de código que están dentro de una estructura if / else o if, estas instrucciones se las alinean un poco más a la derecha y así podemos notar claramente que forman parte de las sentencias que componen a la estructura if. Esta práctica se puede aplicar a cualquier estructura de control. ESTRUCTURA DE SELECCIÓN IF / ELSE La estructura if / else lo que hace es ejecutar una acción si el resultado de la evaluación de la expresión es verdadera y otra acción si el resultado de la evaluación es falsa. La diferencia con utilizar sólo la estructura if es que si la expresión evaluada es verdadera sólo en ese caso se ejecuta una acción de otro modo se pasa de largo. En cambio en la estructura if / else si la expresión es falsa entonces se ejecuta otra acción.
  • 13. Fig. 5.4 En síntesis lo que hace esta estructura es realizar una acción si la expresión es verdadera y otra si es falsa. Aquí tenemos un ejemplo para ilustrar la estructura if / else. #include <iostream.h> void main() { if( edad > 20 ) cout<<"Eres mayor de edad" ; else cout<<"No eres mayor de edad"; } El diagrama de flujo correspondiente a esta estructura es el siguiente: fig. 5.5 El anterior diagrama de flujo funciona de la siguiente manera:
  • 14. 1. Si Edad es mayor que 20 (verdadero) entonces se muestra: “Eres mayor de Edad”. 2. Si no entonces se muestra: “NO eres mayor de Edad”. ESTRUCTURAS CONDICIONALES ANIDADAS Existe el caso de estructuras if, if/elseanidadas, que no es más que una estructura if o if/else dentro de otra. Por ejemplo se desea conocer cuál es el mayor de tres números A, B ,C. 1: #include<iostream.h> 2: voidmain() 3: { 4: int A=0, B=0, C=0; 5: cout<<"Ingrese 3 números"; 6: cin>>A>>B>>C; //Lectura de valores por teclado 7:if( A > B ) 8: {if(A > C ) 9: cout<<"A es el número mayor"; 10: else 11: cout<<"C es el número mayor"; 12: } 13: else 14: {if ( B > C ) 15: cout<<"B es el número mayor"; 16: else 17: cout<<"C es el número mayor"; 18: } 19: }
  • 15. Para explicar el funcionamiento del problema anterior se han enumerado todas las líneas de tal programa. Suponiendo que los valores ingresados por teclado fueran: A=2, B=1, C=5. El programa actuaría de la siguiente manera. El programa se ejecuta secuencialmente hasta la línea 7 donde encuentra una expresión. Cuando se evalúe la expresión (A > B) línea 7, el resultado es verdadero (2 > 1), por lo tanto el programa ejecuta la línea 8, en dicha línea encuentra otra expresión (A > C) y el resultado de evaluar dicha expresión es falso (2 > 5) por lo que el programa salta hasta la línea 11 y muestra "C es el número mayor". Luego va a la línea 12 y verifica el cierre de llaves y finalmente salta hasta la línea 19 siendo la última línea de ejecución.