Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - KaRaLLo

#1
Bueno, ahí va otro boletín esta vez sobre manipulación de datos, es probable que encontréis errores pero ya digo que no está corregido :D Learn !!

Buenas referencias en..
 http://www.java2s.com/Code/SQL/CatalogSQL.htm

1.- Un almacén de distribución de artículos desea mantener información sobre las ventas hechas por las tiendas que compran al almacén. Dispone de las siguientes tablas para mantener esta información:

ARTICULOS: almacena cada uno de los artículos que el almacén puede abastecer a las tiendas. Cada artículo viene determinado por las columnas: ARTICULO (PK entero corto), COD_FABRICANTE (PK FK entero corto), PESO (entero corto) y CATEGORIA (ENUM). La categoría puede ser 'PRIMERA', 'SEGUNDA' o 'TERCERA'.

Código (sql) [Seleccionar]

CREATE TABLE `ARTICULOS` (
`ARTICULO` TINYINT(2) NOT NULL,
`COD_FAB` TINYINT(2) NOT NULL,
`PESO` TINYINT(2) NULL DEFAULT NULL,
`CATEGORIA` ENUM('PRIMERA','SEGUNDA','TERCERA') NULL DEFAULT NULL,
PRIMARY KEY (`ARTICULO`, `COD_FAB`),
INDEX `FK_ARTICULOS_FABRICANTE` (`COD_FAB`),
CONSTRAINT `FK_ARTICULOS_FABRICANTE` FOREIGN KEY (`COD_FAB`) REFERENCES `FABRICANTE` (`COD_FAB`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;


FABRICANTES: contiene los países de origen de los fabricantes de artículos. Cada COD_FABRICANTE (PK entero corto) tiene su MARCA (UNICO de 20 caracteres) y su NOMBRE_PAIS (UNICO de 20 caracteres).

Código (sql) [Seleccionar]

CREATE TABLE `FABRICANTE` (
`COD_FAB` TINYINT(2) NOT NULL,
`MARCA` VARCHAR(20) NULL DEFAULT NULL,
`NOMBRE_PAIS` VARCHAR(20) NULL DEFAULT NULL,
PRIMARY KEY (`COD_FAB`),
UNIQUE INDEX `MARCA` (`MARCA`),
UNIQUE INDEX `NOMBRE_PAIS` (`NOMBRE_PAIS`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;



TIENDAS: almacena los datos de las tiendas que venden artículos. Cada tienda se identifica por su NIF (PK entero largo) y almacena además su PROVINCIA (20 caracteres).


Código (sql) [Seleccionar]

CREATE TABLE `TIENDAS` (
`NIF` VARCHAR(10) NOT NULL,
`PROVINCIA` VARCHAR(20) NULL DEFAULT NULL,
PRIMARY KEY (`NIF`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;


PEDIDOS: son los pedidos que realizan las tiendas al almacén. Cada pedido almacenará: NIF (PK FK entero largo), ARTICULO (PK FK entero corto), COD_FABRICANTE (PK FK entero corto), PESO (entero corto), CATEGORIA (ENUM 'PRIMERA','SEGUNDA','TERCERA') y FECHA_PEDIDO (TIMESTAMP con valor por defecto FECHA ACTUAL). Cada fila de la tabla representa un pedido.


Código (sql) [Seleccionar]

CREATE TABLE `PEDIDOS` (
`NIF` VARCHAR(10) NOT NULL,
`ARTICULO` TINYINT(2) NOT NULL,
`COD_FAB` TYNYINT(2) NOT NULL,
`PESO` SMALLINT(10) NULL DEFAULT NULL,
`CATEGORIA` ENUM('PRIMERA','SEGUNDA','TERCERA') NULL DEFAULT NULL,
`FECHA_PEDIDO` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`NIF`, `ARTICULO`, `COD_FAB`),
INDEX `FK_PEDIDOS_ARTICULOS` (`ARTICULO`),
INDEX `FK_PEDIDOS_FABRICANTE` (`COD_FAB`),
CONSTRAINT `FK_PEDIDOS_ARTICULOS` FOREIGN KEY (`ARTICULO`) REFERENCES `ARTICULOS` (`ARTICULO`),
CONSTRAINT `FK_PEDIDOS_FABRICANTE` FOREIGN KEY (`COD_FAB`) REFERENCES `FABRICANTE` (`COD_FAB`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;



2.- Crea una tabla VENTAS, a partir de PEDIDOS, que almacena las ventas de artículos que hace cada una de las tiendas. Cada venta se identifica por: NIF (PK FK entero largo), ARTICULO (PK FK entero corto), COD_FABRICANTE (PK FK entero corto), PESO (entero corto), CATEGORIA (ENUM 'PRIMERA','SEGUNDA','TERCERA') y FECHA_PEDIDO (TIMESTAMP con valor por defecto FECHA ACTUAL). Cada fila de la tabla representa una venta.

Código (sql) [Seleccionar]

CREATE TABLE VENTAS (SELECT * FROM PEDIDOS);



*************************************

3.- Modifica las tablas PEDIDOS y VENTAS para que incluyan un campo donde almacenar UNIDADES_PEDIDAS (entero corto) y UNIDADES_VENDIDAS (entero corto) respectivamente.


Código (sql) [Seleccionar]

ALTER TABLE VENTAS ADD COLUMN UNIDADES_VENDIDAS TINYINT(10) NOT NULL AFTER FECHA_PEDIDO;
ALTER TABLE PEDIDOS ADD COLUMN UNIDADES_PEDIDAS TINYINT(10) NOT NULL AFTER FECHA_PEDIDO;


4.- Introduce en las tablas los siguientes datos:

Código (sql) [Seleccionar]

INSERT INTO `ARTICULOS` (`ARTICULO`, `COD_FAB`, `PESO`, `CATEGORIA`) VALUES
(1, 1, 20, 'PRIMERA'),
(2, 1, 45, 'TERCERA'),
(3, 1, 10, 'TERCERA'),
(4, 1, 15, 'PRIMERA'),
(5, 2, 100, 'SEGUNDA'),
(6, 2, 15, 'PRIMERA'),
(7, 2, 30, 'PRIMERA'),
(8, 2, 80, 'TERCERA'),
(9, 3, 25, 'TERCERA'),
(10, 3, 25, 'PRIMERA'),
(11, 3, 70, 'SEGUNDA'),
(12, 3, 90, 'SEGUNDA');

INSERT INTO `FABRICANTE` (`COD_FAB`, `MARCA`, `NOMBRE_PAIS`) VALUES
(1, 'FELVI', 'ITALIA'),
(2, 'CANTIER', 'FRANCIA'),
(3, 'PEDROSA', 'ESPAÑA');

INSERT INTO `PEDIDOS` (`NIF`, `ARTICULO`, `COD_FAB`, `PESO`, `CATEGORIA`, `FECHA_PEDIDO`, `UNIDADES_PEDIDAS`) VALUES
('2222-A', 12, 3, 90, 'SEGUNDA', '0000-00-00 00:00:00', 20),
('4545-C', 1, 1, 20, 'PRIMERA', '2009-03-11 00:00:00', 10),
('5555-B', 1, 1, 20, 'PRIMERA', '2009-03-09 00:00:00', 40),
('5555-B', 2, 1, 45, 'TERCERA', '2009-03-11 00:00:00', 20),
('7788-D', 3, 1, 10, 'TERCERA', '2010-03-12 00:00:00', 40);

INSERT INTO `TIENDAS` (`NIF`, `PROVINCIA`) VALUES
('1111-A', 'SEVILLA'),
('2222-A', 'TOLEDO'),
('4545-C', 'MADRID'),
('5555-B', 'PONTEVEDRA'),
('7788-D', 'TOLEDO'),
('9911-H', 'TOLEDO');


INSERT INTO `VENTAS` (`NIF`, `ARTICULO`, `COD_FAB`, `PESO`, `CATEGORIA`, `FECHA_PEDIDO`, `UNIDADES_VENDIDAS`) VALUES
('2222-A', 12, 3, 90, 'SEGUNDA', '2012-03-16 00:00:00', 10),
('4545-C', 1, 1, 20, 'PRIMERA', '2009-11-04 00:00:00', 5),
('5555-B', 1, 1, 20, 'PRIMERA', '2009-12-03 00:00:00', 20),
('5555-B', 2, 1, 45, 'TERCERA', '2009-03-13 00:00:00', 20),
('7788-D', 3, 1, 10, 'TERCERA', '2011-03-11 00:00:00', 30);





5.- Realiza las siguientes operaciones:

a) Da de alta un nuevo artículo de 'PRIMERA' categoría para los fabricantes de 'FRANCIA' y abastece con 5 unidades de ese artículo a todas las tiendas y en la fecha de hoy.

Código (sql) [Seleccionar]

#primero doy de alta un articulo nuevo
INSERT INTO ARTICULOS
SELECT (13,
(SELECT A.COD_FAB FROM ARTICULOS A, FABRICANTE F WHERE F.NOMBRE_PAIS LIKE'FRANCIA' AND A.COD_FAB=F.COD_FAB LIMIT 1),
NULL,'PRIMERA';

INSERT INTO PEDIDOS
SELECT TIENDAS.NIF, 13, FABRICANTES.COD_FAB, 40, 'PRIMERA', NOW(), 5 FROM TIENDAS, FABRICANTES
WHERE FABRICANTES.NOMBRE_PAIS='FRANCIA';
[/code=sql]

[size=10pt][i][b]b) Inserta un pedido de 20 unidades en la tienda '1111-A' con el artículo que mayor número de ventas haya realizado.[/b][/i][/size]

[code=sql]
INSERT INTO PEDIDOS (`NIF`,`ARTICULO`,`COD_FAB`,`UNIDADES_PEDIDAS`)
VALUES
('1111-A',
(SELECT ARTICULO FROM VENTAS WHERE UNIDADES_VENDIDAS = (SELECT MAX(UNIDADES_VENDIDAS) FROM VENTAS)),
(SELECT COD_FAB FROM ARTICULOS WHERE ARTICULO = (SELECT ARTICULO FROM VENTAS WHERE UNIDADES_VENDIDAS = (SELECT MAX(UNIDADES_VENDIDAS) FROM VENTAS))),
20)


Código (sql) [Seleccionar]

#A
INSERT INTO PEDIDOS (`NIF`,`ARTICULO`,`COD_FAB`,`UNIDADES_PEDIDAS`)
VALUES
('1111-A',
ARTICULO,
COD_FAB,
CATEGORIA,
NOW(),
20
FROM VENTAS GROUP BY ARTICULO ORDER BY SUM(UNIDADES_VENDIDAS) DESC LIMIT 1;)



c) Da de alta una tienda en la provincia de 'MADRID' y abastécela con 20 unidades de cada uno de los artículos existentes.


INSERT INTO TIENDAS
VALUES ('1111-E','MADRID');

INSERT INTO PEDIDOS
SELECT '1111-E',ARTICULO,COD_FAB,PESO,CATEGORIA,NOW(),20
FROM ARTICULOS;


d) Da de alta dos tiendas en la provincia de 'SEVILLA' y abastécelas con 30 unidades de artículos de la marca de fabricante 'CANTIER'.

Código (sql) [Seleccionar]

INSERT INTO TIENDAS
VALUES
('2222-F','SEVILLA'),
('3333-G','SEVILLA');

INSERT INTO PEDIDOS
SELECT '2222-F',ARTICULOS.ARTICULO,ARTICULOS.COD_FAB,ARTICULOS.PESO,ARTICULOS.CATEGORIA,SYSDATE(),30
FROM ARTICULOS,FABRICANTES
WHERE (FABRICANTES.MARCA='CANTIER')
AND (FABRICANTES.COD_FAB=ARTICULOS.COD_FAB);

INSERT INTO PEDIDOS
SELECT '3333-G', ARTICULOS.ARTICULO, ARTICULOS.COD_FAB,ARTICULOS.PESO,ARTICULOS.CATEGORIA,SYSDATE(),30
FROM ARTICULOS,FABRICANTES WHERE
(FABRICANTES.MARCA='CANTIER')
AND
(FABRICANTES.COD_FAB = ARTICULOS.COD_FAB);


e) Realiza una venta para todas las tiendas de 'TOLEDO' de 10 unidades en los artículos de 'PRIMERA' categoría.

Código (sql) [Seleccionar]

INSERT INTO VENTAS
SELECT TIENDAS.NIF, ARTICULOS.ARTICULO,ARTICULOS.COD_FAB,ARTICULOS.PESO,ARTICULOS.CATEGORIA,SYSDATE(), 10
FROM (ARTICULOS.CATEGORIA='PRIMERA');


f) Para aquellos artículos de los que se hayan vendido más de 30 unidades, realiza un pedido de 10 unidades para la tienda con NIF '5555-B' con la fecha actual.


Código (sql) [Seleccionar]

ALTER TABLE  PEDIDOS DROP PRIMARY KEY,ADD PRIMARY KEY(NIF,ARTICULO,COD_FAB,FECHA_PEDIDO);

INSERT INTO PEDIDOS
SELECT DISTINCT '5555-B',
ARTICULOS.ARTICULO,ARTICULOS.COD_FAB,ARTICULOS.PESO,ARTICULOS.CATEGORIA,SYSDATE(),10
FROM ARTICULOS,VENTAS,
(SELECT SUM(VENTAS.UNIDADES_VENDIDAS) AS A,
VENTAS.ARTICULO AS B FROM VENTAS GROUP BY VENTAS.ARTICULO) AS C,
WHERE ARTICULO.ARTICULO=VENTAS.ARTICULO
AND A>30
AND C.B = ARTICULOS.ARTICULO;


g) Cambia los datos de la tienda con NIF '1111-A' igualándolos a los de la tienda con NIF '2222-A'.

Código (sql) [Seleccionar]

UPDATE TIENDAS AS A, (SELECT PROVINCIA FROM TIENDAS WHERE NIF='2222-a') AS B
SET A.PROVINCIA = B.PROVINCIA
WHERE NIF = 1111


h) Cambia todos los artículos de 'PRIMERA' categoría a 'SEGUNDA' categoría del país 'ITALIA'.

