La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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 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.

2 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; }

3 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.

4 4 public class ahorro{ public static void main (String[] args) { Long N; // N > 1 Double D,R, I,DI; // D > 0, R > 0, 100% 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 =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); }

5 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); }

6 6 abcdePantalla 37 12 37120 18 12 24 948 49660 2192 1384 0768444El resultado es: 444

7 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

8 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 3); if(n==1) //cambiar por Switch { do { printf("Ingrese un Numero entero"); m=StdIn.readInt(); }while(m =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

9 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 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"); }

10 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-10gr Cada 2 metros: recoge 1 paquete que pesa paquete=1e-6 gr Cada 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

11 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"); }

12 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

13 13 abcsumajiPantalla 1236 0 000 Estado Actual 0**0**0**12 0 Encontré un par 0 001211 0 Encontré un par 0 1 1122 -2 0 Encontré un par 0 1 2 Encontré un par 2 -2 333 -3 0 Encontré un par 0 1 2 Encontré un par 2 3


Descargar ppt "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."

Presentaciones similares


Anuncios Google