Programación en JAVA
-
Upload
constanza-figueroa-meneses -
Category
Documents
-
view
373 -
download
0
Transcript of Programación en JAVA
IntegrantesDaniela Abaroa, Constanza Figueroa,
Josseline Montes,Bárbara Pereira y Claudia Reyes
ProfesorJuan Soza
Fecha20 de Junio de 2011
PROGRAMACIÓN EN JAVA
JAVA
¿Qué es JAVA?
Lenguaje de programación
Programa de ejecución
JAVA
Usos de JAVA
Sistemas rápidos y estables.
Por ejemplo: Sonda Spirit enviada por la NASA a
Marte.
Tiene un mar de proyectos “open source”.
JAVA
Máquina virtual
Multiplataforma
Compilación de un programa JAVA “bytecode”.
Bytecode interpretado por JVM’s.
JVM’s ambiente multiplataforma.
JVM’s traduce los bytecodes a código nativo.
JAVA
Máquina virtual
Código JAVA.java
Compiladorjavac
Bytecode.class
Ejecutarprograma
JAVA
Ediciones de JAVA
1.- Java 2 Standard Edition (J2SE)
JDK O SDK
JRE
2.- Java 2 Mobile Edition (J2ME)
CLDC
CDC
3.- Java 2 Enterprise Edition (J2EE)
PROBLEMAS PROPUESTOS
1.- Escribir un programa que calcule el número de billetes
de 10.000, 5.000, 1,000, así como de monedas de 500,
100, 25, 5 y 1 pesos para desglosar una cantidad, C, de
pesos (menor de 2.147.483.647), de forma que se
necesite la menor cantidad de monedas y billetes de cada
tipo.
Desarrollo del ejercicio
Consideraciones:
1. Calcular el monto de billetes y monedas para un
monto entregado por pantalla.
2. El monto deberá ser menor a 2.147.483.647
3. Se debe calcular para que necesite la menor cantidad
de monedas y billetes.
Reflexión:
1.- El monto se deberá ir dividiendo por el valor del
billete más grande y así sucesivamente.
Ejemplo:
$26,850 pesos en billetes de $20,000
Será 26.850 / 20.000; 1 billete de $20.000
Reflexión:
2.- Deberemos validar el monto ingresado a través del
código entregado por el profesor y solicitar el monto por
teclado.
Reflexión:
3.- Deberemos considerar que al tratarse de dinero, los
montos deben ser mayores a 0, y además menor a
2.147.483.647 (como señala la condición).
Reflexión:
4.- Deberemos considerar la posibilidad de ingresar
montos negativos o mayores al monto señalado como
condición.
package ejercicio_3;
import javax.swing.JOptionPane;
public class EJERCICIO_3 {
public static void main(String[] args) {
long cantidad , a = 0, b = 0, c= 0, d = 0,e = 0, f= 0, g= 0, h= 0, i= 0, j= 0; String cc;
PROGRAMA RESUELTO
Do {
cc = JOptionPane.showInputDialog("ingrese cantidad");
}
while (!validar(cc,true));
cantidad = Long.parseLong(cc);
PROGRAMA RESUELTO
if (cantidad > 0 & cantidad <2147483647) {
a = cantidad / 20000;
b = (cantidad - (a* 20000))/ 10000;
c = (cantidad -(b* 10000 + a* 20000 ))/5000;
d = (cantidad -(c*5000 + b* 10000 + a* 20000))/ 1000;
e = (cantidad -(d*1000 + c*5000 + b* 10000 + a* 20000))/500;
PROGRAMA RESUELTO
f = (cantidad -(e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/100;
g = (cantidad -(f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/50;
h = (cantidad -(g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/10;
i = (cantidad -(h*10 + g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/5;
j = (cantidad -(i*5 + h*10 + g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000));
PROGRAMA RESUELTO
JOptionPane.showMessageDialog(null, a + " Billetes de $20.000 \n" +
b + " Billetes de $10.000 \n" +
c + " Billetes de $5.000 \n" +
d + " Billetes de $1.000 \n" +
e + " monedas de $500 \n" +
f + " monedas de $100 \n" +
g + " monedas de $50 \n" +
h + " monedas de $10 \n" +
i + " monedas de $5 \n" +
j + " monedas de $1"); }
PROGRAMA RESUELTO
else if (cantidad > 2147483647)
JOptionPane.showMessageDialog (null,"Error, valor demasiado grande");
PROGRAMA RESUELTO
else {
a = (-1*cantidad) / 20000;
b = ((-1*cantidad) - (a* 20000))/ 10000;
c = ((-1*cantidad) -(b* 10000 + a* 20000 ))/5000;
d = ((-1*cantidad) -(c*5000 + b* 10000 + a* 20000))/ 1000;
PROGRAMA RESUELTO
e = ((-1*cantidad) -(d*1000 + c*5000 + b* 10000 + a* 20000))/500;
f = ((-1*cantidad) -(e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/100;
g = ((-1*cantidad) -(f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/50;
h = ((-1*cantidad) -(g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/10;
i = ((-1*cantidad) -(h*10 + g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000))/5;
j = ((-1*cantidad) -(i*5 + h*10 + g* 50 + f*100 + e*500 + d*1000 + c*5000 + b* 10000 + a* 20000));
PROGRAMA RESUELTO
PROGRAMA RESUELTO
JOptionPane.showMessageDialog (null, a + " Billetes de $20.000 \n"
+
b + " Billetes de $10.000 \n" +
c + " Billetes de $5.000 \n" +
d + " Billetes de $1.000 \n" +
e + " monedas de $500 \n" +
f + " monedas de $100 \n" +
g + " monedas de $50 \n" +
h + " monedas de $10 \n" +
i + " monedas de $5 \n" +
j + " monedas de $1"); }
System.exit(0);
}
public static boolean validar(String cadNum,boolean entero) {
char carDigito; boolean coma = false, signo = false;
PROGRAMA RESUELTO
for (int i=0; i<cadNum.length();i++) {
carDigito = cadNum.charAt(i);
if (carDigito == '.' && entero) return false;
if (i==0 && carDigito == '-') {signo = true; continue;}
if (i==0 && carDigito == '+') {signo = true; continue;}
if (signo && carDigito == '-') return false;
PROGRAMA RESUELTO
if (signo && carDigito == '+') return false;
if (i==0 && (carDigito < '0' || carDigito > '9')) return false;
if (carDigito == '.' && !coma) {coma = true; continue;}
if (carDigito == '.' && coma) return false;
if (carDigito < '0' || carDigito > '9') return false;
PROGRAMA RESUELTO
}
return true;
}
}
PROGRAMA RESUELTO
PROBLEMAS PROPUESTOS
2.- Implementar un programa que sea capaz de calcular el
resultado de aplicar la fórmula siguiente (n i)= n! /( i! * (n-
i)!). Se lee un número por teclado que debe ser mayor o
igual que cero. Teniendo en cuenta además que n tiene
que ser necesariamente mayor que i.
Desarrollo del ejercicio
Consideraciones:
1.- Se leen dos números por teclados, “n” e “i”, los
cuales deben ser mayores o iguales a cero. Además, se
debe cumplir que “n” sea mayor que “i”.
Consideraciones:
2.- El ejercicio planteado corresponde a la fórmula de
combinatoria.
(𝒏𝒊 )=𝒏 !/ (𝒊 !∗ (𝒏−𝒊 )!)
Consideraciones:
3.- Se deberá hacer el calculo de los factoriales antes de
la aplicación de la fórmula de combinatoria.
Consideraciones:
4.- Se deberá indicar al usuario cuando ingrese valores
negativos o cuando el valor de “n” sea inferior al valor de
“i”.
package ejercicio_14;
import javax.swing.JOptionPane;
public class EJERCICIO_14 {
public static void main(String[] args) {
int factorial_n = 1;
int factorial_i = 1;
int n = 1 ; int a = 1;
int i = 1 ; int b = 1;
PROGRAMA RESUELTO
PROGRAMA RESUELTO
String ci;
String cn; cn = JOptionPane.showInputDialog("ingrese n");
ci = JOptionPane.showInputDialog("ingrese i"); n = Integer.parseInt(cn);
i = Integer.parseInt(ci);
while (a <= n) {
factorial_n = factorial_n * a;
a = a + 1;
}
PROGRAMA RESUELTO
while (b <= i) {
factorial_i = factorial_i * b;
b = b + 1;
}
PROGRAMA RESUELTO
int factorial = 1;
int c = n - i ;
int d = 1;
while (d <= c) {
factorial = factorial * d;
d = d + 1;
}
PROGRAMA RESUELTO
if (n>i & n>0 & i>0) {
int combinatoria;
combinatoria = factorial_n/ (factorial_i * factorial);
JOptionPane.showMessageDialog (null,"Combinatoria de
("+n +" "+ i+ ") = " + combinatoria);
}
PROGRAMA RESUELTO
else if (n < i)
JOptionPane.showMessageDialog (null, "ERROR: ingrese n mayor que i.");
else
JOptionPane.showMessageDialog (null,"ERROR: ingrese valores positivos para n e i.");
System.exit(0);
}
}
PROGRAMA RESUELTO
PROBLEMAS PROPUESTOS
3.- Preparar un programa que permita recibir una frase :
- Indicar la cantidad de palabras que tiene.
- Reversar la frase: (Hola Mundo odnuM aloH)
- Indicar la cantidad total de caracteres que tiene
- Indicar la letra que más se repite indicando la cantidad de
veces que se repite.
Desarrollo del ejercicio
Consideraciones:
1.- Debemos considerar ingresar una frase por teclado,
independiente de la extensión que tenga.
Consideraciones:
2.- Debemos revertir la frase, indicar la cantidad de
letras o caracteres que posee e indicar la letra que más
se repite, señalando el número de veces que se repite.
package ejercicio_25;
import javax.swing.JOptionPane;
public class EJERCICIO_25 {
public static void main(String[] args) {
String cad = new String("");
char blanco = ' ';
int cuantos = 0;
String cadInvertida = "";
PROGRAMA RESUELTO
//BufferedReader entrada; string buffer
//entrada = new BufferedReader (new InputStreamReader(System.in));
PROGRAMA RESUELTO
System.out.print("deme la cadena ");
cad = JOptionPane.showInputDialog("Ingrese frase");
cuantos = contar(cad);
PROGRAMA RESUELTO
for (int x = cad.length () -1 ; x >= 0 ; x--)
cadInvertida = cadInvertida + cad.charAt(x);
JOptionPane.showMessageDialog(null,"* Habia "+ cuantos + " palabras en la frase \n" + "* La frase invertida : " + cadInvertida);
}
PROGRAMA RESUELTO
public static int contar(String st){
char a;
int n = 1; // para contar la primera palabra
int i = st.indexOf(" ");
while (i>0) {
n++;
st = st.substring(i+1);
i = st.indexOf(" ");
}
PROGRAMA RESUELTO
return n++;
}
}
PROGRAMA RESUELTO
CONCLUSIÓN
JAVA Multiplataforma
Diversas aplicaciones.
Desde aplicaciones cotidianas hasta sistemas que
viajen al espacio.
De gran utilidad en nuestros estudios.
CONCLUSIÓN
Ejercicio 3
Se puede aplicar a distintos cajeros.
Cajeros automáticos.
Aplicaciones en matrices.
CONCLUSIÓN
Ejercicio 14
Fórmulas de ingeniería.
Resolución de problemas en forma rápida.
Evitar cálculos extensos.
CONCLUSIÓN
Ejercicio 25
Contar los caracteres, como es el caso de los
“wall post” en facebook.
Como herramienta de redacción.
En blogs y twitter entre otros.
CONCLUSIÓN
FIN