Código (sql) [Seleccionar]

UPDATE ARTICULOS A
SET A.CATEGORIA = 'SEGUNDA'
WHERE A.CATEGORIA = 'PRIMERA'
AND A.COD_FAB = (SELECT COD_FAB FROM FABRICANTE WHERE NOMBRE_PAIS LIKE 'ITALIA')


i) Modifica aquellos pedidos en los que la cantidad pedida sea superior a las existencias del artículo, asignando el 20 por 100 de las existencias a la cantidad que se ha pedido.

Código (sql) [Seleccionar]

ALTER TABLE ARTICULOS ADD COLUMN EXISTENCIAS INT(10) NULL DEFAULT 10000 AFTER CATEGORIA;

UPDATE PEDIDOS AS P, ARTICULOS AS AR,
(SELECT P.UNIDADES_PEDIDAS FROM PEDIDOS GROUP BY P.ARTICULO),
(SELECT AR.ARTICULO AS A FROM ARTICULOS, PEDIDOS,
(SELECT SUM(P.UNIDADES_PEDIDAS) AS B, P.ARTICULO AS C FROM PEDIDOS GROUP BY P.ARTICULO) AS D WHERE AR.EXISTENCIAS<B
AND
AR.ARTICULO=P.ARTICULO AND D.C=AR.ARTICULO GROUP BY P.ARTICULO) AS E
SET P.UNIDADES_PEDIDAS=(P.UNIDADES_PEDIDAS*(20/100)) WHERE P.ARTICULO=E.A;


