Ejercicios propuestos y resueltos en seudocódigo y código Java para su mejor comprensión. No explicaré paso a paso cómo armo cada código, porque comparto estos documentos para personas con un nivel básico de este lenguaje:
Los ejercicios son parte de las clases de programación de Cibertec:
EJERCICIO I:
- Diseñe un algoritmo para convertir grados sexagesimales (S) a grados centesimales (C) y radianes (R). Considere las siguientes fórmulas:
C= 200x S/ 180
R= 3.1416xS/180
La resolución sería la siguiente:
}
protected void actionPerformedBtnConvertir(ActionEvent arg0) {
//CÓDIGO DE MI BOTÓN
//DECLARAR VARIABLES
double centi,sexa,radian;
//ENTRADA DE DATOS
sexa=Double.parseDouble(txtSexa.getText());
//PROCESO
centi=(200*sexa)/180;
radian=(3.1416*sexa)/180;
//SALIDA DE DATOS
txtS.setText(«Temperaturas equivalentes:»+»\n\n»);
txtS.append(«Temperatura en centígrados: «+centi+».»+»\n»);
txtS.append(«Temperatura en radianes: «+radian+».»+»\n»);
}
EJERCICIO II:
Escriba un algoritmo que lea una temperatura en grados Centígrados (C) y la convierta a sus equivalentes en grados Fahrenheit (F), grados Kelvin (K) y grados Rankine(R). Utilice las siguientes fórmulas:
Rankine=centigrados+460
Fahrengeit=(9*centigrados/5)+32
Kelvin=rankine-187
La resolución sería la siguiente:
}
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//DECLARAR VARIABLES
double centi, fah,kel,rank;
//ENTRADA DE DATOS
centi=Double.parseDouble(txtCenti.getText());
//PROCESO
rank=centi+460;
fah=(9*centi/5)+32;
kel=rank-187;
//SALIDA DE DATOS
txtS.setText(«Temperaturas equivalentes: «+»\n\n»);
txtS.append(«Temperatura en Rankine: «+rank+»\n»);
txtS.append(«Temperatura en Fahrenheit: «+fah+»\n»);
txtS.append(«Temperatura en Kelvin: «+kel+»\n»);
}
protected void actionPerformedBtnBorrar(ActionEvent arg0) {
//BOTON BORRADOR
txtS.setText(«»);
txtCenti.setText(«»);
txtCenti.requestFocus();
}
}
EJERCICIO III
Para estimar el peso de un niño en situaciones de emergencias pediátricas se utiliza la siguiente fórmula:
peso en kilogramos=3 x edad en años+7
La solución es la siguiente:
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//DECLARAR VARIABLES
int edad;
double peso;
// ENTRADA DE DATOS
edad=Integer.parseInt(txtEdad.getText());
//Proceso
peso=3*edad+7;
//SALIDA DE DATOS
txtS.setText(«»);
txtS.append(«El peso estimado del niño es: «+peso+»\n»);
}
EJERCICIO IV:
Un hospital ha recibido una donación especial que será repartida entre las áreas de Pediatría, Medicina General, Ginecología y Traumatología. Cada área recibirá una parte de la donación equivalente a:
- Pediatría: 20% del monto total recibido entre Medicina General y Ginecología.
- Medicina General : 45% de la donación.
- Ginecología : 80% del monto recibido por Medicina General.
- Traumatología: lo que resta la donación.
Diseñe un algoritmo que determine cuánto recibirá cada área
La solución sería la siguiente:
}
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
double don,ped,med,gine,tra;
don=Double.parseDouble(txtDon.getText());
med=0.45*don;
gine=.80*med;
ped=0.20*(med+gine);
tra=don-(med+gine+ped);
txtS.setText(«La donación se repartirá así: «+»\n\n»);
txtS.append(«Para medicina general: «+med+»\n»);
txtS.append(«Para ginecología: «+gine+»\n»);
txtS.append(«Para pediatría: «+ped+»\n»);
txtS.append(«Para traumatología: «+tra+»\n»);
}
EJERCICIO V:
Una empresa confecciona polos de tamaño estándar aplicando un descuento del 11.5% del importe de la compra.
El importe de la compra se calcula multiplicando el precio del polo por la cantidad de polos adquiridos.
El importe a pagar se calcula restando el importe compra menos el importe del descuento.
Adicionalmente, la empresa obsequia dos lapiceros por cada polo adquirido.
Dados el precio del polo y la cantidad de polos adquiridos, diseñe un algoritmo que determine el importe de la compra, el importe del descuento, el importe a pagar y la cantidad de lapiceros de obsequio que le corresponden a un cliente.
La resolución sería la siguiente:
}
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//MI CODIGO
int cant,regalo;
double prec,icom,ides,ipag;
//ENTRADA DE DATOS
cant=Integer.parseInt(txtCantidad.getText());
prec=Double.parseDouble(txtPrecio.getText());
//PROCESO
icom=prec*cant;
ides=0.115*icom;
ipag=icom-ides;
regalo=2*cant;
//SALIDA DE DATOS
txtS.setText(«»);
txtS.append(«El importe de la compra es: «+icom+»\n»);
txtS.append(«El importe del descuento es: «+ides+»\n»);
txtS.append(«El importe a pagar es: «+ipag+»\n»);
txtS.append(«Cantidad de lapiceros de obsequio: «+regalo+»\n»);
}
Y si le añado un botón de borrar y cerrar ventana:
}
protected void actionPerformedBtnBorrar(ActionEvent arg0) {
//CODIGO BORRAR
txtS.setText(«»);
txtPrecio.setText(«»);
txtCantidad.setText(«»);
txtPrecio.requestFocus();
}
protected void actionPerformedBtnCerrar(ActionEvent arg0) {
//CODIGO CERRAR
dispose();
}
}
EJERCICIO VI:
Una empresa ha decidido otorgar una bonificación a sus empleados por única vez. La bonificación estará compuesta de la suma de una bonificación por hijos más una bonificación por tiempo de servicio. La bonificación por hijos será igual a S/. 25 por cada hijo. La bonificación por tiempo de servicio será igual a S/. 50 por cada año de tiempo de servicio. Dados el número de hijos y el número de años de tiempo de servicio, diseñe un algoritmo que determine el importe de la bonificación por hijos, el importe de la bonificación por tiempo de servicio y el importe de la bonificación total que le corresponden a un empleado.
La resolución sería la siguiente:
protected void actionPerformedBtnProcesar(ActionEvent e) {
//MI CODIGO
//DECLARAR VARIABLES
int hijos,tiempo;
double bh,bts,ibt;
//LECTURA DE DATOS
hijos=Integer.parseInt(txtHijos.getText());
tiempo=Integer.parseInt(txtTiempo.getText());
//PROCESO
bh=25*hijos;
bts=50*tiempo;
ibt=bh+bts;
//SALIDA DE DATOS
txtS.setText(«»);
txtS.append(«Le corresponde la siguiente bonificación por hijos: «+bh+»\n»);
txtS.append(«Le correspone la siguiente bonificación por tiempo de servicio: «+bts+»\n»);
txtS.append(«Su bonificación total es: «+ibt+»\n»);
}
protected void actionPerformedBtnBorrar(ActionEvent e) {
txtS.setText(«»);
txtHijos.setText(«»);
txtTiempo.setText(«»);
txtHijos.requestFocus();
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
//CERRAR
dispose();
}
}
EJERCICIO VII:
Una empresa paga a sus empleados un sueldo bruto que es igual a la suma de un sueldo básico más una comisión. El sueldo básico es igual a S/. 350. La comisión es igual al 8% del importe vendido en el mes. El descuento de ley es igual al 15% del sueldo bruto. El sueldo neto es igual a la resta del sueldo bruto menos el descuento. Dado el importe vendido del mes, diseñe un algoritmo que determine el sueldo básico, la comisión, el sueldo bruto, el descuento y el sueldo neto de un empleado de la empresa.
La resolución sería la siguiente:
}
protected void actionPerformedBtnProcesar(ActionEvent arg0) {
//PROCESAR
//DECLARAR VARIABLES
int ventas;
double suba,comi,subru,desc,sune;
//ENTRADA DE DATOS
ventas=Integer.parseInt(txtVentas.getText());
//PROCESO
suba=350;
comi=0.08*ventas;
subru=suba+comi;
desc=0.15*subru;
sune=subru-desc;
//SALIDA DE DATOS
txtS.setText(«»);
txtS.append(«Sueldo bruto: «+subru+»\n»);
txtS.append(«Comisión: «+comi+»\n»);
txtS.append(«Descuento: «+desc+»\n»);
txtS.append(«Sueldo neto: «+sune+»\n»);
}
protected void actionPerformedBtnBorrar(ActionEvent arg0) {
//BORRAR
txtS.setText(«»);
txtVentas.setText(«»);
txtVentas.requestFocus();
}
}
EJERCICIO VIII:
Una tienda ha puesto en oferta la venta de camisas ofreciendo un doble descuento del 12%. El importe compra es igual al producto del precio de la camisa por la cantidad de camisas adquiridas. El primer descuento es igual al 12% del importe de la compra. El segundo descuento es igual al 12% de la resta del importe de la compra menos el primer descuento. El importe del descuento total es igual a la suma del primer y segundo descuento. El importe a pagar es igual a la resta del importe compra menos el importe del descuento total. Dados el precio de la camisa y la cantidad de camisas adquiridas, diseñe un algoritmo que determine el importe compra, el importe del descuento total y el importe a pagar correspondientes a un cliente.
La resolución sería la siguiente:
//DEC VARIABLES
int cant;
double pre,icom,desc1,desc2,desto,ipag;
//ENTRADA DE DATOS
pre=Double.parseDouble(txtPrecio.getText());
cant=Integer.parseInt(txtCantidad.getText());
//PROCESO
icom= pre*cant;
desc1=0.12*icom;
desc2=0.12*(icom-desc1);
desto=desc1+desc2;
ipag=icom-desto;
//SALIDA DE DATOS
txtS.setText(«»);
txtS.append(«Importe de compra: «+icom+»\n»);
txtS.append(«Importe del descuento total: «+desto+»\n»);
txtS.append(«Importe a pagar: «+ipag+»\n»);
}
protected void actionPerformedBtnBorrar(ActionEvent e) {
txtS.setText(«»);
txtPrecio.setText(«»);
txtCantidad.setText(«»);
txtPrecio.requestFocus();
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
}