13
1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada por: Fi = Fi-1 + Fi-2 Para n números con n > 2. Se debe imprimir no más de 10 números por línea.

1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

Embed Size (px)

Citation preview

Page 1: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

1

IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago

1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada por:

Fi = Fi-1 + Fi-2

Para n números con n > 2. Se debe imprimir no más de 10 números por línea.

Page 2: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

2

IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago

public class fibonacci{ public static void main(String[] args) { double f1,f2,f3; long n,cont; // n > 2 do { StdOut.println("Ingrese valor de n:"); n=StdIn.readLong(); } while (n<=2); f1=1;f2=1; cont=2; StdOut.print(f1+","); StdOut.print(f2+","); while (cont < n) { f3=f1+f2; StdOut.print(f3+","); cont++; if (cont % 10 ==0) StdOut.println(); f1=f2; f2=f3; } }}

Page 3: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

3

IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago

2. Uso de For: Codificar un programa que calcule el ahorro acumulado por un estudiante luego de N meses considerando que deposita D pesos mensuales y que retira R pesos cada 3 meses. El banco le da un interés mensual de I% y el depósito inicial es de DI pesos.

Debe considerar las siguientes validaciones:

-N > 1-D > 0-R > 0-100%>I > 0 %-DI > 0

Considere que si el momento de girar el dinero existente en la cuenta no alcanza para cubrir el retiro, este no se produce.

Page 4: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

4

public class ahorro{ public static void main (String[] args) { Long N; // N > 1 Double D,R, I,DI; // D > 0, R > 0, 100% < I < 0%, DI > 0 Double ahorro; do { StdOut.println("Ingrese N:"); N=StdIn.readLong(); StdOut.println("Ingrese Depósito:"); D=StdIn.readDouble(); StdOut.println("Ingrese Retiro:"); R=StdIn.readDouble(); StdOut.println("Ingrese interes:"); I=StdIn.readDouble(); StdOut.println("Ingrese depósito inicial:"); DI=StdIn.readDouble(); } while ((N<=1)||(D<=0)||(R<=0)||(I<=0)||(I>=100)||(DI<=0)); ahorro=DI; for (long k=1;k<N;k++) { ahorro+=ahorro*I/100; ahorro+=D; if (k%3==0) ahorro-=R; }; StdOut.printf("Ahorro obtenido luego de %d años:%.1f",N,ahorro); }}

Page 5: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

5

3. Ruteo: Dado el siguiente programa, indicar el valor que toma paso a paso cada variable, tomando como entrada 37 y 12:

public class ruteo{ public static void main(String[] args) { int a, b, c, d, e; StdOut.printf("ingrese numero entero:"); a=StdIn.readInt(); StdOut.printf("ingrese otro numero entero:"); b=StdIn.readInt(); c = a; d = b; e = 0; while (c >= 1) { if (c % 2 != 0) e +=d; c = c / 2 - c % 2 / 2; d = d * 2; }; StdOut.printf("El resultado es:%d\n",e); } }

Page 6: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

6

a b c d e Pantalla

37          

  12        

    37 12 0  

    18   12  

      24    

    9 48    

    4 96 60  

    2 192    

    1 384    