j) Elimina aquellas tiendas que no hayan realizado ventas.

Código (sql) [Seleccionar]

DELETE FROM TIENDAS
WHERE NIF
NOT IN(SELECT DISTINCT NIF FROM VENTAS);


k) Elimina los artículos que no hayan tenido ni compras ni ventas.

Código (sql) [Seleccionar]

DELETE FROM ARTICULOS
WHERE ARTICULO NOT IN (SELECT DISTINCT ARTICULO FROM VENTAS)
AND
ARTICULO NOT IN (SELECT DISTINCT ARTICULO FROM PEDIDOS);
[/code=sql]

[size=10pt][i][b]l) Borra los pedidos de 'PRIMERA' categoría cuyo país de procedencia sea 'FRANCIA'.
[/b][/i][/size]
[code=sql]
DELETE FROM PEDIDOS
WHERE ARTICULO IN(SELECT ARTICULO FROM ARTICULOS WHERE CATEGORIA = 'PRIMERA')
AND
COD_FAB = ANY(SELECT COD_FAB FROM FABRICANTE WHERE NOMBRE_PAIS = 'FRANCIA')


m) Resta uno a las unidades de los últimos pedidos de la tienda con NIF '5555-B'.

Código (sql) [Seleccionar]

OPCION B
UPDATE PEDIDOS AS A,(SELECT NIF FROM PEDIDOS WHERE NIF =5555 ORDER BY FECHA_PEDIDO DESC LIMIT 1) AS B
SET UNIDADES_PEDIDAS = UNIDADES_PEDIDAS-1
WHERE
A.NIF = B.NIF






