Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

download Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

of 15

Transcript of Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    1/15

    Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existeotro tipo de estructuras tan importantes como las anteriores que son las estructurasE!E"I"I#AS.Una estructura repetiti$a permite e%ecutar una instrucci&n o un con%unto de instrucciones$arias $eces.Una e%ecuci&n repetiti$a de sentencias se caracteri'a por(

    ) La o las sentencias que se repiten.) El test o prue*a de condici&n antes de cada repetici&n+ que moti$ar, que se repitan o nolas sentencias.Estructura repetitiva while.epresentaci&n -r,ica de la estructura /hile(

    No de*emos conundir la representaci&n -r,ica de la estructura repetiti$a /hile 01ientras2con la estructura condicional i 0Si23uncionamiento( En primer lu-ar se $eriica la condici&n+ si la misma resulta $erdadera see%ecutan las operaciones que indicamos por la rama del #erdadero.

     A la rama del $erdadero la -raicamos en la parte inerior de la condici&n. Una l4nea al inaldel *loque de repetici&n la conecta con la parte superior de la estructura repetiti$a.En caso que la condici&n sea 3alsa contin5a por la rama del 3also y sale de la estructurarepetiti$a para continuar con la e%ecuci&n del al-oritmo.El *loque se repite 1IEN"AS la condici&n sea #erdadera.Importante: Si la condici&n siempre retorna $erdadero estamos en presencia de un ciclorepetiti$o ininito. Dicha situaci&n es un error de pro-ramaci&n+ nunca inali'ar, elpro-rama.

    Problema 1:

    eali'ar un pro-rama que imprima en pantalla los n5meros del 6 al 677.Sin conocer las estructuras repetiti$as podemos resol$er el pro*lema empleando unaestructura secuencial. Iniciali'amos una $aria*le con el $alor 6+ lue-o imprimimos la$aria*le+ incrementamos nue$amente la $aria*le y as4 sucesi$amente.

    Diagrama de flujo:

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    2/15

    Si continuamos con el dia-rama no nos alcan'ar4an las pr&ximas 8 p,-inas parainali'arlo. Emplear una estructura secuencial para resol$er este pro*lema produce undia-rama de lu%o y un pro-rama en 9a$a muy lar-o.

     Ahora $eamos la soluci&n empleando una estructura repetiti$a /hile(

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    3/15

    Es muy importante anali'ar este dia-rama(La primera operaci&n iniciali'a la $aria*le x en 6+ se-uidamente comien'a la estructurarepetiti$a /hile y disponemos la si-uiente condici&n 0 x :; 6772+ se lee 1IEN"AS la$aria*le x sea menor o i-ual a 677.

     Al e%ecutarse la condici&n retorna #EDADEO porque el contenido de x 062 es menor oi-ual a 677. Al ser la condici&n $erdadera se e%ecuta el *loque de instrucciones quecontiene la estructura /hile. El *loque de instrucciones contiene una salida y unaoperaci&n.Se imprime el contenido de x+ y se-uidamente se incrementa la $aria*le x en uno.La operaci&n x;x < 6 se lee como =en la $aria*le x se -uarda el contenido de x m,s 6=. Esdecir+ si x contiene 6 lue-o de e%ecutarse esta operaci&n se almacenar, en x un >.

     Al inali'ar el *loque de instrucciones que contiene la estructura repetiti$a se $eriicanue$amente la condici&n de la estructura repetiti$a y se repite el proceso explicadoanteriormente.1ientras la condici&n retorne $erdadero se e%ecuta el *loque de instrucciones? al retornar also la $eriicaci&n de la condici&n se sale de la estructura repetiti$a y continua elal-oritmo+ en este caso inali'a el pro-rama.Lo m,s di4cil es la deinici&n de la condici&n de la estructura /hile y qu@ *loque deinstrucciones se $an a repetir. O*ser$ar que si+ por e%emplo+ disponemos la condici&n x;677 0 si x es mayor o i-ual a 6772 no pro$oca nin-5n error sint,ctico pero estamos enpresencia de un error l&-ico porque al e$aluarse por primera $e' la condici&n retorna alsoy no se e%ecuta el *loque de instrucciones que quer4amos repetir 677 $eces.

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    4/15

    No existe una ECE"A para deinir una condici&n de una estructura repetiti$a+ sino que selo-ra con una pr,ctica continua solucionando pro*lemas.Una $e' planteado el dia-rama de*emos $eriicar si el mismo es una soluci&n $,lida alpro*lema 0en este caso se de*e imprimir los n5meros del 6 al 677 en pantalla2+ para ellopodemos hacer un se-uimiento del lu%o del dia-rama y los $alores que toman las$aria*les a lo lar-o de la e%ecuci&n(

    x1234..

      100  101 Cuando x vale 101 la condición de la estructura repetitiva retornafalso,

    en este caso naliza el diagrama.Importante: !odemos o*ser$ar que el *loque repetiti$o puede no e%ecutarse nin-una $e'

    si la condici&n retorna also la primera $e'.La $aria*le x de*e estar iniciali'ada con al-5n $alor antes que se e%ecute la operaci&n x;x< 6 en caso de no estar iniciali'ada aparece un error de compilaci&n.

    Programa:

    public class EstructuraRepetitivaWhile1 {

      public static void main(String[] ar) {

      int x;

      x=1;

      while (x

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    5/15

    2 - 'e(emos inicializar x con el valor "0.3 - nicializar x con el valor -"0 ar la condición x+0.4 - nicializar a x con el valor 2 dentro del (lo/ue repetitivo incrementar a xen 2

    # x x 2 &.

    Problema 2:

    Escri*ir un pro-rama que solicite la car-a de un $alor positi$o y nos muestre desde 6hasta el $alor in-resado de uno en uno.E%emplo( Si in-resamos 7 se de*e mostrar en pantalla los n5meros del 6 al 7.Es de 3UNDA1EN"AL importancia anali'ar los dia-ramas de lu%o y la posterior codiicaci&n en 9a$a de los si-uientes pro*lemas+ en $arios pro*lemas se presentan otrassituaciones no $istas en el e%ercicio anterior.

    Diagrama de flujo:

    !odemos o*ser$ar que se in-resa por teclado la $aria*le n. El operador puede car-ar cualquier $alor.Si el operador car-a 67 el *loque repetiti$o se e%ecutar, 67 $eces+ ya que la condici&nes 1ientras x:;n + es decir mientras x sea menor o i-ual a 67? pues x comien'a enuno y se incrementa en uno cada $e' que se e%ecuta el *loque repetiti$o.

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    6/15

     A la prue*a del dia-rama la podemos reali'ar d,ndole $alores a las $aria*les? por e%emplo+ si in-resamos 8 el se-uimiento es el si-uiente(n x" 1 #e imprime el contenido de x&  2   3

      4   "   $ #ale del )*ile por/ue $ no es menor o igual a "&

    Programa:

    import java.util.Scanner;

    public class EstructuraRepetitivaWhile2 {

      public static void main(String[] ar) {

      Scanner teclado=new Scanner(System.in);

      int n,x;  System.out.print("Ingrese el valor final:");

      n=teclado.nextInt();

      x=1;

      while (x

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    7/15

    En este pro*lema+ a seme%an'a de los anteriores+ lle$amos un CON"ADO llamado x quenos sir$e para contar las $ueltas que de*e repetir el /hile."am*i@n aparece el concepto de ACU1ULADO 0un acumulador es un tipo especial de

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    8/15

    $aria*le que se incrementa o decrementa con $alores $aria*les durante la e%ecuci&n delpro-rama2Hemos dado el nom*re de suma a nuestro acumulador. Cada ciclo que se repita laestructura repetiti$a+ la $aria*le suma se incrementa con el contenido in-resado en la$aria*le $alor.La prue*a del dia-rama se reali'a d,ndole $alores a las $aria*les(

    valor suma x promedio  0 0#ntes de entrar a la estructura repetitiva estos son los valores&. " " 11$ 21 2  2% 310 3% 4 2 40 "20 $0 $ " $"  " 0 %10 %0 5

     2 %2 10 % 50 11

      5

    Este es un se-uimiento del dia-rama planteado. Los n5meros que toma la $aria*le $alor depender, de qu@ ciras car-ue el operador durante la e%ecuci&n del pro-rama.El promedio se calcula al salir de la estructura repetiti$a 0es decir primero sumamos los 67$alores in-resados y lue-o los di$idimos por 672Hay que tener en cuenta que cuando en la $aria*le $alor se car-a el primer $alor 0en estee%emplo 82 al car-arse el se-undo $alor 062 el $alor anterior 8 se pierde+ por ello lanecesidad de ir almacenando en la $aria*le suma los $alores in-resados.

    Programa:

    import java.util.Scanner;

    public class EstructuraRepetitivaWhile3 {

      public static void main(String[] ar) {

      Scanner teclado=new Scanner(System.in);

      int x,suma,valor,promedio;

      x=1;

      suma=0;

      while (x

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    9/15

      System.out.print("El promedio es:");

      System.out.print(promedio);

      }

    }

    Problema :

    Una planta que a*rica periles de hierro posee un lote de n pie'as.Coneccionar un pro-rama que pida in-resar por teclado la cantidad de pie'as a procesar y lue-o in-rese la lon-itud de cada peril? sa*iendo que la pie'a cuya lon-itud est@comprendida en el ran-o de 6+>7 y 6+7 son aptas. Imprimir por pantalla la cantidad depie'as aptas que hay en el lote.

    Diagrama de flujo:

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    10/15

    !odemos o*ser$ar que dentro de una estructura repetiti$a puede ha*er estructurascondicionales 0inclusi$e puede ha*er otras estructuras repetiti$as que $eremos m,sadelante2En este pro*lema hay que car-ar inicialmente la cantidad de pie'as a in-resar 0 n 2+se-uidamente se car-an n $alores de lar-os de pie'as.Cada $e' que in-resamos un lar-o de pie'a 0lar-o2 $eriicamos si es una medida correcta0de*e estar entre 6.>7 y 6.7 el lar-o para que sea correcta2+ en caso de ser correcta laCON"A1OS 0incrementamos la $aria*le cantidad en 62

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    11/15

     Al contador cantidad lo iniciali'amos en cero porque inicialmente no se ha car-ado nin-5nlar-o de medida.Cuando salimos de la estructura repetiti$a porque se han car-ado n lar-os de pie'asmostramos por pantalla el contador cantidad 0que representa la cantidad de pie'as aptas2En este pro*lema tenemos dos CON"ADOES(x #Cuenta la cantidad de piezas cargadas *asta el momento&

    cantidad #Cuenta los perles de *ierro aptos&

    Programa:

    import java.util.Scanner;

    public class EstructuraRepetitivaWhile4 {

      public static void main(String[] ar) {

      Scanner teclado=new Scanner(System.in);

      int x,cantidad,n;

      float largo;

      x=1;  cantidad=0;

      System.out.print("Cuantas piezar procesará:");

      n=teclado.nextInt();

      while (x=1.20 && largo

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    12/15

     while(i

     /0I12%.33/%%;

     ! los resultados de la compilacin:

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    13/15

     

    UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO Ingeniería de SistemasCurso: Fundamentos de Programai!n" #amani #o$a% RO&ERT'

    ") 

    Ingresado el número de t#rminos de la serie, mostrar la suma de la serie completa.6+ >+ >+ F+ + + F+ G+ 8+ 67++.

     Cdigo:#include #include using namespacestd;intmain(intargc,char*argv[]){inti,4,5,n,suma;coutn;i!$; 4!; 5!$; suma!;cout

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    14/15

    (i6!!){ cout

  • 8/15/2019 Hasta Ahora Hemos Empleado Estructuras SECUENCIALES y CONDICIONALES

    15/15

     

    UNIVERSIDAD NACIONAL DEL ALTIPLANO - PUNO Ingeniería de SistemasCurso: Fundame

    ntos de Programai!n" #amani #o$a% RO&ERT