    0 768 444 El resultado es: 444

Page 7: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

7

IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago

 

En el programa que se da a continuación, efectué los cambios de estructura que se solicitan, sin cambiar la actual lógica.

4. Cambio de estructura

Page 8: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

8

Public Class transforma{Public static void main(String[ ] Args){int n,m,h,p,x,y,j,i; do //cambiar por WHILE { StdOut.printf("Ingrese un Numero entero"); n=StdIn.readInt(); } while (n<1||n>3); if(n==1) //cambiar por Switch { do { printf("Ingrese un Numero entero"); m=StdIn.readInt(); }while(m<1); x=0; for (i=1;i<=m;i++) x+=i; //cambiar por WHILE StdOut.printf("%d",x); } else { if (n==2) { do { StdOut.printf("Ingrese un Numero entero"); h=StdIn.readInt(); }while(h<1); y=1; j=h; while (j>=1) { y*=j; j--;}; //cambiar por DO-WHILE StdOut.printf("%d",y); } else { if(n==3) { do {StdOut.printf("Ingrese un Numero entero"); p=StdIn.readInt(); }while (p<1); switch(p%2==0) //cambiar por if { case 0:StdOut.printf("El numero es par\n");break; case 1:StdOut.printf("El numero es impar\n");break; }; } else StdOut.printf("Esta opción no está implementada"); }; };

} // Main } // Class

 

Page 9: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

9

public class transforma{ public static void main (String[] args) { int n,m,h,p,x,y,j,i; StdOut.printf("Ingrese numero entero:"); n=StdIn.readInt(); while (n <1 || n>3) { StdOut.printf("Ingrese numero entero:"); n=StdIn.readInt(); } switch (n) { case 1: { do { StdOut.printf("Ingrese numero entero:"); m=StdIn.readInt(); }while (m<1); x=0; i=1; while (i<= m) {x+=i;i++}; StdOut.printf("%d",x); } case 2: { do { StdOut.printf("Ingrese numero:"); h=StdIn.readInt(); }while (h<1); y=1;j=h; if (j>=1) { do { y*=j; j--; } while (j>=1); } } case 3: { do { StdOut.printf("Ingrese numero entero:"); p=StdIn.readInt(); } while (p<1); if (p%2==1) StdOut.printf("El numero es par"); else StdOut.printf("El numero es impar"); } default: StdOut.printf("Opción no implementada"); } }}

 

Page 10: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

10

IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago

En una comunidad “Hormiguística”, una hormiga (macho) se desplaza desde el punto A al punto B (Hormiguero), llevando paquetes de comida que va recogiendo en el camino, bajo las siguientes condiciones:

Cada 1 metro : pierde peso por transpiración igual a liquido=1e-10grCada 2 metros: recoge 1 paquete que pesa paquete=1e-6 grCada 5 metros: bota 1 un paquete , si la cantidad de paquetes en su lomo en ese momento es impar.Cada 10 metros: Se detiene a comer aumentando su peso corporal debido al alimento en: comida=1e-10 gr.Se debe considerar que el peso máximo que soporta la hormiga sobre su lomo es de pmax=1e-4gr, por lo que no subirá más paquetes si ya completó este peso.

Codificar un programa Java que dada una distancia en metros entre A y B, calcule:

-Con cuantos paquetes llega al hormiguero-Determine si el peso de la hormiga aumenta o disminuye por

los efectos de la transpiración y por la comida.

 

5. Comunidad Hormiguística

Page 11: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

11

 

public class hormiga{ public static double PMAX=1e-4; public static double PESO_PAQUETE=1e-6; // cada 2 metros sube uno y cada 5 baja si n° de paquetes es impar public static double COMIDA=1e-8; // cada 10 metros public static double TRANSPIRA=1e-10; //cada 1 metro public static void main(String[] args) { long n; double paquetes,peso; do { StdOut.println("Ingrese N:"); n=StdIn.readLong(); } while (n < 2); peso=0; paquetes=0; for (int i=1;i<n;i++) { peso-=TRANSPIRA; if ((i%2==0) && (peso<PMAX)) { paquetes++; peso+=PESO_PAQUETE; } if ((i%5==0) && (i%2!=0)) { paquetes--; peso-=PESO_PAQUETE; } if (i%10==0) peso+=COMIDA; } StdOut.println("Paquetes:"+paquetes); if (peso==0) StdOut.println("Peso no varió"); else if (peso<0) StdOut.println("Perdió peso"); else StdOut.println("Aumentó de peso"); }}

Page 12: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

12

 

6. Ruteo: Dado el siguiente programa, indicar el valor que toma paso a paso cada variable.public class Enredo { public static void main(String[] args) { int a,b,c, suma, j, i; a=1; b=2; c=3; suma = a+b+c; for (i=0; i<=suma; i++) { suma = suma + (a*b*c); b=a; c=b--; a=--c; if ((a*b*c) == 0) { StdOut.println("El estado actual es " + a + " ** " + b + " ** " + c + " ** " + suma); } j=0; while (j <= i) { if ((j % 2) == 0) { StdOut.println("Encontre un par " + j); } j = j+1; }//while }//for }//main}//class

Page 13: 1 IWI-131 PROGRAMACION DE COMPUTADORES UTFSM – Campus Santiago 1. Uso de While y Do-While: Codificar un programa para calcular la serie de Fibonacci dada

13

a b c suma j i Pantalla

1 2 3 6   0  

0 0 0       Estado Actual 0**0**0**12

        0   Encontré un par 0

  0 0 12 1 1  

-1 -1 -1   0   Encontré un par 0

        1    

  -1 -1 11 2 2  

-2 -2 -2   0   Encontré un par 0

        1    

        2   Encontré un par 2

  -2 -2 3 3 3  

-3 -3 -3   0   Encontré un par 0

        1    

        2   Encontré un par 2

        3