n) Crea una tabla INFORME, que contenga en tres columnas las marcas, artículo y la suma total de unidades vendidas de cada artículo.

Código (sql) [Seleccionar]

CREATE TABLE INFORME
SELECT FABRICANTES.MARCA,ARTICULOS.ARTICULO,NULL,(S,0)
FROM FABRICANTES, ARTICULOS
LEFT OUTER JOIN
(SELECT VENTAS.ARTICULO AS B,
SUM(VENTAS.UNIDADES_VENDIDAS) AS S FROM VENTAS
GROUP BY VENTAS.ARTICULO) AS A
ON ARTICULOS.ARTICULO = A.B
WHERE ARTICULOS.COD_FAB=FABRICANTES.COD_FAB


o) Borra el contenido de la tabla anterior.
[
Código (sql) [Seleccionar]

TRUNCATE TABLE INFORME
code]


[size=10pt][i][b]p) Elimina la tabla anterior.[/b][/i][/size]  

[code=sql]
DROP TABLE INFORME
[/code][/code][/code]
#2
Estoy buscando un cliente potente para linux, alguna recomendación ? gracias ^^
#3
Bases de Datos / Problema con outer join
26 Febrero 2012, 16:13 PM
Hola tengo una problemilla con esta consulta :

8.- Visualiza los nombres de los alumnos de la tabla ALUMNO que no estén en la tabla ANTIGUO ni en la tabla NUEVO.


