Академический Документы
Профессиональный Документы
Культура Документы
Ejemplo 1.
En una empresa que brinda mantenimiento a PCs se han clasificado a las maquinas de
acuerdo al numero de desperfectos que estas presentan. Si la PC no tiene ninguna falla
es tipo A, si la PC tiene 3 fallas se le considera tipo B y si la PC tiene mas de 3 fallas es
tipo C.
Escribir un algoritmo para implementar este proceso, No se sabe cuantas PCs se
evaluaran en un da, el algoritmo debe preguntar si se desea continuar y terminar el
ingreso N. Asimismo al finalizar se debe mostrar por pantalla las estadsticas
porcentuales correspondientes a la evaluacin de ese da.
Ejemplo del reporte a mostrar:
TIPO
A
B
C
TOTAL DE COMPUTADORAS
33
24
5
PORCENTAJE
52.33%
38.71%
8.06%
Implementacin en Pseudocodigo:
CLASE INSPECTOR
{ // Atributos
entero NumFallas
entero TipoA
entero TipoB
entero TipoC
//Mtodos
Inspector()
{ NumFallas = 0
TipoA = 0 , TipoB = 0 , TipoC = 0
}
LeeProcesoNumFallas( )
{
caracter Rpta =
Mientras (Rpta < > N y Rpta < > n)
Escribe (Ingrese el numero de fallas)
Leer ( NumFallas)
Si ( NumFallas = 0) TipoA <- TipoA + 1
Sino
Si ( NumFallas <= 3) TipoB TipoB + 1
Sino
TipoC TipoC + 1
FinSi
FinSi
Escribe ( Desea Continuar S/N? )
Leer (Rpta)
FinMientras
}
MuestraEstadisticas()
{ entero Total.
Total TipoA + TipoB +TipoC
Escribir (
ESTADISTICAS
)
Escribir ( TIPO
TOTAL DE COMPUTADORAS
PORCENTAJE
)
Escribir
(-----------------------------------------------------------------------------------)
Escribir ( A , TipoA
, TipoA * 100 / Total )
Escribir ( B , TipoB
, TipoB * 100 / Total )
Escribir ( C , TipoC
, TipoC * 100 / Total )
}
En Proceso:
Inspector Oscar nuevo Inspector()
Oscar. LeeProcesaNumFallas()
Oscar.MuestraEstadisticas()
Fin.
} //Fin de la clase.
Ejemplo 2.
Una financiera tiene 3000 clientes, ha decidido premiar a su staff de 30 vendedores.
Escribir una solucin que permita, saber quien es el ejecutivo con el mayor nmero de
contratos conseguidos pues recibir un Bono especial de $ 500 dlares como premio.
Adems se otorgara otros premios al resto del personal segn la siguiente tabla:
Numero de contratos conseguidos
Mas de 100
Menos de 50 pero mas de 10
Menores de 100 y mayores o iguales a 50
Bono ($)
200
50
100
Implementacin en Pseudocodigo:
CLASE BonosFinanciera
{ // Atributos
Cadena NomVendedorGanador
Entero NumContratosGanador
Real TotalEnBonos
//Mtodos
BonosFinanciera()
{
NumContratosGanador 0
TotalEnBonos 0
}
ProcesoDatos( )
{
cadena Nombre
Entero NumContrato
entero i
Para i desde 1 hasta 30
Escribe (Ingrese el nombre del vendedor: , i )
Leer (Nombre)
Escribe (Ingrese numero de contratos )
Leer ( NumContrato)
Si ( NumContratos > NumContratosGanador)
NumContratosGanador <- NumContratos
NomVendedorGanador <- Nombre
FinSi.
Si ( NumContratos > 10 y NumContratos < 50 )
TotalEnBonos = TotalEnBonos + 50
FinSi
Si ( NumContratos > = 50 y NumContratos < 100 )
TotalEnBonos = TotalEnBonos + 100
FinSi
Si ( NumContratos >= 100 )
TotalEnBonos = TotalEnBonos + 200
FinSi
FinPara
}
MuestraResultados()
{ Cadena NomVendedorGanador
Entero NumContratosGanador
Real TotalEnBonos
Escribir ( EL EJECUTIVO GANADOR ES : ,
NomVendedorGanador )
Escribir (EL TOTAL DE CONTRAROS SON: ,NumContratosGanador )
Escribir (EL TOTAL A DESEMBOLSAR POR LA FINANCIERA ES: )
Escribir ( TotalEnBonos )
}
En Proceso:
BonosFinanciera Financiera nuevo BonosFinanciera ()
Financiera.ProcesaDatos()
Financiera .MuestraResultados()
Fin.
} //Fin de la clase.
}
Ejemplo 2
import java.util.Scanner;
public class Lectura_suma_cScanner {
public static void main(String[] args) {
Scanner entrada=new Scanner(System.in);
int n1,n2,suma;
System.out.println("Numeros enteros para sumar");
System.out.print("Primer numero: ");
n1=entrada.nextInt();
6
System.out.println(color);
}
public static void main(String[] args) {
char rpta='s';
cLuz oLuz=new cLuz();
while(rpta=='s'){
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE=new BufferedReader(isr);
PrintStream flujoS=System.out;
try{
oLuz.Cambio();
flujoS.print("Desea continuar<s/n>: ");
rpta=(char)flujoE.read();
}
catch(IOException e){
System.out.println("Error:"+e.getMessage());
}
}
}
}
int tedad_a,tedad_p;
tnom_a=JOptionPane.showInputDialog("Nombre del alumno: ");
tedad_a_s=JOptionPane.showInputDialog("edad del alumno: ");
tedad_a=Integer.parseInt(tedad_a_s);
alumno.AsignarNombre(tnom_a);
alumno.AsignarEdad(tedad_a);
mensaje_n_a=String.format("Alumno: %s",alumno.ObtenerNombre());
mensaje_e_a = String.format("\n tiene: %d aos",alumno.ObtenerEdad());
JOptionPane.showMessageDialog(null,mensaje_n_a);
JOptionPane.showMessageDialog(null,mensaje_e_a);
tnom_p=JOptionPane.showInputDialog("Nombre del profesor: ");
tedad_p_s=JOptionPane.showInputDialog("edad del profesor: ");
tedad_p=Integer.parseInt(tedad_p_s);
profesor.AsignarNombre(tnom_p);
profesor.AsignarEdad(tedad_p);
mensaje_n_a=String.format("Profesor: %s",profesor.ObtenerNombre());
mensaje_e_a = String.format("\n tiene: %d aos", profesor.ObtenerEdad());
JOptionPane.showMessageDialog(null,mensaje_n_a);
JOptionPane.showMessageDialog(null,mensaje_e_a);
}
}
10
Clase Alumno
Atributos:
codigo
nombre
promediofinal
Mtodos:
Alumno(.)
AsignarNombre(.)
ObtenerNombre()
Clase ArregloAlumnos
Atributos:
Alumno[] ca
indice
Mtodos:
ArregloAlumnos( )
ingresar( )
buscarAlumno(codigo)
agregarporcodigo(Alumno .)
actualizarlongitudArreglo(Alumno[] )
aadirobjeto(ndicex, Alumno )
mostrar()
Mtodo Principal:
// Crear objeto Arreglo de alumnos vaco (con cero elementos)
Para el objeto definido llamar a ingresar();
Para el objeto definido llamar a mostrar();
************************************************************
public class Alumno {
String codigo;
String nombre;
int promediofinal;
public Alumno(){}
11
12
ca[i]=objeto;
else
System.out.println("Indice fuera de limites");
}
public void agregarporcodigo(Alumno obj){
unElementoMas(ca);
ponerValorEn(nElementos -1,obj);
}
public void ingresar() {
String codigo_i,nombre_i;
int promediofinal_i;
Alumno at=new Alumno();
System.out.print("Codigo: ");
codigo_i=PromedioAlumnos.dato();
System.out.println("codigo ingresado: "+codigo_i);
if(!buscarAlumno(codigo_i)){
at.setCodigo(codigo_i);
System.out.print("Nombre: ");
nombre_i=PromedioAlumnos.dato();
at.setNombre(nombre_i);
System.out.print("Promedio final(entero): ");
promediofinal_i=PromedioAlumnos.datoInt();
agregarporcodigo(new Alumno(codigo_i,nombre_i,promediofinal_i));
}
}
public void visualizar(){
System.out.println("DATOS INGRESADOS");
for(int i=0;i< nElementos;i++){
System.out.print(ca[i].getCodigo()+" "+ca[i].getNombre()+"
"+ca[i].getPromediofinal());
System.out.println();
}
}
}
import java.io.*;
public class PromedioAlumnos {
public static int datoInt(){
return Integer.parseInt(dato());
}
public static String dato(){
String sdato="";
try{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE=new BufferedReader(isr);
sdato=flujoE.readLine();
}
catch(IOException e){
System.err.println("ERROR"+e.getMessage());
13
}
return sdato;
}
public static void main(String[] args) {
int na;
ArregloAlumnos oa=new ArregloAlumnos();
System.out.print("Numero de alumnos: ");
na=PromedioAlumnos.datoInt();
for(int i=0;i<na;i++)
oa.ingresar();
oa.visualizar();
}
}
EJERCICIO
1. Generar una lista de telfonos. La lista debe ser un objeto que encapsula la matriz de
objetos persona, la clase CPersona define los atributos privados nombre, direccin,
telfono relativos a una persona, mtodos respectivos que en un men de opciones
permita: aadir, eliminar y buscar en una lista.
14
15
import java.util.ArrayList;
public class Banco {
String nombre=null;
String direccion=null;
ArrayList<Cliente> clientes= null;//Objeto clientes del tipo Cliente
// ArrayList: clase que contendra
//
lista de objetos Cliente
public Banco(String nom, String direc){
nombre=nom;
direccion=direc;
this.clientes=new ArrayList<Cliente>();
}
public String getNombre(){
return nombre;
}
public void setNombre(String nombre){
this.nombre=nombre;
}
public void agregarCliente(Cliente cliente){
this.clientes.add(cliente);
}
public ArrayList<Cliente> ObtenerClientes(){
return this.clientes;
}
}
import java.util.GregorianCalendar;
import java.util.Iterator;
public class Prueba {
public static void main(String[] args) {
Banco banco1=new Banco("HSBC", "China");
Banco banco2=new Banco("Credito", "Peru");
Cliente clie1=new Cliente("Miguel","01020304",new GregorianCalendar(1970,3,6));
Cliente clie2=new Cliente("Rosa","11020304",new GregorianCalendar(1980,7,16));
Cliente clie3=new Cliente("sergio","07020304",new GregorianCalendar(1990,2,1));
//Agregando clientes al Banco
banco1.agregarCliente(clie1);
banco1.agregarCliente(clie2);
banco2.agregarCliente(clie1);
banco2.agregarCliente(clie3);
//Imprimir los clientes
System.out.println("Banco: "+banco1.getNombre());
Iterator it=banco1.ObtenerClientes().iterator();
while(it.hasNext()){ // seguidamente uno/otro del mismo iterador(it)
Cliente obj= (Cliente) it.next();
System.out.println(obj.toString());
16
}
System.out.println("Banco: "+banco2.getNombre());
it=banco2.ObtenerClientes().iterator();
while(it.hasNext()){ // seguidamente uno/otro del mismo iterador(it)
Cliente obj= (Cliente) it.next();
System.out.println(obj.toString());
}
}
}
17
Calculadora1
public int factorial(int n)
public long factorial(long n)
public boolean esPrimo(int n)
public boolean esPrimo(long n)
18
int rpta=n1-n2;
return rpta;
}
public float resta(float n1,float n2){
float rpta=n1-n2;
return rpta;
}
}
public class Calculadora1 extends CalculadoraBase {
public int factorial(int n){
int f=1;
while(n>1){
f=f*n;n=n-1;
}
return f;
}
public long factorial(long n){
long f=1;
while(n>1){
f=f*n--;
}
return f;
}
public boolean esPrimo(int n){
boolean primo=true;
int k=1;
while(++k<n){
if(n%k==0){
primo=false;
break;
}
}
return primo;
}
public boolean esPrimo(long n){
boolean primo=true;
int k=1;
while(++k<n){
if(n%k==0){
primo=false;
break;
}
}
return primo;
}
}
19
20
EmpleadoBaseMasComision
salarioBase
21
salariobase=salario;
}
public double obtenerSalarioBase(){
return salariobase;
}
}
public class PruebaEmpleadoBaseMasComision {
public static void main(String[] args) {
EmpleadoBaseMasComision empleado=new EmpleadoBaseMasComision("Denisse
Fajardo",1000,3,500);
System.out.println("\n Informacion del empleaco: \n");
System.out.println("\n Nombre: "+empleado.obtenerNombre());
System.out.println("\n Ventas brutas: "+empleado.obtenerVentasBrutas());
System.out.println("\n
Tarifa
por
comision:
"+empleado.obtenerTarifaPorComision());
System.out.println("\n Salario base: "+empleado.obtenerSalarioBase()); }
}
22
iFigura
main()
Rectangulo
double largo
double ancho
Circulo
double radio
double area()
double area()
24
25
//this.unidades=unidades;
this.unidades=this.unidades+unidades;
}
public int getVentas(){
return unidades;
}
public double calcularPago(){
return getSalario()+(comision*unidades);
}
}
public class EmpleadoPorHoras extends Empleado{
private int horas; // # de horas trabajadas
public EmpleadoPorHoras(String nombre, String apellido, double salario){
super(nombre,apellido,salario);
}
public void sumarHoras(int horas){
this.horas=this.horas+horas;
}
public int getHoras(){
return horas;
}
public double calcularPago(){
return getSalario()*horas;
}
}
public class Nomina {
private int horas_totales;
private int ventas_totales;
private double pago_total;
public void registrarInfoEmpleado(EmpleadoPorComision emp){
ventas_totales=ventas_totales+emp.getVentas();
}
public void registrarInfoEmpleado(EmpleadoPorHoras emp){
horas_totales=horas_totales+emp.getHoras();
}
public void pagarEmpleados(Empleado[] emps){
for(int i=0;i<emps.length;i++){
Empleado emp=emps[i];
pago_total=pago_total+emp.calcularPago();
emp.imprimirRecibo();
}
}
}
public class ControladorNomina {
public static void main(String[] args) {
26
**********************************************************
EJERCICIO
Polimorfismo Clase abstracta Intefaz
Dada un clase Banco que define una matriz de referencias a objetos de tipo cuenta bancaria
(clase Cuenta). Cuenta una clase abstracta con los atributos: nombre, cuenta, saldo, tipo de
inters; y los mtodos: estado, que devuelve el saldo de la cuenta, comisiones, mtodo abstracto
sin parmetros que ser redefinido en las subclases, que incluye a dos clases derivadas:
CCuentaAhorro con el atributo cuota de mantenimiento; y la clase CCuentaCorriente con los
27
Saldo
Buscar siguiente
Ingreso
Reintegro // Ingreso
Aadir
Eliminar
Mantenimiento
Salir
Seleccione opcin:
28
p = p.swap();
System.out.println("Par de enteros, despues del cambio: n1="+p.getA()+" n2="+p.getB());
29
try{
flujoS.print("Primer caracter<letra>: ");
ca=(char)flujoE.read();
flujoE.readLine(); //Limpiar caracteres: \r\n
flujoS.print("Segundo caracter<letra>: ");
cb=(char)flujoE.read();
flujoE.readLine(); //Limpiar caracteres: \r\n
}
catch(IOException e){
System.out.println("Error:"+e.getMessage());
}
// Instanciacin de la clase genrica para Character(Caracteres)
//Par<Character> p1 = new Par<Character>('a','b');
Par<Character> p1 = new Par<Character>(ca,cb);
System.out.println("Par de aracteres, antes del cambio: ca="+p1.getA()+" cb="+p1.getB());
p1=p1.swap();
System.out.println("Par de caracteres, despues del cambio: ca="+p1.getA()+" cb="+p1.getB());
}
}
Ejercicios:
1. Programa utilizando clase genrica, para hallar el menor, intermedio y mayor de tres
nmeros enteros, a su vez de tres letras.
2. Programa utilizando clase genrica para ordenar cinco nmeros y ordenar cinco
letras, ascendente y/o descendente.
30
31
32
Ejercicios:
1. Programa que permita el ingreso de una cadena mediante un campo de texto,
representando una fecha de la forma MM/DD/AA (Ej. xx/yy/zz). Usar la clase
StringTokenizer para dividirla y producir un mensaje de error si un elemento no es
numrico, si no se encuentra o si se especifica una fecha no correcta. Ignorar los
aos bisiestos.
2. Usar herencia para crear una superclase de excepcin (lamada ExcepcionA) y las
subclases de excepcin ExcepcionB y ExcepcionC, en donde ExcepcionB hereda de
ExcepcionA y ExcepcionC hereda de ExcepcionB. Programa para demostrar que el
bloque match para el tipo ExcepcionA atrapa excepciones de los tipos ExcepcionB y
ExcepcionC.
**********************************************************************
33
Construir una clase llamada Luz que simule una luz de semforo. El atributo color de la
clase debe cambiar de Verde a Amarillo y a Rojo y de nuevo regresar a Verde mediante
la funcin Cambio. Cuando se crea un objeto Luz, su color inicial ser Rojo.
import java.io.*;
public class cLuz {
//Atributo
String color;
//Mtodos
cLuz(){
color="Rojo";
}
public void Cambio(){
color="Verde";
System.out.println(color);
color="Amarillo";
System.out.println(color);
color="Rojo";
System.out.println(color);
}
public static void main(String[] args) {
char rpta='s';
cLuz oLuz=new cLuz();
while(rpta=='s'){
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader flujoE=new BufferedReader(isr);
PrintStream flujoS=System.out;
try{
oLuz.Cambio();
flujoS.print("Desea continuar<s/n>: ");
rpta=(char)flujoE.read();
}
catch(IOException e){
System.out.println("Error:"+e.getMessage());
}
}
}
}
34
Figura
int x
int y
iFigura
main()
Rectangulo
double largo
double ancho
Circulo
double radio
double area()
double area()
35
INDICE
Pg.
1. Ejemplos de desarrollo. Pseudo cdigo ................................................
4. Arreglo de objetos .. 9
5. Agregacin ....
13
16
36
REFERENCIAS
37