import java.sql.*;
import javax.swing.*;
public class SolucionBD{
public static void main(String[] args) {
try{
JTextArea areasalida = new JTextArea();
String salida="Solución a la evaluación del tema B\n",nombreMenor ="";
String db="D:\\mariu\\Cursos\\Java\\EvaluacionEugenia.mdb";
String url="jdbc:odbc:MS Access Database;DBQ="+db;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
JOptionPane.showMessageDialog(null,"Estableciendo conexión.....");
Connection con=DriverManager.getConnection(url,"","");
JOptionPane.showMessageDialog(null,"conexion establecida con:\""+db+"\".");
Statement select = con.createStatement();
ResultSet datos=select.executeQuery("SELECT * FROM Tabla1 ORDER BY id");
int nom = datos.findColumn("Nombre");
int ape = datos.findColumn("Apellido");
int ed= datos.findColumn("Edad");
int deu = datos.findColumn("Deuda");
int edadUsuario,deudaUsuario,deudaTotalMenores = 0,deudaTotalMayores = 0,nMayores=0,menorDeuda=0,nUsuarios=0;
boolean seguir = datos.next();
while(seguir)
{
nUsuarios ++;
edadUsuario = Integer.parseInt(datos.getString(ed));
deudaUsuario = Integer.parseInt(datos.getString(deu));
if (edadUsuario<=17)
{
deudaTotalMenores += deudaUsuario;
}
else
{
nMayores ++;
deudaTotalMayores += deudaUsuario;
}
if(nUsuarios == 1)
{
menorDeuda = deudaUsuario;
}
else
{
if(menorDeuda > deudaUsuario)
{
menorDeuda = deudaUsuario;
nombreMenor = datos.getString (nom);
}
}
seguir=datos.next();
}
salida += "\nLa deuda total de los menores de edad es:\t" + deudaTotalMenores;
salida += "\nLa deuda promedio de los mayores de edad es: " + (deudaTotalMayores/nMayores);
salida += "\nEl usuario con la menor deuda es: " + nombreMenor + " y debe " + menorDeuda;
areasalida.setText(salida);
JOptionPane.showMessageDialog(null,areasalida);
datos.close();
select.close();
con.close();
JOptionPane.showMessageDialog(null,"\nconexion con:\""+db+"\"finalizada.\n\n");
}
catch(Exception error)
{
JOptionPane.showMessageDialog (null,"\nError al realizar alguna accion del programa\n" + error.getMessage ());
}
}
}
viernes, 29 de mayo de 2009
domingo, 17 de mayo de 2009
Solución a evaluación de gráficos en JAVA
Soluciones correctas, presentadas por estudiantes durante la evaluación:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class uno extends JFrame implements ActionListener
{
private JTextField cajaCol;
private JButton miColor1, miColor2;
private String c;
public uno()
{
super("Colores");
Container c = getContentPane();
c.setLayout(new GridLayout(3, 2));
c.add(new JLabel("Color 1"));
miColor1 = new JButton ("Azul");
c.add(miColor1);
miColor1.addActionListener(this);
c.add(new JLabel("Color 2"));
miColor2 = new JButton ("Negro");
c.add(miColor2);
miColor2.addActionListener(this);
c.add(new JLabel("Seleccion"));
cajaCol = new JTextField();
c.add(cajaCol);
setSize(475, 100);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String argumento = e.getActionCommand();
if (argumento == "Azul")
{
c = "Azul";
cajaCol.setText(String.valueOf(c));
}
else
{
c = "Negro";
cajaCol.setText(String.valueOf(c));
}
}
public static void main(String[] args)
{
uno ME = new uno();
ME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Botones extends JFrame
implements ActionListener
{
private JTextField micolor;
public Botones()
{
super("Escoger Colores");
Container contenedor = getContentPane();
contenedor.setLayout(new GridLayout(3,3));
contenedor.add(new JLabel("Boton 1"));
JButton miboton = new JButton("Rojo");
contenedor.add(miboton);
miboton.addActionListener(this);
contenedor.add(new JLabel("Boton 2"));
JButton miboton1 = new JButton("Negro");
contenedor.add(miboton1);
miboton1.addActionListener(this);
contenedor.add(new JLabel("Seleccion"));
micolor = new JTextField();
contenedor.add(micolor);
setSize(200,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String argumento = e.getActionCommand();
if (argumento.equals("Rojo"))
micolor.setText(String.valueOf("Rojo"));
else //(argumento.equals("Negro"))
micolor.setText(String.valueOf("Negro"));
}
public static void main (String [] args)
{
Botones aplicacion = new Botones();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class dos
{
public static void main(String[] args) {
JFrame frame = new JFrame();
Container cp = frame.getContentPane();
cp.setLayout (new FlowLayout());
ActionListener escuchador = new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
if (e.getActionCommand() == "Verde")
{
JOptionPane.showMessageDialog(null, "Rey de copas");
}
else
{
JOptionPane.showMessageDialog(null, "El poderoso");
}
};
};
ButtonGroup group = new ButtonGroup();
String[] sa = {"Verde","Rojo"};
for (int i=0; i<=sa.length-1;++i)
{
JRadioButton b= new JRadioButton (sa [i]);
group.add(b);
cp.add(b);
b.addActionListener(escuchador);
}
frame.pack ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class RadioBoton
{
public static void main(String [] args)
{
JFrame frame = new JFrame();
Container contenedor = frame.getContentPane();
contenedor.setLayout(new FlowLayout());
ActionListener listener = new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
String a = e.getActionCommand();
if (a.equals("Nacional"))
JOptionPane.showMessageDialog(null,"Rey de Copas");
else
JOptionPane.showMessageDialog(null,"El Poderoso");
}
};
ButtonGroup grupo = new ButtonGroup();
String[] sa = {"Nacional","Medellin"};
for(int i=0; i<=sa.length-1; i++)
{
JRadioButton b = new JRadioButton(sa[i]);
grupo.add(b);
contenedor.add(b);
b.addActionListener(listener);
}
frame.setSize(300,60);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
- Primer punto, (Jairo Vélez y Alejandro Rúiz):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class uno extends JFrame implements ActionListener
{
private JTextField cajaCol;
private JButton miColor1, miColor2;
private String c;
public uno()
{
super("Colores");
Container c = getContentPane();
c.setLayout(new GridLayout(3, 2));
c.add(new JLabel("Color 1"));
miColor1 = new JButton ("Azul");
c.add(miColor1);
miColor1.addActionListener(this);
c.add(new JLabel("Color 2"));
miColor2 = new JButton ("Negro");
c.add(miColor2);
miColor2.addActionListener(this);
c.add(new JLabel("Seleccion"));
cajaCol = new JTextField();
c.add(cajaCol);
setSize(475, 100);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String argumento = e.getActionCommand();
if (argumento == "Azul")
{
c = "Azul";
cajaCol.setText(String.valueOf(c));
}
else
{
c = "Negro";
cajaCol.setText(String.valueOf(c));
}
}
public static void main(String[] args)
{
uno ME = new uno();
ME.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
- Primer punto, (Juan Esteban Morales y José Manuel Rendón):
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Botones extends JFrame
implements ActionListener
{
private JTextField micolor;
public Botones()
{
super("Escoger Colores");
Container contenedor = getContentPane();
contenedor.setLayout(new GridLayout(3,3));
contenedor.add(new JLabel("Boton 1"));
JButton miboton = new JButton("Rojo");
contenedor.add(miboton);
miboton.addActionListener(this);
contenedor.add(new JLabel("Boton 2"));
JButton miboton1 = new JButton("Negro");
contenedor.add(miboton1);
miboton1.addActionListener(this);
contenedor.add(new JLabel("Seleccion"));
micolor = new JTextField();
contenedor.add(micolor);
setSize(200,300);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String argumento = e.getActionCommand();
if (argumento.equals("Rojo"))
micolor.setText(String.valueOf("Rojo"));
else //(argumento.equals("Negro"))
micolor.setText(String.valueOf("Negro"));
}
public static void main (String [] args)
{
Botones aplicacion = new Botones();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
- Segundo punto, (Jairo Vélez y Alejandro Rúiz):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class dos
{
public static void main(String[] args) {
JFrame frame = new JFrame();
Container cp = frame.getContentPane();
cp.setLayout (new FlowLayout());
ActionListener escuchador = new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
if (e.getActionCommand() == "Verde")
{
JOptionPane.showMessageDialog(null, "Rey de copas");
}
else
{
JOptionPane.showMessageDialog(null, "El poderoso");
}
};
};
ButtonGroup group = new ButtonGroup();
String[] sa = {"Verde","Rojo"};
for (int i=0; i<=sa.length-1;++i)
{
JRadioButton b= new JRadioButton (sa [i]);
group.add(b);
cp.add(b);
b.addActionListener(escuchador);
}
frame.pack ();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
- Segundo punto, (Juan Esteban Morales y José Manuel Rendón):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class RadioBoton
{
public static void main(String [] args)
{
JFrame frame = new JFrame();
Container contenedor = frame.getContentPane();
contenedor.setLayout(new FlowLayout());
ActionListener listener = new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
String a = e.getActionCommand();
if (a.equals("Nacional"))
JOptionPane.showMessageDialog(null,"Rey de Copas");
else
JOptionPane.showMessageDialog(null,"El Poderoso");
}
};
ButtonGroup grupo = new ButtonGroup();
String[] sa = {"Nacional","Medellin"};
for(int i=0; i<=sa.length-1; i++)
{
JRadioButton b = new JRadioButton(sa[i]);
grupo.add(b);
contenedor.add(b);
b.addActionListener(listener);
}
frame.setSize(300,60);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
martes, 12 de mayo de 2009
Algunos ejemplos de aplicaciones gráficas en JAVA
Páginas sugeridas:
Descargar los 4 ejemplos (en JAVA), con la imagen:
EjemploBoton.java
import javax.swing.*;
public class EjemploBoton{
public static void main(String[] args){
JFrame miMarco = new JFrame();
JButton miBoton = new JButton("hola");
miMarco.getContentPane().add(miBoton);
miMarco.pack();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.setVisible(true);
}
}
/*En la línea 5 se crea el botón
*en la línea 11 el botón es agregado al contenido del JFrame miMarco
*el método pack() hace que el tamaño del marco se ajuste al tamaño de los controles que contiene*/
BotonConImagen
import javax.swing.*;
import java.awt.*;
public class BotonConImagen extends JFrame{
public static void main(String[] args){
new BotonConImagen();
}
public BotonConImagen(){
super("Ejemplo de botones con imágenes y con texto");
Container contenedor = getContentPane(); // crea el contenedor
contenedor.setBackground(Color.blue);//color de fondo del contenedor
contenedor.setLayout(new FlowLayout());//crear un "flujo de controles"
JButton boton1 = new JButton("Hola");//crear un botón con texto
contenedor.add(boton1);//adicionar el botón al contenedor
//crear un ícono llamado mami, y dar su ubicación:
ImageIcon mami = new ImageIcon("D:/mariu/Cursos/IUSH/JAVA/mami.gif");
JButton boton2 = new JButton(mami);//crear un botón con imagen
contenedor.add(boton2);
JButton boton3 = new JButton("Retrato hablado", mami);//crear un botón con imagen y texto
contenedor.add(boton3);
pack();
setVisible(true);
}
}

EjemploRadioButton
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class EjemploRadioButton extends JFrame{
public static void main(String[] args){
ActionListener escuchador = new ActionListener(){
public void actionPerformed(ActionEvent evento){
JOptionPane.showMessageDialog(null,evento.getActionCommand());
}
};
Box caja = new Box(BoxLayout.Y_AXIS);
ButtonGroup grupoBotones = new ButtonGroup();
String[] frutas = {"granadilla","mandarina","melón","piña"};
for (int i=0; i<=frutas.length-1;i++){
JRadioButton opciones = new JRadioButton(frutas[i]);
grupoBotones.add(opciones);
caja.add(opciones);
opciones.addActionListener(escuchador);
}//fin del for
JFrame miMarco = new JFrame("Frutas tropicales");
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.getContentPane().add(caja);
miMarco.pack();
miMarco.setVisible(true);
}
}
EjemploJCheckBox
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;
public class EjemploJCheckBox{
public static void main(String[] args){
JFrame miMarco = new JFrame();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contenedor = miMarco.getContentPane();
Box caja = new Box(BoxLayout.Y_AXIS);
contenedor.add(caja);
caja.add(new JLabel("Seleccione un deporte..."));
String[] deportes = {"Béisbol","Natación", "Taekwondo"};
JCheckBox[] casillas = new JCheckBox[deportes.length];
for(int i=0; i<= deportes.length-1;i++){
casillas[i] = new JCheckBox(deportes[i]);
caja.add(casillas[i]);
casillas[i].addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent eventoClic){
JCheckBox controlCasilla = (JCheckBox)eventoClic.getSource();
if(controlCasilla.isSelected())
JOptionPane.showMessageDialog(null,controlCasilla.getText() + " Seleccionado");
else
JOptionPane.showMessageDialog(null,controlCasilla.getText() + " Des_Seleccionado");
}
});
}
miMarco.pack();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.setVisible(true);
}
}
- http://academicjava.com/Java_help/Tutorial_Examples_Swing_8.html
- http://java.comsci.us/examples/swing/
Descargar los 4 ejemplos (en JAVA), con la imagen:
EjemploBoton.java
import javax.swing.*;
public class EjemploBoton{
public static void main(String[] args){
JFrame miMarco = new JFrame();
JButton miBoton = new JButton("hola");
miMarco.getContentPane().add(miBoton);
miMarco.pack();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.setVisible(true);
}
}
/*En la línea 5 se crea el botón
*en la línea 11 el botón es agregado al contenido del JFrame miMarco
*el método pack() hace que el tamaño del marco se ajuste al tamaño de los controles que contiene*/
BotonConImagen
import javax.swing.*;
import java.awt.*;
public class BotonConImagen extends JFrame{
public static void main(String[] args){
new BotonConImagen();
}
public BotonConImagen(){
super("Ejemplo de botones con imágenes y con texto");
Container contenedor = getContentPane(); // crea el contenedor
contenedor.setBackground(Color.blue);//color de fondo del contenedor
contenedor.setLayout(new FlowLayout());//crear un "flujo de controles"
JButton boton1 = new JButton("Hola");//crear un botón con texto
contenedor.add(boton1);//adicionar el botón al contenedor
//crear un ícono llamado mami, y dar su ubicación:
ImageIcon mami = new ImageIcon("D:/mariu/Cursos/IUSH/JAVA/mami.gif");
JButton boton2 = new JButton(mami);//crear un botón con imagen
contenedor.add(boton2);
JButton boton3 = new JButton("Retrato hablado", mami);//crear un botón con imagen y texto
contenedor.add(boton3);
pack();
setVisible(true);
}
}
EjemploRadioButton
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class EjemploRadioButton extends JFrame{
public static void main(String[] args){
ActionListener escuchador = new ActionListener(){
public void actionPerformed(ActionEvent evento){
JOptionPane.showMessageDialog(null,evento.getActionCommand());
}
};
Box caja = new Box(BoxLayout.Y_AXIS);
ButtonGroup grupoBotones = new ButtonGroup();
String[] frutas = {"granadilla","mandarina","melón","piña"};
for (int i=0; i<=frutas.length-1;i++){
JRadioButton opciones = new JRadioButton(frutas[i]);
grupoBotones.add(opciones);
caja.add(opciones);
opciones.addActionListener(escuchador);
}//fin del for
JFrame miMarco = new JFrame("Frutas tropicales");
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.getContentPane().add(caja);
miMarco.pack();
miMarco.setVisible(true);
}
}
EjemploJCheckBox
import java.awt.Container;
import java.awt.event.*;
import javax.swing.*;
public class EjemploJCheckBox{
public static void main(String[] args){
JFrame miMarco = new JFrame();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contenedor = miMarco.getContentPane();
Box caja = new Box(BoxLayout.Y_AXIS);
contenedor.add(caja);
caja.add(new JLabel("Seleccione un deporte..."));
String[] deportes = {"Béisbol","Natación", "Taekwondo"};
JCheckBox[] casillas = new JCheckBox[deportes.length];
for(int i=0; i<= deportes.length-1;i++){
casillas[i] = new JCheckBox(deportes[i]);
caja.add(casillas[i]);
casillas[i].addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent eventoClic){
JCheckBox controlCasilla = (JCheckBox)eventoClic.getSource();
if(controlCasilla.isSelected())
JOptionPane.showMessageDialog(null,controlCasilla.getText() + " Seleccionado");
else
JOptionPane.showMessageDialog(null,controlCasilla.getText() + " Des_Seleccionado");
}
});
}
miMarco.pack();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
miMarco.setVisible(true);
}
}
sábado, 25 de abril de 2009
Solución al ejercicio de nómina con polimorfismo
Enlaces:
- http://www.ziddu.com/download/4463437/EmpleadoPorHoras.doc.html
- http://www.ziddu.com/download/4463438/PruebaSistemaNomina.doc.html
- http://www.ziddu.com/download/4463439/EmpleadoAsalariado.doc.html
- http://www.ziddu.com/download/4463440/Empleado.doc.html
- http://www.ziddu.com/download/4463441/EmpleadoPorComision.doc.html
- http://www.ziddu.com/download/4463442/EmpleadoBaseMasComision.doc.html
martes, 7 de abril de 2009
Soluciones propuestas a evaluación 3
Enlaces:
- Vea Walter...
- http://www.ziddu.com/download/4197196/Tarifa.doc.html
- http://www.ziddu.com/download/4197195/PruebaTarifa.doc.html
- http://www.ziddu.com/download/4197707/Enunciado_Inventario.doc.html
- http://www.ziddu.com/download/4197706/Inventario.doc.html
- http://www.ziddu.com/download/4197705/PruebaInventario.doc.html
- http://www.ziddu.com/download/4207443/Enunciado_TarifaK.doc.html
- http://www.ziddu.com/download/4207475/PruebaTarifaK.doc.html
- http://www.ziddu.com/download/4207476/TarifaK.doc.html
miércoles, 18 de marzo de 2009
TALLER SOBRE OBJETOS
1. Cree una clase llamada Empleado, en la que existan los recursos necesarios para efectuar las siguientes acciones:
• Obtener el número de horas trabajadas por el empleado
• Obtener el valor de cada hora trabajada por el empleado
• Obtener el valor de la comisión del empleado
• Calcular y Entregar el pago total del empleado
• Obtener/Entregar el nombre del empleado (En C# esto es una propiedad)
Restricciones de implementación:
• Asuma que si el empleado trabajó más de 48 horas, las horas extra se le cancelan con un porcentaje del 50% adicional al valor de la hora normal.
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaEmpleado que utilice la clase Empleado
2. Cree una clase llamada Poligonos, en la que existan los recursos necesarios para efectuar las siguientes acciones:
• Obtener el valor del lado de un cuadrado
• Obtener el valor del los dos lados diferentes de un rectángulo
• Obtener los dos valores (base y altura) de un triángulo
• Calcular y Entregar el área de un cuadrado
• Calcular y Entregar el área de un rectángulo
• Calcular y Entregar el área de un triángulo
Restricciones de implementación:
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaFiguras que utilice la clase Poligonos
• Obtener el número de horas trabajadas por el empleado
• Obtener el valor de cada hora trabajada por el empleado
• Obtener el valor de la comisión del empleado
• Calcular y Entregar el pago total del empleado
• Obtener/Entregar el nombre del empleado (En C# esto es una propiedad)
Restricciones de implementación:
• Asuma que si el empleado trabajó más de 48 horas, las horas extra se le cancelan con un porcentaje del 50% adicional al valor de la hora normal.
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaEmpleado que utilice la clase Empleado
2. Cree una clase llamada Poligonos, en la que existan los recursos necesarios para efectuar las siguientes acciones:
• Obtener el valor del lado de un cuadrado
• Obtener el valor del los dos lados diferentes de un rectángulo
• Obtener los dos valores (base y altura) de un triángulo
• Calcular y Entregar el área de un cuadrado
• Calcular y Entregar el área de un rectángulo
• Calcular y Entregar el área de un triángulo
Restricciones de implementación:
• No deben existir valores negativos en los argumentos de llamada a los elementos de la clase.
• Se debe permitir al usuario decidir en qué momento desea terminar de ejecutar la aplicación.
Cree una clase llamada PruebaFiguras que utilice la clase Poligonos
lunes, 16 de marzo de 2009
Soluciones propuestas en JAVA a evaluación 2
Enunciado 1
Dado un arreglo unidimensional de tamaño N, encuentre la moda. Es decir, el valor que se presenta más número de veces entre sus elementos. Imprima el vector y el valor que más se repite.
import javax.swing.*;
public class modaVectorial{
public static void main(String args[]){
String tamaño,dato,salidaV="Vector\n",repetido = "\nNúmero que más se repite ",veces = "\nNúmero de veces que se repite ";
int magnitud,valor,repetidoA,veces_repetidoA,repetidoB,veces_repetidoB,i,p,k=2,iguales=0;
JTextArea areaSalida = new JTextArea();
tamaño = JOptionPane.showInputDialog("Ingrese el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int A[] = new int[magnitud];
for(i=0;i<=magnitud-1;i++){//Llenar el vector con datos proporcionados por el usuario
dato = JOptionPane.showInputDialog("Ingrese el valor para la posición" + (i+1));
valor = Integer.parseInt(dato);
A[i] = valor;
salidaV += valor + ", ";
}
p=0;
repetidoA = A[p];//Asume que el primer valor del vector es el que está repetido
veces_repetidoA = 1;
for(i=1;i<=magnitud-1;i++){//Busca y cuenta las veces que se encuentra repetido el elemento de la posición 1
if(repetidoA == A[i]){
veces_repetidoA ++;
}
}
p=1;
while(p<=magnitud-1){//Se asegura de no desbordarse del vector
repetidoB = A[p];//Asume que el primer valor del vector es el que está repetido
veces_repetidoB = 1;
for(i=p+1;i<=magnitud-1;i++){//Busca y cuenta las veces que se encuentra repetido el elemento de las demás posiciones
if(repetidoB == A[i]){
veces_repetidoB ++;
}
}
if(veces_repetidoA < veces_repetidoB){
repetidoA = repetidoB;
veces_repetidoA = veces_repetidoB;
iguales = 0;
}
else if(veces_repetidoA == veces_repetidoB){
iguales = 1;
}
p++;
}
if (veces_repetidoA == 1 || iguales != 0){
//JOptionPane.showMessageDialog(null,"ningún número se repite más que los demás\n" + );
areaSalida.setText(salidaV);
areaSalida.append("\nningún número se repite más que los demás");
JOptionPane.showMessageDialog(null,areaSalida);
}
else{
repetido += repetidoA;
veces += veces_repetidoA;
areaSalida.setText(salidaV);
areaSalida.append(repetido);
areaSalida.append(veces);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
}
Enunciado 2
Elabore una aplicación que forme una matriz de orden NxM y la llene de datos enteros, (toda esta información la proporciona el usuario), a continuación obtenga e imprima:
a. Suma de cada fila impar
b. Número de valores iguales a cero
import javax.swing.*;
public class sumaFilasImpares{
public static void main(String args[]){
String M,N,dato,matrizA = "Matriz A\n",vectorB = "Suma de cada fila impar:\n",igualesCero = "\nCantidad de ceros\n";
int filas,columnas,valor,i,j,valoresCero = 0;
M = JOptionPane.showInputDialog(null,"Ingrese el número de filas");
N = JOptionPane.showInputDialog(null,"Ingrese el número de columnas");
filas = Integer.parseInt(M);
columnas = Integer.parseInt(N);
int A[][] = new int [filas][columnas];
int B[] = new int[filas];
for(i=0;i<=filas-1;i++){
for(j=0;j<=columnas-1;j++){
dato = JOptionPane.showInputDialog(null,"Ingrese el valor para la posición [" + (i+1) + "]" + "[" + (j+1) + "]");
valor = Integer.parseInt(dato);
A[i][j]= valor;//Llenar la matriz
if(i%2 != 0){//Comprobar si la fila actual es impar
B[i] += valor;
}
if(valor == 0){//Comprobar si el valor actual es 0
valoresCero ++;
}
matrizA += valor + "\t";
}
matrizA += "\n";
vectorB += "[" + i + "] " + B[i] + "\n";
}
igualesCero += valoresCero;
JTextArea areaSalida = new JTextArea();
areaSalida.setText(matrizA);
areaSalida.append(vectorB);
areaSalida.append(igualesCero);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
Enunciado 3
Hacer una aplicación que forme un vector del que no se sabe el número de elementos (el tamaño y los datos los indica el usuario). Calcule el promedio de todos los elementos y forme dos nuevos arreglos, uno con los elementos menores o iguales al promedio y otro con los superiores. Imprima los dos nuevos arreglos
import javax.swing.*;
public class vectorPromedio{
public static void main(String args[]){
String tamaño,dato,Original="Vector original:\n",Vpromedio="\n\nValor promedio:",Vmenores = "\n\nVector con los datos menores o iguales al promedio:\n",Vmayores = "\n\nVector con los datos mayores al promedio:\n";
int magnitud,valor,i,suma=0,p=0,q=0;
double promedio;
tamaño = JOptionPane.showInputDialog("Ingrese el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int V[] = new int[magnitud];
//como no conocemos cuántos serán mayores o menores, se declaran 2 vectores de tamaño magnitud
double menores[] = new double[magnitud];
double superiores[] = new double[magnitud];
for(i=0;i<=magnitud-1;i++){
dato = JOptionPane.showInputDialog("Ingrese valor para la posición " + "[" + i + "]");
valor = Integer.parseInt(dato);
V[i] = valor;
suma += valor;
Original += valor + "\t";//Ingresar cada dato al String de salida (para imprimir)
}
promedio = suma/magnitud;
Vpromedio += promedio + "\n";
for(i=0;i<=magnitud-1;i++){
if(V[i] <= promedio){ //evalúa cada valor de V y lo compara con elpromedio, si es menor o igual, va llenando menores[]
menores[p] = V[i];
Vmenores += V[i] + "\t";//Ingresar cada dato al String de salida (para imprimir)
p++;
}
else{//si el valor de V no es menor que el promedio, entonces lo lleva a superiores[]
superiores[q] = V[i];
Vmayores += V[i] + "\t";//Ingresar cada dato al String de salida (para imprimir)
q++;
}
}
JTextArea areaSalida = new JTextArea();
areaSalida.setText(Original);
areaSalida.append(Vpromedio);
areaSalida.append(Vmenores);
areaSalida.append(Vmayores);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
Enunciado 4
Utilice el operador módulo (%) en una aplicación que entre un arreglo unidimensional, y calcule e imprima:
El número de valores impares
El número de valores pares
import javax.swing.*;
public class ParesImpares{
public static void main(String [] args){
String tamaño, dato;
int magnitud,valor,pares=0,impares=0,i;
tamaño = JOptionPane.showInputDialog("Digite el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int V[] = new int [magnitud];
for(i=0;i<=magnitud-1;i++){
dato = JOptionPane.showInputDialog("Digite el valor para la posición [" + i + "]" );
valor = Integer.parseInt(dato);
V[i]=valor;
if(valor % 2 != 0){
impares ++;
}
else{
pares ++;
}
}
JOptionPane.showMessageDialog(null,"Cantidad de pares:" + pares + "\nCantidad de impares: " + impares);
}
}
Enunciado 5
Elabore una aplicación que forme una matriz de orden NxM y la llene de datos enteros, (toda esta información la proporciona el usuario), luego encuentre el elemento mayor y el menor, así como sus posiciones. En caso de haber datos repetidos, se toma el primer dato que encuentre.
import javax.swing.*;
public class MayorMenor{
public static void main(String args[]){
String f,c,dato;
int filas, columnas, valor, mayor=0, menor=0, i,j,fMayor = 0,cMayor = 0,fMenor = 0,cMenor = 0;
f=JOptionPane.showInputDialog("Digite el número de filas para la matriz");
c=JOptionPane.showInputDialog("Digite el número de columnas para la matriz");
filas = Integer.parseInt(f);
columnas = Integer.parseInt(c);
int A[][] = new int [filas][columnas];
for(i=0;i <= filas-1;i++){
for(j=0;j <= columnas-1; j++){
dato = JOptionPane.showInputDialog("Digite el dato para la posición [" + i + "][" + j + "]");
valor = Integer.parseInt(dato);
A[i][j] = valor;
if(i==0 && j==0){ //A las variables mayor y menor les asignamos el primer valor de la matriz
mayor = A[i][j];
menor = A[i][j];
}
else{//Iniciamos la comparación de mayor y menor con cada dato de la matriz
if(A[i][j] > mayor){
mayor = A[i][j];
fMayor = i;
cMayor = j;
}
else if(A[i][j] < menor){
menor = A[i][j];
fMenor = i;
cMenor = j;
}
}
}
}
JOptionPane.showMessageDialog(null,"El mayor valor es : " + mayor + " que está ubicado en la posición [" + fMayor
+ "][" + cMayor + "]" + "\nEl menor valor es : " + menor + " que está ubicado en la posición [" + fMenor
+ "][" + cMenor + "]" );
}
}
Enunciado 6
Elabore una aplicación que convierta una matriz 3x4 (llena), en un arreglo unidimensional. La conversión debe hacerse por columnas, es decir, mover la primera columna al vector, a continuación la segunda columna y así sucesivamente. Imprima ambos arreglos.
import javax.swing.*;
public class MueveColumnas{
public static void main(String args[]){
int A[][] = {{2,5,6,4},{7,8,9,3},{1,3,2,0}};
int V[] = new int[12];
int filas,columnas,k=0;
String matriz = "Matriz A:\n", vector = "Vector V:\n";
for (columnas = 0; columnas <= 3; columnas ++){
for (filas = 0; filas <= 2; filas ++){
V[k] = A[filas][columnas];
vector += A[filas][columnas]+ "\t";
}
}
for (filas = 0; filas <= 2; filas ++){
for (columnas = 0; columnas <= 3; columnas ++){
matriz += A[filas][columnas] + "\t";
}
matriz += "\n";
}
JTextArea areaSalida = new JTextArea();
areaSalida.setText(matriz);
areaSalida.append(vector);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
Dado un arreglo unidimensional de tamaño N, encuentre la moda. Es decir, el valor que se presenta más número de veces entre sus elementos. Imprima el vector y el valor que más se repite.
import javax.swing.*;
public class modaVectorial{
public static void main(String args[]){
String tamaño,dato,salidaV="Vector\n",repetido = "\nNúmero que más se repite ",veces = "\nNúmero de veces que se repite ";
int magnitud,valor,repetidoA,veces_repetidoA,repetidoB,veces_repetidoB,i,p,k=2,iguales=0;
JTextArea areaSalida = new JTextArea();
tamaño = JOptionPane.showInputDialog("Ingrese el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int A[] = new int[magnitud];
for(i=0;i<=magnitud-1;i++){//Llenar el vector con datos proporcionados por el usuario
dato = JOptionPane.showInputDialog("Ingrese el valor para la posición" + (i+1));
valor = Integer.parseInt(dato);
A[i] = valor;
salidaV += valor + ", ";
}
p=0;
repetidoA = A[p];//Asume que el primer valor del vector es el que está repetido
veces_repetidoA = 1;
for(i=1;i<=magnitud-1;i++){//Busca y cuenta las veces que se encuentra repetido el elemento de la posición 1
if(repetidoA == A[i]){
veces_repetidoA ++;
}
}
p=1;
while(p<=magnitud-1){//Se asegura de no desbordarse del vector
repetidoB = A[p];//Asume que el primer valor del vector es el que está repetido
veces_repetidoB = 1;
for(i=p+1;i<=magnitud-1;i++){//Busca y cuenta las veces que se encuentra repetido el elemento de las demás posiciones
if(repetidoB == A[i]){
veces_repetidoB ++;
}
}
if(veces_repetidoA < veces_repetidoB){
repetidoA = repetidoB;
veces_repetidoA = veces_repetidoB;
iguales = 0;
}
else if(veces_repetidoA == veces_repetidoB){
iguales = 1;
}
p++;
}
if (veces_repetidoA == 1 || iguales != 0){
//JOptionPane.showMessageDialog(null,"ningún número se repite más que los demás\n" + );
areaSalida.setText(salidaV);
areaSalida.append("\nningún número se repite más que los demás");
JOptionPane.showMessageDialog(null,areaSalida);
}
else{
repetido += repetidoA;
veces += veces_repetidoA;
areaSalida.setText(salidaV);
areaSalida.append(repetido);
areaSalida.append(veces);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
}
Enunciado 2
Elabore una aplicación que forme una matriz de orden NxM y la llene de datos enteros, (toda esta información la proporciona el usuario), a continuación obtenga e imprima:
a. Suma de cada fila impar
b. Número de valores iguales a cero
import javax.swing.*;
public class sumaFilasImpares{
public static void main(String args[]){
String M,N,dato,matrizA = "Matriz A\n",vectorB = "Suma de cada fila impar:\n",igualesCero = "\nCantidad de ceros\n";
int filas,columnas,valor,i,j,valoresCero = 0;
M = JOptionPane.showInputDialog(null,"Ingrese el número de filas");
N = JOptionPane.showInputDialog(null,"Ingrese el número de columnas");
filas = Integer.parseInt(M);
columnas = Integer.parseInt(N);
int A[][] = new int [filas][columnas];
int B[] = new int[filas];
for(i=0;i<=filas-1;i++){
for(j=0;j<=columnas-1;j++){
dato = JOptionPane.showInputDialog(null,"Ingrese el valor para la posición [" + (i+1) + "]" + "[" + (j+1) + "]");
valor = Integer.parseInt(dato);
A[i][j]= valor;//Llenar la matriz
if(i%2 != 0){//Comprobar si la fila actual es impar
B[i] += valor;
}
if(valor == 0){//Comprobar si el valor actual es 0
valoresCero ++;
}
matrizA += valor + "\t";
}
matrizA += "\n";
vectorB += "[" + i + "] " + B[i] + "\n";
}
igualesCero += valoresCero;
JTextArea areaSalida = new JTextArea();
areaSalida.setText(matrizA);
areaSalida.append(vectorB);
areaSalida.append(igualesCero);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
Enunciado 3
Hacer una aplicación que forme un vector del que no se sabe el número de elementos (el tamaño y los datos los indica el usuario). Calcule el promedio de todos los elementos y forme dos nuevos arreglos, uno con los elementos menores o iguales al promedio y otro con los superiores. Imprima los dos nuevos arreglos
import javax.swing.*;
public class vectorPromedio{
public static void main(String args[]){
String tamaño,dato,Original="Vector original:\n",Vpromedio="\n\nValor promedio:",Vmenores = "\n\nVector con los datos menores o iguales al promedio:\n",Vmayores = "\n\nVector con los datos mayores al promedio:\n";
int magnitud,valor,i,suma=0,p=0,q=0;
double promedio;
tamaño = JOptionPane.showInputDialog("Ingrese el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int V[] = new int[magnitud];
//como no conocemos cuántos serán mayores o menores, se declaran 2 vectores de tamaño magnitud
double menores[] = new double[magnitud];
double superiores[] = new double[magnitud];
for(i=0;i<=magnitud-1;i++){
dato = JOptionPane.showInputDialog("Ingrese valor para la posición " + "[" + i + "]");
valor = Integer.parseInt(dato);
V[i] = valor;
suma += valor;
Original += valor + "\t";//Ingresar cada dato al String de salida (para imprimir)
}
promedio = suma/magnitud;
Vpromedio += promedio + "\n";
for(i=0;i<=magnitud-1;i++){
if(V[i] <= promedio){ //evalúa cada valor de V y lo compara con elpromedio, si es menor o igual, va llenando menores[]
menores[p] = V[i];
Vmenores += V[i] + "\t";//Ingresar cada dato al String de salida (para imprimir)
p++;
}
else{//si el valor de V no es menor que el promedio, entonces lo lleva a superiores[]
superiores[q] = V[i];
Vmayores += V[i] + "\t";//Ingresar cada dato al String de salida (para imprimir)
q++;
}
}
JTextArea areaSalida = new JTextArea();
areaSalida.setText(Original);
areaSalida.append(Vpromedio);
areaSalida.append(Vmenores);
areaSalida.append(Vmayores);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
Enunciado 4
Utilice el operador módulo (%) en una aplicación que entre un arreglo unidimensional, y calcule e imprima:
El número de valores impares
El número de valores pares
import javax.swing.*;
public class ParesImpares{
public static void main(String [] args){
String tamaño, dato;
int magnitud,valor,pares=0,impares=0,i;
tamaño = JOptionPane.showInputDialog("Digite el tamaño del vector");
magnitud = Integer.parseInt(tamaño);
int V[] = new int [magnitud];
for(i=0;i<=magnitud-1;i++){
dato = JOptionPane.showInputDialog("Digite el valor para la posición [" + i + "]" );
valor = Integer.parseInt(dato);
V[i]=valor;
if(valor % 2 != 0){
impares ++;
}
else{
pares ++;
}
}
JOptionPane.showMessageDialog(null,"Cantidad de pares:" + pares + "\nCantidad de impares: " + impares);
}
}
Enunciado 5
Elabore una aplicación que forme una matriz de orden NxM y la llene de datos enteros, (toda esta información la proporciona el usuario), luego encuentre el elemento mayor y el menor, así como sus posiciones. En caso de haber datos repetidos, se toma el primer dato que encuentre.
import javax.swing.*;
public class MayorMenor{
public static void main(String args[]){
String f,c,dato;
int filas, columnas, valor, mayor=0, menor=0, i,j,fMayor = 0,cMayor = 0,fMenor = 0,cMenor = 0;
f=JOptionPane.showInputDialog("Digite el número de filas para la matriz");
c=JOptionPane.showInputDialog("Digite el número de columnas para la matriz");
filas = Integer.parseInt(f);
columnas = Integer.parseInt(c);
int A[][] = new int [filas][columnas];
for(i=0;i <= filas-1;i++){
for(j=0;j <= columnas-1; j++){
dato = JOptionPane.showInputDialog("Digite el dato para la posición [" + i + "][" + j + "]");
valor = Integer.parseInt(dato);
A[i][j] = valor;
if(i==0 && j==0){ //A las variables mayor y menor les asignamos el primer valor de la matriz
mayor = A[i][j];
menor = A[i][j];
}
else{//Iniciamos la comparación de mayor y menor con cada dato de la matriz
if(A[i][j] > mayor){
mayor = A[i][j];
fMayor = i;
cMayor = j;
}
else if(A[i][j] < menor){
menor = A[i][j];
fMenor = i;
cMenor = j;
}
}
}
}
JOptionPane.showMessageDialog(null,"El mayor valor es : " + mayor + " que está ubicado en la posición [" + fMayor
+ "][" + cMayor + "]" + "\nEl menor valor es : " + menor + " que está ubicado en la posición [" + fMenor
+ "][" + cMenor + "]" );
}
}
Enunciado 6
Elabore una aplicación que convierta una matriz 3x4 (llena), en un arreglo unidimensional. La conversión debe hacerse por columnas, es decir, mover la primera columna al vector, a continuación la segunda columna y así sucesivamente. Imprima ambos arreglos.
import javax.swing.*;
public class MueveColumnas{
public static void main(String args[]){
int A[][] = {{2,5,6,4},{7,8,9,3},{1,3,2,0}};
int V[] = new int[12];
int filas,columnas,k=0;
String matriz = "Matriz A:\n", vector = "Vector V:\n";
for (columnas = 0; columnas <= 3; columnas ++){
for (filas = 0; filas <= 2; filas ++){
V[k] = A[filas][columnas];
vector += A[filas][columnas]+ "\t";
}
}
for (filas = 0; filas <= 2; filas ++){
for (columnas = 0; columnas <= 3; columnas ++){
matriz += A[filas][columnas] + "\t";
}
matriz += "\n";
}
JTextArea areaSalida = new JTextArea();
areaSalida.setText(matriz);
areaSalida.append(vector);
JOptionPane.showMessageDialog(null,areaSalida);
}
}
domingo, 1 de marzo de 2009
Solución propuesta en java a ejercicio de clase (Tablero de damas)
import javax.swing.*;
public class tableroDamas{
public static void main(String args[]){
String valor;
int opcion=0, i, j,tDamas[][]=new int[8][8],seguir,nRojas = 0,nNegras = 0;
for(i=0;i<8;i++) {
for(j=0;j<8;j++){
seguir=1;
while(seguir ==1){
valor = JOptionPane.showInputDialog("Seleccione un valor para la posición [" +i + "][" + j + "]\n0.\n1.\n2.\n3.Salir (Todas las casillas restantes se llenan con ceros)");
opcion = Integer.parseInt(valor);
switch(opcion){
case 0: tDamas[i][j] = 0;
seguir =0;
break;
case 1: tDamas[i][j] = 1;
nRojas += 1;
seguir =0;
break;
case 2: tDamas[i][j] = 2;
nNegras += 1;
seguir =0;
break;
case 3: seguir =0;
break;
default:JOptionPane.showMessageDialog(null,"Seleccione una opción válida","Mensaje de error",JOptionPane.INFORMATION_MESSAGE);
break;
}//switch
}//while
if(opcion == 3)
break;
}//for j
if(opcion == 3)
break;
}//for i
JTextArea cajaTexto = new JTextArea();
cajaTexto.setText("Tablero de Damas\n");
for(i=0;i<8;i++) {
for(j=0;j<8;j++){
cajaTexto.append(tDamas[i][j] + "\t");
}
cajaTexto.append("\n");
}
cajaTexto.append("\n# de fichas rojas (#1): " + nRojas + "\n# de fichas negras (#2): " + nNegras + "\n# de espacios vacíos (#0): " + (64-nRojas-nNegras));
JOptionPane.showMessageDialog(null,cajaTexto);
}//main
}//class
public class tableroDamas{
public static void main(String args[]){
String valor;
int opcion=0, i, j,tDamas[][]=new int[8][8],seguir,nRojas = 0,nNegras = 0;
for(i=0;i<8;i++) {
for(j=0;j<8;j++){
seguir=1;
while(seguir ==1){
valor = JOptionPane.showInputDialog("Seleccione un valor para la posición [" +i + "][" + j + "]\n0.\n1.\n2.\n3.Salir (Todas las casillas restantes se llenan con ceros)");
opcion = Integer.parseInt(valor);
switch(opcion){
case 0: tDamas[i][j] = 0;
seguir =0;
break;
case 1: tDamas[i][j] = 1;
nRojas += 1;
seguir =0;
break;
case 2: tDamas[i][j] = 2;
nNegras += 1;
seguir =0;
break;
case 3: seguir =0;
break;
default:JOptionPane.showMessageDialog(null,"Seleccione una opción válida","Mensaje de error",JOptionPane.INFORMATION_MESSAGE);
break;
}//switch
}//while
if(opcion == 3)
break;
}//for j
if(opcion == 3)
break;
}//for i
JTextArea cajaTexto = new JTextArea();
cajaTexto.setText("Tablero de Damas\n");
for(i=0;i<8;i++) {
for(j=0;j<8;j++){
cajaTexto.append(tDamas[i][j] + "\t");
}
cajaTexto.append("\n");
}
cajaTexto.append("\n# de fichas rojas (#1): " + nRojas + "\n# de fichas negras (#2): " + nNegras + "\n# de espacios vacíos (#0): " + (64-nRojas-nNegras));
JOptionPane.showMessageDialog(null,cajaTexto);
}//main
}//class
miércoles, 25 de febrero de 2009
Recomendaciones de trabajo con las siguientes soluciones
1. Realizar el seguimiento de la totalidad del código de los siguientes ejercicios resueltos.
2. Optimizar y/o mejorar el ciclo while del ejercicio del grupo 2. (Observe qué ocurre cuando el usuario selecciona una opción incorrecta)
3. Si se presenta alguna duda acerca de cualquiera de las líneas de código, con gusto la resolveré en clase.
2. Optimizar y/o mejorar el ciclo while del ejercicio del grupo 2. (Observe qué ocurre cuando el usuario selecciona una opción incorrecta)
3. Si se presenta alguna duda acerca de cualquiera de las líneas de código, con gusto la resolveré en clase.
Solución en lenguaje Java a evaluación 1, grupo 21
/*Un almacén tiene 4 empleados y por cada uno de ellos posee la siguiente información:
" Código.
" Número de hijos.
" Salario por hora.
" Número de horas trabajadas al mes.
La retención por cada empleado se determina así:
" Para salarios menores de $100.000:
si el número de hijos es 6 o más, no hay retención;
si el número de hijos es menor a 6, se le retiene un porcentaje igual a 6 menos el número de hijos.
" Para salarios iguales o mayores a $100.000:
si el número de hijos es menor de 3, se le retiene un 3%;
si el número de hijos es mayor o igual a 3, se le retiene un porcentaje igual a 5 menos el número de hijos.
El subsidio por cada hijo es de $12.000
Elaborar una aplicación que muestre: código y total a pagar.*/
import javax.swing.*;
public class almacen{
public static void main(String args[]){
//Declaracion de variables
String codigo,hijos,salario,horas,opcion;
double n_hijos,v_salario,n_horas,salario_bruto,pago_final,subsidio=0,retencion=0;
int continuar = 1;
while(continuar == 1){
retencion = 0;
subsidio = 0;
//Presentar un menú para ingresar datos o salir (Opcional)
opcion = JOptionPane.showInputDialog("1. Calcular pago\n2. Salir");
continuar = Integer.parseInt(opcion);
if(continuar == 1){
//Solicitar información al usuario
codigo = JOptionPane.showInputDialog("Digite su código");
hijos = JOptionPane.showInputDialog("Digite el número de hijos");
salario = JOptionPane.showInputDialog("Digite el valor de su salario por hora");
horas = JOptionPane.showInputDialog("Digite el número de horas que trabajó durante el último mes");
n_hijos = Double.parseDouble(hijos);
v_salario = Double.parseDouble(salario);
n_horas = Double.parseDouble(horas);
salario_bruto = v_salario * n_horas;
if(salario_bruto < 100000){
if(n_hijos >= 6){
subsidio = n_hijos * 12000;
}
else{
retencion = ((6-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
else{
if(n_hijos < 3){
retencion = 0.03*salario_bruto;
subsidio = n_hijos * 12000;
}
else{
retencion = ((5-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
pago_final = salario_bruto + subsidio - retencion;
JOptionPane.showMessageDialog(null, "El pago para el empleado con el código " + codigo + " es: " + pago_final);
}
else if(continuar != 2){
JOptionPane.showMessageDialog(null, "Seleccione una opción válida en el menú","Opción inválida",JOptionPane.ERROR_MESSAGE );
continuar = 1;
}
else{
continuar = 0;
}
}//fin del mientras
}
}
" Código.
" Número de hijos.
" Salario por hora.
" Número de horas trabajadas al mes.
La retención por cada empleado se determina así:
" Para salarios menores de $100.000:
si el número de hijos es 6 o más, no hay retención;
si el número de hijos es menor a 6, se le retiene un porcentaje igual a 6 menos el número de hijos.
" Para salarios iguales o mayores a $100.000:
si el número de hijos es menor de 3, se le retiene un 3%;
si el número de hijos es mayor o igual a 3, se le retiene un porcentaje igual a 5 menos el número de hijos.
El subsidio por cada hijo es de $12.000
Elaborar una aplicación que muestre: código y total a pagar.*/
import javax.swing.*;
public class almacen{
public static void main(String args[]){
//Declaracion de variables
String codigo,hijos,salario,horas,opcion;
double n_hijos,v_salario,n_horas,salario_bruto,pago_final,subsidio=0,retencion=0;
int continuar = 1;
while(continuar == 1){
retencion = 0;
subsidio = 0;
//Presentar un menú para ingresar datos o salir (Opcional)
opcion = JOptionPane.showInputDialog("1. Calcular pago\n2. Salir");
continuar = Integer.parseInt(opcion);
if(continuar == 1){
//Solicitar información al usuario
codigo = JOptionPane.showInputDialog("Digite su código");
hijos = JOptionPane.showInputDialog("Digite el número de hijos");
salario = JOptionPane.showInputDialog("Digite el valor de su salario por hora");
horas = JOptionPane.showInputDialog("Digite el número de horas que trabajó durante el último mes");
n_hijos = Double.parseDouble(hijos);
v_salario = Double.parseDouble(salario);
n_horas = Double.parseDouble(horas);
salario_bruto = v_salario * n_horas;
if(salario_bruto < 100000){
if(n_hijos >= 6){
subsidio = n_hijos * 12000;
}
else{
retencion = ((6-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
else{
if(n_hijos < 3){
retencion = 0.03*salario_bruto;
subsidio = n_hijos * 12000;
}
else{
retencion = ((5-n_hijos)/100)*salario_bruto;
subsidio = n_hijos * 12000;
}
}
pago_final = salario_bruto + subsidio - retencion;
JOptionPane.showMessageDialog(null, "El pago para el empleado con el código " + codigo + " es: " + pago_final);
}
else if(continuar != 2){
JOptionPane.showMessageDialog(null, "Seleccione una opción válida en el menú","Opción inválida",JOptionPane.ERROR_MESSAGE );
continuar = 1;
}
else{
continuar = 0;
}
}//fin del mientras
}
}
Solución en lenguaje Java a evaluación 1 , grupo 2
/*Una empresa agrupa a sus empleados en dos clases:
" Grupo 1, laboran en la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 48 horas semanales y no lleva en la empresa más de 15 años, su sueldo
será incrementado en un 7%
o Si el empleado trabajó mas de 48 horas semanales y tiene en la empresa más de 15 años, el incremento
será del 8% más una bonificación de $2.000
o En caso de no cumplir con las condiciones anteriores, el incremento será de 3% y no recibe bonificación
" Grupo 2, laboran por fuera de la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 30 horas semanales y no lleva en la empresa más de 10 años, su sueldo será
incrementado un 5% y no recibe bonificación
o Si el empleado trabajó mas de 30 horas semanales y tiene en la empresa más de 10 años, el incremento será
de 6% más una bonificación de $1.800
o En caso de no cumplir con estas condiciones, el incremento será de 2% y no recibe bonificación
Elaborar una aplicación que le pregunte al usuario: grupo, antigüedad, horas semanales laboradas y valor hora.
Luego indique cuánto se le debe pagar cualquier empleado de esta empresa.*/
import javax.swing.JOptionPane;
public class Grupo2{
public static void main(String args[]){
String Grupo, HorasTrab,AñosTrab,ValorHora;
double HorasLab=0,AñosLab=0,CostoHora=0,pago=0;
int Opcion=0,continuar = 1;
while(Opcion != 3){
Grupo = JOptionPane.showInputDialog("Indique su grupo:\n1. Labora en la planta\n2. Labora por fuera de la planta\n3. Salir");
Opcion = Integer.parseInt(Grupo);
if(Opcion == 3){
break; //Rompe el ciclo del mientras
}
else {
HorasTrab = JOptionPane.showInputDialog("Digite el número de horas que trabajó esta semana");
AñosTrab = JOptionPane.showInputDialog("Digite el número de años que lleva laborando en la empresa");
ValorHora = JOptionPane.showInputDialog("Digite el valor de su hora de trabajo");
HorasLab = Double.parseDouble(HorasTrab);
AñosLab = Double.parseDouble(AñosTrab);
CostoHora = Double.parseDouble(ValorHora);
}
switch(Opcion){
case 1: if(AñosLab > 15 && HorasLab > 48){
pago = (HorasLab * CostoHora * 1.08) + 2000;
}
else if(HorasLab > 48){
pago = HorasLab * CostoHora * 1.07;
}
else{
pago = HorasLab * CostoHora * 1.03;
}
break;
case 2: if(AñosLab > 10 && HorasLab > 30){
pago = (HorasLab * CostoHora * 1.06) + 1800;
}
else if(HorasLab > 30){
pago = HorasLab * CostoHora * 1.05;
}
else{
pago = HorasLab * CostoHora * 1.02;
}
break;
default:JOptionPane.showMessageDialog(null,"Seleccione un grupo del menú","Mensaje de Error", JOptionPane.ERROR_MESSAGE);
}//fin del switch
JOptionPane.showMessageDialog(null,"Su pago de esta semana es: " + pago,"Pago semanal", JOptionPane.INFORMATION_MESSAGE);
}//Fin del while
}
}
" Grupo 1, laboran en la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 48 horas semanales y no lleva en la empresa más de 15 años, su sueldo
será incrementado en un 7%
o Si el empleado trabajó mas de 48 horas semanales y tiene en la empresa más de 15 años, el incremento
será del 8% más una bonificación de $2.000
o En caso de no cumplir con las condiciones anteriores, el incremento será de 3% y no recibe bonificación
" Grupo 2, laboran por fuera de la planta y obtendrán un aumento de sueldo de acuerdo al siguiente razonamiento:
o Si el empleado trabajó mas de 30 horas semanales y no lleva en la empresa más de 10 años, su sueldo será
incrementado un 5% y no recibe bonificación
o Si el empleado trabajó mas de 30 horas semanales y tiene en la empresa más de 10 años, el incremento será
de 6% más una bonificación de $1.800
o En caso de no cumplir con estas condiciones, el incremento será de 2% y no recibe bonificación
Elaborar una aplicación que le pregunte al usuario: grupo, antigüedad, horas semanales laboradas y valor hora.
Luego indique cuánto se le debe pagar cualquier empleado de esta empresa.*/
import javax.swing.JOptionPane;
public class Grupo2{
public static void main(String args[]){
String Grupo, HorasTrab,AñosTrab,ValorHora;
double HorasLab=0,AñosLab=0,CostoHora=0,pago=0;
int Opcion=0,continuar = 1;
while(Opcion != 3){
Grupo = JOptionPane.showInputDialog("Indique su grupo:\n1. Labora en la planta\n2. Labora por fuera de la planta\n3. Salir");
Opcion = Integer.parseInt(Grupo);
if(Opcion == 3){
break; //Rompe el ciclo del mientras
}
else {
HorasTrab = JOptionPane.showInputDialog("Digite el número de horas que trabajó esta semana");
AñosTrab = JOptionPane.showInputDialog("Digite el número de años que lleva laborando en la empresa");
ValorHora = JOptionPane.showInputDialog("Digite el valor de su hora de trabajo");
HorasLab = Double.parseDouble(HorasTrab);
AñosLab = Double.parseDouble(AñosTrab);
CostoHora = Double.parseDouble(ValorHora);
}
switch(Opcion){
case 1: if(AñosLab > 15 && HorasLab > 48){
pago = (HorasLab * CostoHora * 1.08) + 2000;
}
else if(HorasLab > 48){
pago = HorasLab * CostoHora * 1.07;
}
else{
pago = HorasLab * CostoHora * 1.03;
}
break;
case 2: if(AñosLab > 10 && HorasLab > 30){
pago = (HorasLab * CostoHora * 1.06) + 1800;
}
else if(HorasLab > 30){
pago = HorasLab * CostoHora * 1.05;
}
else{
pago = HorasLab * CostoHora * 1.02;
}
break;
default:JOptionPane.showMessageDialog(null,"Seleccione un grupo del menú","Mensaje de Error", JOptionPane.ERROR_MESSAGE);
}//fin del switch
JOptionPane.showMessageDialog(null,"Su pago de esta semana es: " + pago,"Pago semanal", JOptionPane.INFORMATION_MESSAGE);
}//Fin del while
}
}
martes, 24 de febrero de 2009
Solución en lenguaje Java a evaluación 1, grupo1
/*Una empresa fumiga cosechas contra plagas. Los valores cobrados dependen de lo que se desea fumigar
*y de cuántas hectáreas se fumigan, de acuerdo a la siguiente distribución:
a. Tipo 1: fumigación contra malas hierbas, 10 dólares por hectárea.
b. Tipo 2; fumigación contra langostas, 15 dólares por hectárea.
c. Tipo 3: fumigación contra gusanos, 20 dólares por hectárea.
d. Tipo 4: fumigación contra todo lo anterior, 30 dólares por hectárea.
Si el área a fumigar es mayor de 1.000 hectáreas, se da un 5% de descuento. Además,
a cualquier cuenta que sobrepase los 3.000 dólares se le descuenta un 10% sobre la cantidad
que exceda dicho precio. Por cada pedido se pide la siguiente información: tipo de fumigación
solicitada (1,2,3,4) y el número de hectáreas a fumigar. Por cada solicitud se debe suministrar el valor a pagar.*/
import javax.swing.*;
public class fumigaciones{
public static void main(String args[]){
String tipo,area;
int tipo_1=0,area_1=0,sale_switch=0,opcion_invalida;
Double cuenta1,excedente,pago=0.0,descuento2=0.0;
while(sale_switch == 0){
opcion_invalida = 0;
area = JOptionPane.showInputDialog("Digite el número de hectáreas que desea fumigar");
area_1 = Integer.parseInt(area);
tipo = JOptionPane.showInputDialog("Digite el tipo de fumigación que desea contratar \nTipo 1: Contra malas hierbas $10 por hectárea\nTipo 2: Contra langostas $15 por hectárea\nTipo 3: Contra gusanos $20 por hectárea\nTipo 4: Contra todo lo anterior $30 por hectárea\n5. Salir");
tipo_1 = Integer.parseInt(tipo);
switch(tipo_1){
case 1: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*10*0.95;
}
else{
cuenta1 = area_1*10.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 2: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*15*0.95;
}
else{
cuenta1 = area_1*15.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 3: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*20*0.95;
}
else{
cuenta1 = area_1*20.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 4: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*30*0.95;
}
else{
cuenta1 = area_1*30.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 5: sale_switch = 1;
opcion_invalida = 1;
break;
default: JOptionPane.showMessageDialog(null,"Seleccione un opción correcta");
opcion_invalida = 1;
break;
}//Fin del switch
if(opcion_invalida==0){
JOptionPane.showMessageDialog(null," areas: " + area_1 + "\ntipo: " + tipo_1 + "\nTotal a pagar: " + pago);
}
}//Fin del mientras
}
}
*y de cuántas hectáreas se fumigan, de acuerdo a la siguiente distribución:
a. Tipo 1: fumigación contra malas hierbas, 10 dólares por hectárea.
b. Tipo 2; fumigación contra langostas, 15 dólares por hectárea.
c. Tipo 3: fumigación contra gusanos, 20 dólares por hectárea.
d. Tipo 4: fumigación contra todo lo anterior, 30 dólares por hectárea.
Si el área a fumigar es mayor de 1.000 hectáreas, se da un 5% de descuento. Además,
a cualquier cuenta que sobrepase los 3.000 dólares se le descuenta un 10% sobre la cantidad
que exceda dicho precio. Por cada pedido se pide la siguiente información: tipo de fumigación
solicitada (1,2,3,4) y el número de hectáreas a fumigar. Por cada solicitud se debe suministrar el valor a pagar.*/
import javax.swing.*;
public class fumigaciones{
public static void main(String args[]){
String tipo,area;
int tipo_1=0,area_1=0,sale_switch=0,opcion_invalida;
Double cuenta1,excedente,pago=0.0,descuento2=0.0;
while(sale_switch == 0){
opcion_invalida = 0;
area = JOptionPane.showInputDialog("Digite el número de hectáreas que desea fumigar");
area_1 = Integer.parseInt(area);
tipo = JOptionPane.showInputDialog("Digite el tipo de fumigación que desea contratar \nTipo 1: Contra malas hierbas $10 por hectárea\nTipo 2: Contra langostas $15 por hectárea\nTipo 3: Contra gusanos $20 por hectárea\nTipo 4: Contra todo lo anterior $30 por hectárea\n5. Salir");
tipo_1 = Integer.parseInt(tipo);
switch(tipo_1){
case 1: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*10*0.95;
}
else{
cuenta1 = area_1*10.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 2: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*15*0.95;
}
else{
cuenta1 = area_1*15.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 3: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*20*0.95;
}
else{
cuenta1 = area_1*20.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
// sale_switch = 1;
break;
case 4: if(area_1>1000){ //Si tiene derecho a un descuento del 5%
cuenta1 = area_1*30*0.95;
}
else{
cuenta1 = area_1*30.0;
}
if(cuenta1 > 3000){ //Si tiene derecho a un descuento del 10% sobre el excedente de 3000
excedente = cuenta1 - 3000;
descuento2 = excedente * 0.1;
}
pago = cuenta1 - descuento2;
descuento2 = 0.0;
//sale_switch = 1;
break;
case 5: sale_switch = 1;
opcion_invalida = 1;
break;
default: JOptionPane.showMessageDialog(null,"Seleccione un opción correcta");
opcion_invalida = 1;
break;
}//Fin del switch
if(opcion_invalida==0){
JOptionPane.showMessageDialog(null," areas: " + area_1 + "\ntipo: " + tipo_1 + "\nTotal a pagar: " + pago);
}
}//Fin del mientras
}
}
miércoles, 18 de febrero de 2009
miércoles, 28 de enero de 2009
Suscribirse a:
Comentarios (Atom)