ALUMNO;
+----------+------+------------+
| NOMBRE   | EDAD | LOCALIDAD  |
+----------+------+------------------+
| JUAN         |   20    | VIGO       |
| MANUEL     |   16    | PONTEAREAS |
| FERNANDO |   32 | TUI                   |
| PACA         |   25 | SALAMANCA     |
| PEPA         |   19 | LUGO               |
+----------+------+------------+


ANTIGUO;
+----------+------+-----------+
| NOMBRE   | EDAD | LOCALIDAD |
+----------+------+-----------+
| PEPA          |   19 | LUGO      |
| FERNANDO  |   32 | TUI       |
| JULIA         |   19 | CANARIAS  |
| CHONI       |   22 | MADRID    |
| PEPE         |   43 | BARCELONA |
+----------+------+-----------+


NUEVO;
+----------+------+------------+
| NOMBRE   | EDAD | LOCALIDAD  |
+----------+------+------------+
| MANUEL     |   16 | PONTEAREAS |
| RODRIGO  |   32 | CORU�A        |
| PILI          |   43 | POLLO            |
| FERNANDO |   32 | TUI               |
+----------+------+------------+

Sé que hay que utilizar outer join pero no soy capaz de escribir bien la sintaxis y llevo ya horas ralladísimo.

Si útilizo por ejemplo los left y right outers join y quitando los NULL me acaba devolviendo los que coinciden y necesito justamente todos los que NO se repitan



Gracias :)
#4
Bueno, es mi primera interfaz gráfica con eclipse en Java, hay que decir que :

- eventos,
- swing
y etc...

todavía no lo he dado en clase, lo máximo que hemos dado es arrays y todo lo que hacemos se hace por consola por Scanner (xD)

Se trata de un jueguillo que trata de que el usuario adivine los numeros de los textAreas de la derecha.

Un saludo !!!

https://rapidshare.com/files/1239131820/Juego_adivina.jar
#5
Bases de Datos / Ejercicio para Bases de datos
1 Febrero 2012, 17:39 PM
Bueno, me parece bién postear este ejercicio por si alguien esta interesado este temilla, es un boletín de ejercicios de BDD que tengo que entregar xD más abajo pondré mis soluciones, a ver que os parecen.


CONSULTAS BÁSICAS

1.- Diseña la base de datos para una librería que desea mantener la información de cada tema (cadena de caracteres de longitud fija 15 única y no nula), el estante en que se ubica (1 carácter) y el número de ejemplares de que dispone (valor numérico longitud 2).

Introduce datos de forma aleatoria, teniendo en cuenta que los temas encajan dentro de la siguiente lista: HISTORIA, FICCIÓN, MEDICINA, INFORMATICA, ARTE, RELIGION. Y que el estante es una letra del abecedario.

Realiza las siguientes consultas:

a) Obtener todos los datos cuyo tema sea "FICCION" usando "=" y posteriormente "LIKE". ¿Es el resultado el mismo? ¿Y si modificaras la tabla asignando longitud variable al campo tema?

b) Obtener el tema, estante y ejemplares de las filas con ejemplares comprendidos entre 8 y 15.

c) Obtener las columnas tema, estante y ejemplares de las filas cuyo estante no esté comprendido entre 'B' y 'D'.

