usuario: 1DAWHNOSMACHADO
contraseña: 1dawhnosmachado
pagina: http://www.daypo.com
jueves, 4 de diciembre de 2014
Lenguaje de Marcas Juan Antonio
Lenguaje de Marcas Juan Antonio
https://drive.google.com/folderview?id=0B5rzNRiEVjCASzBnYzhGbW5OY1U&usp=sharing
https://drive.google.com/folderview?id=0B5rzNRiEVjCASzBnYzhGbW5OY1U&usp=sharing
Anuncio L.Marcas
body {
font-family: sans-serif;
margin: 5px;
}
div.bloque {
border-right: #AAAAAA 3px dashed;
border-left: #AAAAAA 3px dashed;
float: left;
margin: 5px;
padding: 0px 10px;
width: 150px;
}
div div {
border: black 1px solid;
margin: 5px 0px;
overflow: auto; /* para que salgan barras desplaz. en anuncio EM002 */
}
h1 {
background-color: #BBBBBB;
font-size: 200%;
margin: 0px;
padding: 0px 10px;
}
h2 {
text-align: right;
font-size: 150%;
background-color: #DDDDDD;
border-bottom: #BBBBBB 3px dashed;
margin: 0px 0px 10px;
padding: 0px 10px 5px;
}
h3 {
text-align: center;
text-transform: uppercase;
font-size: 110%;
background-color: #EEEEEE;
margin: 0px;
padding: 10px 0px
}
h4 {
text-align: right;
font-size: 110%;
background-color: #BBBBBB;
color: white;
margin: 0px;
padding: 0px 10px;
}
miércoles, 26 de noviembre de 2014
Examen paso a oracle.Tipo A con FOREIGN KEY
Os dejo como la tengo hecha yo con FOREIGN KEY
Examen paso a oracle.Tipo A
CREATE TABLE COLABORADOR
(
NIF_COLABORADOR NUMBER(10),
NOMBRE VARCHAR2(20),
DOMICILIO VARCHAR2(20),
BANCO VARCHAR2(20),
NUMERO_CUENTA NUMBER(10),
TLF NUMBER(10),
CONSTRAINT PK_COLABORADOR PRIMARY KEY (NIF_COLABORADOR)
)
CREATE TABLE CLIENTE
(
CODIGO_CLIENTE NUMBER(10),
NUM_SOCIAL NUMBER(10),
DOMICILIO VARCHAR2(20),
TLF NUMBER(10),
CONSTRAINT PK_CLIENTE PRIMARY KEY (CODIGO_CLIENTE)
)
CREATE TABLE TIPO_PAGO
(
CODIGO_TIPO_PAGO NUMBER(10),
DESCRIPCION VARCHAR2(20),
CONSTRAINT PK_TIPO_PAGO PRIMARY KEY (CODIGO_TIPO_PAGO)
)
CREATE TABLE PROYECTO
(
CODIGO_PROYECTO NUMBER(10),
DESCRIPCION VARCHAR2(20) CONSTRAINT NONULO NOT NULL,
FECHA_INICIO DATE,
FECHA_FIN DATE,
CUANTIA NUMBER(10,3),
CODIGO_CLIENTE NUMBER(10),
CONSTRAINT FK_PROYECTO_CODIGOCLIENTE FOREIGN KEY (CODIGO_CLIENTE) REFERENCES CLIENTE (CODIGO_CLIENTE),
CONSTRAINT PK_PROYECTO PRIMARY KEY (CODIGO_PROYECTO),
CONSTRAINT NOMISMOVALOR_CODCLIENTE UNIQUE (DESCRIPCION)
)
CREATE TABLE PARTICIPAN
(
NIF_COLABORADOR NUMBER(10),
CODIGO_PROYECTO NUMBER(10),
CONSTRAINT FK_PARTICIPAN_NIF FOREIGN KEY (NIF_COLABORADOR) REFERENCES COLABORADOR (NIF_COLABORADOR),
CONSTRAINT FK_PARTICIPAN_CODPROYECTO FOREIGN KEY (CODIGO_PROYECTO) REFERENCES PROYECTO (CODIGO_PROYECTO) ON DELETE CASCADE,
CONSTRAINT PK_PARTICIPAN PRIMARY KEY (NIF_COLABORADOR,CODIGO_PROYECTO)
)
CREATE TABLE PAGO
(
NUMERO NUMBER(10),
CONCEPTO VARCHAR2(20),
CANTIDAD NUMBER(10,3) CONSTRAINT NONULO_CANTIDAD NOT NULL,
FECHA_PAGO DATE,
NIF_COLABORADOR NUMBER(10),
CODIGO_TIPO_PAGO NUMBER(10),
CONSTRAINT FK_PAGO_NIF FOREIGN KEY (NIF_COLABORADOR) REFERENCES COLABORADOR (NIF_COLABORADOR),
CONSTRAINT FK_PAGO_CODTIPPAGO FOREIGN KEY (CODIGO_TIPO_PAGO) REFERENCES TIPO_PAGO (CODIGO_TIPO_PAGO),
CONSTRAINT PK_PAGO PRIMARY KEY (NUMERO)
)
Examen paso a oracle.Tipo A
CREATE TABLE COLABORADOR
(
NIF_COLABORADOR NUMBER(10),
NOMBRE VARCHAR2(20),
DOMICILIO VARCHAR2(20),
BANCO VARCHAR2(20),
NUMERO_CUENTA NUMBER(10),
TLF NUMBER(10),
CONSTRAINT PK_COLABORADOR PRIMARY KEY (NIF_COLABORADOR)
)
CREATE TABLE CLIENTE
(
CODIGO_CLIENTE NUMBER(10),
NUM_SOCIAL NUMBER(10),
DOMICILIO VARCHAR2(20),
TLF NUMBER(10),
CONSTRAINT PK_CLIENTE PRIMARY KEY (CODIGO_CLIENTE)
)
CREATE TABLE TIPO_PAGO
(
CODIGO_TIPO_PAGO NUMBER(10),
DESCRIPCION VARCHAR2(20),
CONSTRAINT PK_TIPO_PAGO PRIMARY KEY (CODIGO_TIPO_PAGO)
)
CREATE TABLE PROYECTO
(
CODIGO_PROYECTO NUMBER(10),
DESCRIPCION VARCHAR2(20) CONSTRAINT NONULO NOT NULL,
FECHA_INICIO DATE,
FECHA_FIN DATE,
CUANTIA NUMBER(10,3),
CODIGO_CLIENTE NUMBER(10),
CONSTRAINT FK_PROYECTO_CODIGOCLIENTE FOREIGN KEY (CODIGO_CLIENTE) REFERENCES CLIENTE (CODIGO_CLIENTE),
CONSTRAINT PK_PROYECTO PRIMARY KEY (CODIGO_PROYECTO),
CONSTRAINT NOMISMOVALOR_CODCLIENTE UNIQUE (DESCRIPCION)
)
CREATE TABLE PARTICIPAN
(
NIF_COLABORADOR NUMBER(10),
CODIGO_PROYECTO NUMBER(10),
CONSTRAINT FK_PARTICIPAN_NIF FOREIGN KEY (NIF_COLABORADOR) REFERENCES COLABORADOR (NIF_COLABORADOR),
CONSTRAINT FK_PARTICIPAN_CODPROYECTO FOREIGN KEY (CODIGO_PROYECTO) REFERENCES PROYECTO (CODIGO_PROYECTO) ON DELETE CASCADE,
CONSTRAINT PK_PARTICIPAN PRIMARY KEY (NIF_COLABORADOR,CODIGO_PROYECTO)
)
CREATE TABLE PAGO
(
NUMERO NUMBER(10),
CONCEPTO VARCHAR2(20),
CANTIDAD NUMBER(10,3) CONSTRAINT NONULO_CANTIDAD NOT NULL,
FECHA_PAGO DATE,
NIF_COLABORADOR NUMBER(10),
CODIGO_TIPO_PAGO NUMBER(10),
CONSTRAINT FK_PAGO_NIF FOREIGN KEY (NIF_COLABORADOR) REFERENCES COLABORADOR (NIF_COLABORADOR),
CONSTRAINT FK_PAGO_CODTIPPAGO FOREIGN KEY (CODIGO_TIPO_PAGO) REFERENCES TIPO_PAGO (CODIGO_TIPO_PAGO),
CONSTRAINT PK_PAGO PRIMARY KEY (NUMERO)
)
Examen paso a oracle.Tipo A
CONNECT SYSTEM;
DROP USER ExamenTipoAEjemplo CASCADE;
create user ExamenTipoAEjemplo identified by ExamenTipoAEjemplo;
grant connect, resource to ExamenTipoAEjemplo;
CONNECT ExamenTipoAEjemplo/ExamenTipoAEjemplo;
--COLABORADOR
CREATE TABLE COLABORADOR(
NIF VARCHAR2(9) PRIMARY KEY,
NOMBRE VARCHAR2(20),
DOMICILIO VARCHAR2(30),
BANCO VARCHAR2(15),
NUMERO_CUENTA NUMBER(20),
TLFNO NUMBER(9)
);
--CLIENTE
CREATE TABLE CLIENTE(
CODIGO VARCHAR2(5) PRIMARY KEY,
NUM_SOCIAL NUMBER(10),
DOMICILIO VARCHAR2(30),
TFNO NUMBER(9)
);
--TIPO_PAGO
CREATE TABLE TIPO_PAGO(
CODIGO VARCHAR2(5) PRIMARY KEY,
DESCRIPCION VARCHAR2(30)
);
--PROYECTO
CREATE TABLE PROYECTO(
CODIGO VARCHAR2(5) PRIMARY KEY,
DESCRIPCION VARCHAR2(30) NOT NULL UNIQUE,
FECHA_INICIO DATE,
FECHA_FIN DATE,
CUANTIA NUMBER(6,2),
CODIGO_CLIENTE VARCHAR2(5) REFERENCES CLIENTE(CODIGO)
);
--PAGO
CREATE TABLE PAGO(
NUMERO NUMBER(13) PRIMARY KEY,
CONCEPTO VARCHAR2(25),
CANTIDAD NUMBER(6,2) NOT NULL,
FECHA_PAGO DATE,
NIF_COLABORADOR VARCHAR2(9),
CODIGO_TIPO_PAGO VARCHAR2(5) REFERENCES TIPO_PAGO(CODIGO)
);
--PARTICIPAN
CREATE TABLE PARTICIPAN(
NIF_COLABORADOR VARCHAR2(9) REFERENCES COLABORADOR(NIF) ,
CODIGO_PROYECTO VARCHAR2(5) REFERENCES PROYECTO(CODIGO) ON DELETE CASCADE,
CONSTRAINT PARTICIPAN_PK PRIMARY KEY (NIF_COLABORADOR,CODIGO_PROYECTO)
);
DROP USER ExamenTipoAEjemplo CASCADE;
create user ExamenTipoAEjemplo identified by ExamenTipoAEjemplo;
grant connect, resource to ExamenTipoAEjemplo;
CONNECT ExamenTipoAEjemplo/ExamenTipoAEjemplo;
--COLABORADOR
CREATE TABLE COLABORADOR(
NIF VARCHAR2(9) PRIMARY KEY,
NOMBRE VARCHAR2(20),
DOMICILIO VARCHAR2(30),
BANCO VARCHAR2(15),
NUMERO_CUENTA NUMBER(20),
TLFNO NUMBER(9)
);
--CLIENTE
CREATE TABLE CLIENTE(
CODIGO VARCHAR2(5) PRIMARY KEY,
NUM_SOCIAL NUMBER(10),
DOMICILIO VARCHAR2(30),
TFNO NUMBER(9)
);
--TIPO_PAGO
CREATE TABLE TIPO_PAGO(
CODIGO VARCHAR2(5) PRIMARY KEY,
DESCRIPCION VARCHAR2(30)
);
--PROYECTO
CREATE TABLE PROYECTO(
CODIGO VARCHAR2(5) PRIMARY KEY,
DESCRIPCION VARCHAR2(30) NOT NULL UNIQUE,
FECHA_INICIO DATE,
FECHA_FIN DATE,
CUANTIA NUMBER(6,2),
CODIGO_CLIENTE VARCHAR2(5) REFERENCES CLIENTE(CODIGO)
);
--PAGO
CREATE TABLE PAGO(
NUMERO NUMBER(13) PRIMARY KEY,
CONCEPTO VARCHAR2(25),
CANTIDAD NUMBER(6,2) NOT NULL,
FECHA_PAGO DATE,
NIF_COLABORADOR VARCHAR2(9),
CODIGO_TIPO_PAGO VARCHAR2(5) REFERENCES TIPO_PAGO(CODIGO)
);
--PARTICIPAN
CREATE TABLE PARTICIPAN(
NIF_COLABORADOR VARCHAR2(9) REFERENCES COLABORADOR(NIF) ,
CODIGO_PROYECTO VARCHAR2(5) REFERENCES PROYECTO(CODIGO) ON DELETE CASCADE,
CONSTRAINT PARTICIPAN_PK PRIMARY KEY (NIF_COLABORADOR,CODIGO_PROYECTO)
);
martes, 25 de noviembre de 2014
Ejercicio dentistas
Os dejo el enlace del ejercicio de dentistas de BBDD. Está hecho con constraints y con la creación de usuarios.
dentistas
No está corregido pero creo que no tiene errores.
dentistas
No está corregido pero creo que no tiene errores.
viernes, 21 de noviembre de 2014
Ejercicios para practicar E/R
Os dejo algunos ejercicios, no están las soluciones pero si alguien los hace que las suba.
Primer boletín
Segundo boletín
Tercer boletín
Ejercicios más complicados
Los ejercicios son del Gonzalo Nazareno, son algo antiguos pero no importa sirven para practicar.
Primer boletín
Segundo boletín
Tercer boletín
Ejercicios más complicados
Los ejercicios son del Gonzalo Nazareno, son algo antiguos pero no importa sirven para practicar.
jueves, 20 de noviembre de 2014
martes, 18 de noviembre de 2014
WebMaker
Aqui os dejo una herramienta de mozilla para la creación de páginas web y visualizarlas de forma instantanea sin descargar software adicional, simplemente usando el navegador
https://thimble.webmaker.org/es
https://thimble.webmaker.org/es
lunes, 10 de noviembre de 2014
domingo, 9 de noviembre de 2014
Control 2011-2012
/*1 .- (6 puntos) Con vistas a las próximas elecciones, se desea hacer un programa en Java para la
gestión de los datos de las listas de candidatos de los partidos que se presentan. El programa debe permitir
la entrada de los nombres de los partidos (1 punto) y de los nombres de los candidatos de cada partido, así
como el número de firmas de apoyo que presenta cada candidato para acreditarse. Para ello, se introducirá el
nombre de un partido, y a continuación el nombre y número de firmas de cada candidato de ese partido; después
se continuará con otro partido y sus candidatos, etc.
Por ejemplo:
pesoe
pepe – 300
juan – 200
maria – 400
fin
pepé
lolo – 170
pepa – 190
fin
esquerra
patxi – 88
joseba – 430
igor – 210
aitor – 170
fin
fin
No sabemos cuántos partidos se van a introducir, ni cuántos candidatos en cada partido (siempre al menos uno);
cada partido tendrá un distinto número de candidatos. Sí sabemos que dentro de un partido se acabará la
lista de sus candidatos cuando el nombre introducido sea “fin”, y que se acabará la lista de partidos cuando
el nombre del partido sea “fin”.
Después de introducidos los datos, se debe mostrar un resumen con los siguientes resultados:
- Nombre del partido con más candidatos. (1 punto)
- Número medio de firmas que presentan todos los candidatos. (1 punto)
- Nombre del candidato que presenta más firmas. (1 punto)
- Número medio de firmas de los candidatos del partido con menos candidatos. (1 punto)
- Porcentaje de partidos que presentan más de 5 candidatos. (1 punto)
suponemos que ningún partido va a tener mas de 1000 candidatos.*/
import javax.swing.*;
public class Examen11_12_Ej_1
{
public static void main(String args[])
{
String nombrePartido,nombreCandidato;
int firmasCandidato;
String partMasCand="";
String partMenosCand = "";
int contadorCandidatos;
int maxNumCands=0;
int minNumCands=1000;
int totalCandidatos=0;
int totalFirmas=0;
int maxFirmasDeUnCandidato=0;
String nombreCandConMasFirmas="";
int totalFirmasDeUnPartido;
float numMedioFirmasDeUnPartido=0.0F;
int contadorPartidos = 0;
int numPartidosConMasDe5=0;
nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
while(!nombrePartido.equals("fin")) // tb: equalsIgnoreCase
{
contadorPartidos++;
totalFirmasDeUnPartido = 0;
contadorCandidatos = 0;
nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
while(!nombreCandidato.equals("fin"))
{
contadorCandidatos++;
firmasCandidato = Integer.parseInt(JOptionPane.showInputDialog("Firmas del candidato: "));
totalFirmas = totalFirmas + firmasCandidato;
if(firmasCandidato > maxFirmasDeUnCandidato)
{
maxFirmasDeUnCandidato = firmasCandidato;
nombreCandConMasFirmas = nombreCandidato;
}
totalFirmasDeUnPartido = totalFirmasDeUnPartido+firmasCandidato;
nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
}
totalCandidatos = totalCandidatos + contadorCandidatos;
if(contadorCandidatos < minNumCands)
{
minNumCands = contadorCandidatos;
partMenosCand = nombrePartido;
numMedioFirmasDeUnPartido = (float)totalFirmasDeUnPartido/contadorCandidatos;
}
if(contadorCandidatos > maxNumCands)
{
maxNumCands = contadorCandidatos;
partMasCand = nombrePartido;
}
if(contadorCandidatos > 5)
{
numPartidosConMasDe5++;
}
nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
}
JOptionPane.showMessageDialog(null,"Partido con mas candidatos: "+partMasCand);
JOptionPane.showMessageDialog(null,"Media de firmas: "+(float)totalFirmas/totalCandidatos);
JOptionPane.showMessageDialog(null,"Candidato con mas firmas: "+nombreCandConMasFirmas);
JOptionPane.showMessageDialog(null,"El partido "+partMenosCand+", el que tiene menos candidatos, tiene como media de firmas: "+numMedioFirmasDeUnPartido);
JOptionPane.showMessageDialog(null,"Porcentaje de partidos con mas de cinco candidatos: "+(float)numPartidosConMasDe5/contadorPartidos*100);
}
}
2. (Falta algo al final)
import javax.swing.*;
public class Examen1112Ej2
{
public static void main(String args[])
{
int max1=0,max2=0,max3=0,max4=0,max5=0;
int num,aux;
num=Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
while(num>=0)
{
if(num>max5)
{
max5=num;
if(max5>max4) //intercambio max4 y max5
{
aux = max4;
max4=max5;
max5=aux;
}
if(max4>max3)
{
aux=max3;
max3=max4;
max4=aux;
}
if(max3>max2)
{
aux=max2;//con todos
}
}
num = Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
}
JOptionPane.showMessageDialog(null,"Los mayores son:" +max1+max2);
}
}
gestión de los datos de las listas de candidatos de los partidos que se presentan. El programa debe permitir
la entrada de los nombres de los partidos (1 punto) y de los nombres de los candidatos de cada partido, así
como el número de firmas de apoyo que presenta cada candidato para acreditarse. Para ello, se introducirá el
nombre de un partido, y a continuación el nombre y número de firmas de cada candidato de ese partido; después
se continuará con otro partido y sus candidatos, etc.
Por ejemplo:
pesoe
pepe – 300
juan – 200
maria – 400
fin
pepé
lolo – 170
pepa – 190
fin
esquerra
patxi – 88
joseba – 430
igor – 210
aitor – 170
fin
fin
No sabemos cuántos partidos se van a introducir, ni cuántos candidatos en cada partido (siempre al menos uno);
cada partido tendrá un distinto número de candidatos. Sí sabemos que dentro de un partido se acabará la
lista de sus candidatos cuando el nombre introducido sea “fin”, y que se acabará la lista de partidos cuando
el nombre del partido sea “fin”.
Después de introducidos los datos, se debe mostrar un resumen con los siguientes resultados:
- Nombre del partido con más candidatos. (1 punto)
- Número medio de firmas que presentan todos los candidatos. (1 punto)
- Nombre del candidato que presenta más firmas. (1 punto)
- Número medio de firmas de los candidatos del partido con menos candidatos. (1 punto)
- Porcentaje de partidos que presentan más de 5 candidatos. (1 punto)
suponemos que ningún partido va a tener mas de 1000 candidatos.*/
import javax.swing.*;
public class Examen11_12_Ej_1
{
public static void main(String args[])
{
String nombrePartido,nombreCandidato;
int firmasCandidato;
String partMasCand="";
String partMenosCand = "";
int contadorCandidatos;
int maxNumCands=0;
int minNumCands=1000;
int totalCandidatos=0;
int totalFirmas=0;
int maxFirmasDeUnCandidato=0;
String nombreCandConMasFirmas="";
int totalFirmasDeUnPartido;
float numMedioFirmasDeUnPartido=0.0F;
int contadorPartidos = 0;
int numPartidosConMasDe5=0;
nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
while(!nombrePartido.equals("fin")) // tb: equalsIgnoreCase
{
contadorPartidos++;
totalFirmasDeUnPartido = 0;
contadorCandidatos = 0;
nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
while(!nombreCandidato.equals("fin"))
{
contadorCandidatos++;
firmasCandidato = Integer.parseInt(JOptionPane.showInputDialog("Firmas del candidato: "));
totalFirmas = totalFirmas + firmasCandidato;
if(firmasCandidato > maxFirmasDeUnCandidato)
{
maxFirmasDeUnCandidato = firmasCandidato;
nombreCandConMasFirmas = nombreCandidato;
}
totalFirmasDeUnPartido = totalFirmasDeUnPartido+firmasCandidato;
nombreCandidato = JOptionPane.showInputDialog("Nombre del candidato: ");
}
totalCandidatos = totalCandidatos + contadorCandidatos;
if(contadorCandidatos < minNumCands)
{
minNumCands = contadorCandidatos;
partMenosCand = nombrePartido;
numMedioFirmasDeUnPartido = (float)totalFirmasDeUnPartido/contadorCandidatos;
}
if(contadorCandidatos > maxNumCands)
{
maxNumCands = contadorCandidatos;
partMasCand = nombrePartido;
}
if(contadorCandidatos > 5)
{
numPartidosConMasDe5++;
}
nombrePartido = JOptionPane.showInputDialog("Nombre del partido: ");
}
JOptionPane.showMessageDialog(null,"Partido con mas candidatos: "+partMasCand);
JOptionPane.showMessageDialog(null,"Media de firmas: "+(float)totalFirmas/totalCandidatos);
JOptionPane.showMessageDialog(null,"Candidato con mas firmas: "+nombreCandConMasFirmas);
JOptionPane.showMessageDialog(null,"El partido "+partMenosCand+", el que tiene menos candidatos, tiene como media de firmas: "+numMedioFirmasDeUnPartido);
JOptionPane.showMessageDialog(null,"Porcentaje de partidos con mas de cinco candidatos: "+(float)numPartidosConMasDe5/contadorPartidos*100);
}
}
2. (Falta algo al final)
import javax.swing.*;
public class Examen1112Ej2
{
public static void main(String args[])
{
int max1=0,max2=0,max3=0,max4=0,max5=0;
int num,aux;
num=Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
while(num>=0)
{
if(num>max5)
{
max5=num;
if(max5>max4) //intercambio max4 y max5
{
aux = max4;
max4=max5;
max5=aux;
}
if(max4>max3)
{
aux=max3;
max3=max4;
max4=aux;
}
if(max3>max2)
{
aux=max2;//con todos
}
}
num = Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
}
JOptionPane.showMessageDialog(null,"Los mayores son:" +max1+max2);
}
}
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
Segundo ejercicio del control del otro día (el de los discos)
import javax.swing.*;
public class Control081113Ej2
{
public static void main(String args[])
{
String frase = JOptionPane.showInputDialog("Frase: ")+" ";
String palabra="",primera ="",segunda="";
for(int i=0;i<frase.length();i++)
{
if(frase.charAt(i) == ' ')
{
if(palabra.length() > primera.length())
{
segunda = primera;
primera = palabra;
}
else
if(palabra.length() > segunda.length() &&
palabra.length() < primera.length())
segunda = palabra;
palabra = "";
}
else
palabra+=frase.charAt(i);
}
JOptionPane.showMessageDialog(null,
"La mayor: "+primera+
" la segunda: "+segunda);
}
}
public class Control081113Ej2
{
public static void main(String args[])
{
String frase = JOptionPane.showInputDialog("Frase: ")+" ";
String palabra="",primera ="",segunda="";
for(int i=0;i<frase.length();i++)
{
if(frase.charAt(i) == ' ')
{
if(palabra.length() > primera.length())
{
segunda = primera;
primera = palabra;
}
else
if(palabra.length() > segunda.length() &&
palabra.length() < primera.length())
segunda = palabra;
palabra = "";
}
else
palabra+=frase.charAt(i);
}
JOptionPane.showMessageDialog(null,
"La mayor: "+primera+
" la segunda: "+segunda);
}
}
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
sábado, 8 de noviembre de 2014
Ejercicio Examen Discos
import javax.swing.*;
public class Ejercicio1{
public static void main(String args[]){
//Declaracion de variables que se piden
String nombreAutor,tituloDisco,generoDisco;
double pvpDisco;
int numeroAutores,duracionDisco;
//Declaracion de variables que se devuelven
//Como supongo que como minimo se introduce un autor,inicializo algunos datos
String autorMasDiscos="",generoMenosDiscos,autorMayorDuracionMedia="";
int mayorNumeroDiscos=0,contArtistasDiscoPrecioMenorUno=0;
double mayorDuracionMedia=0.0,numeroMedioDiscosPorArtista;
//Declaracion de variables auxiliares
int contDiscos=0,contGeneroJazz=0,contGeneroPop=0,contGeneroRock=0,menorDiscosGenero,contTotalDiscos=0;
boolean hayDiscoMenosUno = false;
double sumaDuracionDiscos = 0.0,mediaDuracionDiscos;
final double PRECIO_MENOS_UNO = 1.0;
//Se pide el numero de autores que se van a introducir
numeroAutores = Integer.parseInt(JOptionPane.showInputDialog("Indique el número de autores que va a introducir"));
//Bucle en el cual se van a leer los autores y sus discos segun el numero de autores
//Asumo que se meterá por lo menos un autor
for(int i=0;i<numeroAutores;i++){
nombreAutor = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Nombre del autor");
tituloDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Título del disco");
//Bucle para tomar los datos de los discos
while(!tituloDisco.equals("fin")){ //Asumo que el usuario va a introducir "fin" en minusculas y no de otra forma
generoDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Genero del disco "+tituloDisco); //Asumo que se va a introducir solo POP/JAZZ/ROCK y con mayusculas
pvpDisco = Double.parseDouble(JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Precio del disco "+tituloDisco));
duracionDisco = Integer.parseInt(JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Duracion del disco "+tituloDisco+" en segundos"));
//Se va llevando la cuenta de los discos
contDiscos++;
//Se va llevando cuenta de los discos que hay de cada genero
if(generoDisco.equals("JAZZ")){
contGeneroJazz++;
}
else if(generoDisco.equals("POP")){
contGeneroPop++;
}
else{
contGeneroRock++;
}
//Se usa un interruptor para ver si el autor tiene por lo menos un disco que valga menos de 1 euro
if(pvpDisco<PRECIO_MENOS_UNO){
hayDiscoMenosUno=true;
}
//Se va llevando la suma de las duraciones de los discos
sumaDuracionDiscos+=duracionDisco;
//Se pide de nuevo el nombre del disco
tituloDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Título del disco");
}
//Comprobar quien tiene el mayor numero de discos
if(mayorNumeroDiscos<contDiscos){
mayorNumeroDiscos = contDiscos;
autorMasDiscos = nombreAutor;
}
//Si el autor tiene por lo menos un disco que cueste menos de 1 euro,se suma 1 al contador
if(hayDiscoMenosUno){
contArtistasDiscoPrecioMenorUno++;
}
//Se calcula la media de la duracion de los discos y a continuacion se compara con la mayor duracion media de los discos hasta ahora
mediaDuracionDiscos = sumaDuracionDiscos/contDiscos;
if(mayorDuracionMedia<mediaDuracionDiscos){
mayorDuracionMedia = mediaDuracionDiscos;
autorMayorDuracionMedia = nombreAutor;
}
//Se suma los discos para llevar la cuenta del total de discos
contTotalDiscos+=contDiscos;
//Se reinicia la variable "contDiscos" para el siguiente autor
contDiscos = 0;
//Se reinicia la variable "hayDiscoMenosUno" para el siguiente autor
hayDiscoMenosUno = false;
//Se reinicia la variable "sumaDuracionDisco" para el siguiente autor
sumaDuracionDiscos = 0.0;
}
//Se comprueba cual genero tiene menos discos: generoMenosDiscos<contGeneroPop y generoMenosDiscos<contGeneroRock
//Para ello inicializo "menorDiscosGenero" con el "contGeneroJazz" y "generoMenosDiscos" con "JAZZ" para tener una referencia
//Si hay dos con el mismo numero,se escogera el primero
menorDiscosGenero = contGeneroJazz;
generoMenosDiscos = "JAZZ";
if(menorDiscosGenero>contGeneroPop){
menorDiscosGenero=contGeneroPop;
generoMenosDiscos = "POP";
}
if(menorDiscosGenero>contGeneroRock){
generoMenosDiscos = "ROCK";
}
//Se calcula el numero medio de discos por artista
numeroMedioDiscosPorArtista =(double) contTotalDiscos/numeroAutores;
//Devolucion de los datos pedidos
JOptionPane.showMessageDialog(null,"Autor con más discos: "+autorMasDiscos+", "+mayorNumeroDiscos+
" discos\nGénero con menos discos: "+generoMenosDiscos+
"\nArtistas con al menos un disco con precio menor de 1€: "+contArtistasDiscoPrecioMenorUno+
"\nArtista con mayor duracion media de sus discos: "+autorMayorDuracionMedia+" ("+mayorDuracionMedia+
")\nNúmero medio de discos que tienen los artistas: "+numeroMedioDiscosPorArtista);
}
}
public class Ejercicio1{
public static void main(String args[]){
//Declaracion de variables que se piden
String nombreAutor,tituloDisco,generoDisco;
double pvpDisco;
int numeroAutores,duracionDisco;
//Declaracion de variables que se devuelven
//Como supongo que como minimo se introduce un autor,inicializo algunos datos
String autorMasDiscos="",generoMenosDiscos,autorMayorDuracionMedia="";
int mayorNumeroDiscos=0,contArtistasDiscoPrecioMenorUno=0;
double mayorDuracionMedia=0.0,numeroMedioDiscosPorArtista;
//Declaracion de variables auxiliares
int contDiscos=0,contGeneroJazz=0,contGeneroPop=0,contGeneroRock=0,menorDiscosGenero,contTotalDiscos=0;
boolean hayDiscoMenosUno = false;
double sumaDuracionDiscos = 0.0,mediaDuracionDiscos;
final double PRECIO_MENOS_UNO = 1.0;
//Se pide el numero de autores que se van a introducir
numeroAutores = Integer.parseInt(JOptionPane.showInputDialog("Indique el número de autores que va a introducir"));
//Bucle en el cual se van a leer los autores y sus discos segun el numero de autores
//Asumo que se meterá por lo menos un autor
for(int i=0;i<numeroAutores;i++){
nombreAutor = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Nombre del autor");
tituloDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Título del disco");
//Bucle para tomar los datos de los discos
while(!tituloDisco.equals("fin")){ //Asumo que el usuario va a introducir "fin" en minusculas y no de otra forma
generoDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Genero del disco "+tituloDisco); //Asumo que se va a introducir solo POP/JAZZ/ROCK y con mayusculas
pvpDisco = Double.parseDouble(JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Precio del disco "+tituloDisco));
duracionDisco = Integer.parseInt(JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Duracion del disco "+tituloDisco+" en segundos"));
//Se va llevando la cuenta de los discos
contDiscos++;
//Se va llevando cuenta de los discos que hay de cada genero
if(generoDisco.equals("JAZZ")){
contGeneroJazz++;
}
else if(generoDisco.equals("POP")){
contGeneroPop++;
}
else{
contGeneroRock++;
}
//Se usa un interruptor para ver si el autor tiene por lo menos un disco que valga menos de 1 euro
if(pvpDisco<PRECIO_MENOS_UNO){
hayDiscoMenosUno=true;
}
//Se va llevando la suma de las duraciones de los discos
sumaDuracionDiscos+=duracionDisco;
//Se pide de nuevo el nombre del disco
tituloDisco = JOptionPane.showInputDialog("("+(i+1)+"/"+numeroAutores+") Título del disco");
}
//Comprobar quien tiene el mayor numero de discos
if(mayorNumeroDiscos<contDiscos){
mayorNumeroDiscos = contDiscos;
autorMasDiscos = nombreAutor;
}
//Si el autor tiene por lo menos un disco que cueste menos de 1 euro,se suma 1 al contador
if(hayDiscoMenosUno){
contArtistasDiscoPrecioMenorUno++;
}
//Se calcula la media de la duracion de los discos y a continuacion se compara con la mayor duracion media de los discos hasta ahora
mediaDuracionDiscos = sumaDuracionDiscos/contDiscos;
if(mayorDuracionMedia<mediaDuracionDiscos){
mayorDuracionMedia = mediaDuracionDiscos;
autorMayorDuracionMedia = nombreAutor;
}
//Se suma los discos para llevar la cuenta del total de discos
contTotalDiscos+=contDiscos;
//Se reinicia la variable "contDiscos" para el siguiente autor
contDiscos = 0;
//Se reinicia la variable "hayDiscoMenosUno" para el siguiente autor
hayDiscoMenosUno = false;
//Se reinicia la variable "sumaDuracionDisco" para el siguiente autor
sumaDuracionDiscos = 0.0;
}
//Se comprueba cual genero tiene menos discos: generoMenosDiscos<contGeneroPop y generoMenosDiscos<contGeneroRock
//Para ello inicializo "menorDiscosGenero" con el "contGeneroJazz" y "generoMenosDiscos" con "JAZZ" para tener una referencia
//Si hay dos con el mismo numero,se escogera el primero
menorDiscosGenero = contGeneroJazz;
generoMenosDiscos = "JAZZ";
if(menorDiscosGenero>contGeneroPop){
menorDiscosGenero=contGeneroPop;
generoMenosDiscos = "POP";
}
if(menorDiscosGenero>contGeneroRock){
generoMenosDiscos = "ROCK";
}
//Se calcula el numero medio de discos por artista
numeroMedioDiscosPorArtista =(double) contTotalDiscos/numeroAutores;
//Devolucion de los datos pedidos
JOptionPane.showMessageDialog(null,"Autor con más discos: "+autorMasDiscos+", "+mayorNumeroDiscos+
" discos\nGénero con menos discos: "+generoMenosDiscos+
"\nArtistas con al menos un disco con precio menor de 1€: "+contArtistasDiscoPrecioMenorUno+
"\nArtista con mayor duracion media de sus discos: "+autorMayorDuracionMedia+" ("+mayorDuracionMedia+
")\nNúmero medio de discos que tienen los artistas: "+numeroMedioDiscosPorArtista);
}
}
viernes, 7 de noviembre de 2014
Control 2010-2011 Ejercicio 2
import javax.swing.*;
public class palindromoEquals
{
public static void main(String args[])
{
int i;
String palabra;
String palabraReves="";
boolean esPalindromo=true;
palabra=JOptionPane.showInputDialog("Introduzca una palabra");
for(i=palabra.length()-1;i>=0;i--)
{
palabraReves=palabraReves+palabra.charAt(i);
}
if (palabra.equalsIgnoreCase(palabraReves))
{
JOptionPane.showMessageDialog(null,"La palabra " + palabra + " es un palíndromo");
}
else
{
JOptionPane.showMessageDialog(null,"La palabra " + palabra + " NO es un palíndromo");
}
}
}
public class palindromoEquals
{
public static void main(String args[])
{
int i;
String palabra;
String palabraReves="";
boolean esPalindromo=true;
palabra=JOptionPane.showInputDialog("Introduzca una palabra");
for(i=palabra.length()-1;i>=0;i--)
{
palabraReves=palabraReves+palabra.charAt(i);
}
if (palabra.equalsIgnoreCase(palabraReves))
{
JOptionPane.showMessageDialog(null,"La palabra " + palabra + " es un palíndromo");
}
else
{
JOptionPane.showMessageDialog(null,"La palabra " + palabra + " NO es un palíndromo");
}
}
}
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
jueves, 6 de noviembre de 2014
Duda Ejercicio 1 Control 2010-2011
¿Qué está mal en este ejercicio?
/*1 .- (6 puntos) Se desea hacer un programa en Java para la gestión de datos de los empleados de una empresa.
El programa debe permitir la entrada de datos de una serie de empleados (1 punto) , y después mostrar un resumen
de resultados. La serie de empleados terminará cuando el nombre tecleado sea “fin”. Para cada empleado se
introducirá el nombre, años de antigüedad en la empresa y el tipo de empleado. El tipo de empleado podrá ser “V”
(vendedor), “J” (Jefe de sección) o “A” (administrativo).
Si el tipo es “V”, se pedirá además el número de ventas realizadas.
Para cada una de esas ventas, la cantidad de artículos y el precio unitario de los artículos.
Si el tipo es “J”, se pedirá el nombre de la sección y el número de personas de la sección.
Si el tipo es “A”, el número de expedientes tramitados.
Al finalizar la introducción de datos, se debe mostrar:
- Media de precio de los artículos vendidos. (1 punto)
Nombre del vendedor con más importe total vendido. (1 punto)
- Porcentaje de empleados que son administrativos. (1 punto)
- Nombre de la sección y del jefe de la sección con menos personas. (1 punto)
- Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados. (1 punto)
*/
import javax.swing.*;
public class UnoControl2
{
public static void main(String args[])
{
String sNombreEmpleado,sNombreSeccion,sNombreMinSeccion="",sJefeSeccion,sJefeMinSeccion="",sNombreMasImporte="";
int iNumEmpleados,iAñosAntiguedad,iNumVentas,iCantidadArticulos,iContadorArticulos=0,iNumPersonas,iNumExp,iContAdmin=0,iMinPersonas=1000,iSumaAnt=0;
char cTipoEmpleado;
float fPrecio,fSumPrecios=0,fVenta,fSumVentas=0,fMaxImporte=-1;
sNombreEmpleado=JOptionPane.showInputDialog("Introduce el nombre de un empleado");
while(!sNombreEmpleado.equals("fin"))
{
iAñosAntiguedad=Integer.parseInt(JOptionPane.showInputDialog("Años de antigüedad: "));
cTipoEmpleado=Character.toUpperCase(JOptionPane.showInputDialog("Tipo de empleado: ").charAt(0));
switch(cTipoEmpleado)
{
case 'V':
iNumVentas=Integer.parseInt(JOptionPane.showInputDialog("Nº de ventas"));
for(int i=0;i<iNumVentas;i++)
{
iCantidadArticulos=Integer.parseInt(JOptionPane.showInputDialog("Cantidad de artículos"));
fPrecio=Float.parseFloat(JOptionPane.showInputDialog("Precio unitario del artículo "+(i+1)+"º: "));
fSumPrecios=fSumPrecios+fPrecio;
fVenta=(float)(iCantidadArticulos/fPrecio);
fSumVentas=fSumVentas+fVenta;//importe total vendido
if(fSumVentas>fMaxImporte)
{
sNombreMasImporte=sNombreEmpleado;
}
}
break;
case 'J':
sNombreSeccion=JOptionPane.showInputDialog("Nombre de la sección: ");
iNumPersonas=Integer.parseInt(JOptionPane.showInputDialog("Número de personas de la sección: "));
sJefeSeccion=JOptionPane.showInputDialog("Jefe de sección: ");
if(iNumPersonas<iMinPersonas)
{
sNombreMinSeccion=sNombreSeccion;
sJefeMinSeccion=sJefeSeccion;
}
break;
case 'A':
iNumExp=Integer.parseInt(JOptionPane.showInputDialog("Número de expediente: "));
if(iNumExp<20)
{
iSumaAnt=iSumaAnt+iAñosAntiguedad;
iContAdmin++;
}
break;
default:
JOptionPane.showMessageDialog(null,"Esa letra no representa ningún tipo de empleado");
}
sNombreEmpleado=JOptionPane.showInputDialog("Introduce el nombre de un empleado");
}
JOptionPane.showMessageDialog(null,"Media de precio de los articulos vendidos: " + (fSumPrecios/fSumVentas)); // Media de precio de los artículos vendidos. (1 punto)
JOptionPane.showMessageDialog(null,"Vendedor con más importe total vendido: " + sNombreMasImporte ); //Nombre del vendedor con más importe total vendido. (1 punto)
JOptionPane.showMessageDialog(null,"Porcentaje de empleados que son administrativos: " + (float)(iContAdmin/100));
JOptionPane.showMessageDialog(null,"Nombre de la sección con menos personas: " + sNombreMinSeccion);
JOptionPane.showMessageDialog(null,"Nombre del jefe de la sección con menos personas: " + sJefeMinSeccion);
JOptionPane.showMessageDialog(null,"Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados: " + iSumaAnt/iContAdmin);
}
}
/*1 .- (6 puntos) Se desea hacer un programa en Java para la gestión de datos de los empleados de una empresa.
El programa debe permitir la entrada de datos de una serie de empleados (1 punto) , y después mostrar un resumen
de resultados. La serie de empleados terminará cuando el nombre tecleado sea “fin”. Para cada empleado se
introducirá el nombre, años de antigüedad en la empresa y el tipo de empleado. El tipo de empleado podrá ser “V”
(vendedor), “J” (Jefe de sección) o “A” (administrativo).
Si el tipo es “V”, se pedirá además el número de ventas realizadas.
Para cada una de esas ventas, la cantidad de artículos y el precio unitario de los artículos.
Si el tipo es “J”, se pedirá el nombre de la sección y el número de personas de la sección.
Si el tipo es “A”, el número de expedientes tramitados.
Al finalizar la introducción de datos, se debe mostrar:
- Media de precio de los artículos vendidos. (1 punto)
Nombre del vendedor con más importe total vendido. (1 punto)
- Porcentaje de empleados que son administrativos. (1 punto)
- Nombre de la sección y del jefe de la sección con menos personas. (1 punto)
- Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados. (1 punto)
*/
import javax.swing.*;
public class UnoControl2
{
public static void main(String args[])
{
String sNombreEmpleado,sNombreSeccion,sNombreMinSeccion="",sJefeSeccion,sJefeMinSeccion="",sNombreMasImporte="";
int iNumEmpleados,iAñosAntiguedad,iNumVentas,iCantidadArticulos,iContadorArticulos=0,iNumPersonas,iNumExp,iContAdmin=0,iMinPersonas=1000,iSumaAnt=0;
char cTipoEmpleado;
float fPrecio,fSumPrecios=0,fVenta,fSumVentas=0,fMaxImporte=-1;
sNombreEmpleado=JOptionPane.showInputDialog("Introduce el nombre de un empleado");
while(!sNombreEmpleado.equals("fin"))
{
iAñosAntiguedad=Integer.parseInt(JOptionPane.showInputDialog("Años de antigüedad: "));
cTipoEmpleado=Character.toUpperCase(JOptionPane.showInputDialog("Tipo de empleado: ").charAt(0));
switch(cTipoEmpleado)
{
case 'V':
iNumVentas=Integer.parseInt(JOptionPane.showInputDialog("Nº de ventas"));
for(int i=0;i<iNumVentas;i++)
{
iCantidadArticulos=Integer.parseInt(JOptionPane.showInputDialog("Cantidad de artículos"));
fPrecio=Float.parseFloat(JOptionPane.showInputDialog("Precio unitario del artículo "+(i+1)+"º: "));
fSumPrecios=fSumPrecios+fPrecio;
fVenta=(float)(iCantidadArticulos/fPrecio);
fSumVentas=fSumVentas+fVenta;//importe total vendido
if(fSumVentas>fMaxImporte)
{
sNombreMasImporte=sNombreEmpleado;
}
}
break;
case 'J':
sNombreSeccion=JOptionPane.showInputDialog("Nombre de la sección: ");
iNumPersonas=Integer.parseInt(JOptionPane.showInputDialog("Número de personas de la sección: "));
sJefeSeccion=JOptionPane.showInputDialog("Jefe de sección: ");
if(iNumPersonas<iMinPersonas)
{
sNombreMinSeccion=sNombreSeccion;
sJefeMinSeccion=sJefeSeccion;
}
break;
case 'A':
iNumExp=Integer.parseInt(JOptionPane.showInputDialog("Número de expediente: "));
if(iNumExp<20)
{
iSumaAnt=iSumaAnt+iAñosAntiguedad;
iContAdmin++;
}
break;
default:
JOptionPane.showMessageDialog(null,"Esa letra no representa ningún tipo de empleado");
}
sNombreEmpleado=JOptionPane.showInputDialog("Introduce el nombre de un empleado");
}
JOptionPane.showMessageDialog(null,"Media de precio de los articulos vendidos: " + (fSumPrecios/fSumVentas)); // Media de precio de los artículos vendidos. (1 punto)
JOptionPane.showMessageDialog(null,"Vendedor con más importe total vendido: " + sNombreMasImporte ); //Nombre del vendedor con más importe total vendido. (1 punto)
JOptionPane.showMessageDialog(null,"Porcentaje de empleados que son administrativos: " + (float)(iContAdmin/100));
JOptionPane.showMessageDialog(null,"Nombre de la sección con menos personas: " + sNombreMinSeccion);
JOptionPane.showMessageDialog(null,"Nombre del jefe de la sección con menos personas: " + sJefeMinSeccion);
JOptionPane.showMessageDialog(null,"Media de antigüedad de los administrativos que tienen menos de 20 expedientes tramitados: " + iSumaAnt/iContAdmin);
}
}
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
Control 2009-2010
Los dos ejercicios del primer control:
/*1.- (6 puntos) Se desea realizar un programa en Java permita al usuario introducir una serie de
datos de familias. Para cada familia se introducirá (en este orden):
• nombre del padre
• edad del padre
• nombre de la madre
• edad de la madre
• número de hijos para cada hijo:
o nombre del hijo
o edad del hijo
Se sabrá que no se van a introducir más datos cuando el nombre del padre sea “fin”.
Se deberá mostrar al final:
• Cantidad de familias en las que ambos padres tienen más de 30 años.
• Nombre del padre y madre de la familia con más hijos.
• Media de hijos que tienen las familias.
• Nombre del hijo con menor edad.
• Edad media de las esposas en las familias sin hijos.
*/
import javax.swing.*;
public class UnoControl
{
public static void main(String args[])
{
String sNombrePadre,sNombreMadre,sNombreHijo,sNombrePadreMasHijos="",sNombreMadreMasHijos="",sNombreMinHijo="";
int iEdadPadre,iEdadMadre,iEdadHijo,iMinEdadHijo=1000,iNumHijos,iContMayor=0,iMaxHijos=-1,iAcumHijos=0,iContFamilias=0,iSumaEdadMadresSinHijos=0,iContMujeresSinHijos=0;
final int MIN_EDAD=30;
sNombrePadre=JOptionPane.showInputDialog("Introduce el nombre del padre");
while(!sNombrePadre.equals("fin"))
{
iEdadPadre=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad del padre"));
sNombreMadre=JOptionPane.showInputDialog("Introduce el nombre de la madre");
iEdadMadre=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad de la madre"));
if(iEdadPadre>=MIN_EDAD && iEdadMadre>=MIN_EDAD)
iContMayor++;
iNumHijos=Integer.parseInt(JOptionPane.showInputDialog("Introduce el número de hijos"));
if(iNumHijos==0)
{
iSumaEdadMadresSinHijos=iSumaEdadMadresSinHijos+iEdadMadre;
iContMujeresSinHijos++;
}
if(iNumHijos>iMaxHijos)
{
iMaxHijos=iNumHijos;
sNombrePadreMasHijos=sNombrePadre;
sNombreMadreMasHijos=sNombreMadre;
}
iAcumHijos=iAcumHijos+iNumHijos;
//if(iNumHijos>0 --->mal
for(int i=0;i<iNumHijos;i++)
{
sNombreHijo=JOptionPane.showInputDialog("Introduce el nombre del hijo "+(i+1)+"º: ");
iEdadHijo=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad del hijo"+(i+1)+"º: "));
if(iEdadHijo<iMinEdadHijo)//si hay dos menores, se guarda el último
{
sNombreMinHijo=sNombreHijo;
}
}
sNombrePadre=JOptionPane.showInputDialog("Introduce el nombre del padre");
}
JOptionPane.showMessageDialog(null,"Familias com ambos mayores de 30: "+iContMayor);
JOptionPane.showMessageDialog(null,"Padres con más hijos: "+ sNombrePadreMasHijos+ " y " +sNombreMadreMasHijos);
if(iContFamilias>0)
{
JOptionPane.showMessageDialog(null,"Media de hijos: "+(float)iAcumHijos/iContFamilias);
}
else
JOptionPane.showMessageDialog(null,"No se puede hacer la media");
JOptionPane.showMessageDialog(null, "Hijo con menor edad: " +sNombreMinHijo);
JOptionPane.showMessageDialog(null, "Edad media de las esposas en las familias sin hijos: " + (float)(iSumaEdadMadresSinHijos/iContMujeresSinHijos));
}
}
/*.- (4 puntos) Realiza un programa en Java que pida al usuario una serie de palabras.
Se terminará con la palabra “fin”. Se debe mostrar al final cuántas palabras tienen al menos 4
vocales distintas. Para ello, sabemos que si la variable cadena es de tipo String, el método cadena.length()
nos da el número de caracteres que tiene.*/
import javax.swing.*;
public class DosControl
{
public static void main(String args[])
{
String pal;
int hayA,hayE,hayI,hayO,hayU,contadorPalabras=0;
pal=JOptionPane.showInputDialog("Palabra: ");
while(!pal.equals("fin"))//para pedir todas las palabras
{ hayA=0;//PARA QUE NO SE REPITA LA MISMA VOCAL SE INICIALIZAN AQUI A 0
hayE=0;
hayI=0;
hayO=0;
hayU=0;
for(int i=0;i<pal.length();i++)//recorro cada palabra
{
switch(pal.charAt(i))//miro char en posicion i
{
case 'a':
case 'A':
hayA=1;
break;
case 'e':
case 'E':
hayE=1;
break;
case 'i':
case 'I':
hayI=1;
break;
case 'o':
case 'O':
hayO=1;
break;
case 'u':
case 'U':
hayU=1;
break;
}
}
if(hayA+hayE+hayI+hayO+hayU>=4)//si tiene más de cuatro vocales distintas
contadorPalabras++;
pal=JOptionPane.showInputDialog("Palabra: ");//incremento el contador
}
JOptionPane.showMessageDialog(null,"Palabras con al menos 4 vocales distintas: " + contadorPalabras);
}
}
/*1.- (6 puntos) Se desea realizar un programa en Java permita al usuario introducir una serie de
datos de familias. Para cada familia se introducirá (en este orden):
• nombre del padre
• edad del padre
• nombre de la madre
• edad de la madre
• número de hijos para cada hijo:
o nombre del hijo
o edad del hijo
Se sabrá que no se van a introducir más datos cuando el nombre del padre sea “fin”.
Se deberá mostrar al final:
• Cantidad de familias en las que ambos padres tienen más de 30 años.
• Nombre del padre y madre de la familia con más hijos.
• Media de hijos que tienen las familias.
• Nombre del hijo con menor edad.
• Edad media de las esposas en las familias sin hijos.
*/
import javax.swing.*;
public class UnoControl
{
public static void main(String args[])
{
String sNombrePadre,sNombreMadre,sNombreHijo,sNombrePadreMasHijos="",sNombreMadreMasHijos="",sNombreMinHijo="";
int iEdadPadre,iEdadMadre,iEdadHijo,iMinEdadHijo=1000,iNumHijos,iContMayor=0,iMaxHijos=-1,iAcumHijos=0,iContFamilias=0,iSumaEdadMadresSinHijos=0,iContMujeresSinHijos=0;
final int MIN_EDAD=30;
sNombrePadre=JOptionPane.showInputDialog("Introduce el nombre del padre");
while(!sNombrePadre.equals("fin"))
{
iEdadPadre=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad del padre"));
sNombreMadre=JOptionPane.showInputDialog("Introduce el nombre de la madre");
iEdadMadre=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad de la madre"));
if(iEdadPadre>=MIN_EDAD && iEdadMadre>=MIN_EDAD)
iContMayor++;
iNumHijos=Integer.parseInt(JOptionPane.showInputDialog("Introduce el número de hijos"));
if(iNumHijos==0)
{
iSumaEdadMadresSinHijos=iSumaEdadMadresSinHijos+iEdadMadre;
iContMujeresSinHijos++;
}
if(iNumHijos>iMaxHijos)
{
iMaxHijos=iNumHijos;
sNombrePadreMasHijos=sNombrePadre;
sNombreMadreMasHijos=sNombreMadre;
}
iAcumHijos=iAcumHijos+iNumHijos;
//if(iNumHijos>0 --->mal
for(int i=0;i<iNumHijos;i++)
{
sNombreHijo=JOptionPane.showInputDialog("Introduce el nombre del hijo "+(i+1)+"º: ");
iEdadHijo=Integer.parseInt(JOptionPane.showInputDialog("Introduce la edad del hijo"+(i+1)+"º: "));
if(iEdadHijo<iMinEdadHijo)//si hay dos menores, se guarda el último
{
sNombreMinHijo=sNombreHijo;
}
}
sNombrePadre=JOptionPane.showInputDialog("Introduce el nombre del padre");
}
JOptionPane.showMessageDialog(null,"Familias com ambos mayores de 30: "+iContMayor);
JOptionPane.showMessageDialog(null,"Padres con más hijos: "+ sNombrePadreMasHijos+ " y " +sNombreMadreMasHijos);
if(iContFamilias>0)
{
JOptionPane.showMessageDialog(null,"Media de hijos: "+(float)iAcumHijos/iContFamilias);
}
else
JOptionPane.showMessageDialog(null,"No se puede hacer la media");
JOptionPane.showMessageDialog(null, "Hijo con menor edad: " +sNombreMinHijo);
JOptionPane.showMessageDialog(null, "Edad media de las esposas en las familias sin hijos: " + (float)(iSumaEdadMadresSinHijos/iContMujeresSinHijos));
}
}
/*.- (4 puntos) Realiza un programa en Java que pida al usuario una serie de palabras.
Se terminará con la palabra “fin”. Se debe mostrar al final cuántas palabras tienen al menos 4
vocales distintas. Para ello, sabemos que si la variable cadena es de tipo String, el método cadena.length()
nos da el número de caracteres que tiene.*/
import javax.swing.*;
public class DosControl
{
public static void main(String args[])
{
String pal;
int hayA,hayE,hayI,hayO,hayU,contadorPalabras=0;
pal=JOptionPane.showInputDialog("Palabra: ");
while(!pal.equals("fin"))//para pedir todas las palabras
{ hayA=0;//PARA QUE NO SE REPITA LA MISMA VOCAL SE INICIALIZAN AQUI A 0
hayE=0;
hayI=0;
hayO=0;
hayU=0;
for(int i=0;i<pal.length();i++)//recorro cada palabra
{
switch(pal.charAt(i))//miro char en posicion i
{
case 'a':
case 'A':
hayA=1;
break;
case 'e':
case 'E':
hayE=1;
break;
case 'i':
case 'I':
hayI=1;
break;
case 'o':
case 'O':
hayO=1;
break;
case 'u':
case 'U':
hayU=1;
break;
}
}
if(hayA+hayE+hayI+hayO+hayU>=4)//si tiene más de cuatro vocales distintas
contadorPalabras++;
pal=JOptionPane.showInputDialog("Palabra: ");//incremento el contador
}
JOptionPane.showMessageDialog(null,"Palabras con al menos 4 vocales distintas: " + contadorPalabras);
}
}
¡No te
olvides de seguirnos en las redes sociales y comentar la noticia!
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
miércoles, 29 de octubre de 2014
jueves, 16 de octubre de 2014
Los diferentes DOCTYPE de HTML y XHTML
HTML 4.0.1
HTML 4.01 especifica tres DTDs, de modo que los autores deben incluir
una de las siguientes declaraciones del tipo de documento en sus documentos.
Los DTDs varían en cuanto a los elementos que soportan.
El DTD HTML 4.01 Estricto (Strict DTD) incluye todos los elementos y
atributos que no han sido desaprobados o que no aparecen en documentos
con marcos. Para los documentos que usen este DTD, utilice esta
declaración del tipo de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
El DTD HTML 4.01 Transicional (Transitional DTD) incluye todo lo que
incluye el DTD estricto más los elementos y atributos desaprobados
(la mayoría de los cuales están relacionados con la presentación visual).
Para los documentos que usen este DTD, utilice esta declaración del tipo
de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
El DTD HTML 4.01 para Documentos con Marcos (Frameset DTD) incluye todo
lo que incluye el DTD Transicional más los marcos. Para los documentos
que usen este DTD, utilice esta declaración del tipo de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
----------------------------------------------------------------------------------------------------------------------------
XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml">
El XHTML proponte tres doctype:
el modo estricto (strict): Se trata de la rigurosidad del código para
privilegiar la separación entre contenido y presentación. La adopción del
XHTML para escribir paginas web solo tiene sentido con un doctype
estricto. La referencia sera:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
el modo transicional, es un modo híbrido que acepta etiquetas obsoletas
en la actualidad (<font>, <u>, <center>…) y un modo de escritura que
mezcla todavía el contenido con la presentación. Ha sido concebido para
garantizar la compatibilidad o la transición de documentos HTML
elaborados con HTML4 Transitional, creado a su vez para asegurar la
compatibilidad con el HTML 3.2. La referencia seria:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
el modo frameset: este modo permite concebir paginas que incluyen marcos
(frame). Es una técnica cada vez menos utilizada. La referencia seria:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
HTML 4.01 especifica tres DTDs, de modo que los autores deben incluir
una de las siguientes declaraciones del tipo de documento en sus documentos.
Los DTDs varían en cuanto a los elementos que soportan.
El DTD HTML 4.01 Estricto (Strict DTD) incluye todos los elementos y
atributos que no han sido desaprobados o que no aparecen en documentos
con marcos. Para los documentos que usen este DTD, utilice esta
declaración del tipo de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
El DTD HTML 4.01 Transicional (Transitional DTD) incluye todo lo que
incluye el DTD estricto más los elementos y atributos desaprobados
(la mayoría de los cuales están relacionados con la presentación visual).
Para los documentos que usen este DTD, utilice esta declaración del tipo
de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
El DTD HTML 4.01 para Documentos con Marcos (Frameset DTD) incluye todo
lo que incluye el DTD Transicional más los marcos. Para los documentos
que usen este DTD, utilice esta declaración del tipo de documento:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
----------------------------------------------------------------------------------------------------------------------------
XHTML 1.0
<html xmlns="http://www.w3.org/1999/xhtml">
El XHTML proponte tres doctype:
el modo estricto (strict): Se trata de la rigurosidad del código para
privilegiar la separación entre contenido y presentación. La adopción del
XHTML para escribir paginas web solo tiene sentido con un doctype
estricto. La referencia sera:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
el modo transicional, es un modo híbrido que acepta etiquetas obsoletas
en la actualidad (<font>, <u>, <center>…) y un modo de escritura que
mezcla todavía el contenido con la presentación. Ha sido concebido para
garantizar la compatibilidad o la transición de documentos HTML
elaborados con HTML4 Transitional, creado a su vez para asegurar la
compatibilidad con el HTML 3.2. La referencia seria:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
el modo frameset: este modo permite concebir paginas que incluyen marcos
(frame). Es una técnica cada vez menos utilizada. La referencia seria:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
miércoles, 15 de octubre de 2014
Apuntes y ejercicio pizarra de IDE
Aquí os dejo los apuntes de como obtener un grafo.
Este es el ejercicio de la pizarra. Puede tener fallos así que echarle un vistazo antes de nada.
jueves, 9 de octubre de 2014
import javax.swing.*;
public class Rel3Ej5
{
public static void main(String args[])
{
//Pedir un número entero N, y mostrar todos los números enteros de 1 a N
int n, i;
String sSalida="<html><table border=\"0\">";
n=Integer.parseInt(JOptionPane.showInputDialog("Introduzca un número"));
for(i=1;i<=n;i++)
{
//Con este if controlamos que cada 21 numeros (para que quede bonito) salte de fila
if((i-1)%20==0)
{
sSalida+="</tr><tr><td>"+i+"</td>";//Hay un cierre de <tr> al principio para que quede todo correcto
}
else
{
sSalida+="<td>"+i+"</td>";
}
}
sSalida+="</tr></table></html>";
JOptionPane.showMessageDialog(null, sSalida);
}
}
public class Rel3Ej5
{
public static void main(String args[])
{
//Pedir un número entero N, y mostrar todos los números enteros de 1 a N
int n, i;
String sSalida="<html><table border=\"0\">";
n=Integer.parseInt(JOptionPane.showInputDialog("Introduzca un número"));
for(i=1;i<=n;i++)
{
//Con este if controlamos que cada 21 numeros (para que quede bonito) salte de fila
if((i-1)%20==0)
{
sSalida+="</tr><tr><td>"+i+"</td>";//Hay un cierre de <tr> al principio para que quede todo correcto
}
else
{
sSalida+="<td>"+i+"</td>";
}
}
sSalida+="</tr></table></html>";
JOptionPane.showMessageDialog(null, sSalida);
}
}
Ej 5 rel 3
Una forma de hacerlo.
/*5. Pedir un número entero N, y mostrar todos los números enteros de 1 a N.*/
import javax.swing.*;
public class CincoRel3
{
public static void main(String args[])
{
int iNum,iContador=0;
String sResultado="";
iNum=Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
for(iContador=1;iContador<=iNum;iContador++)
{
sResultado = sResultado + iContador + ",";
}
JOptionPane.showMessageDialog(null,sResultado);
}
}
/*5. Pedir un número entero N, y mostrar todos los números enteros de 1 a N.*/
import javax.swing.*;
public class CincoRel3
{
public static void main(String args[])
{
int iNum,iContador=0;
String sResultado="";
iNum=Integer.parseInt(JOptionPane.showInputDialog("Introduce un número"));
for(iContador=1;iContador<=iNum;iContador++)
{
sResultado = sResultado + iContador + ",";
}
JOptionPane.showMessageDialog(null,sResultado);
}
}
Nada más que
añadir.
¡No te
olvides de seguirnos en las redes sociales y comentar la noticia!
Etiquetas:
Programacion,
Programas
Ubicación:
Montequinto, Sevilla, España
Suscribirse a:
Entradas (Atom)