diff --git b/BoxHerencia.java a/BoxHerencia.java new file mode 100644 index 0000000..0860ce8 --- /dev/null +++ a/BoxHerencia.java @@ -0,0 +1,89 @@ +public class BoxHerencia { + public static void main(String[] args) { + Envio envio1 = new Envio(5, 3, 3, 3); + Envio envio2 = new Envio(9,5); + System.out.println("Peso " + envio1.getPeso() + ". Volumen "+envio1.volumen()); + System.out.println("Peso " + envio2.getPeso() + ". Volumen "+envio2.volumen()); + + } +} + +class Box1{ + private float ancho; + private float alto; + private float profundidad; + + public Box1(float ancho, float alto, float profundidad) { + this.ancho = ancho; + this.alto = alto; + this.profundidad = profundidad; + } + + public Box1() { + this.ancho = 0; + this.alto = 0; + this.profundidad = 0; + } + + public Box1(float lado) { + this.ancho = this.alto = this.profundidad = lado; + } + + public float getAlto() { + return alto; + } + public float getAncho() { + return ancho; + } + public float getProfundidad() { + return profundidad; + } + public void setAlto(float alto) { + this.alto = alto; + } + public void setAncho(float ancho) { + this.ancho = ancho; + } + public void setProfundidad(float profundidad) { + this.profundidad = profundidad; + } + public float volumen(){ + return ancho * profundidad * alto; + } + +} + +class BoxPeso extends Box1{ + private float peso; + + public BoxPeso(float ancho, float alto, float profundidad, float peso) { + super(ancho,alto,profundidad); + this.peso = peso; + } + public BoxPeso(){ + super(); + this.peso = 0; + } + public float getPeso() { + return peso; + } + public void setPeso(float peso) { + this.peso = peso; + } +} + +class Envio extends BoxPeso{ + public Envio() { + super(); + } + + public Envio(Envio otro) { + super(otro.getAncho(),otro.getAlto(),otro.getProfundidad(),otro.getPeso()); + } + public Envio(float lado, float peso) { + super(lado,lado,lado,peso); + } + public Envio(float ancho, float alto, float profundidad, float peso) { + super(ancho,alto,profundidad,peso); + } +} diff --git b/Lenguajes.java a/Lenguajes.java new file mode 100644 index 0000000..1fb5d74 --- /dev/null +++ a/Lenguajes.java @@ -0,0 +1,34 @@ +import java.io.Console; + +public class Lenguajes { + public static void main(String[] args) { + String seleccion; + Console cons = System.console(); + do { + seleccion = cons.readLine("Que lenguaje desea aprender\n1-PHP\n2-Java\n3-Python\n4-Ruby\n5-R\n6-Salir\n"); + switch (seleccion) { + case "1": + System.out.println("PHP no es un buen lenguaje. Hay mejores opciones. Sus frameworks si son buenos"); + break; + + case "2": + System.out.println("Java es un lenguaje muy utilizado, su JVM hace que pueda correr en casi cualquier plataforma"); + break; + case "3": + System.out.println("Python es un buen lenguaje para iniciarse en la programacion. Es muy utilizado en la Ciencia de Datos"); + + break; + case "4": + System.out.println("Ruby es un lenguaje con sintasis parecida a python. Se utiliza mucho para programacion web"); + break; + case "5": + System.out.println("R es un lenguaje para estadisticos, se utiliza mucho en la ciencia de datos"); + + break; + + default: + break; + } + } while (!seleccion.equals("6")); + } +} diff --git b/Mochila.java a/Mochila.java new file mode 100644 index 0000000..8a69412 --- /dev/null +++ a/Mochila.java @@ -0,0 +1,104 @@ +import java.io.Console; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class Mochila { + private int capacidad; + private List elementos; + + public Mochila(int capacidad) { + this.capacidad = capacidad; + this.elementos = new ArrayList<>(); + } + + public void setCapacidad(int capacidad) { + this.capacidad = capacidad; + } + public int getCapacidad() { + return capacidad; + } + public List getElementos() { + return elementos; + } + public void addElemento(Objeto elemento) { + this.elementos.add(elemento); + } + + public void maximoBeneficio(Objeto [] cosas){ + Arrays.sort(cosas, (a,b) -> b.getRatio().compareTo(a.getRatio())); + int libre=capacidad; + int cantidadLlevarElemento = 0; + for (Objeto objeto : cosas) { + + if( objeto.getPeso()<= libre){ + cantidadLlevarElemento = Math.floorDiv(libre, objeto.getPeso()); + for (int i = 0; i < cantidadLlevarElemento; i++) { + elementos.add(objeto); + } + libre -= (cantidadLlevarElemento * objeto.getPeso()); + } + if(libre==0){ + break; + } + + } + } + + public static void main(String[] args) { + Console cons = System.console(); + String pesosS = cons.readLine("Introduzca valores separados por coma de los pesos de los elementos\n"); + String valoresS = cons.readLine("Introduzca valores separados por coma de los valores de los elementos\n"); + String [] pesos = pesosS.split(","); + String [] valores = valoresS.split(","); + Objeto [] elementos = new Objeto[pesos.length]; + for (int i = 0; i < pesos.length ; i++) { + elementos[i] = new Objeto(Integer.parseInt(valores[i]), Integer.parseInt(pesos[i])); + } + String capS = cons.readLine("Introduzca capacidad de la mochila\n"); + int cap = Integer.parseInt(capS); + Mochila mochila = new Mochila(cap); + mochila.maximoBeneficio(elementos); + System.out.println("Se escogen estos elementos"); + mochila.getElementos().stream().forEach(e -> System.out.println(e)); + + + + + } + +} + +class Objeto{ + private int valor; + private int peso; + private Float ratio; + public Objeto(int valor, int peso) { + this.valor = valor; + this.peso = peso; + this.ratio = ((float)this.valor)/this.peso; + } + public int getPeso() { + return peso; + } + public int getValor() { + return valor; + } + public void setPeso(int peso) { + this.peso = peso; + } + public void setValor(int valor) { + this.valor = valor; + } + public Float getRatio() { + return ratio; + } + public void setRatio(float ratio) { + this.ratio = ratio; + } + @Override + public String toString() { + + return "{Valor: " + valor + ",Peso: " + peso + ",Ratio:"+ratio+"}" ; + } +} diff --git b/ModificadorAcceso.java a/ModificadorAcceso.java new file mode 100644 index 0000000..450d45a --- /dev/null +++ a/ModificadorAcceso.java @@ -0,0 +1,22 @@ +public class ModificadorAcceso { + public static void main(String[] args) { + Notas n = new Notas(); + System.out.println(n.notas); + //System.out.println(n.direccion); + System.out.println(n.getNotas()); + //System.out.println(n.getDireccion()); + } +} + +class Notas{ + public int[] notas; + private String direccion; + + public int[] getNotas(){ + return notas; + } + + private String getDireccion(){ + return direccion; + } +} diff --git b/PruebaStatic.java a/PruebaStatic.java new file mode 100644 index 0000000..2362a26 --- /dev/null +++ a/PruebaStatic.java @@ -0,0 +1,32 @@ +public class PruebaStatic { + public static void main(String[] args) { + Factura f = new Factura(); + f.preciosProductos = new int[]{100,50,120}; + Factura.setIva1(10.f); + Factura.setIva2(5.f); + } +} + +class Factura{ + private static float iva1; + private static float iva2; + int [] preciosProductos; + + public static float getIva1() { + //preciosProductos[2]=3;error: non-static variable preciosProductos cannot be referenced from a static context + return iva1; + } + + public static float getIva2() { + return iva2; + } + + public static void setIva1(float iva1) { + Factura.iva1 = iva1; + } + + public static void setIva2(float iva2) { + Factura.iva2 = iva2; + } + +} \ No newline at end of file diff --git b/SalonBellezaV2.java a/SalonBellezaV2.java new file mode 100644 index 0000000..d9e76dd --- /dev/null +++ a/SalonBellezaV2.java @@ -0,0 +1,165 @@ +package t; +public class SalonBellezaV2 { + public static void main(String[] args) { + Cliente horacio = new Cliente("Horacio","1312","Calle 1"); + Cliente platz = new ClientePlata("Platz","1512","Calle 2","pedicure"); + Cliente mario = new ClienteOro("Mario","1912","Calle 3","pedicure,manicure,lavado","descuentos"); + Cliente juan = new ClientePremium("Juan","1512","Calle 4","pedicure,manicure,lavado,limpieza","descuentos",1000); + Producto [] productos = {new Producto("Shampo", 5.f), new Producto("Gel", 3.f), new Producto("Crema para la cara", 8.f)}; + Servicio [] servicios = {new Servicio("Corte",10.f), new Servicio("Lavado",8.f), new Servicio("Pedicure",8.f)}; + + + + } + + +} + +interface DetalleProducto{ + String getDescripcion(); + float getPrecio(); + boolean isServicio(); +} + +class Producto implements DetalleProducto{ + String descripcion; + float precio; + + public Producto(String descripcion, float precio) { + this.descripcion = descripcion; + this.precio = precio; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + public void setPrecio(float precio) { + this.precio = precio; + } + @Override + public String getDescripcion() { + // TODO Auto-generated method stub + return descripcion; + } + @Override + public float getPrecio() { + // TODO Auto-generated method stub + return precio; + } + @Override + public boolean isServicio() { + return false; + } +} + +class Servicio implements DetalleProducto{ + String descripcion; + float precio; + + public Servicio(String descripcion, float precio) { + this.descripcion = descripcion; + this.precio = precio; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + public void setPrecio(float precio) { + this.precio = precio; + } + @Override + public String getDescripcion() { + // TODO Auto-generated method stub + return descripcion; + } + @Override + public float getPrecio() { + // TODO Auto-generated method stub + return precio; + } + @Override + public boolean isServicio() { + return true; + } +} + +class Cliente { + private String nombre; + private String ruc; + private String direccion; + public Cliente(String nombre, String ruc, String direccion) { + this.nombre = nombre; + this.ruc = ruc; + this.direccion = direccion; + } + + + public void setNombre(String nombre) { + this.nombre = nombre; + + } + + public String getNombre() { + + return nombre; + } + + public String getDireccion() { + return direccion; + } + public String getRuc() { + return ruc; + } + public void setDireccion(String direccion) { + this.direccion = direccion; + } + public void setRuc(String ruc) { + this.ruc = ruc; + } + + +} + +class ClientePlata extends Cliente{ + private String servicios; + public ClientePlata(String nombre, String ruc, String direccion, String servicios) { + super(nombre, ruc, direccion); + this.servicios = servicios; + } + public String getServicios() { + return servicios; + } + public void setServicios(String servicios) { + this.servicios = servicios; + } +} + +class ClienteOro extends ClientePlata{ + private String beneficios; + public ClienteOro(String nombre, String ruc, String direccion, String servicios, String beneficios){ + super(nombre, ruc, direccion,servicios); + this.beneficios = beneficios; + } + public String getBeneficios() { + return beneficios; + } + public void setBeneficios(String beneficios) { + this.beneficios = beneficios; + } +} + +class ClientePremium extends ClienteOro{ + private int puntos; + public ClientePremium(String nombre, String ruc, String direccion, String servicios, String beneficios, int puntos){ + super(nombre, ruc, direccion,servicios,beneficios); + this.puntos = puntos; + } + public int getPuntos() { + return puntos; + } + public void setPuntos(int puntos) { + this.puntos = puntos; + } +} + + diff --git b/Stack.java a/Stack.java new file mode 100644 index 0000000..f081751 --- /dev/null +++ a/Stack.java @@ -0,0 +1,89 @@ +public class Stack { + /** + * Clase generica de Stack para soportar varios tipos de elementos. float, int, etc + * + */ + public T [] elementos; + int actual; + int capacidad; + + public Stack(int cantidad) { + this.capacidad = cantidad; + elementos = (T[])new Object[capacidad]; + actual = 0; + + } + + public void push(T valor){ + if(actual==capacidad){ + System.err.println("Pila llena"); + return ; + } + elementos[actual] = valor; + actual += 1; + } + + public T pop(){ + if(this.estaVacia()){ + System.err.println("Pila vacia"); + return null; + } + T valor = elementos[actual-1]; + actual -= 1; + return valor; + } + + public boolean estaVacia() { + return actual<1; + } + + public T lastValue(){ + return elementos[actual-1]; + } + + public static void main(String[] args) { + int capacidad = 10, numero; + Stack pila = new Stack(capacidad); + System.out.println("Insertando numeros:"); + for (int i = 0; i < capacidad; i++) { + numero = Math.round(100*(float)Math.random()); + System.out.print(numero+" "); + pila.push(numero); + } + System.out.println("\nOrdenar Pila"); + ordenarPila(pila); + //System.out.println("\nMeter en pila llena"); + //pila.push(122); + //System.out.println("Pila Vacia?"+pila.estaVacia()); + //System.out.println("\nExtrayendo pila"); + for (int i = 0; i < capacidad; i++) { + System.out.print(pila.pop()+" "); + + } + //System.out.println("\nPila Vacia?"+pila.estaVacia()); + //System.out.println("Extaccion pila vacia"); + //pila.pop(); */ + + + } + + public static void ordenarPila(Stack s) { + + if(!s.estaVacia()){ + int temp = s.pop(); + ordenarPila(s); + insertarEnOrden(temp,s); + } + + } + public static void insertarEnOrden(int elem, Stack s) + { + if (s.estaVacia() || elem > s.lastValue()) { + s.push(elem); + } else { + int temp = s.pop(); + insertarEnOrden(elem, s); + s.push(temp); + } + } +} diff --git b/create_table.sql a/create_table.sql new file mode 100644 index 0000000..0f8d033 --- /dev/null +++ a/create_table.sql @@ -0,0 +1,78 @@ +-- primer problema +create table centro_minorista( + id SERIAL primary key, + tipo varchar(100) not null, + direccion varchar(150) +); + +create table evento_transporte( + id SERIAL primary key, + tipo varchar(100) not null, + ruta_delivery varchar(200) not null +); + +create table articulo( + id SERIAL primary key, + peso float not null, + dimensiones varchar(50), + seguro float not null, + fecha_entrega date, + centro_id int REFERENCES centro_minorista(id) +); + +create table paquete_evento( + id SERIAL primary key, + evento_id int REFERENCES evento_transporte(id), + articulo_id int REFERENCES articulo(id) +); + +INSERT INTO centro_minorista( + tipo, direccion) + VALUES ( 'rapido', 'calle 123'); + +INSERT INTO evento_transporte( + tipo, ruta_delivery) + VALUES ( 'rapido', 'a despues b'); + +INSERT INTO articulo( + peso, dimensiones, seguro, fecha_entrega, centro_id) + VALUES ( 100, 'largo ancho', 0, '2020-03-03', 1); + +INSERT INTO paquete_evento( + evento_id, articulo_id) + VALUES (1, 1); + +-- segundo problema + +create table lot( + lot_number SERIAL primary key, + create_date date not null, + cost_of_materials float not null +); + +create table raw_material( + id SERIAL primary key, + tipo varchar(50) not null, + unicost float not null +); + +create table create_from( + id SERIAL primary key, + material_id int REFERENCES raw_material(id), + lot_id int REFERENCES lot(lot_number), + units int not null +); + +create table production_unit( + id SERIAL primary key, + exact_weight float not null, + product_type varchar(50), + product_desc varchar(255), + quality_test boolean not null, + lot_id int REFERENCES lot(lot_number) +); + +insert into create_from(material_id, lot_id, units) values(1, 1, 1000); +insert into lot(create_date,cost_of_materials) values('2020-03-29',500.55); +insert into production_unit(exact_weight, product_type, product_desc, quality_test, lot_id) values(103.43,'remera','lindo',false,1); +insert into raw_material(tipo, unicost) values('tela',100); \ No newline at end of file diff --git b/selectwhere.sql a/selectwhere.sql new file mode 100644 index 0000000..b9cf53f --- /dev/null +++ a/selectwhere.sql @@ -0,0 +1,11 @@ +select * from film; +select f.actor_id, f.film_id, f.last_update from film_actor as f left join actor on f.actor_id=actor.actor_id where actor.first_name='Johnny' ; +select f.actor_id, f.film_id, f.last_update from film_actor as f left join actor on f.actor_id=actor.actor_id where actor.first_name='Johnny' or actor.first_name='Penelope'; +select f.actor_id, f.film_id, f.last_update from film_actor as f left join actor on f.actor_id=actor.actor_id where actor.first_name='Johnny' and actor.first_name='Penelope'; +select * from film_category as fc left join category as cat +on cat.category_id=fc.category_id where cat.name in ('Action','Comedy'); +select * from film where title like 'A%' order by release_year; +select * from film where title like 'B%'; +select * from payment where amount between 0 and 5; +select * from film where title<>'Analyze Hoosiers'; +select * from film right join inventory as inv on inv.film_id=film.film_id right join store as st on st.store_id = inv.store_id; \ No newline at end of file