d) Obtener con una única sentencia SELECT todos los temas de la librería cuyo número de ejemplares sea inferior a los que hay en 'MEDICINA'.

e) Obtener los temas de la librería cuyo número de ejemplares no esté entre 15 y 20, ambos incluidos.




2.- En un colegio se desea almacenar la información de los alumnos (DNI [10] no nulo y único, Apellidos_Nombre [30], Dirección [30], Población [15] y Teléfono [10], todos cadenas de caracteres de longitud variable), las asignaturas que cursan (Código como valor numérico de 2 cifras no nulo y único; y Nombre, cadena de caracteres de longitud variable 20) y las notas que obtienen dichos alumnos en las diferentes asignaturas que cursen (el valor de la nota será un número de 2 cifras).

Diseña el modelo E/R, a continuación transfórmalo a Grafo Relacional, para posteriormente implementar la base de datos y sus consecuentes tablas, campos y tipos de datos.

Introduce datos aleatorios para poder realizar las consultas detalladas más abajo.

Realiza a continuación las siguientes consultas:

a) Obtener el nombre y apellidos de cada alumno, asignatura que cursa y nota obtenida en dicha asignatura.

b) Obtener los nombres y apellidos de los alumnos que han cursado 'FOL'.
#6
Java / Ordenar array bidimensional
30 Enero 2012, 17:48 PM
Teniendo este array :


456     234     593     616
24       861     245     154
548     21       552     101
290     468     691     348

Necesito ordenarlo por columnas se me occurio este método pero el array se sale del rango :


Código (java) [Seleccionar]
for (int u = 0; u < notas.length; u++) {
for (int i = 0; i < nombres.length; i++) {
for (int j = 0; j < nombres.length; j++) {
if(notas[i][u] > notas[j][u]){
int aux=notas[i][u];
int aux2=notas[j][u];
notas[i][u]=aux2;
notas[j][u]=aux;
}
}
}
}


Un saludo
#7
Hola, después de haberme rayado la cabeza desde las ocho de la tarde, he conseguido sacar el ejercicio que me mandaron hoy en DAM en el módulo de programación (Java).

El ejercicio consiste en juntar 4 arrays

A un array String van asociados los valores de un array Int
A otro array String se le asocian los valores de otro array Int

Otro array fusiona los dos anteriores Strings[]
y otro fusiona los dos int[]

Ni que decir tengo que cada elemento del String fusionado[] tiene que corresponderle su valor.

Se ve mejor pensando que :

Un banco tiene estos clientes

String clientes[]           Int capital[]

Otro banco tiene estos

String clientes2[]         Int clientes2[]

Pero se fusionan y acaban todos

String clientes3[]        int clientes3[]



Código (java) [Seleccionar]
public class PruebasMain {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] a ={"Pedro", "Rodrigo", "Manuel",
"Jose",   "Paco",};


String[] b={"Luis",   "Antonio", "Pedro",
"Juan",  "Rodrigo"};

String[] N={"Pedro", "Rodrigo", "Manuel",
"Jose",   "Paco"  , "Luis",
"Antonio","Pedro" , "Juan",
"Rodrigo"};
int M[]={100,200,300,
400,500,600,
1000,2000,
3000,4000,
5000,};

int[] c={100,200,300,
400,500};

int[] d={1000,2000,3000,
4000,5000};
int k;
String auxNombre="";boolean bandera=false;

for (int j = 0; j < b.length; j++) { //el indice indica el elemento a compara
for (int i = 0; i < a.length; i++) { //el indice indica los elementos que compara
if(b[j].equals(a[i])){ //si el nombre es igual al otor array
auxNombre=a[i]; //asigna el nombre a un auxiliar
int auxDin=c[i]+d[j]; //y a un auxiliar la suma de los dos valores de sus capitales
for (int l = 0; l < N.length; l++) { //este for asigna los valores al tercer array
if(N[l].equals(auxNombre)){ //si N es igual al nombre encontrado
M[l]=c[i]+d[j]; //se le asigna el dinero de auxDin
N[l]=N[l]+" duplicado"; //si se le concatena al string de su nombre duplicado
int o=l; //se guarda el indice
if (l>o && N[l].equals(auxNombre)) { //para asegurarme que no vacie el primero
N[l]="(--Vacio--)";
M[l]=0;
}
}
}
}
}
}//fin del segundo
}// fin del primero
}



Se ve mejor pensando que :

