Tecnológico Superiores de Villa Guerrero” Guía de códigos Alumno: Marco Antonio Espinoza Honorato Maestra: María Guadalupe Guerrero Ordoñez Grupo:3211 Ejercicio 1 Ejercicio 1: Construir un programa que calcule el área y el perímetro de un cuadrilátero dada la longitud de sus dos lados. Los valores de la longitud deberán introducirse por línea de órdenes. Si es un cuadrado, sólo se proporcionará la longitud de uno de los lados al constructor. CLASE CUADRILÁTERO package Ejercicio1; public class Cuadrilatero { //atributos private float lado1; private float lado2; //Métodos constructor rectangulo public Cuadrilatero(float lado1, float lado2) { this.lado1 = lado1; this.lado2 = lado2; } //Metodo constructor de un cuadrado public Cuadrilatero(float lado1) { this.lado1 = this.lado2=lado1; } public float getPerimetro(){ float perimetro = 2*(lado1+lado2); return perimetro; } public float getArea(){ float area = (lado1*lado2); return area; } } Ejercicio 2 Construir un programa que permita dirigir el movimiento de un objeto dentro de un tablero y actualice su posición dentro del mismo. Los movimientos posibles son ARRIBA, ABAJO, IZQUIERDA y DERECHA. Tras cada movimiento el programa mostrará la nueva dirección elegida y las coordenadas de situación del objeto dentro del tablero. package Tablero2; public class Tablero { private int x; private int y; public Tablero(int x, int y) { this.x = x; this.y = y; } public void moverArriva(int incremento) { y += incremento; } public void moverAbajo(int decremento) { y -= decremento; } public void moverDerecha(int incremento) { x += incremento; } public void moverIzquierda(int decremento) { x -= decremento; } public int getX() { return x; } public int getY() { return y; } } package Tablero2; import java.util.Scanner; public class Movimientos { public static void main(String[] args) { Scanner imprimir = new Scanner(System.in); int x; int y; int opcion; int incremento = 0; System.out.println("Digite ;la posisicion inicial de x : "); x = imprimir.nextInt(); System.out.println("Digite ;la posisicion inicial de y : "); y = imprimir.nextInt(); Tablero tablero = new Tablero(x, y); do { System.out.println("\n\tMENU"); System.out.println("1 . Mover hacia Arriba "); System.out.println("2 . Mover hacia la Derecha"); System.out.println("3 . Mover hacia Abajo"); System.out.println("4 . Mover hacia la Izquierda"); System.out.println("5 . Salir"); System.out.print("Digite una opcion : "); opcion = imprimir.nextInt(); if (opcion != 5) { System.out.println("\nDigite el Incremento o Decremento de una cordenada : "); incremento = imprimir.nextInt(); } switch (opcion) { case 1: tablero.moverArriva(incremento); break; case 2: tablero.moverDerecha(incremento); break; case 3: tablero.moverAbajo(incremento); break; case 4: tablero.moverIzquierda(incremento); break; case 5: System.out.println("\nPosision actual (x) : (y) es (" + tablero.getX() + "):(" + tablero.getY() + ")"); opcion = 5; break; default: System.out.println("\nLa aopcion no existe vuelva a digitar"); break; } System.out.println("\nPosision actual (x) : (y) es (" + tablero.getX() + "):(" + tablero.getY() + ")"); Ejercicio 3 Construir un programa que, dada una serie de vehículos caracterizados por su marca, modelo y precio, imprima las propiedades del vehículo más barato. Para ello, se deberán leer por teclado las características de cada vehículo y crear una clase que represente a cada uno int numeroVehiculos, indiceBarato; System.out.println("Digite la cantidad de vehiculos: "); numeroVehiculos = imprimir.nextInt(); //creamos los objetos para los coches Veicuclo coches[] = new Veicuclo [numeroVehiculos]; package Ejercicio3_POO; import java.util.Scanner; public class Principal { public static int indiceCocheMBarato(Veicuclo coches[]) { float precio; int indice = 0; precio = coches[0].getPrecio(); for (int i = 1; i < coches.length; i++) { if (coches[i].getPrecio() < precio) { precio = coches[i].getPrecio(); indice = i; } } return indice; } public static void main(String[] arg) { Scanner imprimir = new Scanner(System.in); String marca, modelo; float precio; int numeroVehiculos, indiceBarato; System.out.println("Digite la cantidad de vehiculos: "); numeroVehiculos = imprimir.nextInt(); //creamos los objetos para los coches Veicuclo coches[] = new Veicuclo [numeroVehiculos]; for (int i = 0; i < coches.length; i++) { imprimir.nextLine(); System.out.println("\nDigite las caracteristicas del coche " + (i + 1) + ":"); System.out.print("Introdusca la Marca del coche: "); marca = imprimir.nextLine(); System.out.print("Digite el Modelo del Coche: "); modelo = imprimir.nextLine(); System.out.print("Introdusca el Precio del Coche: "); precio = imprimir.nextFloat(); coches[i] = new Veicuclo (marca, modelo, precio); indiceBarato = indiceCocheMBarato(coches); System.out.println("\nElcoch e mas barato es: "); System.out.println(coches[indi ceBarato].mostrarDatod()); package Ejercicio3_POO; public class Veicuclo { private String marca; private String modelo; private float precio; //metodo cosntructor public Veicuclo(String marca, String modelo, float precio) { this.marca = marca; this.modelo = modelo; this.precio = precio; } Ejercicio 4: Construir un programa para una competencia de atletismo, el programa debe gestionar una serie de atletas caracterizados por su número de atleta, nombre y tiempo de carrera, al final el programa debe mostrar los datos del atleta ganador de la carrera. package Ejercicio4_poo; public class Atleta { private int numero_atleta; private String nombre; private float tiempo_carrera; //Metodo constructor public Atleta(int numero_atleta, String nombre, float tiempo_carrera) { this.numero_atleta = numero_atleta; this.nombre = nombre; this.tiempo_carrera = tiempo_carrera; } public float getTiempo_carrera() { return tiempo_carrera; } public String mostrarDatod(){ return"numero del atleta: "+numero_atleta+"\nNombre: "+nombre+"\nTiempo en carrera: "+tiempo_carrera+"\n"; } } package Ejercicio4_poo; import java.util.Scanner; public class Pincipal { public static int atletaMasrapido(Atleta corredor[]){ float tiempo_carrera; int numero_atleta = 0; tiempo_carrera =corredor[0].getTiempo_carrera(); for (int i=1; i<corredor.length; i++){ if (corredor[i].getTiempo_carrera()<tiempo_carrera){ tiempo_carrera=corredor[i].getTiempo_carrera(); numero_atleta = i; } } return numero_atleta; } public static void main(String[] arg) { Scanner imprimir = new Scanner(System.in); String nombre; float tiempo_carrera; int numero_atleta, atletaMasrapido, atletaRapido; System.out.println("Digite la cantida de Atletas: "); numero_atleta = imprimir.nextInt(); // creamos los bojetos para los corredores Atleta corredor[] = new Atleta[numero_atleta]; atletaRapido= atletaMasrapido(corredor); System.out.println("\nEl Atleta mas rapido es: "); "); System.out.println(corredor[atletaRapido].mostrarDatod for (int i = 0; i < corredor.length; i++) { imprimir.nextLine(); System.out.println("\nDigite las caracteristicas del Atleta " +(i + 1)+":"); System.out.print("Introdusca el nombre del Atleta: nombre=imprimir.nextLine(); System.out.print("Digite el numero del Atleta: "); numero_atleta=imprimir.nextInt(); System.out.print("Digite el tipo que en carrera: "); tiempo_carrera=imprimir.nextFloat(); e corredor[i]=new Atleta(numero_atleta, nombre, tiempo_carrera); Ejercicio 5: Diseñar un programa para trabajar con triángulos isósceles. Para ello defina los atributos necesarios que se requieren, proporcione métodos de consulta, un método constructor e implemente métodos para calcular el perímetro y el área de un triángulo, además implementar un método que a partir de un arreglo de triángulos devuelva el área del triángulo de mayor superficie. package Ejercicio5_poo; public class Triangulo { private double base; private double lado; //metos constructor public Triangulo(double base, double lado) { this.base = base; this.lado = lado; } public double obtenerPerimetro(){ double perimetro = 2* lado+base; return perimetro; } public double obtenerArea(){ double area =(base*Math.sqrt((lado*lado)- ((base*base)/4)))/2; return area; } public String mostrarDatos(){ return "base: "+base+"\nLado: "+lado+"\nperimetro: "+obtenerPerimetro()+"\nArea: "+obtenerArea()+"\n"; } } package Ejercicio5_poo; import java.util.Scanner; public class Principal { public static double mayorArea(Triangulo triangulos[]){ double area; area=triangulos[0].obtenerArea(); for(int i=1;i<triangulos.length;i++){ if(triangulos[i].obtenerArea()>area){ area=triangulos[i].obtenerArea(); } } return area; } public static void main(String[] arg){ Scanner imprimir = new Scanner (System.in); double base, lado; int nTriangulos; System.out.println("Digite elnumero de triangulos para calcular area y perimetro "); nTriangulos=imprimir.nextInt(); Triangulo triangulos[]=new Triangulo [nTriangulos]; for(int i=0;i<triangulos.length;i++){ System.out.println("\nDigite los valores para el triangulo"+(i+1)+"."); System.out.println("Introdusca la Base: "); base=imprimir.nextDouble(); System.out.println("Digite el lado: "); lado=imprimir.nextDouble(); triangulos[i]=new Triangulo(base, lado); System.out.println("\nEl perimetro del triangulo es: "+triangulos[i].obtenerPerimetro()); System.out.println("\nEl area de triangulo es "+triangulos[i].obtenerArea()); } System.out.println("\nEl area del triangulo de mayor superficie es "+mayorArea(triangulos)); } Ejercicio 6: Construir un programa para trabajar con 2 números complejos, implemente el siguiente menú: 1. Sumar dos números complejos 2. Multiplicar 2 números complejos 3. Comparar 2 números complejos (iguales o no) 4. Multiplicar un número complejos por un entero package Ejercicio6_poo; public class Numerocomplejo { private final double a;//ALMACENAR LA PARTE REAL private final double b;//ALMACENA LA PARTE IMAGINARIA public Numerocomplejo(double a, double b) { this.a = a; this.b = b; } public double getA(){ return a; } //RESOLVER LA SUMA DE NUMEROS COMPLEJOS public Numerocomplejo calcularSuma(Numerocomplejo c){ Numerocomplejo suma = new Numerocomplejo(a+c.getA(),b+c.getB()); return suma; } public Numerocomplejo calcularProducto(Numerocomplejo c){ Numerocomplejo mult = new Numerocomplejo((a *c.getA()-b *c.getB()),(b *c.getB()+a *c.getA())); return mult; } public boolean comprobarIgualdad(Numerocomplejo c){ boolean igualdad=false; if((a==c.getA())&&(b==c.getB())){ igualdad = true; } return igualdad; public double getB(){ return b; } package Ejercicio6_poo; import java.util.Scanner; } public Numerocomplejo multiplicarPorEntero(int x){ Numerocomplejo mult = new Numerocomplejo(a*x,b*x); return mult; public class Principal { } } public static void main(String[] args) { Scanner entrada = new Scanner (System.in); Numerocomplejo numero1, numero2, suma, mult; double a, b, c, d; int opcion, numero; do{ System.out.println("\t: Operaciones con numeros comlejos"); System.out.println("1. Sumar los numeros complejos"); System.out.println("2. Multiplicar los numeros complejos"); System.out.println("3. Comparar numeros complejos"); System.out.println("4. Multiplicar numero imaginario y numero real"); System.out.println("5. Salir"); System.out.println("Digite la opcion del menu: "); opcion=entrada.nextInt(); switch (opcion){ case 1: System.out.println("\nDigite el primer numero complejo"); System.out.print("Digite la parte real: "); a = entrada.nextDouble(); System.out.print("Digite la parte imaginaria: "); b = entrada.nextDouble(); System.out.print("Digite el segundo numero complejo: "); c = entrada.nextDouble(); System.out.print("Digite el segundo numero real: "); d = entrada.nextDouble(); numero1 = new Numerocomplejo(a,b); numero2 = new Numerocomplejo(c,d); suma = numero1.calcularSuma(numero2); System.out.println("\n La suma es: "+suma.getA()+" + "+suma.getB()+"i"); break; case 2: System.out.println("\nDigite la parte real: "); System.out.print("Digite la parte real: "); a = entrada.nextDouble(); System.out.print("Digite la parte imaginaria: "); b = entrada.nextDouble(); System.out.print("\nDigite el segundo numero complejo: "); c = entrada.nextDouble(); numero1 = new Numerocomplejo(a,b); numero2 = new Numerocomplejo(c,d); mult = numero1.calcularProducto(numero2); System.out.println("\nLa multiplicacion es: "+mult.getA()+" + "+mult.getB()+"i"); break; case 3: System.out.println("\nDigite el primer numero complejo"); System.out.print("Digite la parte real: "); a = entrada.nextDouble(); System.out.print("Digite la parte imaginaria: "); b = entrada.nextDouble(); System.out.print("\nDigite el segundo numero complejo: "); c = entrada.nextDouble(); System.out.print("Digite el segundo numero real: "); d = entrada.nextDouble(); numero1 = new Numerocomplejo(a,b); numero2 = new Numerocomplejo(c,d); if(numero1.comprobarIgualdad(numero2)){ System.out.println("\nLos numeros complejos son iguales"); } else{ System.out.println("\nLos numeros complejos son diferentes"); } break; case 4: System.out.println("\nDigite el primer numero complejo"); System.out.print("Digite la parte real: "); a = entrada.nextDouble(); System.out.print("Digite la parte imaginaria: "); b = entrada.nextDouble(); System.out.print("Digitar el numero entero: "); numero = entrada.nextInt(); numero1 = new Numerocomplejo (a,b); mult = numero1.multiplicarPorEntero(numero); System.out.println("\nLa multiplicacion es: "+mult.getA()+" + "+mult.getB()+"i"); Ejercicio 7: Hacer un programa sencillo para realizar gestiones en un banco para lo cual tendremos 2 clases (Cliente y Cuenta). Considerar que un cliente se caracteriza por su nombre, apellido y DNI. El cliente puede consultar saldo, así como ingresar y retirar dinero de sus cuentas. Además cada cuenta se caracteriza por un número de cuenta y un saldo package Ejercicio7_Poo; public class Cuenta { private int numeroCuenta; private double saldo; public Cuenta(int numeroCuenta, double saldo) { this.numeroCuenta = numeroCuenta; this.saldo = saldo; } public int getNumeroCuenta() { return numeroCuenta; } public double getSaldo() { return saldo; } public void ingresarDinero (double cantidad){ saldo=saldo+cantidad; } public void retiraDinero (double cantidad){ saldo=saldo-cantidad; } } package Ejercicio7_Poo; public class Cliente { private String nombre; private String apellido; private String dni; Cuenta cuentas[]; public Cliente(String nombre, String apellido, String dni,Cuenta[]cuentas) { this.nombre = nombre; this.apellido = apellido; this.dni = dni; this.cuentas=cuentas; } public String getNombre() { return nombre; } public String getApellido() { return apellido; } public String getDni() { return dni; } public double consultar_saldo (int n){ return cuentas[n].getSaldo(); } public void ingresar_dinero (int n, double cantidad){ cuentas[n].ingresarDinero(cantidad); } public void retirar_dinero (int n, double cantidad){ cuentas[n].retiraDinero(cantidad); } } package Ejercicio7_Poo; import java.util.Scanner; public class Principal { public static int buscarNumeroCuenta(Cuenta cuentas[], int n) { int i = 0, indice = 0; boolean encontrado = false; //Metodo de Busqueda Secuencial while ((i < cuentas.length) && (encontrado == false)) { if (cuentas[i].getNumeroCuenta() == n) { encontrado = true; indice = i; } i++; } if (encontrado == false) { indice = -1; } return indice; } public static void main(String[] args) { Scanner imprimir = new Scanner(System.in); int opcion, numeroCuenta, nCuentas, indiceCuenta; double saldo, cantidad; String nombre, apellido, dni; Cuenta cuentas[]; Cliente cliente; System.out.println("Digite el nombre del cliente: "); nombre = imprimir.nextLine(); System.out.println("Digite el apellido del cliente: "); apellido = imprimir.nextLine(); System.out.println("Digite el DNI del cliente: "); dni = imprimir.nextLine(); System.out.println("Digite el numero de cuenta del cliente: "); nCuentas = imprimir.nextInt(); cuentas = new Cuenta[nCuentas]; for (int i = 0; i < cuentas.length; i++) { System.out.println("\nDigite los datos para la cuenta " + (i + 1) + ".- "); System.out.println("Digite el numero de cuenta: "); numeroCuenta = imprimir.nextInt(); System.out.println("Digite el salldo de la cuenta: "); saldo = imprimir.nextDouble(); cuentas[i] = new Cuenta(numeroCuenta, saldo); } cliente = new Cliente(nombre, apellido, dni, cuentas); do { System.out.println("\t\n:BIENVENIDO AL CAJERO"); System.out.println("1.- Ingresar dinero a la cuenta"); System.out.println("2.- Retirar dinero a la cuenta"); System.out.println("3.- Consultar saldo"); System.out.println("4.- Salir"); System.out.println("Digite la opcion que desce del menu"); opcion = imprimir.nextInt(); switch (opcion) { case 1: System.out.print("\nDigite el numero de cuenta"); numeroCuenta = imprimir.nextInt(); indiceCuenta = buscarNumeroCuenta(cuentas, numeroCuenta); if (indiceCuenta == -1) { System.out.println("\nEl numero de cuenta no existe"); } else { System.out.println("Digite la cantidad de dinero a ingresar: "); cantidad = imprimir.nextDouble(); cliente.ingresar_dinero(indiceCuenta, cantidad); System.out.println("Deposito correcto"); System.out.println("Saldo disponible: " + cliente.consultar_saldo(indiceCuenta)); } break; case 2: System.out.print("\nDigite el numero de cuenta"); numeroCuenta = imprimir.nextInt(); indiceCuenta = buscarNumeroCuenta(cuentas, numeroCuenta); if (indiceCuenta == -1) { Ejercicio 8 una empresa de envío de paquetes tiene varias sucursales en todo el país, cada sucursal esta definida por un numero de sucursales , dirección y ciudad para calcular el precio que cuesta enviar cada paquete la sucursal tiene en cuneta el precio del paquete y la prioridad sabiendo que se cobrará un dólar por kilo , 10 dólares más la prioridad de salta y 20 si es express cada paquete enviado tendrá un numero de referencia y el ID de cada persona que lo envia package Ejercicio8_POO public class Paquete { private int numeroPaquete; private String dni; private double peso; private int prioridad; //0=norma, 1=alta, 2=expres public Paquete(int numeroPaquete, String dni, double peso, int prioridad){ this.dni = dni; this.peso = peso; this.prioridad = prioridad; } public int getNumeroPaquete(){ return numeroPaquete; } public String getDni(){ return dni; } public double getPeso(){ return peso; } public int getPrioridad(){ return prioridad; } public String mostrarDatosPaquete(){ return "Numero de paquete: "+numeroPaquete+"\nDNI: "+dni+"\nPrioridad: "+prioridad; } } package Ejercicio8_POO; import java.util.Scanner; public class principal { public static int buscarPaquete(Paquete t[], int numeroPaquete, int contadorPaquete){ int indice = 0; boolean encontrado = false; for(int i=0;i<contadorPaquete;i++){ if(t[i].getNumeroPaquete()==numeroPaquete){ encontrado = true; indice = i; } } if(encontrado == false){ indice = -1; } return indice; } public static int buscarSucursal(Sucursal t[], int numeroSucursal, int contadorSucursal){ int indice = 0; boolean encontrado = false; for(int i=0;i<contadorSucursal;i++){ if(t[i].getNumeroSucursal()==numeroSucursal){ encontrado = true; indice = i; } } if(encontrado == false){ indice = -1; Ejercicio de practica Ejercicio 1.1 CLASE MAIN package Ejercicio1; import javax.swing.JOptionPane; public class Principal { public static void main(String[] args) { Cuadrilatero c1; float lado1, lado2; lado1 = Float.parseFloat(JOptionPane.showInputDialog("Digite el lado 1: ")); lado2 = Float.parseFloat(JOptionPane.showInputDialog("Digite el lado 2: ")); if(lado1 == lado2){//si es un cuadrado c1 = new Cuadrilatero(lado1); } else{ c1 = new Cuadrilatero (lado1, lado2); } System.out.println("El perimetro es "+c1.getPerimetro()); System.out.println("El area es: "+c1.getArea()); } } Ejercicio 3 package Ejercicio3_POO; public class Vehiculo { private String marca; private String modelo; private float precio; public Vehiculo(String marca, String modelo, float precio) { this.marca = marca; this.modelo = modelo; this.precio = precio; } public float getPrecio() { return precio; } public String mostrarDatos(){ return "Marca: "+marca+" Modelo: "+modelo+" Precio: $ "+precio+"\n"; } } Ejercicio 3.1 package Ejercicio3_POO; import java.util.Scanner; public class Principal { public static int indiceCocheMBarato(Vehiculo coches[]){ float precio; int indice=0; precio=coches[0].getPrecio(); for(int i=1;i<coches.length;i++){ if(coches[i].getPrecio()<precio){ precio=coches[i].getPrecio(); indice=i; } } return indice; } public static void main(String[] args) { Scanner entrada=new Scanner (System.in); String marca; String modelo; float precio; int numeroVehiculos, indiceBarato; System.out.println("Digite cuantos vehiculos son: "); numeroVehiculos=entrada.nextInt(); //crear los objetos para los vehiculos Vehiculo coches[] = new Vehiculo[numeroVehiculos]; for(int i=0; i<coches.length;i++){ entrada.nextLine(); System.out.println("\nDigite las caracteristicas del coche "+(i+1)+": "); System.out.print("Introduzca la marca: "); marca=entrada.nextLine(); System.out.print("Introduzca el modelo: "); modelo=entrada.nextLine(); System.out.print("Introduzca el precio: "); precio=entrada.nextFloat(); coches[i] = new Vehiculo(marca, modelo, precio); } indiceBarato = indiceCocheMBarato(coches); System.out.println("\nEl coche más barato es: "); System.out.println(coches[indiceBarato].mostrarDatos()); } }