LABORATORIOS ADSI, TODOS

April 4, 2018 | Author: LUIS MIGUEL | Category: Application Server, Databases, Server (Computing), Books, Internet


Comments



Description

Construcción de MER con herramienta DíaEjercicio Numero 1 a. Enunciado: Se pretende automatizar la gestión de una biblioteca. Para ello se recoge la siguiente información: • Se dispone de un conjunto de usuarios con el número de carnet, nombre y dirección; Cada libro de la biblioteca tiene un código, título y número de páginas. • Se realizan préstamos de libros a los usuarios. Cada usuario puede tener prestados a la vez varios libros. • Cada libro pertenece a una determinada clase, identificada por una clave. De la clase del libro depende el tiempo máximo que se puede prestar. • Se quiere llevar un control histórico de todos los préstamos que se van realizando, sabiendo además del libro y el usuario, las fechas de inicio y de devolución del préstamo. • Es importante poder consultar los libros de un determinado autor o de una determinada editorial. Sabiendo que un libro puede ser escrito por varios autores pero editado por una sola editorial. Asuma la información necesaria para construir el modelo entidad relación (MER). b. Identificar Entidades: • Usuario • Libro • Autor • Clase • Editorial • Prestamos c. Definir Relaciones entre entidades: Las relaciones de entidades, serán resaltadas en color Rojo • Autor escribe Libro • Libro tiene Editoriales • Libro pertenece Clase • Usuario Préstamo libro d. Identificar Atributos: • Autor: ➢ Nombre ➢ Código • Libro: ➢ Páginas ➢ Título ➢ Código • Editoriales: ➢ Editorial ➢ Año • Clase: ➢ Clave ➢ TiempoMaximo ➢ Localización • Usuario: ➢ NumeroCarnet ➢ Nombre ➢ Dirección ➢ NumeroLibros • Prestamos: ➢ FechaPrestamo ➢ FechaDevolu E. Depurar MER Ejercicio número 2 a. Enunciado: 2. Se pretende automatizar la gestión de una Video tienda teniendo en cuenta la siguiente información: • Se dispone de un conjunto de clientes con su código, nombre, dirección y correo electrónico; Cada video de la videoTienda tiene un código, título, idioma y duración. • Los clientes pueden alquilar varios videos y es importante saber la fecha de alquiler, la fecha de devolución y el valor del alquiler que depende del formato del video (VHS, VCD, DVD, BlueRay). Los clientes podrán consultar los videos que hay de un determinado formato, o género (comedia, terror etc), así como por determinado actor. • Cada Video es dirigido por un director del cual además de interesarnos conocer los videos que ha dirigido, nos interesa saber cuál es su nacionalidad. • Cada vez que un cliente devuelve un video es importante registrar además de la fecha de devolución, los días de retraso, este histórico es importante para determinar las sanciones o premios para cada cliente, pues existe un listado de premios y de sanciones que es importante conocer que clientes los han recibido, aunque no todos los clientes deben recibir premios o sanciones. Asuma la información restante que sea necesaria para construir el MER. b. Identificar Entidades: • Cliente • Video • GeneroPelicula • FormatoPelicula • Directores • Actor • Listado c. Definir Relaciones entre entidades: Las relaciones de entidades, serán resaltadas en color Rojo • Director Dirige Video • Video Tiene Actor • Video Tiene Género • Video Tiene Formato • Video Hace Alquiler • Alquiler Presta Cliente d. Identificar Atributos: • Director: ➢ Nombre ➢ Nacionalidad ➢ Código • Video: ➢ Código ➢ Título ➢ Idioma ➢ Duración • Genero: ➢ NombreGenero ➢ NombreActor • Formato: ➢ NombreFormato • Usuario: ➢ Código ➢ Nombre ➢ Dirección ➢ E-mail cursos y formación que imparte cada centro perteneciente a la regional.• Prestamos: ➢ FDevol ➢ DiasRetraz • Actor: ➢ Código ➢ Nombre ➢ Dirección ➢ E-mail • Listado: ➢ Premios ➢ Sanciones E. Enunciado: El SENA regional Caldas desea construir el diagrama entidad relación de una base de datos que tiene como objetivo fundamental llevar un control de los aprendices. instructores. Depurar MER Ejercicio número 3 a. La información requerida para la base de datos es la siguiente: . Un aprendiz solo puede estar patrocinado por una empresa. Identificar Atributos: • Aprendiz: ➢ IdAprendiz ➢ Nombre ➢ FechaNacimiento ➢ Dirección ➢ Teléfono ➢ Estrato • Curso: ➢ NombreCurso ➢ IdCurso ➢ CodigoCentro • CentroFormación: ➢ Nombre ➢ Código • Instructor: ➢ Nombre . siendo importante para la base de datos todas las empresas de la región así estas no estén patrocinando a ningún aprendiz. Definir Relaciones entre entidades: Las relaciones de entidades. dirección. serán resaltadas en color Rojo • CentroFormación Matricula Aprendíz • CentroFormacion Tiene Cursos • Curso Tiene Matricula • Aprendiz Estudia Curso • Curso Imparte Instructor • Aprendíz Patrocinado Empresa d. También es importante conocer la fecha de inicio y fin del patrocinio. teléfono y estrato. Identificar Entidades: • Aprendiz • Curso • Matriculas • CentroFormación • Instructor • EmpresaPatrocinio • EmpresasZona c. dirección. Además es importante conocer para cada aprendiz el curso en el que se encuentra matriculado. nombre. Asuma la información restante necesaria para construir el MER b. también sería importante conocer los instructores que pertenecen a un determinado centro y a que grupos imparte formación cada instructor. teléfono. nombre. pero una empresa puede patrocinar a varios aprendices. • Los cursos pertenecen a un determinado centro de formación. fecha de nacimiento. es importante también conocer la información de la empresa que los patrocina. así como la fecha de la matrícula. del cual interesa conocer el código y nombre. • De los aprendices interesa conocer su número de documento de identidad. • Teniendo en cuenta que algunos de los aprendices del SENA están patrocinados. La información requerida de la empresa es: NIT. ➢ Cédula ➢ Dirección ➢ E-mail ➢ Código • EmpresasZona: ➢ Nit ➢ Nombre ➢ Dirección ➢ Teléfono • EmpresaPatrocinio: ➢ Nit ➢ Nombre ➢ Dirección ➢ Teléfono ➢ FechaInicio ➢ FechaFin E. • Los clientes tiene un nombre. Los clientes del banco son personas u organizaciones. Enunciado: Se conocen las siguientes reglas de negocio de un banco: • El banco tiene cuentas corrientes. institución pública. etc. Depurar MER Ejercicio número 4 a. Cada cuenta pertenece a un único cliente. un representante y un número de empleados. una dirección y se identifican por su código. Un cliente tiene al menos una cuenta. . cuentas de ahorro y clientes. Las personas tienen fecha de nacimiento y género.). aunque puede tener varias cuentas de cualquiera de los dos tipos. en cambio las organizaciones tienen un tipo de organización (empresa. También interesa conocer su nombre. • Cada sucursal se identifica por su número. • Los empleados del banco se identifican por su código. • Todas las cuentas tienen un número de cuenta. Identificar Entidades: • Banco • Cliente • Organización • Persona • Cuenta • Empleado • Sucursal c. serán resaltadas en color Rojo • Banco Tiene Sucursal • Sucursal Tiene Empleado • Sucursal Tiene Cliente • Cliente Posee cuenta d. pero es importante poder determinar si una cuenta es de ahorro o corriente. un teléfono y una ciudad. fecha- nacimiento. Definir Relaciones entre entidades: Las relaciones de entidades. sexo y la sucursal en la que trabajan (aunque hay empleados que no trabajan en ninguna sucursal). Asuma la información necesaria para construir el MER b. Identificar Atributos: • Banco: ➢ Dirección ➢ Teléfono ➢ Ciudad ➢ IdBanco • Sucursal: ➢ #Sucursal • Empleado: ➢ Nombre ➢ Código ➢ FechaNacimiento ➢ Género ➢ #Sucursal • Cliente: ➢ Nombre ➢ Cédula ➢ Dirección ➢ E-mail ➢ Código ➢ FechaNacimiento ➢ Género . saldo actual y un saldo promedio. Además tiene una dirección. diagnósticos e historias clínicas del . Diagrama de Clases 2. Diagrama de Paquetes 3.• Organización: ➢ TipoOrganización ➢ Representante ➢ #Empleados • Cuenta: ➢ #Cuenta ➢ SaldoActual ➢ SaldoPromedio ➢ TipoCTA E. consultas. Depurar MER Diseño de la Arquitectura Logica del Sistema Diagramas a desarrollar Según los enunciados construya: 1. pacientes. Diagrama de Componentes Enunciado 1 El propietario del centro médico “Humana Vivir” requiere un sistema que permita administrar los datos básicos de las citas. Diagrama de clases Diagrama de Paquetes Diagrama de Componentes . donde el sistema asigna el médico que lo va atender y le agenda la consulta.centro médico. cuando el paciente asiste a la consulta se le genera la historia clínica y el diagnostico junto con su tratamiento. Es importante destacar que este sistema puede también utilizarse desde dispositivos móviles. Un paciente debe solicitar su cita vía web. Diagrama de Clases . El objetivo principal es generar informes que los directivos puedan acceder en cualquier momento desde sus dispositivos móviles para generar estadísticas ya que deben reportar a las centrales los avances y totalidades de proyectos que cada docente está generando dentro de sus aulas de trabajo. alcance y productos a obtener. así como también las líneas de interés de cada proyecto. cada proyecto tiene un formato estándar que almacena la justificación.Enunciado 2 En un centro de formación educativo necesitan un sistema web que permita registrar los proyectos desarrollados por los docentes. objetivos. la capacidad de trabajo en grupo. en el área de gestión humana se cuenta con un paquete de . La empresa desea medir las competencias intelectuales de todos sus empleados y además desea conocer las competencias emocionales de sus directivos (por ejemplo. la motivación.Diagrama de paquetes Diagrama de Componentes Enunciado 3 Una organización desea incorporar en su política de contratación criterios de calidad del personal basados en la medición de sus habilidades o competencias. capacidad de liderazgo. etc). Cada competencia está asociada a un conjunto de test que permiten medirla.pruebas para medir estas competencias. Recuerde que las competencias se miden o califican con un numero llamado umbral. Cada test se identifica por un nombre y debe tener asociado un conjunto de preguntas. Diagrama de clases Diagrama de paquetes . Al final generar un informe con las medidas de las competencias emocionales e intelectuales de los empleados. una plantilla para su corrección así como el modo en que se deberán interpretar los resultados. Se requiere diseñar una aplicación que permita gestionar y medir las competencias emocionales e intelectuales de los empleados. Un test puede medir una única competencia. así como también configurar los test junto con sus preguntas y respuestas. Diagrama de Componentes LABORATORIO DISEÑO DE INTERFACES • Registro de un libro en un biblioteca . • Registro de una persona en un hotel . • Compra de un tiquete de un vuelo nacional en un aeropuerto . • Sistema de votación con dos candidatos y voto en blanco . Tienda . Modelo Relacional de la Base de Datos 1. Empresa de transporte de encomiendas 3.2. Compañía de seguros . 4. Biblioteca . consultas. En una empresa se cuenta con un sistema de información con una arquitectura de 3 capas. el servidor de aplicaciones. diagnósticos e historias clínicas del centro médico. el cliente. los empleados y el dispositivo RIFD. El nodo de los empleados posee el componente tarjeta. La vista corresponde a una aplicación web en Asp Net de Visual Studio .Net y el cliente accede desde un browser de internet. Es importante destacar que este sistema permite gestionar las citas a través de dispositivos móviles. el nodo del dispositivo RFID tiene dos componentes: el reader que lee la señal y el transponder que comunica la señal. el nodo del servidor de aplicaciones contiene el componente Asp Net que es una aplicación empleada para ejecutar la función requerida por el sistema de información. El sistema está configurado sobre una arquitectura de 3 capas con su lógica y base de datos en librerías tipo dll y su aplicación desarrollada en Html5. que manipula la seguridad de ingreso y salida de los empleados de la empresa “Tecniques &+D” a través de dispositivos de RFID. donde el sistema asigna el médico que lo va atender y le agenda la consulta. cuando el paciente asiste a la consulta se le genera la historia clínica y el diagnostico junto con su tratamiento. ARQUITECTURA FÍSICA DEL SISTEMA 1. el nodo del servidor de bases de datos tiene un componente de bases de datos en Oracle que administra la información de la bases de datos y el cliente puede acceder por medio de internet al servidor de aplicaciones. este componente permite que el empleado se registre a través del dispositivo RFID.asmx. El diagrama anterior representa el funcionamiento de un sistema de información que manipula la seguridad de ingreso y salida de los empleados de una empresa. dicho sistema maneja el patrón vista controlador. su lógica de datos está desarrollada con librerías de clase denominada Logica. los nodos utilizados son el servidor de bases de datos. 2. pacientes. . El propietario del centro médico “Humana Vivir” cuenta con un sistema que permite administrar los datos básicos de las citas. Un paciente debe solicitar su cita vía web.dll y la persistencia (base de datos) se encuentra con un servicio web xml llamado Serviciobd. para poder asistirá a la consulta debe identificarse por medio de lector de huella digital. El diagrama anterior representa el funcionamiento de un sistema de información que administra los datos básicos de las citas. cuando el paciente va a tener la cita se identifica por medio de un lector de huellas que lee la huella y comunica la señal. el servidor de aplicaciones. el teclado. la estación de trabajo y el empleado. En una tienda de venta y compra de productos de canasta familiar se cuenta con un sistema de información que maneja estaciones de trabajo que permiten capturar las compras de un cliente. pacientes. El empleado accede a la red para registrar la compra hecha por el cliente a través de la estación de trabajo. El diagrama anterior representa el funcionamiento de un sistema de información que maneja estaciones de trabajo que permiten capturar las compras de un cliente de una tienda. este puede pedirla a través de un dispositivo móvil que contiene principalmente dos componentes que son la pantalla y el teclado. . el paciente. El servidor de aplicaciones se compone por una aplicación realizada en Apache Tomcat y en el nodo de servidor de bases de datos contiene un componente en Oracle. diagnósticos e historias clínicas de un centro médico. el nodo del servidor de aplicaciones se compone por un software hecho en Apache Tomcat y el nodo del servidor de bases de datos contiene un componente en Oracle. El paciente accede a internet y solicita una cita. este sistema está diseñado para generar las facturas de compra de un cliente y tiene su base de datos almacenada en un servidor. el sistema tiene una arquitectura de 3 capas. los nodos utilizados son el servidor de bases de datos. 3. la estación tiene varios componentes que son el monitor. dispositivo móvil y dispositivo de lector de huellas. los nodos utilizados son el servidor de bases de datos. consultas. la impresora que imprime la factura y el lector de código de barras que lee el código de cada artículo. el servidor de aplicaciones. 000. SELECT count(`doc_est`) FROM `estudiante` WHERE `edad_est`>'22' • Muestre el nombre y la edad del estudiante más joven. SELECT * FROM `curso` WHERE `valor_cur`>'500000' • Cuente el número de estudiantes cuya edad sea mayor a 22.Construcción de modelos de bases de datos RELACIONES ENTRE LAS TABLAS CONSULTAS • Muestre los salarios de los profesores ordenados por categoría. SELECT `sal_prof` FROM `profesor` order by `sal_prof` • Muestre los cursos cuyo valor sea mayor a $500. . min(`edad_est`) FROM `estudiante` • Calcule el valor promedio de los cursos cuyas horas sean mayores a 40. SELECT AVG(`sal_prof`) FROM `profesor` WHERE `cate_prof`='1' • Muestre todos los campos de la tabla curso en orden ascendente según el valor.nom_cli. cliente. estudiantexcurso.`nom_curs`.tit_art.horas_cur. cliente.nom_cli. la fecha y el valor del pedido más costoso. articulo.000 y $700. articulo.`fec_ini_estcur `. pedido WHE RE pedido. del curso debe mostrarse el nombre.fec_ped. SELECT COUNT(`edi_art`) FROM `articulo` WHERE 1 .`fec_ini_estcur`='2011-02-01' • Visualice los profesores cuyo sueldo este entre $500. apellido y dirección de todos aquellos clientes que hayan realizado un pedido el día 25 /02/2012. la dirección del mismo. SELECT cliente. SELECT AVG(`valor_cur`) FROM curso WHERE `horas_cur`>'40' • Obtener el sueldo promedio de los profesores de la categoría 1.id_cli_ped. las horas y el valor.val_ped F ROM cliente. min(`sal_prof`) FROM `profesor` • Visualizar todos los estudiantes (código y nombre) que iniciaron cursos el 01/02/2011. SELECT * FROM `profesor` WHERE `sal_prof`>'500000' and `sal_prof`<'700000' • Visualizar el nombre. estudiante.SELECT `nom_est`. Select * from curso order by `valor_cur` asc • Muestre el nombre del profesor con menor sueldo.fec_ped='2012-02-25' • Listar todos los pedidos realizados incluyendo el nombre del articulo.`nom_est`. pedido. cliente. articulo WHere 1 • Visualizar los clientes que cumplen años en marzo.cursowhere estudiantexcurso.nom_cli. el nombre y el valor de los artículos que tiene dicho pedido.tit_art. articulo.val_ped). pedido.ape_cli. curso. pedido WHERE1 • Mostrar cuantos artículos se tienen de cada editorial.id_ped. curso. SELECT MAX(pedido.estudiantex curso. val_ped FROM pedido. pedido. curso. SELECT cliente.fec_ped. SELECT * FROM `cliente` WHERE `mes_cum_cli`='Marzo' • Visualizar los datos del pedido 1.valor_cur From estudiante.prec_art FROM clien te. select estudiante. cliente.articulo.id_ped='1' • Visualizar el nombre del cliente. SELECT `nom_prof`. incluyendo el nombre del cliente. pedido WHEREpedido.pedido. pedido.000.dir_cli FROM cliente.dir_cli. SELECT pedido.`doc_est`. cliente.asevalorasegurado FROM asegura mientos. articuloxpedido WHERE articulo.aseguramientos.nom_cli. fecha de inicio de la póliza.• Mostrar los pedidos con los respectivos artículos (código.id_art. SELECT aseguramientos. automotores. valor y cantidad pedida).asefechainicio. automotores.autoplaca. aseguramientos. valor. articulo.automodelo. número de pasajeros.aseguramientos.asecostoFROM incidentes. este reporte debe visualizar la placa. con su respectivo número de póliza. automotores.asefechainicio.automotores. este reporte debe visualizar la placa del automotor. aseguramientos WHERE `incicantheridos`='1' • Visualizar todos los datos de la póliza más costosa.autoti po.dir_cli. aseguramientos.tit_art. SELECT automotores. aseguramientos.aseguramientos. automotores WHERE `asefechaexpiracion`>'2013-08- 31' and `asefechaexpiracion`<'2013-10-01' • Visualizar los datos de los incidentes ocurridos el 30 de septiembre de 2012.autocilindraje. SELECT * FROM `aseguramientos` where 1 ORDER BY `asevalorasegurado` des c . SELECT * FROM `articulo` ORDER by `aut_art` • Visualizar los pedidos que se han realizado para el articulo con id 2. el respectivo número de pedido y la cantidad solicitada.aseestado. nombre. la marca. pedido.id_ped. valor asegurado y valor de la póliza. SELECT articulo.automarc a.asevalorasegurado.articulo.asecosto.asevalorasegurado FROM in cidentes. SELECT automotores.can_art_art ped FROMarticulo. el modelo. pedido. articuloxpedido. cilindraje nombre de automotor. SELECT * FROM `compañia` WHERE `comañofun`>='1991' and `comañofun`<='1 998' • Listar los todos datos de los automotores cuya póliza expira en octubre de 2013.autonumpasajeros. con los respectivos datos de la póliza como son fecha de inicio.can_art_art ped FROM cliente.aseguramientos. SELECT * FROM `cliente` ORDER BY `ape_cli` • Visualizar todos los artículos organizados por autor. articuloxpedido. articulo. automotores. asecosto.id_art='2' • Visualizar los datos de las empresas fundadas entre el año 1991 y 1998.autoplaca.asecodigo.prec_art.aseguramientos.aseguramient os. el listado debe mostrar el nombre y dirección del cliente. estado y valor asegurado. el valor de la póliza y el valor asegurado. aseguramiento s WHERE `incifecha`='2012-09-30' • Visualizar los datos de los incidentes que han tenido un(1) herido. automotores. SELECT cliente. articuloxpedido WHERE 1 • Visualizar todos los clientes organizados por apellido. la fecha de inicio la de expiración de la póliza y el valor asegurado.aseguramie ntos.asefechainicio. automotores.asevalorasegurado FROM aseguramientos. Create procedure colegio() Select * from profesor. aseguramientos WHERE automotores.autonumpasajeros. Curso. aseguramientos. automotores.asevalorasegurado).asefechaexpiracion. incidentesWHERE incidentes. para las tablas Cliente. aseguramientos. auto motores.aseguramientos. aseguramient os.autotipo. este reporte además de visualizar todos los datos de la póliza.autoplaca. estudiantexcu rso.automarca. automotores.inciplaca='FLL420' • Visualizar los datos de la empresa con nit 899999999-5. curso. aseg uramientos. el lugar. Estudiantexcurso. estudiante.au tomodelo. Estudiante. call colegio(). SELECT MIN(`incicanautosinvolucrados`). automotores.asevalorasegurado FROM asegu ramientos. para las tablas Profesor. aseguramientos.automarca. la cantidad de heridos del incidente. asegura mientos. aseguramientos.incilugar.asefechainicio. aseguramientos.asecodigo. de finalización y estado de la póliza.aseestado.aseestado. cilindraje del vehículo junto con la fecha de inicio. SELECT incidentes. automotores . de este incidente visualizar el estado de la póliza y el valor asegurado.aseestado FROMautomotores. incidentes.asevalorasegurado.asefechaexpiracion. Articulo. aseguramientos.aseguramientos.autocilindraje.automotores.asecosto. SELECT * FROM `compañia` WHERE `comnit`='899999999-5' • Visualizar los datos de la póliza cuyo valor asegurado es el más costoso. • En ORACLE.autocilindr aje.aut otipo=1 USAR LENGUAJE TRANSACCIONAL SOBRE LA BASE DE DATOS 1. marca.autoplaca.incidentes WHERE 1 • Visualizar los incidentes del vehículo con placas " FLL420". automotores WHERE 1 • Visualizar los datos de las pólizas de los automotores tipo 1.asefechaexpiracion.automotores. SELECT automotores. este reporte debe visualizar la fecha. este reporte debe incluir placa.• Visualizar los incidentes con el mínimo número de autos involucrados. SELECT MAX(aseguramientos.autonumchasis FROM aseguramientos.incicantheridos. incidentes.incifecha. Create or replace PROCEDURE negocios(unos out SYS_REFCURSOR) as . automotores. a seguramientos. modelo. Construya los siguientes procedimientos Almacenados para inserción de registros: • En MySQL. Pedido. debe presentar todos los datos del vehículo que tiene dicha póliza. id_ped. pedido. • Muestre los cursos cuyo valor sea mayor a $500. END todospedidos. END pedidos02252012. Create procedure seguros() Select * from compañia. Aseguramientos. END negocios.ape_cli. articulo. automotore s. • En el Motor de su preferencia (ORACLE O MySQL). Incidentes. articulo. aseguramientos. • Listar todos los pedidos realizados incluyendo el nombre del artículo. pedido WHERE pedido.dir_cli FROM cliente. TiposAutomotores.id_cli_ped.val_ped. Create or replace PROCEDURE pedidos02252012(uno out SYS_REFCURSOR) as BEGIN OPEN uno FOR SELECT cliente.BEGIN OPEN unos FOR SELECT * FROM cliente. articulo. 2. Create or replace PROCEDURE todospedidos(uno out SYS_REFCURSOR) as BEGIN OPEN uno FOR SELECT pedido. . pedido.000. 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 valorcurso(uno out SYS_REFCURSOR) as BEGIN OPEN uno FOR SELECT nom_curs FROM curso WHERE valor_cur>='500000'. cliente. incidentes. para las tablas. tiposautomotores. create or replace PROCEDURE salarioprofesor(uno out SYS_REFCURSOR) as BEGIN OPEN uno FOR SELECT sal_prof FROM profesor ORDER BY cate_prof. apellido y dirección de todos aquellos clientes que hayan realizado un pedido el día 25 /02/2012. Automotores.fec_ped='02/25/2012'.fec_ped. cliente. END salarioprofesor.tit_art FROM pedido. pedido.nom_cli. • Visualizar el nombre. END valorcurso. call seguros(). pedido. Compañía. la fecha de inicio la de expiración de la póliza y el valor asegurado. automotores. automotores.inciplaca. call cursoascendente(). Create or replace PROCEDURE polizaoctubre(uno out SYS_REFCURSOR) as BEGIN OPEN uno FOR SELECT automotores.articuloxpedido call pedidosyarticulos() • Visualizar los datos de las empresas fundadas entre el año 1991 y 1998. aseguramientos. el valor de la póliza y el valor asegurado. valor y cantidad pedida).asecosto.tit_art. • Mostrar los pedidos con los respectivos artículos (código. número de pasajeros.incicantheridos. automotores. .id_cli_ped. este reporte debe visualizar la fecha. este reporte debe visualizar la placa.asecost o. aseguramientos. articulo.can_art_artped from pedido. aseguramientos WHERE aseguramientos.automarca.autocilindraje. cilindraje nombre de automotor.val_ped.asefechainicio. valor.articulo. automotores.asefechaexpiracion<'11/01/2013'. nombre. aseguramientos WHERE incicantheridos=uno call incidentesunherido('1') • Visualizar los incidentes del vehículo con placas " FLL420".prec_art.asefechaexpiracion>'09/30/2013' AND aseguramientos.automodelo. articulo. el lugar. este reporte debe visualizar la placa del automotor. i ncidentes. la marca.autonumpasajeros.id_ped.• Listar los todos datos de los automotores cuya póliza expira en octubre de 2013. articulo.aseestado. aseguramientos.articulo xpedido. pedido. aseguramientos.aseguramientos. CREATE PROCEDURE empresafundada() SELECT * FROM compañia WHERE c omañofun>=1991 AND comañofun<=1998 call empresafundada() • Visualizar todos los clientes organizados por apellido. pedi do.autotipo.id_art.pedido. CREATE PROCEDURE `cursoascendente`() NOT DETERMINISTIC CONTAINS S QL SQL SECURITY DEFINER Select * from curso ORDER BY valor_cur ASC. 3. estado y valor asegurado.aseguramientos. automotores. 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 apellidosclientes() Select * from cliente ORDER BY ape_cli call apellidosclientes() • Visualizar los datos de los incidentes que han tenido un(1) herido. con los respectivos datos de la póliza como son fecha de inicio. Create procedure pedidosyarticulos() Select pedido. la cantidad de heridos del incidente.asevalorasegurado FROM automotores. el modelo.asevaloraseguradoFROM incidente s. END polizaoctubre.autoplaca.fec_ped. CREATE PROCEDURE incidentesunherido(uno int) SELECTincidentes. • Calcule el valor promedio de los cursos cuyas horas sean mayores a 40.aseguramientos.incidentes.incicantheridos. CREATE FUNCTION `sueldopromedio`(`input` INT) RETURNS INT(11) NOT DET ERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE prom edio int. END SELECT `contarestudiantes`(@p0) AS `contarestudiantes` • Muestre el nombre y la edad del estudiante más joven. SELECT COUNT(*) INTOcantidad FROM estudiante WHERE edad_est>' 22'. CREATE FUNCTION `menorsueldo`(`inout` INT) RETURNS VARCHAR(30) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE nombre varchar(30). CREATE FUNCTION `estudiantejoven`(`input` INT) RETURNS INT(11) NOT DET ERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE jove n int.asevaloraseguradoFROM inc identes. SELECT AVG(valor_cur) INTO promedioFROM curso WHERE horas_cur> ='40'.asefechainicio. • Obtener el sueldo promedio de los profesores de la categoría 1. . Realice las Siguientes funciones en ORACLE: • Visualizar el nombre del cliente. RETURN joven.CREATE PROCEDURE incidentesFLL420(fll varchar(6)) SELECTincidentes. CREATE FUNCTION `valorpromedio`(`input` INT) RETURNS INT(11) NOT DETE RMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE prome dio int. RETURN promedio. RETURN valor. END SELECT `valorpromedio`(@p0) AS `valorpromedio`. SelectMIN(edad_est) INTO joven from estudiante. RETURN nombre.incife cha. aseguramientos. la fecha y el valor del pedido más costoso. RETURN promedio. END SELECT `menorsueldo`(@p0) AS `menorsueldo`. BEGIN SELECT MAX(val_ped) INTO valor FROM pedido. 5.incilugar.SELECT nom_prof INTO nombre FROM profesor where sal_p rof=(select min(sal_prof) from profesor). Realice las Siguientes funciones en MySQL: • Cuente el número de estudiantes cuya edad sea mayor a 22. create or replace FUNCTION pedidomascostos RETURN NUMBER IS valor NUMBER. • Muestre el nombre del profesor con menor sueldo. • Mostrar cuantos artículos se tienen de cada editorial.aseguramientos WHERE inciplaca=fll call incidentesFLL420('FLL420') 4.asefechaexpiracion.aseguramientos. END. CREATE FUNCTION `contarestudiantes`(`input` INT) RETURNS INT(11) NOT DE TERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE can tidad int. END SELECT `estudiantejoven`(@p0) AS `estudiantejoven`. END SELECT `sueldopromedio`(@p0) AS `sueldopromedio`. SELECT AVG(sal_prof) INTO promedioFROM profesor WHERE cate_prof ='1'. RETURN cantidad.incidentes. . NEW. create or replace FUNCTION polizacostosa RETURN NUMBER IS valor NUMBER.HorasNuevo.NEW. • Visualizar los incidentes con el mínimo número de autos involucrados. OLD. Construya los siguiente disparadores para controlar la actualización y borrado de registros • En MySQL.ape_prof. create or replace FUNCTION menosautos RETURN NUMBER IS valor NUMBER. SalarioNuevo) VALUES (OLD.n om_prof.OLD. ApellidoNuevo. OLD. Actualización: ✓ Profesor CREATE TRIGGER `profesorupdate` BEFORE UPDATE ON `profesor` FOR EAC H ROW INSERT INTO trigger_profesores (DocumentoAnterior.cate_prof.valor_cur. • Visualizar los datos de la póliza cuyo valor asegurado es el más costoso.Ap ellidoAnterior. BEGIN SELECT asecodigo INTO valor FROM aseguramientos WHERE asevalorasegurado=(select max(asevalorasegurado) from aseguramientos ). NombreAnterior. CategoriaNuevo. debe presentar todos los datos del vehículo que tiene dicha póliza. NombreNuevo. 6.ape_prof.valor_cur). END. OLD.cod_curs. OLD. ✓ Curso CREATE TRIGGER `cursoupdate` BEFORE UPDATE ON `curso` FOR EACH RO W INSERT INTO trigger_cursos(CodigoAnterior. create or replace FUNCTION polizacostosa RETURN NUMBER IS valor NUMBER. DocumentoNuevo. HorasAnterior.cate_prof.doc_prof.horas_cur. este reporte además de visualizar todos los datos de la póliza. ValorNuevo) VALUES ( OLD.sal_prof. BEGIN SELECT incicodigo INTO valor FROM incidentes WHERE incicanautosinvolucrados=(select min(incicanautosinvolucrados) from incidentes). NEW. OLD.cod_curs. NEW. NEW. Curso. OLD. END.horas_cur. RETURN valor. Estudiante. para las tablas Profesor.nom_curs. END. de este incidente visualizar el estado de la póliza y el valor asegurado. RETURN valor. BEGIN SELECT asecodigo INTO valor FROM aseguramientos WHERE asecosto=(select min(asecosto) from aseguramientos ). SalarioAnterior. create or replace FUNCTION contareditoriales RETURN NUMBER IS valor NUMBER. BEGIN SELECT COUNT(edi_art) INTO valor FROM articulo. NombreNuev o. NEW. • Visualizar todos los datos de la póliza más costosa.sal_prof). END. NEW.doc_prof. CodigooNuevo. RETURN valor. RETURN valor. NombreAnterior.nom_curs. CategoriaAnterior. N EW.nom_ prof. NEW. V alorAnterior. OLD. HorasAnterior.DocumentoNuevo.doc_est. OLD. OLD. OLD.nom_cli.ape_est.sal_prof).ape_prof. NombreAnterior. Articulo. EdadNuevo) VALUES (OLD. CodigooNuevo. Borrado ✓ Profesor CREATE TRIGGER `profesordelete` AFTER DELETE ON `profesor` FOR EACH R OW INSERT INTO trigger_profesores (DocumentoAnterior. :NEW. SalarioNuevo) VALUES (OLD. :OLD. NombreAnterior. NombreNuevo. Actualización: ✓ Cliente create or replace trigger "CLIENTEUPDATE" BEFORE update on "CLIENTE" for each row begin INSERT INTO trigger_cliente (CodigoAnterior. OLD. :NEW. EdadAnterior. ApellidoAnterior. NEW. NEW. Pedido.dir_cli.nom_est.id_cli. OLD. :NEW.horas_cur. OLD.edad_e st. :OLD. ✓ Curso CREATE TRIGGER `cursodelete` AFTER DELETE ON `curso` FOR EACH ROW I NSERT INTO trigger_cursos(CodigoAnterior. DireccionNuevo. Valo rAnterior. OLD.doc_est. NombreAnterior.cod_curs.mes_cum_cli). A pellidoNuevo.dep_cli.edad_est). EdadAnterior.HorasNuevo. DepartamentoNuevo.id_cli. :OLD. :OLD.nom _prof.✓ Estudiante CREATE TRIGGER `estudianteupdate` BEFORE UPDATE ON `estudiante` FOR EACH ROW INSERT INTO trigger_estudiante (DocumentoAnterior. Apelli doAnterior. NombreNuevo.nom_est. OLD. end. ApellidoNuevo. DireccionAnterior. ApellidoNuev o.dep_cli.mes_cum_cli. ApellidoNuevo. CodigoNuevo.cate_prof. NombreNuevo. ApellidoAnterior. NEW. MesCumpleAnterior.NombreNuevo.ape_est.dir_cli. :NEW. DocumentoNuevo. MesCumpleNuevo) VALUES (:OLD.ape_cli. CategoriaAnterior.ape_est.ape_cli. OLD. :NEW. :OLD.valor_cur). ApellidoAnterior. ✓ Articulo create or replace trigger "ARTICULOUPDATE" BEFORE update on "ARTICULO" for each row begin . EdadNuevo) VALUES (OLD.DepartamentoAnterior. OLD. DocumentoNuevo.doc_est.SalarioAnterior.doc_prof. :NEW.NombreAnterior. ✓ Estudiante CREATE TRIGGER `estudiantedelete` AFTER DELETE ON `estudiante` FOR EA CH ROW INSERT INTO trigger_estudiante (DocumentoAnterior. OLD.nom_curs. NombreNuevo.nom_cli.nom_est. ValorNuevo) VALUES (OLD .edad_est) • En ORACLE. OLD. NEW. CategoriaNuevo. NombreAnteri or. para las tablas Cliente. NombreAnterior. AutorNuevo. INSERT INTO trigger_articulo (CodigoAnterior.id_art.prec_art. :OLD. PrecioAnterior. ValorAnterior. end. FechaAnterior. :OLD.edi_art. :OLD. ValorNuevo) VALUES (:OLD.id_ped. ApellidoNuevo. DireccionNuevo.dir_cli.id_cli_ped.id_art. :OLD. :NEW. :NEW.edi_art. NombreNuevo. FechaNuevo. :NEW.dep_cli. end. :NEW. DocumentoClienteNuevo.edi_art.val_ped). AutorAnterior. EditorialNuevo. PrecioAnterior. NombreNuevo.prec_art). CodigoNuevo. ApellidoAnterior.tit_art. EditorialAnterior. EditorialAnterior. :OLD. :OLD. Borrado ✓ Cliente create or replace trigger "CLIENTEDELETE" AFTER delete on "CLIENTE" for each row begin INSERT INTO trigger_cliente (CodigoAnterior.val_ped. :OLD.prec_art). :OLD.aut_art. :OLD.ape_cli. :OLD. ✓ Pedido create or replace trigger "PEDIDOUPDATE" BEFORE update on "PEDIDO" for each row begin INSERT INTO trigger_pedido (CodigoAnterior.fec_ped.nom_cli. NombreAnterior. CodigoNuevo.fec_ped. :NEW. :OLD.aut_art. AutorAnterior.id_ped.DepartamentoAnterior. :OLD. end. :OLD. ✓ Articulo create or replace trigger "ARTICULODELETE" AFTER delete on "ARTICULO" for each row begin INSERT INTO trigger_articulo (CodigoAnterior.aut_art. :OLD. NombreNuevo. :OLD.tit_art.mes_cum_cli). PrecioNuevo) VALUES (:OLD. MesCumpleNuevo) VALUES (:OLD. :OLD. AutorNuevo. :NEW. ✓ Pedido create or replace trigger "PEDIDODELETE" AFTER delete on "PEDIDO" for each row begin .id_cli_ped. DocumentoClienteAnterior. :NEW. NombreAnterior.id_art. PrecioNuevo) VALUES (:OLD. EditorialNuevo. :NEW. MesCumpleAnterior. CodigoNuevo. end. :NEW.id_cli. DepartamentoNuevo. DireccionAnterior. CodigoNuevo.tit_art. FechaNuevo. PlacaNuevo. NEW. Actualización: ✓ Automotores CREATE TRIGGER `automotoresupdate` BEFORE UPDATE ON `automotores` F OR EACH ROW INSERT INTO trigger_automotores (PlacaAnterior.CantidadFatalidadesNuevo. Aseguramientos. OLD. OLD. CostoAnterior.autonumpasajeros.autonumpasajeros.inciplaca.incicodigo. MarcaAnterior.fec_ped. OLD. CostoNuevo.asevaloraseg urado. OLD. LugarAnterior. PlacaNuevo. TipoNuevo. ModeloNuevo.aseplaca) ✓ Incidentes CREATE TRIGGER `incidentesupdate` BEFORE UPDATE ON `incidentes` FOR E ACH ROW INSERT INTO trigger_incidentes(CodigoAnterior.incicantherido s. OLD. MarcaNuevo. CilindrajeNuevo. OLD. PlacaNuevo.asecodigo. CodigoNuevo. ValorAseguradoAnterior.incilugar. Incidentes.asefechaexpiracion. TipoNuevo.autonumch asis) ✓ Aseguramientos CREATE TRIGGER `aseguramientosupdate` BEFORE UPDATE ON `aseguramie ntos` FOR EACH ROW INSERT INTO trigger_aseguramientos(CodigoAnterior.autoplaca. NumeroChasisNuevo)VALUES (OLD. N EW. OLD.id_ped. MarcaNuevo.asefechaexpiracion. NEW.inciplaca.autotipo. NEW.NumeroPasajerosAnterior. CilindrajeNuevo.autoplaca.incicantheridos. NEW. NumeroP asajerosNuevo. OLD. :OLD.EstadoNuevo. Tip oAnterior. OLD. Automotores. NEW. • En el Motor de su preferencia (ORACLE O MySQL).asevalorasegurado. NEW. NEW. NEW. CodigoNuevo. OLD.au tocilindraje.autocilindraje.NEW. NEW.OLD. NEW. end.incicanautosinvolucrados.aseestado. OLD.asecodigo. PlacaAnterior.val_ped). ModeloAnterior. CilindrajeAnterior. NEW. FechaNuevo. OLD. CantidadAutosInvolucr adosNuevo) VALUES (OLD. NEW. OLD. ValorAnterior.incifecha. NEW. Ca ntidadAutosInvolucradosAnterior. OLD. CantidadFatalidadesAnterior. DocumentoClienteNuevo. FechaExpiracion Nuevo.incilug ar.autonumchasis. :OLD. PlacaNuevo) VALUES (OLD. CilindrajeAnterior. FechaInicioNuevo. ValorAseguradoNuevo.asecosto. NEW. NEW.incicanautosinvolucrados) Borrado ✓ Automotores CREATE TRIGGER `automotoresdelete` AFTER DELETE ON `automotores` FOR EACH ROW INSERT INTO trigger_automotores (PlacaAnterior.NumeroPasajerosAnterior.CantidadHeridosAnterior. OLD.asefechainicio.automarca. . MarcaAnterior .asef echainicio.automarca. :OLD. CantidadHeridosNuevo. NumeroChasisNuevo)VALUES (OLD. ValorNuevo) VALUES (:OLD. Fe chaInicioAnterior. DocumentoClienteAnterior.automodelo. FechaAnterior. NEW. OLD. NEW. TipoAnterior.autoplaca. ModeloNuevo.incicanfatalidades. OLD. OLD. EstadoAnterio r.aseestado. FechaAnterior.id_cli_ped.aseplaca. INSERT INTO trigger_pedido (CodigoAnterior.FechaExpiracionAnterior. NEW.automodelo. NumeroPasaje rosNuevo.incicodigo. para las tablas. NumeroCh asisAnterior. CodigoNuevo.autotipo. Lugar Nuevo.incicanfatalidades. NEW.asecosto. Nume roChasisAnterior. ModeloAnterior. Placa Anterior.incifecha. Atletas por país 4. OLD. double tiempo[].EstadoNuevo. OLD. OLD. String nacionalidad[]. Debe emplear arreglos para su solución.FechaExpiracionAnterior. OLD.CantidadHeridosAnterior. CodigoNuevo. OLD. Características de la aplicación: La aplicación debe desarrollarse de manera orientada a objetos.autotipo. automarca.autonumpasajeros.JOptionPane. Tiempo promedio de todos los atletas: Muestra el tiempo promedio de los atletas registrados.incicodigo. CodigoNuevo. 3. ValorAseguradoNuevo. import javax. public class Ejercicio1 { public static void main(String[] args) { //Declaracion de variables String nombre[].autonumchasis) ✓ Aseguramientos CREATE TRIGGER `aseguramientosdelete` AFTER DELETE ON `aseguramiento s` FOR EACH ROW INSERT INTO trigger_aseguramientos(CodigoAnterior. Cantid adAutosInvolucradosAnterior. LugarAnterior. Competencia y Principal. C ostoAnterior. Desarrolle una aplicación que presente el siguiente menú: Competencia 1. Datos del campeón. OLD. OLD. OLD. FechaAnterior.asecosto. FechaNuevo. nacionalidad y su tiempo.asefechaexpiracion. En una competencia participan N atletas de los cuales es importante conocer su nombre.asefechainicio. PlacaNuevo.incicanautosinvolucrados) Elementos del lenguaje de programación y estructuras de datos en JAVA 1. Atletas por país: Solicita el nombre del país y muestra los nombres de todos los atletas de ese país.incicanfatalidades.aseplaca) ✓ Incidentes CREATE TRIGGER `incidentesdelete` AFTER DELETE ON `incidentes` FOR EAC H ROW INSERT INTO trigger_incidentes(CodigoAnterior. ValorAseguradoAnterior.swing. incluyendo las clases Atleta. CostoNuevo. Registrar Atleta 2. OLD. PlacaNuevo) VALUES (O LD.asevalorasegur ado. CantidadFatalidadesAnterior. String nombremin = null. LugarNue vo. FechaInicioNuevo. OLD.OLD. CantidadAutosInvolucrado sNuevo) VALUES (OLD. OLD. Salir Registrar Atleta: Debe solicitar el nombre. EstadoAnterior. CantidadHeridosNuevo. OLD.autocili ndraje. int totalAtletas. FechaExpiracionNu evo.asecodigo. .inciplaca. Tiempo promedio de todos los atletas 5. PlacaAnterior.incilugar.automodelo. la nacionalidad y el tiempo del atleta Datos Campeón: Muestra el nombre. OLD. double may=0.CantidadFatalidadesNuevo. OLD. PlacaAnt erior.incifecha.incicantheridos. Fecha InicioAnterior. la nacionalidad y el tiempo del atleta cuyo tiempo es el menor de todos. String nacionalidadmin = null.aseestado. OLD. OLD. "Ingrese la nacionalidad para mostrar los atletas de ese pais: "). "Ingrese la nacionalidad del Atleta: "). double tiempoPromedio.showMessageDialog(null. JOptionPane. totalAtletas=Integer. Datos del campeon").showInputDialog(null. JOptionPane. //Registrar atletas JOptionPane. String nacionalidadpais. for (int i=0. "1. tiempo[i]=Double. //Atletas por pais JOptionPane. "El nombre del atleta campeon es " + nombremin + " de nacionalidad " + nacionalidadmin + " cuyo tiempo fue " + may). i++){ if (tiempo[i]>may){ may=tiempo[i]. i<totalAtletas.showMessageDialog(null.showMessageDialog(null.showMessageDialog(null. double sumTiempo=0. sumTiempo=sumTiempo+tiempo[i]. nacionalidad[i]=JOptionPane.equals(nacionalidad[i])){ nombreatletapais=nombre[i]. } } .showMessageDialog(null. "5.showInputDialog(null. i++){ if (nacionalidadpais == null ? nacionalidad[i] == null : nacionalidadpais.parseDouble(JOptionPane.showMessageDialog(null. "2. //Menu JOptionPane. Tiempo promedio de todos los atletas \n" + "5. Atletas por pais"). Registrar Atleta"). "Ingrese el tiempo en minutos del Atleta: ")). for(int i=0. for (int i=0. "El tiempo promedio de los atletas fue " + tiempoPromedio).showInputDialog(null. nombre=new String[totalAtletas]. "3.showMessageDialog(null. Salir"). i<totalAtletas. "Ingrese la cantidad de Atletas ")). nacionalidad=new String[totalAtletas]. tiempoPromedio=sumTiempo/totalAtletas. } //Datos campeon JOptionPane. Tiempo promedio de todos los atletas").showMessageDialog(null.showInputDialog(null. JOptionPane.showInputDialog(null. Registrar Atleta \n" + "2. "Ingrese el nombre del Atleta: "). " Competencia \n" + "1. String nombreatletapais. "El nombre de un atleta de nacionalidad " + nacionalidadpais + " es " + nombreatletapais). nacionalidadmin=nacionalidad[i]. i<totalAtletas. } } JOptionPane. Atletas por pais \n" + "4. Datos del campeon \n" + "3. i++){ nombre[i]=JOptionPane.parseInt(JOptionPane. "4. nacionalidadpais=JOptionPane. Salir"). tiempo=new double[totalAtletas]. } } //Promedio del tiempo de los atletas JOptionPane. nombremin=nombre[i].showMessageDialog(null. } int getValor(int valor) { return (int) (numeros. • Obtener los últimos n elementos del arreglo. } . • Obtener los primeros n elementos del arreglo. } public void setValor(int posicion. • Calcular la sumatoria de los valores de todos los elementos. • Obtener el número de elementos. • Modificar el valor de una posición por otro valor suministrado. Para conseguir el objetivo. } public void eliminar(int valor) { // Metodo para eliminar elementos de numeros numeros. • Obtener el valor de una posición determinada. valor). se le suministra la clase principal y la clase de prueba. • Cambiar todo el contenido.2. la cual permita tener las siguientes funcionalidades: • Insertar elementos (al inicio. • Calcular el promedio de los valores de todos los elementos.out. } public void agregarAlFinal(Object valor) { numeros. • Contar el número de repeticiones dado un número. } public void mostrarContenido() { // metodo para mostrar el contenido de numeros System. • Mostrar el contenido del arreglo.*.println(numeros). // metodo para mostrar los elementos que contiene numeros } int cuentaElementos() { // metodo para saber el tamaña del ArrayList int valor = numeros.add(posicion. argumentos y tipos de datos para la codificación. • Obtener el menor valor. int valor) { // Metodo para reemplazar valores en numeros numeros.add(valor). // Declaracion ArrayList numeros public void insertarAlFinal(int valor) { // Metodo para insertar valores en numeros numeros. al final). • Eliminar elementos.remove(valor). import java.get(valor)). • Indicar si un número se encuentra dentro del arreglo. • Calcular la suma de los pares. } public void insertarAlPrincipio(int valor) { // Metodo insertar al principio del ArrayList numeros. tenga en cuenta los nombres de los métodos. • Asignar valor a una posición determinada.add(valor). Desarrolle una aplicación utilizando colecciones. • Contar el número de valores igual a cero (0).add(0. • Invertir el arreglo. return valor. • Obtener el mayor valor. valor).size().util. // Importando Java util public class MiColeccion { // Clase MiColeccion ArrayList numeros = new ArrayList(). • Indicar si es palíndromo. int getSumatoria() { // metodo para sumar los elementos del ArrayList int suma = 0. double promedio = 0. for (Object numero : numeros) { suma = suma + (int) numero. } } return cantidad. } int cuentaRepeticiones(int num) { // Metodo que cuenta el numero de veces que se repite el numero 2 en el Array . for (Object numero : numeros) { if ((int) numero == 0) { cantidad = cantidad + 1. } return suma. } int cuentaCeros() { // metodo para contar los ceros dentro del ArrayList int cantidad = 0. for (Object numero : numeros) { if (((int) numero % 2) == 0) { par = par + (int) numero. } } return par.size(). promedio = suma / numeros. } double getPromedio() { // Metodo para conocer el promedio de los elementos del ArrayList int suma = 0. } int sumaPares() { // Metodo para sumar los numeros pares dentro del ArrayList int par = 0. for (Object numero : numeros) { suma = suma + (int) numero. } return promedio. numeros. } 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. for (Object numero : numeros) { if ((int)numero <= menor) { menor=(int) numero.add(9). } } return cuenta. for (Object numero : numeros) { if ((int) numero == 2) { cuenta = cuenta + 1. } public void reemplazarValor(int antiguoValor.add(11). int cuenta = 0. } public void reemplazarTodo() { // Metodo para reemplazar todo el Array numeros. } } return menor. } boolean buscar (int numero){ // Metodo para buscar un numero dentro del Array. int nuevoValor) { // Metodo para reemplazar un valor dentro del Array numeros. } int getMenor ( ){ // Metodo para obtener el menor numero dentro del Array int menor=11.set(antiguoValor. nuevoValor).clear(). . } } return mayor. numeros. numeros.add(10). getMayor()).out. mc1. mc1.mostrarContenido().cuentaRepeticiones(2) + " veces"). 9). mc1.insertarAlFinal(1).mostrarContenido().out. System.insertarAlPrincipio(4).insertarAlFinal(2).agregarAlFinal(10). //ArrayList al=new ArrayList().println("En la coleccion hay " + mc1. mc1.mostrarContenido(). } } public class TestMiColeccion { public static void main(String[] args) { System. return numeros. 0).insertarAlFinal(1).cuentaElementos() + " elementos").insertarAlFinal(2).mostrarContenido().mostrarContenido(). mc1. mc1. mc1. mc1.mostrarContenido().out. System.cuentaCeros() + " ceros"). //mc1. mc1. System.setValor(0.println("Y hay " + mc1. System.agregarAlFinal(9).out.println("El numero 2 esta " + mc1.println("El mayor elemento es: " + mc1.contains(numero).reemplazarTodo().println("Mi Coleccion 1").out.println("En la posicion 4 esta el " + mc1.getPromedio()).insertarAlFinal(3). mc1. mc1. mc1. mc1.println("El menor elemento es: " + mc1.buscar(3)). System. mc1. System.out. mc1. mc1. System.out. mc1.insertarAlFinal(3). mc1.reemplazarValor(0.println("La sumatoria de sus elementos es: " + mc1.setValor(6.println("La sumatoria de los pares es: " + mc1.eliminar(5). mc1.println("El promedio de sus elementos es: " + mc1.out. mc1.out.out.eliminar(0). mc1. System.out. System. 0).agregarAlFinal(al). mc1.getMenor()). mc1. MiColeccion mc1 = new MiColeccion().agregarAlFinal(11).getSumatoria()).println("Esta el 3 en la lista? "+mc1. System.mostrarContenido().getValor(4)).sumaPares()). } } . • El valor final de la cita depende de la tarifa y el tipo de cita. 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”. else return "Especialista". public class Cita { int numero. double valorFinal=0. } public double calcularValorFinal() { double percent=tarifa*0. Cree y compile la siguiente clase: Cita -int numero -int tipo -double tarifa -double valorFinal +Cita(int numero. double tarifa) { this. } public int getNumero() { return numero. 2 o 3 y será especialista si el tipo de cita es 4 o 5. this. Cree la clase Principal.numero=numero. será general si la cita es tipo 1.5. int tipo. . public Cita(int numero. int tipo. } public double getTarifa() { return tarifa. } public String getTipo() { if(tipo<=3) return "General".tipo=tipo. this. double tarifa.tarifa=tarifa.Programación orientada a objetos en JAVA 1.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. 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. showInputDialog(null.out.tarifa)."Introduzca el numero de la cita")).out. System. if(tipo<=3){ valorFinal=tarifa-percent.println("Su tarifa normal es: "+ cita.println("El numero de la cita es: "+cita.println("El tipo de cita es: "+ cita.getTipo() + " queda con un valor final de: " + cita. public class Principal1 { public static void main(String[] args) { int numero =Integer.swing.tipo. System. } } 2. } return valorFinal. int tipo = Integer.parseInt(JOptionPane. 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.parseInt(JOptionPane.getNumero()).out. } else{ valorFinal=tarifa+percent.parseDouble(JOptionPane. int capacidad. 2 y 3 y para especialista: 4 y 5)")). double tarifa = Double. teniendo en cuenta .getTarifa()). "Introduzca la tarifa")). Cita cita= new Cita(numero. System.int totalPasajeros +Bus (String placa.getTipo()). } } package EjerciciosJava.calcularValorFinal()).out. import javax. Cree y compile la siguiente clase: Bus -String placa -int capacidadPasajeros -double precioPasaje -int pasajerosActuales . System.JOptionPane.println("Pero por ser de tipo " + cita.showInputDialog(null. "Introduzca el tipo de cita (Para general: 1.showInputDialog(null. } public int getPasajerosActuales(){ return pasajerosActuales.precioPasaje=pasaje. . int totalAcumulado. teniendo en cuenta que no baje más pasajeros de los que realmente existen en el bus. } public int getCapacidad(){ return capacidadPasajeros.java donde instancie un objeto de la clase Bus y pruebe cada uno de sus métodos.JOptionPane. double precioPasaje. int pasajeros1.capacidadPasajeros=capacidad. int capacidadPasajeros.pasajerosActuales=actuales. Cree y compile la clase Principal. public int pasajeroSsubidos. double pasaje.que no sobrepase la capacidad del bus. int capacidad. } public String getPlaca(){ return placa. int pasajerosActuales. public class Bus { String placa. } public double getPrecioPasaje(){ return precioPasaje. int totalPasajeros. this. import javax. • 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. public Bus (String placa. • bajarPasajeros: baja una cantidad de pasajeros del bus.swing. this. int actuales){ this. this. package EjerciciosJava. } public int getPasajerosTotales(){ return totalPasajeros. double dineroAcumulado.placa=placa. . " No se pueden subir " + pasajeros + ". " No se pueden subir " + pasajeros + ". } else { if ((pasajerosActuales + pasajeros) > capacidadPasajeros) { JOptionPane. }else{ totalPasajeros=pasajeros. porque es SOBRECUPO "). porque es SOBRECUPO ").} public void subirPasajeros(int pasajeros){ if (pasajeros > capacidadPasajeros) { JOptionPane. } public double totalDineroAcumulado(){ return dineroAcumulado. } } } package EjerciciosJava.showMessageDialog(null. } else{ pasajerosActuales=pasajerosActuales-pasajeros1. } public void bajarPasajeros(int pasajeros1){ if (pasajeros1>pasajerosActuales) { JOptionPane. "La cantidad de pasajeros que desea bajar es mayor al numero de pasajeros que actualmente hay en el bus!!!"). totalAcumulado = pasajerosActuales + pasajeros. pasajerosActuales=pasajerosActuales+pasajeros.showMessageDialog(null.showMessageDialog(null. } } } public void getDineroAcumulado(){ dineroAcumulado=(pasajerosActuales*precioPasaje). getPasajerosActuales())."Ingrese capacidad del bus"))."La placa del bus es: "+bus.String numero ."El dinero acumulado es: $" + bus. }else{ Bus bus = new Bus(placa. JOptionPane. } } } 3.println("Error!!! El numero actual de pasajeros sobrepasa la capacidad del bus").double saldoActual .showInputDialog("Digite placa del bus").getDineroAcumulado().showMessageDialog(null.parseInt(JOptionPane. JOptionPane."El numero de pasajeros actuales es: "+bus.parseInt(JOptionPane. bus. double pasaje = Double. int actuales = Integer. int pasajeros=Integer.double saldoMinimo + Cuenta(int numero."El numero de pasajeros que se han subido es: "+bus.showInputDialog(null. "Ingrese numero de pasajeros que estan en el bus ")).showInputDialog(null.String tipo . public class Principal2 { public static void main(String[] args) { String placa=JOptionPane.getPlaca())."Ingrese cantidad de pasajeros a subir al bus!")).import javax. int pasajeros1= Integer."Valor pasaje")). JOptionPane.showInputDialog(null. bus. JOptionPane.showMessageDialog(null.bajarPasajeros(pasajeros1).parseInt(JOptionPane. if (actuales>capacidad) { System.showInputDialog(null. JOptionPane.showMessageDialog(null.actuales).swing.pasaje. Cree y compile la siguiente clase: Cuenta ."El bus tiene una capacidad de: "+bus.showMessageDialog(null.totalDineroAcumulado()).getCapacidad()).parseDouble(JOptionPane. bus.parseInt(JOptionPane.getPasajerosTotales()).showInputDialog(null.JOptionPane. String tipo. "Ingrese numero de pasajeros que va a bajar del bus")).capacidad.showMessageDialog(null. int capacidad=Integer.subirPasajeros(pasajeros). double valorInicial) + void consignar (double monto) + void retirar (double monto) + double getSaldo() + double getSaldoMinimo() + double getCapacidadCredito() .out. JOptionPane.swing. double autorizado.valorInicial=valorInicial. si esto ocurre. this. double capacidadCredito. double saldoActual. double saldoMinimo. double valorInicial. • getCapacidadCredito(): Para cuentas de ahorro. double capacidad.double valorInicial){ this. • Consignar (double monto): incrementa el dinero de la cuenta con base en el monto de dinero que se desea consignar.java y en ella cree un objeto de la clase Cuenta y pruebe cada uno de sus métodos. la capacidad de crédito es 3 veces el saldo actual. • getSaldo(): obtiene el saldo actual de la cuenta. } /* -----------------------------------/ .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.tipo=tipo. • getSaldoMinimo(): obtiene el saldo mínimo de la cuenta.String tipo. } /* -----------------------------------/ / Método para consignar en la cuenta / /------------------------------------*/ public void consignar (double monto){ saldoActual=saldoActual+monto. import javax. 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. Cree y compile la clase Principal.numero=numero. package EjerciciosJava. String tipo.saldoActual=valorInicial. solo se retirará el dinero autorizado. public class Cuenta { /* ---------------------------/ / Atributos de la clase cuenta/ /----------------------------*/ int numero. /* ---------------------------/ / Metodos de la clase Cuenta / /----------------------------*/ // Metodo Constructor Cuenta(int numero. this. this. • 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. / Método para saber saldo mÃÂnimo / /------------------------------------*/ double getSaldoMinimo(){ saldoMinimo=valorInicial*0. "No puede retirar ésta cantidad de dinero porque su saldo actual serÃÂa inferior a su saldo mÃÂnimo\n" + ". } /* -------------------------------------------/ / Método para conocer la capacidad de crédito/ /-------------------------------------------*/ double getCapacidadCredito(){ if ("ahorro". } /* -----------------------------------/ / Método para retirar dinero de la cuenta / /------------------------------------*/ public void retirar (double monto1){ saldoActual=saldoActual-monto1. return saldoMinimo.showMessageDialog(null.1. autorizado=saldoActual-saldoMinimo. saldoActual=saldoActual-autorizado. por lo tanto solo puede retirar: " + autorizado). JOptionPane.equals(tipo)) { capacidadCredito=saldoActual-saldoMinimo. } if ("credito". if (saldoActual<saldoMinimo) { saldoActual=saldoActual+monto1. } } /* ----------------------------------/ / Método para consultar saldo / /-----------------------------------*/ double getSaldo(){ return saldoActual.equals(tipo)) { . swing. } return capacidadCredito. cuenta.consignar(monto).showInputDialog("Digite la cantidad de dinero a consignar")).showInputDialog("Digite el numero de la cuenta")). } } 4. public class Principal3 { public static void main(String[] args) { /* --------------------------/ / Captura de datos inicales / /---------------------------*/ int numero=Integer. JOptionPane. double monto1=Double.showMessageDialog(null. String tipo=JOptionPane.showInputDialog("Digite el tipo de cuenta.showMessageDialog(null. } } package EjerciciosJava.JOptionPane.parseDouble(JOptionPane."Su saldo Actual es: " + cuenta. cree las clases correspondientes y su respectivo código para generar los listados que se solicitan a continuación: Banco . double monto=Double. ahorro o credito").getCapacidadCredito())."Su capacidad de Credito es: " + cuenta. JOptionPane."El saldo minimo de su cuenta es: " + cuenta.showInputDialog("Digite el valor que va a consignar inicialmente")). JOptionPane.tipo.valorInicial).getSaldoMinimo()). double valorInicial=Double.getSaldoMinimo().parseDouble(JOptionPane. import javax.retirar(monto1). cuenta. A partir del siguiente diseño.parseDouble(JOptionPane.getSaldo()).showInputDialog("Digite la cantidad de dinero a retirar")). /* --------------------------/ / Creando el objeto Cuenta / /---------------------------*/ Cuenta cuenta=new Cuenta(numero. capacidadCredito=saldoActual*3.parseInt(JOptionPane.showMessageDialog(null. cuenta. JOptionPane. import javax. } public void cambiarNombre(String nombre){ } public void adCliente(Cliente clie){ } public int obtNumClientes(){ return numeroDeClientes. public Banco(String nomb){ this. int numeroDeClientes. Cliente clientes[].String nom. } } . class Banco{ String nombre.nombre=nomb. } Cliente obtCliente(int posicion){ return null.String nom. } public String obtnombre(){ return nombre.int ed) + String obtIdentificacion( ) + String obtEdad( ) + void cumplirAños( ) package Ejercicios. } Cliente[] obtClientes(){ return null.-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.swing.String r) + String obtIdentificacion( ) + String obtRepresentante( ) + String cambiarRepres(String repres) Persona -String cedula -int edad + Persona(String ced. nombre=nom. String nom. } abstract String obtIdentificacion(). } public String obtRepresentante(){ return representante. String representante.package Ejercicios. String r){ super(nom). this. public Empresa(String n. . public Cliente(String nom) { this. } public String obtNombre() { return nombre. } public int obtEdad(){ return 1000.nit=n. } package Ejercicios. } public String cambiarRepres(String repres){ return null. abstract String obtRepresentante(). abstract int obtEdad().representante=r. abstract class Cliente{ protected String nombre. this. class Empresa extends Cliente{ String nit. } public String obtIdentificacion(){ return nit. JOptionPane. this. int edad. public class Principal4 { private static Cliente per. String nom.showInputDialog(null.List.util.util. import java.Iterator.swing. } public String obtIdentificacion(){ return cedula.ArrayList. int ed){ super(nom).edad=ed. } public int obtEdad(){ return edad. int numeroDeClientes = Integer. "Ingrese el numero de clientes")). i <= numeroDeClientes. } } package Ejercicios. public static void main(String args[]) { List<Cliente> lista = new ArrayList<>(). } public void cumpliranos(){ } public String obtRepresentante(){ return null. import java. public class Persona extends Cliente{ String cedula. public Persona(String ced. i++) { . } } package Ejercicios. import java.parseInt(JOptionPane. import javax.cedula=ced.util. this. for (int i = 1. obtNombre()). nom.println("El nombre del representante es "+lista.obtNombre()).println("Todos los nombres y cedulas de las personas clientes del banco son: ").out. } } System. } System.out.obtEdad()<18){ System.println("El nombre del cliente es "+lista. for(int cuenta = 0.obtEdad()<menor){ menor=lista.obtNombre()). "Ingrese la edad de la persona")).nombre). //AQUI ES DONDE SE ASIGNA EL OBJETO AL ARRAY LIST lista.showInputDialog(null.showInputDialog(null.out. Empresa emp = new Empresa(nit. System.obtEdad()>1){ if (lista. cuenta++){ if (lista. Persona per = new Persona(ced. cuenta++){ if (lista.parseInt(JOptionPane.size().obtIdentificacion()).get(cuenta) instanceof Empresa){ System. //ESTA LINEA ES LA QUE UD BORRO. cuenta < lista.showInputDialog(null.println(lista. ed). cuenta++){ if (lista.get(cuenta). if (tipoCliente == 1) { String nit = JOptionPane.get(cuenta) instanceof Persona){ if (lista.println("El nombre del cliente es "+lista. //Esta linea no se con que fin es //emp. for(int cuenta = 0. nom.showInputDialog(null.get(cuenta).size().out. "Ingrese el tipo de cliente: 1 para Empresa o 2 para Persona")).size(). int tipoCliente = Integer.println("El nombre del cliente es "+lista. "Ingrese el representante"). r). String nom = JOptionPane.size().println("Todos los nombres que tiene el banco son: "). cuenta < lista.println("Los nombres de los clientes menores de edad son: ").size().obtEdad(). for(int cuenta = 0.println("Todos los nombres y representantes de cada empresa son: ").parseInt(JOptionPane. String r = JOptionPane.out.out. for(int cuenta = 0. } } System. cuenta < lista. AQUI ES DONDE SE ASIGNA EL OBJETO AL ARRAY LIST lista.get(cuenta). cuenta++){ System.showInputDialog(null.obtIdentificacion().out.println("La cedula del cliente es "+lista.out. } } System. } else { String ced = JOptionPane.get(cuenta).add(per).get(cuenta) instanceof Persona){ System. cuenta++){ if (lista. "Ingrese la cedula de la persona"). int ed = Integer.add(emp).get(cuenta).out. "Ingrese el nombre del cliente").obtRepresentante().get(cuenta).get(cuenta).get(cuenta). for(int cuenta = 0. System.out. } . emp. "Ingrese el nit de la empresa").get(cuenta).obtRepresentante()).get(cuenta) instanceof Persona){ if (lista.get(cuenta). cuenta < lista.showInputDialog(null. } } } int menor=1000. cuenta < lista. 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.size(). } } } } System.get(cuenta). 35% de la calificación del examen final. height:30px'> </BODY> </HTML> .out.println("La edad del cliente mas joven es "+menor ). Basado en el siguiente prototipo. <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.println("La edad del cliente mas viejo es "+mayor).obtEdad().get(cuenta) instanceof Persona){ if (lista. for(int cuenta = 0. cuenta++){ if (lista. cuenta < lista. 30% de la calificación de un trabajo final. int mayor=0. } } } System. } } Codificar aplicaciones en PHP 1. 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.out.get(cuenta).obtEdad()>18){ if (lista.get(cuenta).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.obtEdad()>mayor){ mayor=lista. $parcial3=$_POST['parcial3']. if($notaFinal<3){ echo "El estudiante no aprobó". $examenFinal=$_POST['examenFinal'].$parcial1."<br>".$parcial3.$notaFinal. $porcentajeExamen=$examenFinal*0."<br>".<CENTER><H1>Calcular la nota final de la materia</H1></CENTER> <?php $parcial1=$_POST['parcial1']."<br>". echo "La nota del parcial 2 es:". $parcial2=$_POST['parcial2']. más el 5% del valor de la venta. } ?> 2. $porcentajeTrabajo=$trabajoFinal*0.35. $notaFinal=$porcentajeParciales+$porcentajeExamen+$porcentajeTrabajo. 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."<br>".$examenFinal.30. echo "La nota final es: ".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" . echo "La nota del parcial 1 es:"."<br>".$trabajoFinal. } else{ echo "El estudiante aprobó". $promedioParciales= ($parcial1 + $parcial2 + $parcial3)/3. $trabajoFinal=$_POST['trabajoFinal']. echo "La nota del examen final es:". Basado en el siguiente prototipo.35."<br>". echo "La nota del trabajo final es:". echo "La nota del parcial 3 es:".$parcial2. $porcentajeParciales= $promedioParciales*0. <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. $nombre.$salario. Quetelet. $salario=$salarioBasico+$comision+$porcentajeVenta. $porcentajeVenta=$precioTotal*0.$cantidad."<br>". $precioTotal=$_POST['precioTotal']. ?> 3.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. 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."<br>". height:30px'> </BODY> </HTML> <H1>Calcular el salario de un vendedor</H1></CENTER> <?php $nombre=$_POST['nombre']. A. echo "El precio total de automoviles vendidos es:". 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. $comision=$cantidad*50000. $salarioBasico=450000. echo "La cantidad de automoviles vendidos es: "."<br>".SIZE="20"> <BR> <BR> <INPUT TYPE="submit" VALUE="Enviar" style='width:80px. $cantidad=$_POST['cantidad']. Ideado por el estadístico belgaL. height:30px'> .05. echo "El nombre del vendedor es: ". J. por lo que también se conoce como índice de Quetelet. El índice de masa corporal (IMC) es una medida de asociación entre el peso y la talla de un individuo."<br>". echo "El salario del vendedor es: ".$precioTotal. </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"; } } ?> IMPLEMENTACIÓN DE CASOS DE PRUEBA IMPLEMENTACIÓN DE CASOS DE PRUEBA Código if (radioButton1.Checked == true) { double horasTrabajadas = Convert.ToDouble(textBox1.Text), nomina = 0; if (horasTrabajadas > 40) { nomina = (40 * 12000) + ((horasTrabajadas - 40) * (12000 * 0.25 + 12000)); } else { nomina = horasTrabajadas * 12000; } label4.Text = "El salario es: $" + nomina; } Text = "El salario es: $" + nomina. } if (radioButton3. if (horasTrabajadas > 40) { nomina = (40 * 22000) + ((horasTrabajadas .Checked == true) { double horasTrabajadas = Convert.Checked == true) { double horasTrabajadas = Convert.ToDouble(textBox1.40) * (22000 * 0.40) * (17000 * 0.Text = "El salario es: $" + nomina. if (radioButton2.Text). nomina = 0.25 + 17000)). } label4.Text). Grafo . } label4. } } Prueba de camino básico 1. nomina = 0.25 + 22000)). } else { nomina = horasTrabajadas * 22000. if (horasTrabajadas > 40) { nomina = (40 * 17000) + ((horasTrabajadas . } else { nomina = horasTrabajadas * 17000.ToDouble(textBox1. H=1. S=495000 acgk 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 C=2. H=41. H=41. S=22000 adjk 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 C=3. Casos de prueba Aristas Caminos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Casos de prueba abek 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 C=1.11 + 2 V(G) =6 3. S=12000 abfk 1 0 0 0 5 0 0 0 0 0 1 0 0 0 0 C=1. H=1. 4. Casos de prueba para cobertura de decisiones D1: (Categoría=1) D2: (Horas extras>40) E1: (Categoría=2) E2: (Horas extras>40) F1: (Categoría=3) F2: (Horas extras>40) 2. Datos concretos para los casos de prueba Caso Valor verdadero Valor falso D1 1 2 D2 41 39 E1 2 3 E2 41 39 . H=1. Complejidad ciclomática V(G) = #Aristas . S=17000 achk 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 C=2.#Nodos + 2 V(G) = 15 . S=701250 adik 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 C=3. S=907500 Prueba de condición 1. H=41. Caminos linealmente independientes: Existen seis caminos linealmente independientes.2. D2=Falso (Categoría=1.1 Horas extras>40 F1: (Categoría=3) C5. E2=Verdadero (Categoría=2.1 Categoría=1 D2: (Horas extras>40) C2.1 Categoría=2 E2: (Horas extras>40) C4. Horas extras=39) Caso de prueba 6: E1=Falso (Categoría=3) Caso de prueba 7: F1=Verdadero. E2=Falso (Categoría=2. Horas extras=41) Caso de prueba 8: F1=Verdadero. Casos de prueba para cubrir todas las decisiones Caso de prueba 1: D1=Verdadero. Horas extras=39) Caso de prueba 3: D1=Falso (Categoría=2) Caso de prueba 4: E1=Verdadero. F2=Verdadero (Categoría=3. Horas extras=41) Caso de prueba 2: D1=Verdadero. F2=Falso (Categoría=3. F1 3 1 F2 41 39 3. Datos concretos para los casos de prueba . Horas extras=39) Caso de prueba 9: F1=Falso (Categoría=1) 4. Casos de prueba para obtener una cobertura total de decisión/condición: D1: (Categoría=1) C1.1 Categoría=3 F2: (Horas extras>40) C6. D2=Verdadero (Categoría=1.1 Horas extras>40 4.1 Horas extras>40 E1: (Categoría=2) C3. Horas extras=41) Caso de prueba 5: E1=Verdadero. Horas extras=39) Caso de prueba 3: C1.1=Verdadero. (Categoría=2.1=Verdadero. C4. (Categoría=1. Horas extras=41) Caso de prueba 8: C5.1=Verdadero.1=Verdadero.1=Verdadero. (Categoría=3. C6.1=Falso. C2.1 Horas extras=41 Horas extras=39 C3. (Categoría=2.1=Verdadero. Caso Valor verdadero Valor falso C1. C6.1=Falso.1=Verdadero. (Categoría=3. (Categoría=1) Partición de equivalencia Caso Clase valida Clase invalida 1 Categoría =1 Todo lo diferente a 1 2 Horas extras>40 Horas extras<=40 3 Categoría =2 Todo lo diferente a 2 .1=Verdadero.1 Horas extras=41 Horas extras=39 C5.1=Falso. C2. (Categoría=1.1=Verdadero. C2. C6. C4.1=Verdadero.1 Categoría=3 Categoría=1 C6.1=Verdadero. Horas extras=41) Caso de prueba 5: C3. (Categoría=2) Caso de prueba 4: C3.1=Falso. Horas extras=39) Caso de prueba 9: C5. Horas extras=41) Caso de prueba 2: C1.1 Horas extras=41 Horas extras=39 Caso de prueba 1: C1.1 Categoría=2 Categoría=3 C4.1=Falso.1=Falso.1 Categoría=1 Categoría=2 C2. (Categoría=3) Caso de prueba 7: C5. Horas extras=39) Caso de prueba 6: C3. C4.1=Verdadero. Horas extras=39) Caso de prueba 9: 5=Invalida.1 Horas extras=0. (Categoría=2) Caso de prueba 4: 3= Valida. (Categoría=3. 4 Horas extras>40 Horas extras<=40 5 Categoría =3 Todo lo diferente a 3 6 Horas extras>40 Horas extras<=40 Caso de prueba 1: 1=Valida. 4= Invalida. 2= Valida. 2=Invalida. (Categoría=2. 6= Valida. (Categoría=3. Horas extras=41) Caso de prueba 5: 3= Valida.00001 5 Categoría=3 Categoría=1 . (Categoría=1) Análisis de valores límite Caso Valor verdadero Valor falso 1 Categoría=1 Categoría=2 2 Horas extras=90000. (Categoría=1. (Categoría=2. Horas extras=41) Caso de prueba 2: 1=Valida.00001 3 Categoría=2 Categoría=3 4 Horas extras=90000. Horas extras=39) Caso de prueba 3: 1= Invalida. 4= Valida. (Categoría=1. Horas extras=41) Caso de prueba 8: 5= Valida. 2=Valida. 6= Valida. (Categoría=3) Caso de prueba 7: 5= Valida. 6=Invalida.1 Horas extras=0. 4= Valida. Horas extras=39) Caso de prueba 6: 3= Invalida. 1) Caso de prueba 5: 3= Verdadero. (Categoría=1) CONSTRUCCIÓN DE INSTALADOR DE SOFTWARE .1) Caso de prueba 2: 1= Verdadero.00001) Caso de prueba 3: 1= Falso. 4= Verdadero.00001 Caso de prueba 1: 1=Verdadero. (Categoría=2. Horas extras=90000. 6 Horas extras=90000. Horas extras=0. (Categoría=3. Horas extras=0. (Categoría=1. (Categoría=3.00001) Caso de prueba 9: 5=Falso. 2= Verdadero.1) Caso de prueba 8: 5= Verdadero. Horas extras=90000. 2=Falso.00001) Caso de prueba 6: 3= Falso. 2=Verdadero. 4= Falso. (Categoría=1. (Categoría=3) Caso de prueba 7: 5= Verdadero. (Categoría=2.1 Horas extras=0. 6= Verdadero. (Categoría=2) Caso de prueba 4: 3= Verdadero. 6= Verdadero. Horas extras=90000. Horas extras=0. 4= Verdadero. 6=Falso. . Implementación de casos de prueba . Diseñar la interfaz de usuario para la captura de datos cuando una persona compra un tiquete para un vuelo nacional Diseñar la Interfaz de usuario para la captura de los datos del registro de una persona en un hotel.Diseñar una interfaz de usuario para un sistema de votación que incluye tres (3) candidatos. . uno de ellos corresponde al voto en blanco. Convertir a Modelo Relacional los siguientes ejercicios planteados en Modelo Entidad Relación. 4.Diseñar la interfaz de usuario para la captura de los datos de un libro que debe ser registrado en la Biblioteca. . Biblioteca. Empresa de transporte de encomiendas. .Convertir a Modelo Relacional los siguientes ejercicios planteados en Modelo Entidad Relación. ejercicio 3 Compañía de Seguros Convertir a Modelo Relacional los siguientes ejercicios planteados en Modelo Entidad Relación. 2. Tienda. .Convertir a Modelo Relacional los siguientes ejercicios planteados en Modelo Entidad Relación. 1.
Copyright © 2024 DOKUMEN.SITE Inc.