Un banco tiene estos clientes

String clientes[]           Int capital[]

Otro banco tiene estos

String clientes2[]         Int clientes2[]

Pero se fusionan y acaban todos

String clientes3[]        int clientes3[]


Añado que todavía no di los arreglos multidimensionales. Si no veo ninguna respuesta lo entiendo ya que esto me parece un poco cocedura xD.

Lo posteo porque me gustaría saber que os pareces o si se podría hacer de una forma mas simple.

PD: Si alguien lo resuelve con 2 líneas de código abro la ventana y me tiro :D
siento el tocho
#8
Java / Duda array en constructor
23 Enero 2012, 00:51 AM
Hola teniendo este código


public class CaixaNova {

String nombresClientesNV[]=new String[5];
int capitalesClientes[]=new int[5];

public CaixaNova(){

nombresClientesNV[1]="Juanito";
nombresClientesNV[2]="Maria";
nombresClientesNV[3]="LoLo";
nombresClientesNV[4]="Maria";
nombresClientesNV[5]="Maria";

capitalesClientes[0]=2000;
capitalesClientes[1]=5000;
capitalesClientes[2]=1000;
capitalesClientes[3]=2500;
capitalesClientes[4]=3000;
}//fin del constructor


}


me gustaría saber si hay alguna otra forma de inicializar los arrays en el constructor porque esto me parece una lamerada y me parece raro que no haya otra forma ya probe con :


String nombresClientesNV[]=new String[5];
int capitalesClientes[]=new int[5];

public CaixaNova(){




}


y con esto


public Class CaixaNova{
String nombresClientesNV[];
int capitalesClientes[]=new int[5];

public CaixaNova(){

nombresClientesNV[]={"Juan","Pedro","LoLo","Paco","Bob"};
}//fin del constructor

}


y nada... me tira errores
#9
Java / Problema con un metodo (arrays)
21 Enero 2012, 14:45 PM
En este método lleno mi array int capCaixaGz=new int[5] de numeros aleatorios. El método funciona perfectamente, el problema, es que luego quiero hacer lo mismo con otro array.


public void setCapCaixNv(){

for (byte i = 0; i < capCaixaGz.length; i++)
capCaixaGz[i]=(int) Math.floor(Math.random()*1000000);

}//fin del metodo setCapCaixaNv



Lo que me gustaría hacer sería esto



public void setCapBanco(int BANCO){

for (byte i = 0; i < BANCO.length; i++)
BANCO[i]=(int) Math.floor(Math.random()*1000000);

}//fin del metodo setCapBanco


Mi duda es como puedo asignarle a mi array capCaixaGz la referencia banco para poder introducirlo despues en el método ???.

Muchas gracias
#10
Hola, intento que la salida de este arreglo se imprima a la inversa con un bucle for pero, llevo rompiendome todo el día la cabeza y no consigo nada.


package Boletin9_1;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {

double [] numeros=new double [6];

for(int i=0;i<numeros.length;i++){

numeros[i]=Math.floor((Math.random()*50+1));
}
for (int x=6;x>=0;x--){
System.out.println(numeros[x]);
}

    }
}


Me tira esta excepción.


Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at areglosiniciar.Main.main(Main.java:20)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
#11
Java / duda +=
27 Diciembre 2011, 18:09 PM
Hola, estoy estudiando un poco por mi cuenta estas vacaciones y en concreto el tema de los arreglos, siguiendo un manual/libro me he encontrado un ejemplo y en concreto una cosilla que nunca vi antes y es esto :

salida+=contador+"\t"+arreglo[contador]+"\n";

Lo que nunca he visto es ese += y no entiendo lo que hace. El fragmento del código donde se encuentra es este :



for(int contador=0;contador<arreglo.lenhgt;contador++)
salida+=contador+"\t"+arreglo[contador]+"\n";


Agradecería una pekeñita explicacion, muchas gracias :)
#12
Java / Problema Ecuaciones De Segundo Grado
30 Noviembre 2011, 10:09 AM

Hola, tengo una dudilla con un programa para resolver un ejercicio que consiste en crear un programa que resuelva una ecuacion de segundo grado :

Al poner valores como A= 1 B= -5  C = 6  en el método getVariables obj1.getVariables(1,-5,6), el programa actúa bien y me da como soluciones 3 y 2, perfecto

El problema está que cuando pongo por ejmplo valores como (6,-5,1) debería darme como resultado x1=1/2 y x2 1/3. Pero en cambio me da x1 = 18 y 12.

