1. Basado en el siguiente prototipo, realice la codificación necesaria para
calcular la nota final de una materia teniendo en cuenta los siguientes
porcentajes:
35% del promedio de sus los 3 parciales.
35% de la calificación del examen final.
30% de la calificación de un trabajo final.
La materia se aprueba con una nota promedio mínimo de 3, debe
mostrar la nota final y el mensaje de “Aprobó” o “No aprobó” de
acuerdo al resultado.
<HEAD><TITLE>Calcular la nota final de la materia</TITLE>
</HEAD>
<BODY >
<CENTER><H1>Calcular la nota final de la materia</H1></CENTER>
<BR>
<BR>
<FORM NAME="ejercicio1" action="procesar.php" METHOD='post'>
Parcial 1: <INPUT TYPE="text" value="" name="parcial1" SIZE="20">
<BR>
<BR>
Parcial 2: <INPUT TYPE="text" value="" name="parcial2" SIZE="20">
<BR>
<BR>
Parcial 3: <INPUT TYPE="text" value="" name="parcial3" SIZE="20">
<BR>
<BR>
Examen Final: <INPUT TYPE="text" NAME="examenFinal" SIZE="20">
<BR>
<BR>
Trabajo Final: <INPUT TYPE="text" NAME="trabajoFinal" SIZE="20">
<BR>
<BR>
<INPUT TYPE="submit" VALUE="Enviar" style='width:80px; height:30px'>
</BODY>
</HTML>
<CENTER><H1>Calcular la nota final de la materia</H1></CENTER>
<?php
$parcial1=$_POST['parcial1'];
$parcial2=$_POST['parcial2'];
$parcial3=$_POST['parcial3'];
$examenFinal=$_POST['examenFinal'];
$trabajoFinal=$_POST['trabajoFinal'];
$promedioParciales= ($parcial1 + $parcial2 + $parcial3)/3;
echo "La nota del parcial 1 es:".$parcial1."<br>";
echo "La nota del parcial 2 es:".$parcial2."<br>";
echo "La nota del parcial 3 es:".$parcial3."<br>";
echo "La nota del examen final es:".$examenFinal."<br>";
echo "La nota del trabajo final es:".$trabajoFinal."<br>";
$porcentajeParciales= $promedioParciales*0.35;
$porcentajeExamen=$examenFinal*0.35;
$porcentajeTrabajo=$trabajoFinal*0.30;
$notaFinal=$porcentajeParciales+$porcentajeExamen+$porcentajeTrabajo;
echo "La nota final es: ".$notaFinal."<br>";
if($notaFinal<3){
echo "El estudiante no aprobó";
}
else{
echo "El estudiante aprobó";
}
?>
2. Basado en el siguiente prototipo, realice la codificación necesaria para
dar solución al requerimiento presentado:
Una compañía de venta de automóviles paga a su personal de ventas un
salario básico de $450000 mensuales más una comisión de $50000 por
cada automóvil vendido, más el 5% del valor de la venta.
<HEAD><TITLE>Calcular el salario de un vendedor</TITLE>
</HEAD>
<BODY >
<CENTER><H1>Calcular el salario de un vendedor</H1></CENTER>
<BR>
<BR>
<FORM NAME="ejercicio2" action="procesar.php" METHOD='post'>
Nombre del vendedor: <INPUT TYPE="text" value="" name="nombre" SIZE="20">
<BR>
<BR>
Cantidad de automoviles vendidos: <INPUT TYPE="text" value="" name="cantidad" SIZE="20">
<BR>
<BR>
Precio total de automoviles vendidos: <INPUT TYPE="text" value="" name="precioTotal" SIZE="20">
<BR>
<BR>
<INPUT TYPE="submit" VALUE="Enviar" style='width:80px; height:30px'>
</BODY>
</HTML>
<H1>Calcular el salario de un vendedor</H1></CENTER>
<?php
$nombre=$_POST['nombre'];
$cantidad=$_POST['cantidad'];
$precioTotal=$_POST['precioTotal'];
echo "El nombre del vendedor es: ".$nombre."<br>";
echo "La cantidad de automoviles vendidos es: ".$cantidad."<br>";
echo "El precio total de automoviles vendidos es:".$precioTotal."<br>";
$salarioBasico=450000;
$comision=$cantidad*50000;
$porcentajeVenta=$precioTotal*0.05;
$salario=$salarioBasico+$comision+$porcentajeVenta;
echo "El salario del vendedor es: ".$salario."<br>";
?>
3. Basado en el siguiente prototipo, realice la codificación necesaria para
que se calcule y muestre el índice de masa corporal junto con la categoría
en la cual se encuentra el individuo.
El índice de masa corporal (IMC) es una medida de asociación entre el
peso y la talla de un individuo. Ideado por el estadístico belgaL. A. J.
Quetelet, por lo que también se conoce como índice de Quetelet, se
calcula según la expresión matemática: IMC=peso/estatura^2
<HEAD><TITLE>Calcular el indice de masa corporal</TITLE>
</HEAD>
<BODY >
<CENTER><H1>Calcular el indice de masa corporal</H1></CENTER>
<BR>
<BR>
<FORM NAME="ejercicio3" action="procesar.php" METHOD='post'>
Nombre del paciente: <INPUT TYPE="text" value="" name="nombre" SIZE="20">
<BR>
<BR>
Peso en kilogramos: <INPUT TYPE="text" value="" name="peso" SIZE="20">
<BR>
<BR>
Estura en metros: <INPUT TYPE="text" value="" name="estatura" SIZE="20">
<BR>
<BR>
<INPUT TYPE="submit" VALUE="Enviar" style='width:80px; height:30px'>
</BODY>
</HTML>
<CENTER><H1>Calcular el indice de masa corporal</H1></CENTER>
<?php
$nombre=$_POST['nombre'];
$peso=$_POST['peso'];
$estatura=$_POST['estatura'];
echo "El nombre del paciente es: ".$nombre."<br>";
echo "El peso del paciente en kilogramos es: ".$peso."<br>";
echo "La estatura del paciente en metros es:".$estatura."<br>";
$IMC=$peso/($estatura*$estatura);
echo "El indice de masa corporal del paciente es: ".$IMC."<br>";
if($IMC<18.5){
echo "El paciente esta por debajo del peso";
}
else{
if($IMC<24.9){
echo "El paciente esta saludable";
}
else{
if($IMC<29.9){
echo "El paciente esta con sobrepeso";
}
else{
if($IMC<39.9){
echo "El paciente es obeso";
}
else{
echo "El paciente tiene obesidad morbida";
}
}
}
}
?>
4. Realice la codificación necesaria para Obtener la cantidad de dinero que
recibirá el área de Ginecología, Traumatología y Pediatría, para cualquier
monto presupuestal, teniendo en cuenta que el presupuesto anual del
hospital se reparte conforme a la sig. tabla:
Área Porcentaje del presupuesto
Ginecología 40%
Traumatología 30%
Pediatría 30%
<HEAD><TITLE>Calcular la cantidad de dinero para algunas areas de la salud</TITLE>
</HEAD>
<BODY >
<CENTER><H1>Calcular la cantidad de dinero para algunas areas de la salud</H1></CENTER>
<BR>
<BR>
<FORM NAME="ejercicio4" action="procesar.php" METHOD='post'>
Monto presupuestal: <INPUT TYPE="text" value="" name="monto" SIZE="20">
<BR>
<BR>
<INPUT TYPE="submit" VALUE="Enviar" style='width:80px; height:30px'>
</BODY>
</HTML>
<H1>Calcular la cantidad de dinero para algunas areas de la salud</H1></CENTER>
<?php
$monto=$_POST['monto'];
echo "El monto presupuestal es: ".$monto."<br>";
$ginecologia=$monto*0.4;
$traumatologia=$monto*0.3;
$pediatria=$monto*0.3;
echo "La cantidad de dinero para el area de ginecologia es: ".$ginecologia."<br>";
echo "La cantidad de dinero para el area de traumatologia es: ".$traumatologia."<br>";
echo "La cantidad de dinero para el area de pediatria es: ".$pediatria."<br>";
?>
5. Realice la codificación necesaria para imprimir el nombre de un
artículo, la clave, el precio original y su precio con descuento. El descuento
lo hace en base a la clave, si la clave es 1 el descuento es del 10% y si la
clave es 2 el descuento es del 20% (solo existen dos claves).
<HEAD><TITLE>Calcular el descuento de un articulo</TITLE>
</HEAD>
<BODY >
<CENTER><H1>Calcular el descuento de un articulo</H1></CENTER>
<BR>
<BR>
<FORM NAME="ejercicio5" action="procesar.php" METHOD='post'>
Nombre del articulo: <INPUT TYPE="text" value="" name="nombre" SIZE="20">
<BR>
<BR>
Clave para el descuento (1 para 10% y 2 para 20%): <INPUT TYPE="text" value="" name="clave" SIZE="20">
<BR>
<BR>
Precio original del descuento: <INPUT TYPE="text" value="" name="precio" SIZE="20">
<BR>
<BR>
<INPUT TYPE="submit" VALUE="Enviar" style='width:80px; height:30px'>
</BODY>
</HTML>
<CENTER><H1>Calcular el descuento de un articulo</H1></CENTER>
<?php
$nombre=$_POST['nombre'];
$clave=$_POST['clave'];
$precio=$_POST['precio'];
echo "El nombre del articulo es: ".$nombre."<br>";
echo "La clave de descuento es: ".$clave."<br>";
echo "El precio original del articulo es: ".$precio."<br>";
if($clave==1){
$total=$precio-($precio*0.1);
echo "El precio con descuento es: ".$total."<br>";
}
else{
if($clave==2){
$total=$precio-($precio*0.2);
echo "El precio con descuento es: ".$total."<br>";
}
else{
echo "Esa clave no existe";
}
}
?>
martes, 15 de diciembre de 2015
Programación orientada a objetos en JAVA
1. Cree y compile la siguiente clase:
Cita
-int numero -int tipo -double tarifa -double valorFinal
+Cita(int numero, int tipo, double tarifa) + int getNumero() +String getTipo() +double getTarifa() +double calcularValorFinal()
Notas: • El método getTipo() debe retornar un String que puede ser “especialista” o “general”, será general si la cita es tipo 1, 2 o 3 y será especialista si el tipo de cita es 4 o 5. • El valor final de la cita depende de la tarifa y el tipo de cita, las citas de tipo “especialista” tienen un incremento del 50% sobre la tarifa y las citas de tipo “general” tiene un descuento del 50% sobre la tarifa. Cree la clase Principal.java donde solicite al usuario los datos para crear una cita (objeto de la clase Cita) y a continuación presente los siguientes mensajes: El número de la cita es: XXXXXX Esta cita es de tipo: XXXXXXXX Su tarifa normal es: XXXXXXXX Pero por ser de tipo XXXXXXXX queda con un valor final de XXXXXXXX
package EjerciciosJava;
public class Cita {
int numero;
int tipo;
double tarifa;
double valorFinal=0;
public Cita(int numero, int tipo, double tarifa)
{
this.numero=numero;
this.tipo=tipo;
this.tarifa=tarifa;
}
public int getNumero()
{
return numero;
}
public String getTipo()
{
if(tipo<=3)
return "General";
else
return "Especialista";
}
public double getTarifa()
{
return tarifa;
}
public double calcularValorFinal()
{
double percent=tarifa*0.5;
if(tipo<=3){
valorFinal=tarifa-percent;
}
else{
valorFinal=tarifa+percent;
}
return valorFinal;
}
}
Cita
-int numero -int tipo -double tarifa -double valorFinal
+Cita(int numero, int tipo, double tarifa) + int getNumero() +String getTipo() +double getTarifa() +double calcularValorFinal()
Notas: • El método getTipo() debe retornar un String que puede ser “especialista” o “general”, será general si la cita es tipo 1, 2 o 3 y será especialista si el tipo de cita es 4 o 5. • El valor final de la cita depende de la tarifa y el tipo de cita, las citas de tipo “especialista” tienen un incremento del 50% sobre la tarifa y las citas de tipo “general” tiene un descuento del 50% sobre la tarifa. Cree la clase Principal.java donde solicite al usuario los datos para crear una cita (objeto de la clase Cita) y a continuación presente los siguientes mensajes: El número de la cita es: XXXXXX Esta cita es de tipo: XXXXXXXX Su tarifa normal es: XXXXXXXX Pero por ser de tipo XXXXXXXX queda con un valor final de XXXXXXXX
package EjerciciosJava;
public class Cita {
int numero;
int tipo;
double tarifa;
double valorFinal=0;
public Cita(int numero, int tipo, double tarifa)
{
this.numero=numero;
this.tipo=tipo;
this.tarifa=tarifa;
}
public int getNumero()
{
return numero;
}
public String getTipo()
{
if(tipo<=3)
return "General";
else
return "Especialista";
}
public double getTarifa()
{
return tarifa;
}
public double calcularValorFinal()
{
double percent=tarifa*0.5;
if(tipo<=3){
valorFinal=tarifa-percent;
}
else{
valorFinal=tarifa+percent;
}
return valorFinal;
}
}
package EjerciciosJava;
import javax.swing.JOptionPane;
public class Principal1 {
public static void main(String[] args) {
int numero =Integer.parseInt(JOptionPane.showInputDialog(null,"Introduzca el numero de la cita"));
int tipo = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduzca el tipo de cita (Para general: 1, 2 y 3 y para especialista: 4 y 5)"));
double tarifa = Double.parseDouble(JOptionPane.showInputDialog(null, "Introduzca la tarifa"));
Cita cita= new Cita(numero,tipo,tarifa);
System.out.println("El numero de la cita es: "+cita.getNumero());
System.out.println("El tipo de cita es: "+ cita.getTipo());
System.out.println("Su tarifa normal es: "+ cita.getTarifa());
System.out.println("Pero por ser de tipo " + cita.getTipo() + " queda con un valor final de: " + cita.calcularValorFinal());
}
}
2. Cree y compile la siguiente clase:
Bus
-String placa
-int capacidadPasajeros
-double precioPasaje
-int pasajerosActuales
- int totalPasajeros
+Bus (String placa, int capacidad, double pasaje)
+String getPlaca()
+int getCapacidad()
+double getPrecioPasaje()
+int getPasajerosTotales()
+int getPasajerosActuales()
+void subirPasajeros(int pasajeros)
+void bajarPasajeros(int pasajeros)
+double getDineroAcumulado()
Notas:
• getPlaca: Obtiene la placa del bus
• getCapacidad: Obtiene la capacidad de pasajeros del bus
• getPrecioPasaje: Obtiene el valor del pasaje
• getPasajerosActuales: Obtiene el número de pasajeros que se
encuentra en el bus
• getPasajerosTotales: Obtiene el número de pasajeros que se han
subido al bus
• subirPasajeros: sube una cantidad de pasajeros al bus, teniendo en
cuenta que no sobrepase la capacidad del bus.
• bajarPasajeros: baja una cantidad de pasajeros del bus, teniendo en
cuenta que no baje más pasajeros de los que realmente existen en el bus.
• getDineroAcumulado: Obtiene todo el dinero que ha acumulado el bus
teniendo en cuenta todos los pasajeros que se han subido y el valor del
pasaje.
Cree y compile la clase Principal.java donde instancie un objeto de la clase
Bus y pruebe cada uno de sus métodos.
package EjerciciosJava;
import javax.swing.JOptionPane;
public class Bus {
String placa;
int capacidadPasajeros;
double precioPasaje;
int pasajerosActuales;
int totalPasajeros;
double dineroAcumulado;
public int pasajeroSsubidos;
int pasajeros1;
int totalAcumulado;
public Bus (String placa, int capacidad, double pasaje, int actuales){
this.placa=placa;
this.capacidadPasajeros=capacidad;
this.precioPasaje=pasaje;
this.pasajerosActuales=actuales;
}
public String getPlaca(){
return placa;
}
public int getCapacidad(){
return capacidadPasajeros;
}
public double getPrecioPasaje(){
return precioPasaje;
}
public int getPasajerosTotales(){
return totalPasajeros;
}
public int getPasajerosActuales(){
return pasajerosActuales;
}
public void subirPasajeros(int pasajeros){
if (pasajeros > capacidadPasajeros) {
JOptionPane.showMessageDialog(null, " No se pueden subir " + pasajeros + ", porque es SOBRECUPO ");
}
else {
if ((pasajerosActuales + pasajeros) > capacidadPasajeros) {
JOptionPane.showMessageDialog(null, " No se pueden subir " + pasajeros + ", porque es SOBRECUPO ");
}else{
totalPasajeros=pasajeros;
pasajerosActuales=pasajerosActuales+pasajeros;
totalAcumulado = pasajerosActuales + pasajeros;
}
}
}
public void getDineroAcumulado(){
dineroAcumulado=(pasajerosActuales*precioPasaje);
}
public double totalDineroAcumulado(){
return dineroAcumulado;
}
public void bajarPasajeros(int pasajeros1){
if (pasajeros1>pasajerosActuales) {
JOptionPane.showMessageDialog(null, "La cantidad de pasajeros que desea bajar es mayor al numero de pasajeros que actualmente hay en el bus!!!");
}
else{
pasajerosActuales=pasajerosActuales-pasajeros1;
}
}
}
package EjerciciosJava;
import javax.swing.JOptionPane;
public class Principal2 {
public static void main(String[] args) {
String placa=JOptionPane.showInputDialog("Digite placa del bus");
int capacidad=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese capacidad del bus"));
int actuales = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese numero de pasajeros que estan en el bus "));
double pasaje = Double.parseDouble(JOptionPane.showInputDialog(null,"Valor pasaje"));
if (actuales>capacidad) {
System.out.println("Error!!! El numero actual de pasajeros sobrepasa la capacidad del bus");
}else{
Bus bus = new Bus(placa,capacidad,pasaje,actuales);
int pasajeros=Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese cantidad de pasajeros a subir al bus!"));
bus.subirPasajeros(pasajeros);
JOptionPane.showMessageDialog(null,"El numero de pasajeros actuales es: "+bus.getPasajerosActuales());
JOptionPane.showMessageDialog(null,"El bus tiene una capacidad de: "+bus.getCapacidad());
JOptionPane.showMessageDialog(null,"La placa del bus es: "+bus.getPlaca());
bus.getDineroAcumulado();
JOptionPane.showMessageDialog(null,"El numero de pasajeros que se han subido es: "+bus.getPasajerosTotales());
int pasajeros1= Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese numero de pasajeros que va a bajar del bus"));
bus.bajarPasajeros(pasajeros1);
JOptionPane.showMessageDialog(null,"El dinero acumulado es: $" + bus.totalDineroAcumulado());
}
}
}
3. Cree y compile la siguiente clase:
Cuenta
- String numero
- String tipo
- double saldoActual
- double saldoMinimo
+ Cuenta(int numero, String tipo, double valorInicial)
+ void consignar (double monto)
+ void retirar (double monto)
+ double getSaldo()
+ double getSaldoMinimo()
+ double getCapacidadCredito()
Notas:
• Las cuentas solo pueden ser de tipo “ahorro” o “crédito”
• El saldo mínimo de una cuenta es el 10% del valor inicial con que se
crea la cuenta.
• Consignar (double monto): incrementa el dinero de la cuenta con base
en el monto de dinero que se desea consignar.
• Retirar (double monto): retira el monto dado de la cuenta siempre y
cuando la cuenta no quede con un saldo inferior al saldo mínimo, si
esto ocurre, solo se retirará el dinero autorizado.
• getSaldo(): obtiene el saldo actual de la cuenta.
• getSaldoMinimo(): obtiene el saldo mínimo de la cuenta.
• getCapacidadCredito(): Para cuentas de ahorro, la capacidad de
crédito es igual a la diferencia entre al saldo actual y el saldo mínimo y
para cuentas de crédito, la capacidad de crédito es 3 veces el saldo actual.
Cree y compile la clase Principal.java y en ella cree un objeto de la clase
Cuenta y pruebe cada uno de sus métodos.
package EjerciciosJava;
import javax.swing.JOptionPane;
public class Cuenta {
/* ---------------------------/
/ Atributos de la clase cuenta/
/----------------------------*/
int numero;
String tipo;
double valorInicial;
double saldoActual;
double saldoMinimo;
double capacidad;
double autorizado;
double capacidadCredito;
/* ---------------------------/
/ Metodos de la clase Cuenta /
/----------------------------*/
// Metodo Constructor
Cuenta(int numero,String tipo,double valorInicial){
this.numero=numero;
this.tipo=tipo;
this.saldoActual=valorInicial;
this.valorInicial=valorInicial;
}
/* -----------------------------------/
/ Método para consignar en la cuenta /
/------------------------------------*/
public void consignar (double monto){
saldoActual=saldoActual+monto;
}
/* -----------------------------------/
/ Método para saber saldo mÃÂnimo /
/------------------------------------*/
double getSaldoMinimo(){
saldoMinimo=valorInicial*0.1;
return saldoMinimo;
}
/* -----------------------------------/
/ Método para retirar dinero de la cuenta /
/------------------------------------*/
public void retirar (double monto1){
saldoActual=saldoActual-monto1;
if (saldoActual<saldoMinimo) {
saldoActual=saldoActual+monto1;
autorizado=saldoActual-saldoMinimo;
JOptionPane.showMessageDialog(null, "No puede retirar ésta cantidad de dinero porque su saldo actual serÃÂa inferior a su saldo mÃÂnimo\n"
+ ", por lo tanto solo puede retirar: " + autorizado);
saldoActual=saldoActual-autorizado;
}
}
/* ----------------------------------/
/ Método para consultar saldo /
/-----------------------------------*/
double getSaldo(){
return saldoActual;
}
/* -------------------------------------------/
/ Método para conocer la capacidad de crédito/
/-------------------------------------------*/
double getCapacidadCredito(){
if ("ahorro".equals(tipo)) {
capacidadCredito=saldoActual-saldoMinimo;
}
if ("credito".equals(tipo)) {
capacidadCredito=saldoActual*3;
}
return capacidadCredito;
}
}
package EjerciciosJava;
import javax.swing.JOptionPane;
public class Principal3 {
public static void main(String[] args) {
/* --------------------------/
/ Captura de datos inicales /
/---------------------------*/
int numero=Integer.parseInt(JOptionPane.showInputDialog("Digite el numero de la cuenta"));
String tipo=JOptionPane.showInputDialog("Digite el tipo de cuenta, ahorro o credito");
double valorInicial=Double.parseDouble(JOptionPane.showInputDialog("Digite el valor que va a consignar inicialmente"));
/* --------------------------/
/ Creando el objeto Cuenta /
/---------------------------*/
Cuenta cuenta=new Cuenta(numero,tipo,valorInicial);
double monto=Double.parseDouble(JOptionPane.showInputDialog("Digite la cantidad de dinero a consignar"));
cuenta.consignar(monto);
cuenta.getSaldoMinimo();
double monto1=Double.parseDouble(JOptionPane.showInputDialog("Digite la cantidad de dinero a retirar"));
cuenta.retirar(monto1);
JOptionPane.showMessageDialog(null,"Su saldo Actual es: " + cuenta.getSaldo());
JOptionPane.showMessageDialog(null,"El saldo minimo de su cuenta es: " + cuenta.getSaldoMinimo());
JOptionPane.showMessageDialog(null,"Su capacidad de Credito es: " + cuenta.getCapacidadCredito());
}
}
4. A partir del siguiente diseño, cree las clases correspondientes y su respectivo código para generar los listados que se solicitan a continuación:
Banco
-String nombre -Cliente clientes[ ] -int numeroDeClientes
+ Banco(String nom) + String obtNombre() + void cambiarNombre(String nombre) + void adCliente(Cliente clie) + int obtNumClientes( ) + Cliente obtCliente(int posicion) + Cliente [ ] obtClientes( )
Cliente {abstract}
-String nombre
+ Cliente (String nombre) + String obtNombre( ) + abstract String obtIdentificacion( )
Empresa
-String nit -String representante
+Empresa(String nit,String nom,String r) + String obtIdentificacion( ) + String obtRepresentante( ) + String cambiarRepres(String repres)
Persona
-String cedula -int edad
+ Persona(String ced,String nom,int ed) + String obtIdentificacion( ) + String obtEdad( ) + void cumplirAños( )
package Ejercicios;
import javax.swing.JOptionPane;
class Banco{
String nombre;
Cliente clientes[];
int numeroDeClientes;
public Banco(String nomb){
this.nombre=nomb;
}
public String obtnombre(){
return nombre;
}
public void cambiarNombre(String nombre){
}
public void adCliente(Cliente clie){
}
public int obtNumClientes(){
return numeroDeClientes;
}
Cliente obtCliente(int posicion){
return null;
}
Cliente[] obtClientes(){
return null;
}
}
package Ejercicios;
abstract class Cliente{
protected String nombre;
public Cliente(String nom)
{
this.nombre=nom;
}
public String obtNombre() {
return nombre;
}
abstract String obtIdentificacion();
abstract String obtRepresentante();
abstract int obtEdad();
}
package Ejercicios;
class Empresa extends Cliente{
String nit;
String representante;
public Empresa(String n, String nom, String r){
super(nom);
this.nit=n;
this.representante=r;
}
public String obtIdentificacion(){
return nit;
}
public String obtRepresentante(){
return representante;
}
public String cambiarRepres(String repres){
return null;
}
public int obtEdad(){
return 1000;
}
}
4. A partir del siguiente diseño, cree las clases correspondientes y su respectivo código para generar los listados que se solicitan a continuación:
Banco
-String nombre -Cliente clientes[ ] -int numeroDeClientes
+ Banco(String nom) + String obtNombre() + void cambiarNombre(String nombre) + void adCliente(Cliente clie) + int obtNumClientes( ) + Cliente obtCliente(int posicion) + Cliente [ ] obtClientes( )
Cliente {abstract}
-String nombre
+ Cliente (String nombre) + String obtNombre( ) + abstract String obtIdentificacion( )
Empresa
-String nit -String representante
+Empresa(String nit,String nom,String r) + String obtIdentificacion( ) + String obtRepresentante( ) + String cambiarRepres(String repres)
Persona
-String cedula -int edad
+ Persona(String ced,String nom,int ed) + String obtIdentificacion( ) + String obtEdad( ) + void cumplirAños( )
package Ejercicios;
import javax.swing.JOptionPane;
class Banco{
String nombre;
Cliente clientes[];
int numeroDeClientes;
public Banco(String nomb){
this.nombre=nomb;
}
public String obtnombre(){
return nombre;
}
public void cambiarNombre(String nombre){
}
public void adCliente(Cliente clie){
}
public int obtNumClientes(){
return numeroDeClientes;
}
Cliente obtCliente(int posicion){
return null;
}
Cliente[] obtClientes(){
return null;
}
}
package Ejercicios;
abstract class Cliente{
protected String nombre;
public Cliente(String nom)
{
this.nombre=nom;
}
public String obtNombre() {
return nombre;
}
abstract String obtIdentificacion();
abstract String obtRepresentante();
abstract int obtEdad();
}
package Ejercicios;
class Empresa extends Cliente{
String nit;
String representante;
public Empresa(String n, String nom, String r){
super(nom);
this.nit=n;
this.representante=r;
}
public String obtIdentificacion(){
return nit;
}
public String obtRepresentante(){
return representante;
}
public String cambiarRepres(String repres){
return null;
}
public int obtEdad(){
return 1000;
}
}
package Ejercicios;
public class Persona extends Cliente{
String cedula;
int edad;
public Persona(String ced, String nom, int ed){
super(nom);
this.cedula=ced;
this.edad=ed;
}
public String obtIdentificacion(){
return cedula;
}
public int obtEdad(){
return edad;
}
public void cumpliranos(){
}
public String obtRepresentante(){
return null;
}
}
package Ejercicios;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Principal4 {
private static Cliente per;
public static void main(String args[]) {
List<Cliente> lista = new ArrayList<>();
int numeroDeClientes = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el numero de clientes"));
for (int i = 1; i <= numeroDeClientes; i++) {
int tipoCliente = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese el tipo de cliente: 1 para Empresa o 2 para Persona"));
String nom = JOptionPane.showInputDialog(null, "Ingrese el nombre del cliente");
if (tipoCliente == 1) {
String nit = JOptionPane.showInputDialog(null, "Ingrese el nit de la empresa");
String r = JOptionPane.showInputDialog(null, "Ingrese el representante");
Empresa emp = new Empresa(nit, nom, r);
emp.obtIdentificacion();
//Esta linea no se con que fin es
//emp.obtRepresentante();
//ESTA LINEA ES LA QUE UD BORRO, AQUI ES DONDE SE ASIGNA EL OBJETO AL ARRAY LIST
lista.add(emp);
} else {
String ced = JOptionPane.showInputDialog(null, "Ingrese la cedula de la persona");
int ed = Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese la edad de la persona"));
Persona per = new Persona(ced, nom, ed);
//AQUI ES DONDE SE ASIGNA EL OBJETO AL ARRAY LIST
lista.add(per);
}
}
System.out.println("Todos los nombres que tiene el banco son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
System.out.println(lista.get(cuenta).nombre);
}
System.out.println("Todos los nombres y cedulas de las personas clientes del banco son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
System.out.println("La cedula del cliente es "+lista.get(cuenta).obtIdentificacion());
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
}
}
System.out.println("Todos los nombres y representantes de cada empresa son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Empresa){
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
System.out.println("El nombre del representante es "+lista.get(cuenta).obtRepresentante());
}
}
System.out.println("Los nombres de los clientes menores de edad son: ");
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()<18){
System.out.println("El nombre del cliente es "+lista.get(cuenta).obtNombre());
}
}
}
int menor=1000;
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()>1){
if (lista.get(cuenta).obtEdad()<menor){
menor=lista.get(cuenta).obtEdad();
}
}
}
}
System.out.println("La edad del cliente mas joven es "+menor );
int mayor=0;
for(int cuenta = 0; cuenta < lista.size(); cuenta++){
if (lista.get(cuenta) instanceof Persona){
if (lista.get(cuenta).obtEdad()>18){
if (lista.get(cuenta).obtEdad()>mayor){
mayor=lista.get(cuenta).obtEdad();
}
}
}
}
System.out.println("La edad del cliente mas viejo es "+mayor);
}
}
Elementos del lenguaje de programación y estructuras de datos en JAVA
1. En una competencia participan N atletas de los cuales es importante
conocer su nombre, nacionalidad y su tiempo. Desarrolle una aplicación
que presente el siguiente menú:
Competencia
1. Registrar Atleta
2. Datos del campeón.
3. Atletas por país
4. Tiempo promedio de todos los atletas
5. Salir
Registrar Atleta: Debe solicitar el nombre, la nacionalidad y el tiempo del atleta Datos Campeón: Muestra el nombre, la nacionalidad y el tiempo del atleta cuyo tiempo es el menor de todos. Atletas por país: Solicita el nombre del país y muestra los nombres de todos los atletas de ese país. Tiempo promedio de todos los atletas: Muestra el tiempo promedio de los atletas registrados. Características de la aplicación: La aplicación debe desarrollarse de manera orientada a objetos, incluyendo las clases Atleta, Competencia y Principal. Debe emplear arreglos para su solución.
import javax.swing.JOptionPane;
public class Ejercicio1 {
public static void main(String[] args) {
//Declaracion de variables
String nombre[];
String nacionalidad[];
double tiempo[];
int totalAtletas;
double may=0;
String nombremin = null;
String nacionalidadmin = null;
String nacionalidadpais;
String nombreatletapais;
double sumTiempo=0;
double tiempoPromedio;
//Menu
JOptionPane.showMessageDialog(null, " Competencia \n" +
"1. Registrar Atleta \n" + "2. Datos del campeon \n" + "3. Atletas por pais \n" +
"4. Tiempo promedio de todos los atletas \n" + "5. Salir");
totalAtletas=Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese la cantidad de Atletas "));
nombre=new String[totalAtletas];
nacionalidad=new String[totalAtletas];
tiempo=new double[totalAtletas];
//Registrar atletas
JOptionPane.showMessageDialog(null, "1. Registrar Atleta");
for(int i=0; i<totalAtletas; i++){
nombre[i]=JOptionPane.showInputDialog(null, "Ingrese el nombre del Atleta: ");
nacionalidad[i]=JOptionPane.showInputDialog(null, "Ingrese la nacionalidad del Atleta: ");
tiempo[i]=Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese el tiempo en minutos del Atleta: "));
sumTiempo=sumTiempo+tiempo[i];
}
//Datos campeon
JOptionPane.showMessageDialog(null, "2. Datos del campeon");
for (int i=0; i<totalAtletas; i++){
if (tiempo[i]>may){
may=tiempo[i];
nombremin=nombre[i];
nacionalidadmin=nacionalidad[i];
}
}
JOptionPane.showMessageDialog(null, "El nombre del atleta campeon es " + nombremin + " de nacionalidad "
+ nacionalidadmin + " cuyo tiempo fue " + may);
//Atletas por pais
JOptionPane.showMessageDialog(null, "3. Atletas por pais");
nacionalidadpais=JOptionPane.showInputDialog(null, "Ingrese la nacionalidad para mostrar los atletas de ese pais: ");
for (int i=0; i<totalAtletas; i++){
if (nacionalidadpais == null ? nacionalidad[i] == null : nacionalidadpais.equals(nacionalidad[i])){
nombreatletapais=nombre[i];
JOptionPane.showMessageDialog(null, "El nombre de un atleta de nacionalidad " + nacionalidadpais + " es "
+ nombreatletapais);
}
}
//Promedio del tiempo de los atletas
JOptionPane.showMessageDialog(null, "4. Tiempo promedio de todos los atletas");
tiempoPromedio=sumTiempo/totalAtletas;
JOptionPane.showMessageDialog(null, "El tiempo promedio de los atletas fue " + tiempoPromedio);
JOptionPane.showMessageDialog(null, "5. Salir");
}
}
2. Desarrolle una aplicación utilizando colecciones, la cual permita tener las siguientes funcionalidades:
• Insertar elementos (al inicio, al final). • Eliminar elementos. • Obtener el valor de una posición determinada. • Asignar valor a una posición determinada. • Calcular la sumatoria de los valores de todos los elementos. • Calcular el promedio de los valores de todos los elementos. • Obtener el número de elementos. • Contar el número de valores igual a cero (0). • Calcular la suma de los pares. • Contar el número de repeticiones dado un número. • Modificar el valor de una posición por otro valor suministrado. • Cambiar todo el contenido. • Invertir el arreglo. • Obtener el mayor valor. • Obtener el menor valor. • Obtener los primeros n elementos del arreglo. • Obtener los últimos n elementos del arreglo. • Indicar si es palíndromo. • Indicar si un número se encuentra dentro del arreglo. • Mostrar el contenido del arreglo. Para conseguir el objetivo, se le suministra la clase principal y la clase de prueba, tenga en cuenta los nombres de los métodos, argumentos y tipos de datos para la codificación.
import java.util.*; // Importando Java util
public class MiColeccion { // Clase MiColeccion
ArrayList numeros = new ArrayList(); // Declaracion ArrayList numeros
public void insertarAlFinal(int valor) { // Metodo para insertar valores en numeros
numeros.add(valor);
}
public void insertarAlPrincipio(int valor) { // Metodo insertar al principio del ArrayList
numeros.add(0, valor);
}
public void mostrarContenido() { // metodo para mostrar el contenido de numeros
System.out.println(numeros);
}
public void agregarAlFinal(Object valor) {
numeros.add(valor);
}
public void eliminar(int valor) { // Metodo para eliminar elementos de numeros
numeros.remove(valor);
}
public void setValor(int posicion, int valor) { // Metodo para reemplazar valores en numeros
numeros.add(posicion, valor);
}
int getValor(int valor) {
return (int) (numeros.get(valor)); // metodo para mostrar los elementos que contiene numeros
}
int cuentaElementos() { // metodo para saber el tamaña del ArrayList
int valor = numeros.size();
return valor;
}
int getSumatoria() { // metodo para sumar los elementos del ArrayList
int suma = 0;
for (Object numero : numeros) {
suma = suma + (int) numero;
}
return suma;
}
double getPromedio() { // Metodo para conocer el promedio de los elementos del ArrayList
int suma = 0;
double promedio = 0;
for (Object numero : numeros) {
suma = suma + (int) numero;
promedio = suma / numeros.size();
}
return promedio;
}
int cuentaCeros() { // metodo para contar los ceros dentro del ArrayList
int cantidad = 0;
for (Object numero : numeros) {
if ((int) numero == 0) {
cantidad = cantidad + 1;
}
}
return cantidad;
}
int sumaPares() { // Metodo para sumar los numeros pares dentro del ArrayList
int par = 0;
for (Object numero : numeros) {
if (((int) numero % 2) == 0) {
par = par + (int) numero;
}
}
return par;
}
int cuentaRepeticiones(int num) { // Metodo que cuenta el numero de veces que se repite el numero 2 en el Array
int cuenta = 0;
for (Object numero : numeros) {
if ((int) numero == 2) {
cuenta = cuenta + 1;
}
}
return cuenta;
}
public void reemplazarValor(int antiguoValor, int nuevoValor) { // Metodo para reemplazar un valor dentro del Array
numeros.set(antiguoValor, nuevoValor);
}
public void reemplazarTodo() { // Metodo para reemplazar todo el Array
numeros.clear();
numeros.add(9);
numeros.add(10);
numeros.add(11);
}
int getMayor ( ){ // Metodo para obtener el mayor numero dentro del Array
int mayor=0;
for (Object numero : numeros) {
if ((int)numero >= mayor) {
mayor=(int) numero;
}
}
return mayor;
}
int getMenor ( ){ // Metodo para obtener el menor numero dentro del Array
int menor=11;
for (Object numero : numeros) {
if ((int)numero <= menor) {
menor=(int) numero;
}
}
return menor;
}
boolean buscar (int numero){ // Metodo para buscar un numero dentro del Array.
return numeros.contains(numero);
}
}
Competencia
1. Registrar Atleta
2. Datos del campeón.
3. Atletas por país
4. Tiempo promedio de todos los atletas
5. Salir
Registrar Atleta: Debe solicitar el nombre, la nacionalidad y el tiempo del atleta Datos Campeón: Muestra el nombre, la nacionalidad y el tiempo del atleta cuyo tiempo es el menor de todos. Atletas por país: Solicita el nombre del país y muestra los nombres de todos los atletas de ese país. Tiempo promedio de todos los atletas: Muestra el tiempo promedio de los atletas registrados. Características de la aplicación: La aplicación debe desarrollarse de manera orientada a objetos, incluyendo las clases Atleta, Competencia y Principal. Debe emplear arreglos para su solución.
import javax.swing.JOptionPane;
public class Ejercicio1 {
public static void main(String[] args) {
//Declaracion de variables
String nombre[];
String nacionalidad[];
double tiempo[];
int totalAtletas;
double may=0;
String nombremin = null;
String nacionalidadmin = null;
String nacionalidadpais;
String nombreatletapais;
double sumTiempo=0;
double tiempoPromedio;
//Menu
JOptionPane.showMessageDialog(null, " Competencia \n" +
"1. Registrar Atleta \n" + "2. Datos del campeon \n" + "3. Atletas por pais \n" +
"4. Tiempo promedio de todos los atletas \n" + "5. Salir");
totalAtletas=Integer.parseInt(JOptionPane.showInputDialog(null, "Ingrese la cantidad de Atletas "));
nombre=new String[totalAtletas];
nacionalidad=new String[totalAtletas];
tiempo=new double[totalAtletas];
//Registrar atletas
JOptionPane.showMessageDialog(null, "1. Registrar Atleta");
for(int i=0; i<totalAtletas; i++){
nombre[i]=JOptionPane.showInputDialog(null, "Ingrese el nombre del Atleta: ");
nacionalidad[i]=JOptionPane.showInputDialog(null, "Ingrese la nacionalidad del Atleta: ");
tiempo[i]=Double.parseDouble(JOptionPane.showInputDialog(null, "Ingrese el tiempo en minutos del Atleta: "));
sumTiempo=sumTiempo+tiempo[i];
}
//Datos campeon
JOptionPane.showMessageDialog(null, "2. Datos del campeon");
for (int i=0; i<totalAtletas; i++){
if (tiempo[i]>may){
may=tiempo[i];
nombremin=nombre[i];
nacionalidadmin=nacionalidad[i];
}
}
JOptionPane.showMessageDialog(null, "El nombre del atleta campeon es " + nombremin + " de nacionalidad "
+ nacionalidadmin + " cuyo tiempo fue " + may);
//Atletas por pais
JOptionPane.showMessageDialog(null, "3. Atletas por pais");
nacionalidadpais=JOptionPane.showInputDialog(null, "Ingrese la nacionalidad para mostrar los atletas de ese pais: ");
for (int i=0; i<totalAtletas; i++){
if (nacionalidadpais == null ? nacionalidad[i] == null : nacionalidadpais.equals(nacionalidad[i])){
nombreatletapais=nombre[i];
JOptionPane.showMessageDialog(null, "El nombre de un atleta de nacionalidad " + nacionalidadpais + " es "
+ nombreatletapais);
}
}
//Promedio del tiempo de los atletas
JOptionPane.showMessageDialog(null, "4. Tiempo promedio de todos los atletas");
tiempoPromedio=sumTiempo/totalAtletas;
JOptionPane.showMessageDialog(null, "El tiempo promedio de los atletas fue " + tiempoPromedio);
JOptionPane.showMessageDialog(null, "5. Salir");
}
}
2. Desarrolle una aplicación utilizando colecciones, la cual permita tener las siguientes funcionalidades:
• Insertar elementos (al inicio, al final). • Eliminar elementos. • Obtener el valor de una posición determinada. • Asignar valor a una posición determinada. • Calcular la sumatoria de los valores de todos los elementos. • Calcular el promedio de los valores de todos los elementos. • Obtener el número de elementos. • Contar el número de valores igual a cero (0). • Calcular la suma de los pares. • Contar el número de repeticiones dado un número. • Modificar el valor de una posición por otro valor suministrado. • Cambiar todo el contenido. • Invertir el arreglo. • Obtener el mayor valor. • Obtener el menor valor. • Obtener los primeros n elementos del arreglo. • Obtener los últimos n elementos del arreglo. • Indicar si es palíndromo. • Indicar si un número se encuentra dentro del arreglo. • Mostrar el contenido del arreglo. Para conseguir el objetivo, se le suministra la clase principal y la clase de prueba, tenga en cuenta los nombres de los métodos, argumentos y tipos de datos para la codificación.
import java.util.*; // Importando Java util
public class MiColeccion { // Clase MiColeccion
ArrayList numeros = new ArrayList(); // Declaracion ArrayList numeros
public void insertarAlFinal(int valor) { // Metodo para insertar valores en numeros
numeros.add(valor);
}
public void insertarAlPrincipio(int valor) { // Metodo insertar al principio del ArrayList
numeros.add(0, valor);
}
public void mostrarContenido() { // metodo para mostrar el contenido de numeros
System.out.println(numeros);
}
public void agregarAlFinal(Object valor) {
numeros.add(valor);
}
public void eliminar(int valor) { // Metodo para eliminar elementos de numeros
numeros.remove(valor);
}
public void setValor(int posicion, int valor) { // Metodo para reemplazar valores en numeros
numeros.add(posicion, valor);
}
int getValor(int valor) {
return (int) (numeros.get(valor)); // metodo para mostrar los elementos que contiene numeros
}
int cuentaElementos() { // metodo para saber el tamaña del ArrayList
int valor = numeros.size();
return valor;
}
int getSumatoria() { // metodo para sumar los elementos del ArrayList
int suma = 0;
for (Object numero : numeros) {
suma = suma + (int) numero;
}
return suma;
}
double getPromedio() { // Metodo para conocer el promedio de los elementos del ArrayList
int suma = 0;
double promedio = 0;
for (Object numero : numeros) {
suma = suma + (int) numero;
promedio = suma / numeros.size();
}
return promedio;
}
int cuentaCeros() { // metodo para contar los ceros dentro del ArrayList
int cantidad = 0;
for (Object numero : numeros) {
if ((int) numero == 0) {
cantidad = cantidad + 1;
}
}
return cantidad;
}
int sumaPares() { // Metodo para sumar los numeros pares dentro del ArrayList
int par = 0;
for (Object numero : numeros) {
if (((int) numero % 2) == 0) {
par = par + (int) numero;
}
}
return par;
}
int cuentaRepeticiones(int num) { // Metodo que cuenta el numero de veces que se repite el numero 2 en el Array
int cuenta = 0;
for (Object numero : numeros) {
if ((int) numero == 2) {
cuenta = cuenta + 1;
}
}
return cuenta;
}
public void reemplazarValor(int antiguoValor, int nuevoValor) { // Metodo para reemplazar un valor dentro del Array
numeros.set(antiguoValor, nuevoValor);
}
public void reemplazarTodo() { // Metodo para reemplazar todo el Array
numeros.clear();
numeros.add(9);
numeros.add(10);
numeros.add(11);
}
int getMayor ( ){ // Metodo para obtener el mayor numero dentro del Array
int mayor=0;
for (Object numero : numeros) {
if ((int)numero >= mayor) {
mayor=(int) numero;
}
}
return mayor;
}
int getMenor ( ){ // Metodo para obtener el menor numero dentro del Array
int menor=11;
for (Object numero : numeros) {
if ((int)numero <= menor) {
menor=(int) numero;
}
}
return menor;
}
boolean buscar (int numero){ // Metodo para buscar un numero dentro del Array.
return numeros.contains(numero);
}
}
public class TestMiColeccion {
public static void main(String[] args) {
System.out.println("Mi Coleccion 1");
MiColeccion mc1 = new MiColeccion();
mc1.insertarAlFinal(1);
mc1.insertarAlFinal(2);
mc1.insertarAlFinal(3);
mc1.insertarAlPrincipio(4);
mc1.mostrarContenido();
//ArrayList al=new ArrayList();
mc1.agregarAlFinal(9);
mc1.agregarAlFinal(10);
mc1.agregarAlFinal(11);
//mc1.agregarAlFinal(al);
mc1.mostrarContenido();
mc1.eliminar(0);
mc1.eliminar(5);
mc1.mostrarContenido();
mc1.setValor(0, 0);
mc1.setValor(6, 0);
mc1.mostrarContenido();
System.out.println("En la posicion 4 esta el " + mc1.getValor(4));
System.out.println("La sumatoria de sus elementos es: " + mc1.getSumatoria());
System.out.println("El promedio de sus elementos es: " + mc1.getPromedio());
System.out.println("En la coleccion hay " + mc1.cuentaElementos() + " elementos");
System.out.println("Y hay " + mc1.cuentaCeros() + " ceros");
System.out.println("La sumatoria de los pares es: " + mc1.sumaPares());
System.out.println("El numero 2 esta " + mc1.cuentaRepeticiones(2) + " veces");
mc1.reemplazarValor(0, 9);
mc1.mostrarContenido();
mc1.reemplazarTodo();
mc1.mostrarContenido();
System.out.println("El mayor elemento es: " + mc1.getMayor());
System.out.println("El menor elemento es: " + mc1.getMenor());
mc1.insertarAlFinal(1);
mc1.insertarAlFinal(2);
mc1.insertarAlFinal(3);
mc1.mostrarContenido();
System.out.println("Esta el 3 en la lista? "+mc1.buscar(3));
}
}
USAR LENGUAJE TRANSACCIONAL SOBRE LA BASE DE DATOS
1. Construya los siguientes
procedimientos Almacenados para inserción de registros:
• En MySQL; para las tablas
Profesor, Curso, Estudiante, Estudiantexcurso.
• En ORACLE; para las tablas
Cliente, Articulo, Pedido.
Create or replace PROCEDURE negocios(unos out
SYS_REFCURSOR)
as
BEGIN
OPEN unos FOR
SELECT *
FROM cliente, articulo,
pedido;
END negocios;
• En el Motor de su
preferencia (ORACLE O MySQL), para las tablas, Compañía, TiposAutomotores,
Automotores, Aseguramientos, Incidentes.
Create procedure seguros() Select * from compañia, tiposautomotores, automotores, aseguramientos, incidentes;
2. En Oracle construya los
procedimientos almacenados para realizar los siguientes procesos:
• Muestre los salarios de
los profesores ordenados por categoría.
create or replace PROCEDURE salarioprofesor(uno out
SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT sal_prof
FROM profesor ORDER BY cate_prof;
END salarioprofesor;
• Muestre los cursos cuyo
valor sea mayor a $500.000.
Create or replace PROCEDURE valorcurso(uno out
SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT nom_curs
FROM curso WHERE valor_cur>='500000';
END valorcurso;
• Visualizar el nombre,
apellido y dirección de todos aquellos clientes que hayan realizado un pedido
el día 25 /02/2012.
Create or replace PROCEDURE pedidos02252012(uno out
SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT cliente.nom_cli, cliente.ape_cli,
cliente.dir_cli
FROM cliente, pedido WHERE
pedido.fec_ped='02/25/2012';
END pedidos02252012;
• Listar todos los pedidos realizados
incluyendo el nombre del artículo.
Create or replace PROCEDURE todospedidos(uno out
SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT pedido.id_ped, pedido.id_cli_ped,
pedido.fec_ped, pedido.val_ped, articulo.tit_art
FROM pedido, articulo;
END todospedidos;
• Listar los todos datos de
los automotores cuya póliza expira en octubre de 2013, este reporte debe
visualizar la placa, el modelo, la marca, número de pasajeros, cilindraje
nombre de automotor, el valor de la póliza y el valor asegurado.
Create or replace PROCEDURE polizaoctubre(uno out
SYS_REFCURSOR)
as
BEGIN
OPEN uno FOR
SELECT
automotores.autoplaca, automotores.automodelo, automotores.automarca,
automotores.autonumpasajeros, automotores.autocilindraje, automotores.autotipo,
aseguramientos.asecosto, aseguramientos.asevalorasegurado
FROM automotores,
aseguramientos
WHERE
aseguramientos.asefechaexpiracion>'09/30/2013' AND
aseguramientos.asefechaexpiracion<'11/01/2013';
END polizaoctubre;
3. En MySQL construya los
procedimientos almacenados para realizar los siguientes procesos:
• Muestre todos los campos
de la tabla curso en orden ascendente según el valor.
CREATE PROCEDURE `cursoascendente`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER Select * from curso ORDER BY valor_cur ASC;
• Mostrar los pedidos con
los respectivos artículos (código, nombre, valor y cantidad pedida).
Create procedure pedidosyarticulos() Select pedido.id_ped,pedido.id_cli_ped, pedido.fec_ped, pedido.val_ped,articulo.id_art, articulo.tit_art, articulo.prec_art,articuloxpedido.can_art_artped from pedido, articulo,articuloxpedido
• Visualizar los datos de
las empresas fundadas entre el año 1991 y 1998.
• Visualizar todos los
clientes organizados por apellido.
• Visualizar los datos de
los incidentes que han tenido un(1) herido, este reporte debe visualizar la
placa del automotor, con los respectivos datos de la póliza como son fecha de
inicio, valor, estado y valor asegurado.
CREATE PROCEDURE incidentesunherido(uno int) SELECTincidentes.inciplaca, incidentes.incicantheridos,aseguramientos.asefechainicio, aseguramientos.asecosto,aseguramientos.aseestado, aseguramientos.asevaloraseguradoFROM incidentes, aseguramientos WHERE incicantheridos=uno
• Visualizar los incidentes
del vehículo con placas " FLL420", este reporte debe visualizar la
fecha, el lugar, la cantidad de heridos del incidente, la fecha de inicio la de
expiración de la póliza y el valor asegurado.
CREATE PROCEDURE incidentesFLL420(fll varchar(6)) SELECTincidentes.incifecha,incidentes.incilugar,incidentes.incicantheridos,aseguramientos.asefechainicio,aseguramientos.asefechaexpiracion,aseguramientos.asevaloraseguradoFROM incidentes,aseguramientos WHERE inciplaca=fll
4. Realice las Siguientes
funciones en MySQL:
• Cuente el número de
estudiantes cuya edad sea mayor a 22.
CREATE FUNCTION `contarestudiantes`(`input` INT) RETURNS INT(11) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE cantidad int; SELECT COUNT(*) INTOcantidad FROM estudiante WHERE edad_est>'22'; RETURN cantidad; END
• Muestre el nombre y la
edad del estudiante más joven.
CREATE FUNCTION `estudiantejoven`(`input` INT) RETURNS INT(11) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE joven int; SelectMIN(edad_est) INTO joven from estudiante; RETURN joven; END
• Calcule el valor promedio
de los cursos cuyas horas sean mayores a 40.
CREATE FUNCTION `valorpromedio`(`input` INT) RETURNS INT(11) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE promedio int; SELECT AVG(valor_cur) INTO promedioFROM curso WHERE horas_cur>='40'; RETURN promedio; END
• Obtener el sueldo promedio
de los profesores de la categoría 1.
CREATE FUNCTION `sueldopromedio`(`input` INT) RETURNS INT(11) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE promedio int; SELECT AVG(sal_prof) INTO promedioFROM profesor WHERE cate_prof='1'; RETURN promedio; END
SELECT `sueldopromedio`(@p0) AS `sueldopromedio`;
• Muestre el nombre del
profesor con menor sueldo.
CREATE FUNCTION `menorsueldo`(`inout` INT) RETURNS VARCHAR(30) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE nombre varchar(30);SELECT nom_prof INTO nombre FROM profesor where sal_prof=(select min(sal_prof) from profesor); RETURN nombre; END
5. Realice las Siguientes
funciones en ORACLE:
• Visualizar el nombre del
cliente, la fecha y el valor del pedido más costoso.
create or replace FUNCTION pedidomascostos RETURN
NUMBER IS valor NUMBER;
BEGIN
SELECT MAX(val_ped) INTO valor FROM pedido;
RETURN valor;
END;
• Mostrar cuantos artículos
se tienen de cada editorial.
create or replace FUNCTION contareditoriales RETURN
NUMBER IS valor NUMBER;
BEGIN
SELECT COUNT(edi_art) INTO valor FROM articulo;
RETURN valor;
END;
• Visualizar todos los datos
de la póliza más costosa.
create or replace FUNCTION polizacostosa RETURN NUMBER
IS valor NUMBER;
BEGIN
SELECT asecodigo INTO valor
FROM aseguramientos WHERE asecosto=(select min(asecosto) from aseguramientos );
RETURN valor;
END;
• Visualizar los incidentes
con el mínimo número de autos involucrados, de este incidente visualizar el
estado de la póliza y el valor asegurado.
create or replace FUNCTION menosautos RETURN NUMBER IS
valor NUMBER;
BEGIN
SELECT incicodigo INTO valor
FROM incidentes WHERE incicanautosinvolucrados=(select
min(incicanautosinvolucrados) from incidentes);
RETURN valor;
END;
• Visualizar los datos de la
póliza cuyo valor asegurado es el más costoso, este reporte además de
visualizar todos los datos de la póliza, debe presentar todos los datos del
vehículo que tiene dicha póliza.
create or replace FUNCTION polizacostosa RETURN NUMBER
IS valor NUMBER;
BEGIN
SELECT asecodigo INTO valor
FROM aseguramientos WHERE asevalorasegurado=(select max(asevalorasegurado) from
aseguramientos );
RETURN valor;
END;
6. Construya los siguiente
disparadores para controlar la actualización y borrado de registros
• En MySQL; para las tablas
Profesor, Curso, Estudiante.
Actualización:
ü Profesor
CREATE TRIGGER `profesorupdate` BEFORE UPDATE ON `profesor` FOR EACH ROW INSERT INTO trigger_profesores (DocumentoAnterior, NombreAnterior,ApellidoAnterior, CategoriaAnterior, SalarioAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, CategoriaNuevo, SalarioNuevo) VALUES (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof,OLD.cate_prof, OLD.sal_prof, NEW.doc_prof, NEW.nom_prof, NEW.ape_prof, NEW.cate_prof, NEW.sal_prof);
ü Curso
CREATE TRIGGER `cursoupdate` BEFORE UPDATE ON `curso` FOR EACH ROW INSERT INTO trigger_cursos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior, CodigooNuevo, NombreNuevo,HorasNuevo, ValorNuevo) VALUES (OLD.cod_curs, OLD.nom_curs, OLD.horas_cur, OLD.valor_cur, NEW.cod_curs, NEW.nom_curs, NEW.horas_cur,NEW.valor_cur);
ü Estudiante
CREATE TRIGGER `estudianteupdate` BEFORE UPDATE ON `estudiante` FOR EACH ROW INSERT INTO trigger_estudiante (DocumentoAnterior, NombreAnterior, ApellidoAnterior, EdadAnterior,DocumentoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES (OLD.doc_est, OLD.nom_est, OLD.ape_est, OLD.edad_est, NEW.doc_est, NEW.nom_est, NEW.ape_est, NEW.edad_est);
Borrado
ü Profesor
CREATE TRIGGER `profesordelete` AFTER DELETE ON `profesor` FOR EACH ROW INSERT INTO trigger_profesores (DocumentoAnterior, NombreAnterior, ApellidoAnterior, CategoriaAnterior,SalarioAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, CategoriaNuevo, SalarioNuevo) VALUES (OLD.doc_prof, OLD.nom_prof, OLD.ape_prof, OLD.cate_prof, OLD.sal_prof);
ü Curso
CREATE TRIGGER `cursodelete` AFTER DELETE ON `curso` FOR EACH ROW INSERT INTO trigger_cursos(CodigoAnterior, NombreAnterior, HorasAnterior, ValorAnterior, CodigooNuevo,NombreNuevo,HorasNuevo, ValorNuevo) VALUES (OLD.cod_curs, OLD.nom_curs, OLD.horas_cur, OLD.valor_cur);
ü Estudiante
CREATE TRIGGER `estudiantedelete` AFTER DELETE ON `estudiante` FOR EACH ROW INSERT INTO trigger_estudiante (DocumentoAnterior,NombreAnterior, ApellidoAnterior, EdadAnterior, DocumentoNuevo, NombreNuevo, ApellidoNuevo, EdadNuevo) VALUES (OLD.doc_est, OLD.nom_est, OLD.ape_est, OLD.edad_est)
• En ORACLE; para las tablas
Cliente, Articulo, Pedido.
Actualización:
ü Cliente
create or replace trigger "CLIENTEUPDATE"
BEFORE
update on "CLIENTE"
for each row
begin
INSERT INTO trigger_cliente
(CodigoAnterior, NombreAnterior, ApellidoAnterior,
DireccionAnterior,DepartamentoAnterior, MesCumpleAnterior, CodigoNuevo,
NombreNuevo, ApellidoNuevo, DireccionNuevo, DepartamentoNuevo, MesCumpleNuevo)
VALUES (:OLD.id_cli, :OLD.nom_cli, :OLD.ape_cli, :OLD.dir_cli, :OLD.dep_cli,
:OLD.mes_cum_cli, :NEW.id_cli, :NEW.nom_cli,
:NEW.ape_cli, :NEW.dir_cli, :NEW.dep_cli, :NEW.mes_cum_cli);
end;
ü Articulo
create or replace trigger "ARTICULOUPDATE"
BEFORE
update on "ARTICULO"
for each row
begin
INSERT INTO trigger_articulo (CodigoAnterior,
NombreAnterior, AutorAnterior, EditorialAnterior, PrecioAnterior, CodigoNuevo,
NombreNuevo, AutorNuevo, EditorialNuevo, PrecioNuevo) VALUES (:OLD.id_art,
:OLD.tit_art, :OLD.aut_art, :OLD.edi_art, :OLD.prec_art, :NEW.id_art, :NEW.tit_art, :NEW.aut_art, :NEW.edi_art, :NEW.prec_art);
end;
ü Pedido
create or replace trigger "PEDIDOUPDATE"
BEFORE
update on "PEDIDO"
for each row
begin
INSERT INTO trigger_pedido (CodigoAnterior,
DocumentoClienteAnterior, FechaAnterior, ValorAnterior, CodigoNuevo,
DocumentoClienteNuevo, FechaNuevo, ValorNuevo) VALUES (:OLD.id_ped,
:OLD.id_cli_ped, :OLD.fec_ped, :OLD.val_ped, :NEW.id_ped, :NEW.id_cli_ped,
:NEW.fec_ped, :NEW.val_ped);
end;
Borrado
ü Cliente
create or replace trigger "CLIENTEDELETE"
AFTER
delete on "CLIENTE"
for each row
begin
INSERT INTO trigger_cliente
(CodigoAnterior, NombreAnterior, ApellidoAnterior,
DireccionAnterior,DepartamentoAnterior, MesCumpleAnterior, CodigoNuevo,
NombreNuevo, ApellidoNuevo, DireccionNuevo, DepartamentoNuevo, MesCumpleNuevo)
VALUES (:OLD.id_cli, :OLD.nom_cli, :OLD.ape_cli, :OLD.dir_cli, :OLD.dep_cli,
:OLD.mes_cum_cli);
end;
ü Articulo
create or replace trigger "ARTICULODELETE"
AFTER
delete on "ARTICULO"
for each row
begin
INSERT INTO trigger_articulo (CodigoAnterior,
NombreAnterior, AutorAnterior, EditorialAnterior, PrecioAnterior, CodigoNuevo,
NombreNuevo, AutorNuevo, EditorialNuevo, PrecioNuevo) VALUES (:OLD.id_art,
:OLD.tit_art, :OLD.aut_art, :OLD.edi_art, :OLD.prec_art);
end;
ü Pedido
create or replace trigger "PEDIDODELETE"
AFTER
delete on "PEDIDO"
for each row
begin
INSERT INTO trigger_pedido
(CodigoAnterior, DocumentoClienteAnterior, FechaAnterior, ValorAnterior,
CodigoNuevo, DocumentoClienteNuevo, FechaNuevo, ValorNuevo) VALUES (:OLD.id_ped,
:OLD.id_cli_ped, :OLD.fec_ped, :OLD.val_ped);
end;
• En el Motor de su
preferencia (ORACLE O MySQL), para las tablas, Automotores, Aseguramientos,
Incidentes.
Actualización:
ü Automotores
CREATE TRIGGER `automotoresupdate` BEFORE UPDATE ON `automotores` FOR EACH ROW INSERT INTO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior, ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNuevo, ModeloNuevo, NumeroPasajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.autoplaca, OLD.automarca, OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilindraje, OLD.autonumchasis, NEW.autoplaca, NEW.automarca, NEW.autotipo,NEW.automodelo, NEW.autonumpasajeros, NEW.autocilindraje, NEW.autonumchasis)
ü Aseguramientos
CREATE TRIGGER `aseguramientosupdate` BEFORE UPDATE ON `aseguramientos` FOR EACH ROW INSERT INTO trigger_aseguramientos(CodigoAnterior, FechaInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnterior, EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNuevo, FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo) VALUES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion, OLD.asevalorasegurado, OLD.aseestado, OLD.asecosto, OLD.aseplaca,NEW.asecodigo, NEW.asefechainicio, NEW.asefechaexpiracion, NEW.asevalorasegurado, NEW.aseestado, NEW.asecosto, NEW.aseplaca)
ü Incidentes
CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR EACH ROW INSERT INTO trigger_incidentes(CodigoAnterior, FechaAnterior, PlacaAnterior, LugarAnterior,CantidadHeridosAnterior, CantidadFatalidadesAnterior, CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuevo, PlacaNuevo, LugarNuevo, CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutosInvolucradosNuevo) VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar, OLD.incicantheridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados, NEW.incicodigo, NEW.incifecha, NEW.inciplaca, NEW.incilugar, NEW.incicantheridos, NEW.incicanfatalidades, NEW.incicanautosinvolucrados)
Borrado
ü Automotores
CREATE TRIGGER `automotoresdelete` AFTER DELETE ON `automotores` FOR EACH ROW INSERT INTO trigger_automotores (PlacaAnterior, MarcaAnterior, TipoAnterior, ModeloAnterior,NumeroPasajerosAnterior, CilindrajeAnterior, NumeroChasisAnterior, PlacaNuevo, MarcaNuevo, TipoNuevo, ModeloNuevo, NumeroPasajerosNuevo, CilindrajeNuevo, NumeroChasisNuevo)VALUES (OLD.autoplaca, OLD.automarca, OLD.autotipo, OLD.automodelo, OLD.autonumpasajeros, OLD.autocilindraje, OLD.autonumchasis)
ü Aseguramientos
CREATE TRIGGER `aseguramientosdelete` AFTER DELETE ON `aseguramientos` FOR EACH ROW INSERT INTO trigger_aseguramientos(CodigoAnterior, FechaInicioAnterior,FechaExpiracionAnterior, ValorAseguradoAnterior, EstadoAnterior, CostoAnterior, PlacaAnterior, CodigoNuevo, FechaInicioNuevo, FechaExpiracionNuevo, ValorAseguradoNuevo,EstadoNuevo, CostoNuevo, PlacaNuevo) VALUES (OLD.asecodigo, OLD.asefechainicio, OLD.asefechaexpiracion, OLD.asevalorasegurado, OLD.aseestado, OLD.asecosto, OLD.aseplaca)
ü Incidentes
CREATE TRIGGER `incidentesdelete` AFTER DELETE ON `incidentes` FOR EACH ROW INSERT INTO trigger_incidentes(CodigoAnterior, FechaAnterior, PlacaAnterior, LugarAnterior,CantidadHeridosAnterior, CantidadFatalidadesAnterior, CantidadAutosInvolucradosAnterior, CodigoNuevo, FechaNuevo, PlacaNuevo, LugarNuevo, CantidadHeridosNuevo,CantidadFatalidadesNuevo, CantidadAutosInvolucradosNuevo) VALUES (OLD.incicodigo, OLD.incifecha, OLD.inciplaca, OLD.incilugar, OLD.incicantheridos, OLD.incicanfatalidades,OLD.incicanautosinvolucrados)
Suscribirse a:
Entradas (Atom)