You are on page 1of 5

Metodologa y Tecnologa de la Programacin

ESI-UCLM

Tema 3. Estructuras de control y programacin estructurada


1. Cul es el resultado de este programa? class Ejemplo { public static void main(String [] args) { int i=3; int j=4; boolean etiqueta=false; //Ejemplo de y lgico if (i==3 && j==4) { System.out.println ("La condicion se cumple"); } else { System.out.println ("La condicion no se cumple"); } //Ejemplo de o lgico if (i==1 || j==4) { System.out.println ("La condicion se cumple"); } else { System.out.println ("La condicion no se cumple"); } //Ejempo de no lgico if (!etiqueta) { System.out.println ("La condicion se cumple"); } else { System.out.println ("La condicion no se cumple"); } }//fin main }//fin clase Ejemplo

2. Cul es el error de este programa? Cmo se podra subsanar?

class Ejemplo { public static void main(String [] args) { char c='c'; if (c=='c' || 'd') { System.out.println ("Estoy en el if"); } else { System.out.println ("Estoy en el else "); } }//fin main }//fin clase Ejemplo

3. Suponga que r1 y r2 son dos nmeros reales. Escriba el cdigo necesario para determinar si son iguales suponiendo que la precisin de la representacin numrica es p.

Ejercicios tema 3

Pgina: 1

Metodologa y Tecnologa de la Programacin

ESI-UCLM

4. Qu imprimira el siguiente programa? class Alcance{ public static void main(String [] args){ int numero=100; if (numero<103){ int dentroAmbito=3; System.out.println("*Dentro del bloque"); System.out.print("dentroambito= "+dentroAmbito+ " numero= "+numero); } // Cierra el bloque del if //System.out.println("Fuera del bloque "+dentroAmbito); System.out.println("\n\n*Fuera del bloque\n"+ "Solo existe numero "+numero); } // Cierra el bloque del main } // Cierra la clase 5. Una lnea de autobuses cobra un mnimo de 20 euros por persona y trayecto. Si el trayecto es mayor de 200 km el billete tiene un recargo de 3 cntimos por km adicional. Sin embargo, para trayectos de ms de 400 km el billete tiene un descuento del 15 %. Por otro lado, para grupos de 3 o ms personas el billete tiene un descuento del 10 %. Con las consideraciones anteriores, escriba en Java un programa estructurado que lea por teclado la distancia del viaje a realizar, as como el nmero de personas que viajan juntas. Con ello se debe calcular tanto el precio del billete individual como el total a pagar si viaja ms de una persona. 6. )Cul es el resultado del siguiente programa? class Ejercicio { public static void main(String [] args) { char a='g'; switch (a) { case 'g': a++; default: if (a<'g') a--; else a='m'; } System.out.println(a); }//fin main }//fin clase

7. Calcular el sumatorio

ji
N i' 1
Siendo N un entero que se introduce por teclado. Implemente 3 programas usando cada uno de los tipos de bucles que conoce. 8. Calcular el productorio

ki
N i '1
Siendo N un nmero entero que se introduce por teclado. Implemente un programa usando un blucle for.

Ejercicios tema 3

Pgina: 2

Metodologa y Tecnologa de la Programacin

ESI-UCLM

9. El siguiente fragmento de programa pretende sumar los enteros de 1 a n (ambos inclusive) almacenando el resultado en la variable sum. )Es correcto el programa? Si no lo es, indique por qu y qu habra que hacer para solucionarlo. i=0; sum=0; while (i<=n) { i=i+1; sum=sum+i; } 10. Qu hace este programa? import java.util.Scanner; class Ejemplo { public static void main (String [ ] args) { char caracter; Scanner lectura=new Scanner(System.in); System.out.print("Introduzca a o b\n"); caracter = (lectura.next()).charAt(0); while (caracter!='a' || caracter!='b') { System.out.print("Opcion erronea, pruebe de nuevo\n"); caracter=(lectura.next()).charAt(0); }//del while }//del main }//fin clase a) Entra en el while cuando lee una letra que no sea 'a' o 'b'; b) No entra en el while cuando lee la letra 'a' ; c) Siempre entra en el bucle while; d) No entra en el while cuando lee la letra b 11. Cul es el resultado de este programa? Y si la variable a fuera par? class Ejercicio{ public static void main (String [] args) { int a=3; int n=10; int cont=0; for (int var=0; var<n;var++) { if ((a%2==0) || (var%2) ==0) { cont++; } } System.out.println(cont); } } 12. Qu imprime el siguiente programa? class Ejercicio{ public static void main (String [] args) { int var=1; int m=1; boolean x=true; do{ if (!x){ var=2; } do { m++; } while(m<3); x=false; }while(var!= 2 ); System.out.println(m); } }

Ejercicios tema 3

Pgina: 3

Metodologa y Tecnologa de la Programacin

ESI-UCLM

13. Para una disolucin de un cido dbil, HA, cuya constante de disociacin sea Ka , el pH viene dado por la expresin (aproximada):

pH (1/2) ( pK a &log [ HA] )


donde pKa es el menos logaritmo decimal de Ka, log representa el logaritmo decimal y [HA] es la concentracin molar (moles/litro) del cido. Escriba un programa en Java que acepte la constante de acidez de un cido dbil y luego pregunte por la concentracin de la disolucin, evaluando el pH. El programa debe solicitar un valor de concentracin tras cada clculo hasta que el usuario indique que no desea calcular el pH de ninguna nueva disolucin. 14. Disee y codifique un programa estructurado en Java que calcule el factorial de un nmero entero positivo cualquiera (incluido cero). El programa debe solicitar un entero para calcular el factorial, identificar el caso de un entero negativo y, en ese caso, solicitar un nuevo valor hasta que se introduzca un entero no negativo. Tras calcular el factorial el programa debe preguntar si se desea introducir un nuevo entero. Si es as, el programa debe solicitar un valor entero en las mismas condiciones que anteriormente. El proceso se repetir hasta que el usuario indique que no desea seguir calculando factoriales. 15. Usando bucles como nicas estructuras de control y una nica sentencia de impresin para el carcter o, escriba un programa en Java que imprima la siguiente salida: ooooo ooo o 16. Reestructure el siguiente fragmento de cdigo para evitar el uso de saltos incondicionales. while (i < n) { j=Integer.parseInt(leer.readLine()); if (j==-1) break; i++; } 17. Haga un programa que dados dos nmeros introducidos por teclado indique si son amigos o no. El programa debe ofrecer la posibilidad de continuar. Nota: Dos nmeros amigos son dos enteros positivos (n1, n2) tales que la suma de los divisores propios de uno de ellos es igual al otro (la unidad se considera divisor propio, pero no lo es el mismo nmero). Por ejemplo, 220 y 284 son amigos, ya que: Suma de divisores de 284: 1 + 2 + 4 + 71 + 142 = 220 Suma de divisores de 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284. Tambin son nmeros amigos 17296 y 18416 18. Dado el siguiente programa: class Ejercicio{ public static void main (String [] args) { double x,y; x=15.0; y=10.0; int var1 =(int) ((x/4)+1); int var2 = (int) (y/4); while (var1 > 0) { var1 = var1-1; var2 = var2 * var1; System.out.print(var2 + " "); } } //fin main }//fin clase Ejercicio a) Indicar qu imprimira; b) Escribir un bucle for que produzca el mismo resultado.

Ejercicios tema 3

Pgina: 4

Metodologa y Tecnologa de la Programacin

ESI-UCLM

19. Complete el siguiente programa para que la salida sea suma=5 class Ejemplo { public static void main (String[] args) { int suma; ..................... for (int j=1;j<=5;j=j+3) { suma=suma+j; } System.out.print ("suma="+suma); } }

20. Dada la siguiente secuencia de sentencias if-else transfrmela en una secuencia equivalente usando una nica sentencia switch if (opcion==u) x=x+1; else if (opcion==d) x=x+2; else if (opcion==t) x=x+3; else x=x+4;

Ejercicios tema 3

Pgina: 5

You might also like