Quiero decir, que algunas ecuaciones me las resuelve bien y otras no.




MainEcuacion :



package boletin8_11;

public class MainEcuacion {


    public static void main(String[] args) {


       Ecuacion ec1 = new Ecuacion();
       
       ec1.getVariables(4, -6, 2);

        System.out.println(ec1.getPrimeraSolucion()+"\t"+ec1.getSegundaSolucion());

    }

}




Clase ecuaciones :



package boletin8_11;

public class Ecuacion {

    //variables
    float a;
    float b;
    float c;

    //constructor
    public Ecuacion() {

        a = 0;
        b = 0;
        c = 0;

    }

    public void getVariables(float var1, float var2, float var3) {

        a = var1;
        b = var2;
        c = var3;
    }

    public float getPrimeraSolucion() {

        float discriminante = (float) (Math.pow(b, 2) - (4 * a * c));
        float temp1 = (float) Math.sqrt(discriminante);

        //esta linea la operacion para la primera solucion
        float temp2 = -b + temp1;
        float primeraSolucion = temp2 / 2 * a;

        if (discriminante < 0) {
            System.out.println("La ecuacion no tiene solucion dentro de los numeros reales");
        } else if (discriminante == 0) {
            System.out.println("La ecuacion solo tiene una solucion");
        } else if (discriminante > 0) {
            System.out.println("La ecacion tiene 2 soluciones");
        }

        return primeraSolucion;
    }

    public float getSegundaSolucion() {

        float discriminante = (float) (Math.pow(b, 2) - (4 * a * c));
        float temp1 = (float) Math.sqrt(discriminante);

        float temp3 = -b - temp1;
        float segundaSolucion = temp3 / 2 * a;


        return segundaSolucion;
    }
}




por si sirve de algo estoy con netbeans 6,9 en ubuntu
#13
Hola, soy un chaval de 22 años, y después de andar desorientado en la vida, sin éxito al encontrar trabajo y viviendo de resaca, he decidido centrarme, allá por el verano pasado, por lo cuál me he dedicado efusivamente a estudiar el temario para una prueba de acceso a ciclos superiores realizada el pasado 1 mayo resultando un 5,80 de nota ( si no fuera por el p* gallego hubiera sacado un 7 ).

Despúes de esta leve presentación he aquí la cuestión, no sé por donde tirar, y busco algo de orientación, siempre me ha apasionado la informática, desde pequeñin me pasaba horas y horas en el ciber, al principio jugando, cs online 1,5 xD, me cansé de jugar y me dedice a hacer configuraciones o scripts ( por así decirlo ) bastante impresionantes a todos mis " colegas " hasta llegar a un punto que me veía en 1º, 2º de ESO, con tacos de 40 folios de líneas de comando de cstrike etc... puede sonar un poco friki.

Mas tarde y entrando en la pubertad me fuí por la mala vida y mis padres en un acto de reubicarme me metieron en un ciclo medio de mecanizado, donde la asignatura mas difícil era programación en control númerico computerizado ( CNC ) donde saqué notable alto, la asignatura consistía mediante un lenguaje de comandos programar máquinas por un ordenador, para que realizaran funciones de mecanizado.

Siempre me ha fascinado el mundo del hardware hasta el punto de gastarme bastante dinero en moddinear mi pc, cascar mi hp de 17 ' y restaurar todos los pc's viejos que me he ido encontrando.

Ahora no sé que ciclo superior elegir, y pienso que es una decisión bastante importante en mi vida, me gustaría dirigirme a la informática, en el camino de la programación o en el de las comunicaciones, también tengo pequeñas dudas en lo audiovisual y sonido ya que es una gran pasión mi pequeña guitarra eléctrica. Y ahí mi gran miedo. En mi comunidad dispongo de estos 2 :

-> Desarollador de aplicaciones informáticas
-> Desembolvemente de aplicacións informáticas

-> Administración de sistemas informáticos en red
-> Administración de sistemas informáticos en rede

aquí un folletito informativo, disculpas por el gallego, pero como buena lengua románica que es algo se entiende xd

http://www.edu.xunta.es/fp/files/trit/10_11/Informatica%20e%20Comunicacions.pdf

Me encantaría encontrar a alguien que haya hecho alguno de estos ciclos en galicia o en cualquier comunidad, sus experiencias, salidas y conclusiones.

Siento el tocho.

Un saludazo desde Vigo !!