Ej Ecrepetitivas
Ej Ecrepetitivas
Ej Ecrepetitivas
EXPERIMENTOS
INSTRUCCIONES: Realice los siguientes experimentos y plantee soluciones a los problemas que se le
presenten. Tome nota de sus conclusiones y responda a las cuestiones que se le planteen.
class Ejemplo2
{ public static void main(String argumentos[])
{ int i,suma;
for(i=0;i==10;i++)
suma=suma+i;
System.out.println(suma);
}
}
class Ejemplo
{ public static void main(String ar[])
{ int i,suma=0;
i=1;
while(i!=10)
{ suma=suma+i;
i++;
}
System.out.println(suma);
}
}
class Ejemplo2
{ public static void main(String bfc[])
{ int i,suma=0;
i=1;
while(i<10)
{ suma=suma+i;
i++;
}
System.out.println(suma);
- Cambie la sentencia i++ por i=i+2 ¿Siguen haciendo lo mismo? ¿Cuál es la conclusión?
class Principal
{ public static void main(String arg[])
{ int i,suma;
while(i<10)
suma=suma+i;
i++;
System.out.print(suma);
}
}
class Trazame
{ public static void main (String arg[])
{ int i=1, j;
while (i<=100)
{ j=1;
while (j<=10)
{ System.out.print (i);
i++;
j++;
}
System.out.println();
}
}
}
class Trazame2
{ public static void main (String argv[])
{ int i=1;
System.out.println();
while (??????????)
{ System.out.print (i);
if (??????????)
System.out.println();
Sustituya los interrogantes por las expresiones adecuadas para que haga exactamente lo mismo que el
primero (Pista: recuerde el operador módulo).
EJERCICIOS
1. a) Escriba un programa que muestre los múltiplos de 3 menores que 20.
a) Escriba un programa que muestre la suma de los 20 primeros múltiplos de 3.
b) Construya un programa que imprima la suma de los cuadrados de los 100 primeros números naturales.
2. Leer varios números y mostrar el promedio de los números positivos que se encuentren entre dos negativos.
3. Escriba un programa que: rota, hacia la izquierda, los dígitos de un número tantas veces como indique el
promedio de sus dígitos. Ej. si el valor de entrada es 123 se obtendrá el número 312.
4. Un número gemelo es aquel cuya primera mitad de dígitos es igual a la segunda mitad. Si la cantidad de
dígitos es impar, no deberá tomarse en cuenta el dígito del medio Ej. 123123. Hacer un programa para contar
los números gemelos de una secuencia de números de entrada.
5. Hacer un programa para imprimir todos los números de 1 a 10000, cuya raíz cuadrada sea igual a la suma de
los dígitos de ese número. Ej. numero = 81, 8+1 = 9 y 81 = 9 .
6. Escriba un programa que lea de la entrada estándar valores que representan años e indique si son o no años
bisiestos. El programa seguirá leyendo años hasta un máximo de 10 o hasta que haya leído 3 años bisiestos.
7. Calcule la suma y producto de fracciones, antes de realizar las operaciones es necesario que las dos
fracciones estén simplificadas a su mínima expresión.
8. Escriba un programa que lea del teclado un valor y compruebe que se encuentra comprendido entre dos
valores constantes OPMIN y OPMAX. El programa repetirá la lectura una y otra vez hasta que el número
leído cumpla esta condición. Para finalizar, lo mostrará en la pantalla, junto con el número de veces que ha
necesitado repetir la operación de lectura.
9. Escriba un programa que calcule de forma aproximada el seno de un ángulo comprendido entre −π/2 y π/2
radianes, según la fórmula
angulo 2 angulo 3
sen (angulo ) = angulo + +
6 120
El valor del ángulo se leerá desde la entrada estándar, y se comprobará que se encuentra entre los límites
fijados.
10. Recuerde el programa de cálculo de superficies del tema anterior. Se desea modificar este programa para que
su ejecución se repita indefinidamente hasta que el usuario decida salir del programa. El menú queda ahora
de la siguiente forma:
==========================================
ESTRUCTURAS DE CONTROL REPETITIVAS UMSS
3/8 INF-SIS
CÁLCULO DE SUPERFICIES (versión 2.0)
==========================================
1. Cuadrado lado*lado
2. Círculo pi*radio*radio
3. Rectángulo base*altura
4. Trapecio (base1+base2)*altura/2
5. Triángulo (base*altura)/2
0. Salir del programa
==========================================
Cuando el usuario introduzca una opción del 1 al 5, el programa se comportará de la forma que se vio.
Cuando introduzca la opción 0, el programa terminará mostrando el mensaje "Gracias por usar este
programa. Que tenga un buen día".
11. Modifique el programa anterior para que depure la opción leída del teclado (sólo la dará por buena si está
comprendida entre 0 y 5).
12. Escriba un programa que lea dos fechas dadas por un día, mes y año e indique cuál de ellas es anterior en el
tiempo a la otra. El programa seguirá leyendo pares de fechas hasta que se introduzca un valor 0 como día de
la primera fecha (en tal caso, no seguirá leyendo dicha fecha).
13. Escriba un programa que cuenta la cantidad de mellizos primos menores o iguales que un m dado. Los
mellizos primos son números primos que difieren en dos unidades. Por ejemplo 3 y 5, 5 y 7, 11 y 13, etc.
14. El siguiente programa genera un número aleatorio comprendido entre 1 y el valor de la constante MAXIMO
y posteriormente reta al usuario a que lo adivine. Para ello utiliza la función random que genera un número
aleatorio x donde 0 ≤ x < 1.
inicio
MAXIMO ß 100
numero ß random*MAXIMO
acierto ß falso
si n = numero
entonces
mostrar fin_linea, "¡¡acertaste!!"
acierto ß verdad
sino
si n<numero
entonces
mostrar fin_linea, "El número es mayor"
sino
mostrar fin_linea, "El número es menor"
finSi
finSi
finMientras
fin
15. Modifique el programa anterior para que permita un número máximo de intentos (dado por la constante
MAXINTENTOS), superados los cuales terminará imprimiendo el mensaje "Lo siento, ha perdido".
16. Modifique el programa anterior para que, una vez que el juego termine (bien porque el usuario haya
adivinado el número, o bien porque haya superado el número máximo de intentos), se le pregunte si desea
volver a jugar. Si contesta afirmativamente, se repetirá el juego; en caso contrario, el programa finalizará.
17. Escriba un programa que imprima la tabla de multiplicar de un número que se leerá de la entrada estándar.
El funcionamiento del programa se muestra en el siguiente ejemplo de ejecución (en negrita, el número
introducido por el usuario):
Introduzca un número: 5
La tabla de multiplicar del 5 es:
5 x 1 = 5
5 x 2 = 10
...
5 x 10 = 50
18. Modifique el programa anterior para que imprima la tabla de multiplicar completa del 1 al 10.
19. Modifique cualquiera de los dos programas anteriores de manera que tanto el número máximo como la
cantidad de números en cada fila se lean desde el teclado.
20. Escriba un programa que muestre la serie de Fibonacci para los valores comprendidos entre n y m.
inicio
mostrar fin_linea, "Introduzca un entero positivo: "
leer n
factorial ß 1
para iß1 .. n, +1
factorial ß factorial * i
finPara
Modifíquelo transformando la estructura para en una estructura mientras. Luego traduzca las dos versiones
del programa a un lenguaje de programación como Java o C.
22. El siguiente programa calcula la potencia n-ésima positiva (xn ) de un número entero x.
inicio
mostrar fin_linea, "Introduzca la base y el exponente:"
leer x, n
mientras i<n
potencia ß potencia * x
i ß i+1
finMientras
Modifíquelo transformando la estructura mientras en una estructura para. Luego traduzca las dos versiones
del programa a un lenguaje de programación como Java o C.
23. Traduzca un número binario introducido desde el teclado, al sistema hexadecimal (base 16) de forma directa,
es decir sin convertir el número binario al sistema decimal.
24. Se pide que haga una calculadora polaca; esta consiste en leer dos números y posteriormente un operador. El
operador determina la operación a realizarse entre las dos valores leídos. La siguiente operación se realiza
con el resultado anterior.
25. A partir de un conjunto de puntos, enteros o reales, calcular el número de puntos que están situados dentro
de las áreas delimitadas por las circunferencias c1 = (centro en (5,4) radio 2) y c2 = (centro en (-5,-4) radio
3), incluyendo sus puntos fronterizos.
26. Desarrolle un programa que determine la paga bruta de cada uno de varios empleados. La compañía paga
“tiempo normal” por las primeras 40 horas laboradas por cada empleado y paga “tiempo y medio” por todas
las horas laboradas en exceso de 40 horas. Usted recibe una lista de los empleados de la compañía, el
número de horas que cada empleado trabajó la semana anterior y el sueldo por hora de cada empleado. Su
programa deberá introducir esta información para cada empleado y determinar y exhibir la paga bruta del
empleado.
Por ejemplo (el texto en negrilla corresponde a los datos introducidos por el usuario):
Teclee horas laboradas (0 para terminar): 39
Teclee sueldo por hora del trabajador $ : 10
La paga es $: 390
Teclee horas laboradas (0 para terminar): 40
Teclee sueldo por hora del trabajador $ : 10
La paga es $: 400
Teclee horas laboradas (0 para terminar): 41
Teclee sueldo por hora del trabajador $ : 10
La paga es $: 415
27. Una empresa fabrica dos productos A y B y desea saber cuál de ellos es el más aceptado en el mercado. Para
ello realiza una encuesta y, por cada persona interrogada se obtiene un par de valores: el primer valor del par
indica la aceptación o no del producto A según sea 1 o 0; el segundo valor del par corresponde al producto
B. Por ejemplo, el par (1,0) significa que el encuestado acepta el producto A pero no el B. Se pide:
- Total de encuestados
- Porcentaje de consumidores que aceptan:
- El producto A
28. Una compañía desea transmitir datos por teléfono pero están preocupados de que sus teléfonos estén
"pinchados". Todos sus datos es transmiten como enteros de cuatro dígitos. Se le ha pedido a usted escribir
un programa que cifre los datos para poderlos transmitir con mayor seguridad. Su programa deberá leer un
entero de 4 dígitos y cifrarlo como sigue: sustituya cada dígito por (ese_digito+7)%10. Luego
intercambie el primer y tercer dígitos luego el segundo y cuarto dígitos. Luego imprima el entero cifrado.
Escriba otro programa que recoja un entero de cuatro dígitos cifrado y lo descifre para formar el número
original.
29. El número 73331 tiene la fascinante propiedad de que no solo es primo sino que al ir eliminando
(suprimiendo) el dígito menos significativo, también sigue siendo un número primo. Es decir: 7333, 733, 73,
7, también son primos. Dado un número verifique si cumple tal propiedad mediante un programa.