PDA

Ver la versión completa : Error en un codigo



Ulward
18/01/2005, 18:56
Si alguien es tan amable podria decirme ande falla esta **** mierda de tabla de temperaturas? THX!!!


import java.io.*;

public class Temperaturas
{
public static void main(String[] args)
{
double tabla[6][4];

BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
try
{
for(int i=0; i<=6; i++)
{
System.out.println("Maxima del Día" (i+1));
tabla[i][0] = integer.parseDouble(entrada.readLine());
System.out.println("Minima del Día" (i+1));
tabla[i][1] = integer.parseDouble(entrada.readLine());
}
MediaDia (tabla);
Diferencia (tabla);

for (int d=0; d<=6; d++)
{
System.out.println("Día" (d+1));
}
for (int e=0; e<=3; e++)
{
System.out.println(tabla[d][e]);
}
System.out.println();
}
catch(IOException IOEx)
{
}
System.out.println("La media de Temperatura de la semana es: " (MediaSemana));
}
}


private static void MediaDia (double [][]tabla)
{
for(int a=0; a<=6; a++)
{
tabla [i][2] = ((tabla [i][0] + tabla[i][1]) /2)
}
}


private static double MediaSemana (double [][]tabla)
{
double MediaSemana=0;
for(int b=0; b<=6, b++)
{
MediaSemana = (tabla[i][2]) /7
}
return tabla
}


private static void Diferencia (double [][]tabla)
{
for(int c=0; c<=6; c++)
{
tabla [i][3] = (MediaSemana - tabla[i][2])
}
}

tMil
18/01/2005, 19:10
hOLA

Esto que es una practica? :D
Asi de primeras creo que te falla esto:
Creo que las funciones que estan despues de la definicion de la clase deben estar dentro de las llaves que definen la clase o por lo menos si estan fuera deberian ser publicas (Aunque creo que mejor dentro de las llaves de la clase).

En el codigo
for (int e=0; e<=3; e++)
{
System.out.println(tabla[d][e]);
}
la variable d no esta definida, esta definida en el otro for, pero cuando acaba el otro for muere :D creo que las llaves de cierre del otro for deben estar despues de las de cierre de este.

Por otro lado, en la funcion MediaSemana debes devolver un double que deberia ser MediaSemana no la tabla.

Y en los system.out mejor si pones el signo + para concatenar.

Y con esto y un bizcocho a compilar :D
Xao.

Croc
18/01/2005, 19:30
Wenas!

El codigo tiene bastantes errores sintacticos de Java, conceptuales y de diseño si he entendido bien lo ke kiere hacer (no te desanimes, los comienzos siempre han sido duros!)

Aparte de lo ke ya te hayan comentado sobre el ambito de validez de las variables, hay un problema coneptual con los arrays. Cuando defines un array de tamaño 7, éste se recorre desde 0 hasta 6. Es decir, si lo declaras como "double[][] tabla = new double[7][4];" para recorrer la matriz horizontalmente necesitaras los indices tal ke asi: "for(int i=0; i<7; i++)".

No es ke sea muy aconsejable darte la solucion y deberias aprender de tus errores, pero el codigo corregido intuyo ke seria algo asi:



import java.io.*;

public class Temperaturas{
static double[][] tabla = new double[7][4];

public static void main(String[] args){
BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));

try{

for(int i=0; i<7; i++){
System.out.println("Maxima del Día " + (i+1));
tabla[i][0] = Double.parseDouble(entrada.readLine());
System.out.println("Minima del Día " + (i+1));
tabla[i][1] = Double.parseDouble(entrada.readLine());
}
MediaDia (tabla);
Diferencia (tabla);

for (int d=0; d<7; d++){
System.out.println("Día" + (d+1));
for (int e=0; e<4; e++){
System.out.println(tabla[d][e]);
}
}
System.out.println();

}catch(IOException IOEx){}

System.out.println("La media de Temperatura de la semana es: " + (MediaSemana(tabla)));
}

private static void MediaDia (double [][]tabla){
for(int i=0; i<7; i++){
tabla [i][2] = ((tabla [i][0] + tabla[i][1]) /2);
}
}


private static double MediaSemana (double [][]tabla){
double MediaSemana=0;
for(int i=0; i<7; i++){
MediaSemana += (tabla[i][2]);
}
return MediaSemana / 7;
}


private static void Diferencia (double [][]tabla){
for(int i=0; i<7; i++){
tabla [i][3] = Math.abs((MediaSemana(tabla) - tabla[i][2]));
}
}

}


Salu2

Ulward
18/01/2005, 19:52
muchas gracias a los 2. lo de las variables me he dado cuenta despues al seguir, al "morir" xD en el for no llegan al otro.
a lo q se refiere croc muchas gracias por la aclaración i<7.

jaja voya pillar el codigo de croc e imponerle mis formas muhahaha (aver si mi profe no se da cuen)

}catch(IOException IOEx){}



}
catch(IOException IOEx) <---- Asi de novato :arriba:
{
}

|Wesker|
22/01/2005, 00:00
Dejame adivinar, tas en telecomunicasiones? :D Es tengo un amigo alli que me comento que tuvo una practica de java relasionado con temperaturas :D.

Ulward
22/01/2005, 00:08
no informatica y ademas de gestion, q no veas como me rayan las clases de tecnicas de administracion y direccion empresarial :canon2:

|Wesker|
22/01/2005, 00:38
Uff po yo toy hasiendo la superior de informatica, anda que lo que me espera... :shock: :D