Java - Arrays metodos

 
Vista:
sin imagen de perfil
Val: 7
Ha disminuido su posición en 242 puestos en Java (en relación al último mes)
Gráfica de Java

Arrays metodos

Publicado por luca (3 intervenciones) el 16/05/2019 19:52:04
Estoy perdido en arrays, solicite los numeros sin problema pero nose como hacer dichos metodos que se detallan abajo


Desde una clase ejecutable se deben solicitar 7 números enteros que representan a temperaturas máximas tomadas en los siete días de la semana, almacenarlos en un array y luego enviar este array a un objeto que me devuelva en diferentes métodos los siguientes resultados:

Métodos:

mayor (): debe devolver una cadena string que indica en qué posición se encuentra el mayor valor ingresado

promedio(): devolver un dato de tipo int con el resultado el promedio entre todos los elementos del array.

buscarPromedio(): determinar si el promedio de estos datos está almacenado en el vector, y devolver una cadena string que indique en qué posición se encontró el valor, o en su defecto una leyenda indicando que no se encontró.

factorial(): calcular el factorial a cada uno de los números leídos almacenándolos en otro array, y devolver el nuevo array para listarlos a los dos por pantalla quedando cada valor con su factorial al lado.Ej: El factorial de 3 = 6.

contar(): determinar y devolver un valor entero que indique cuántos números de los almacenados en dicho array son menores a 10

conversor(): generar un nuevo array convirtiendo esas temperaturas a grados Fahrenheit. Devolver ese arraya la clase ejecutable y luego mostrar las dos temperaturas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Main {
 
	public static void main(String[] args) {
		Scanner teclado = new Scanner(System.in);
 
		int [] temperaturas_maximas = new int[7];
 
		for(int i=0 ; i<7 ;i++) {
			System.out.println("Introduce un numero: ");
			temperaturas_maximas[i] =teclado.nextInt();
 
		}
		for(int i=0 ; i<7 ;i++) {
			System.out.println(temperaturas_maximas[i]);
 
	  //promedio
			int promedio = 0;
		    promedio= (temperaturas_maximas[0]+temperaturas_maximas[1]+temperaturas_maximas[2]+temperaturas_maximas[3]+temperaturas_maximas[4]+temperaturas_maximas[5]+temperaturas_maximas[6])/7;
		System.out.println("El promedio es: "+promedio);
 
	}
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 147
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Arrays metodos

Publicado por Yamil Bracho (2302 intervenciones) el 16/05/2019 20:15:06
Asi seria la busqueda del mayor

1
2
3
4
5
6
7
8
9
10
11
12
13
public int getMayor(int[] dataArr) {
   int mayor = dataArr[0];
   int pos = 0;
 
   for (int i = 1; i < dataArr.length; i++) {
      if (mayor > dataArr[i]) {
	     mayor =  dataArr[i];
		 pos = i;
	  }
   }
 
   return String.valueOf(pos)
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Omar
Val: 87
Ha disminuido su posición en 11 puestos en Java (en relación al último mes)
Gráfica de Java

Arrays metodos

Publicado por Omar (21 intervenciones) el 16/05/2019 22:51:27
Hola Luca por el momento no tengo java 8 instalado si no con gusto te haría tu tarea jejej XD bueno pero te diré como lo haría yo usando Java 8 es muy sencillo para encontrar el número mayor solo necesitas hacer un sort a tu arreglo de numeros Ej:

1
2
3
4
5
6
//Obtengo el maximo o numero mayor
public int getMax(int[]  temperaturaMaxima){
   Arrays.sort(temperaturaMaxima);   //Con el sort me acomoda los numeros de menor a mayor
   return temperaturaMaxima[temperaturaMaxima.length-1];  // Con esto le estoy diciendo que me retorne el número de la posición 7 - 1 (7 es la longitud del array y menos 1 por que empieza de cero)
 
}


Para el promedio hay 2 opciones una es, se suma los números y se divid2 la suma entre 7 por que son 7 números XD

1
2
3
public int getAverage(int [] temperaturaMaxima ){
   return  (temperaturaMaxima[0] + temperaturaMaxima[1] + temperaturaMaxima[2] +temperaturaMaxima[3] +temperaturaMaxima[4] +temperaturaMaxima[5] +temperaturaMaxima[6]) /7;
}

o la otra sería aplicar recursividad, checa este link https://es.stackoverflow.com/questions/103325/sumar-valores-de-un-arreglo-con-recursividad

Para el método buscarPromedio(): es la misma lógica de la recursividad para que reccorra el array y dependiendo de eso solo devolver un string

Espero te sirva de algo esta pequeña ayuda y recuerda que estos médotos van en una clase aparte, crea una y pon todos lo metodos ahí y solo llamalo en el main, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha disminuido su posición en 242 puestos en Java (en relación al último mes)
Gráfica de Java

Arrays metodos

Publicado por luca (3 intervenciones) el 19/05/2019 19:19:35
Te agradezco por la ayuda, lamentablemente no lo pude hacer funcionar. Se nota que esto no es para mi. Muchas gracias igual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.059
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[Solución] Arrays metodos

Publicado por Billy Joel (563 intervenciones) el 23/05/2019 18:41:55
Este problema lo resuelvo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
import java.util.Scanner;
 
public class Main {
 
    int[] temperaturas;
 
    public EvaluarTemperaturas(int[] temperaturas) {
        this.temperaturas = temperaturas;
    }
 
    /**
     * Devuelve una cadena string que indica en qué posición se encuentra el
     * mayor valor ingresado
     *
     * @return
     */
    public String mayor() {
        int posicion = 0;
        int mayor = temperaturas[posicion];
        for (int i = 0; i < temperaturas.length; i++) {
            if (temperaturas[i] > mayor) {
                mayor = temperaturas[i];
                posicion = i;
            }
        }
        return "El valor mayor (" + mayor + ") se encuentra en la posición " + posicion + " del arreglo";
    }
 
    /**
     * Devuelve el resultado el promedio entre todos los elementos del array.
     *
     * @return
     */
    public int promedio() {
        int suma = 0;
        for (int i = 0; i < temperaturas.length; i++) {
            suma += temperaturas[i];
        }
        return suma / temperaturas.length;
    }
 
    /**
     * Determina si el promedio de los datos está almacenado en el vector, y
     * devolver una cadena <b>String</b> que indique en qué posición se encontró
     * el valor, o en su defecto una leyenda indicando que no se encontró.
     *
     * @return
     */
    public String buscarPromedio() {
        int promedio = promedio();
        int posicion = 0;
        boolean encontrado = false;
        for (int i = 0; i < temperaturas.length; i++) {
            if (temperaturas[i] == promedio) {
                posicion = i;
                encontrado = true;
                break;
            }
        }
        return encontrado ? "El promedio " + promedio + " se encuentra almacenado en el vector en la posición " + posicion + " del vector"
                : "El promedio no se encontró dentro del vector";
    }
 
    /**
     * Devuelve el factorial de un número
     *
     * @param n número del que se quiere obtener el factorial
     * @return
     */
    private static int getFactorial(int n) {
        int f = 1;
        for (int i = n; i >= 1; i--) {
            f *= i;
        }
        return f;
    }
 
    /**
     * Calcula el factorial a cada uno de los números leídos almacenándolos en
     * otro array
     *
     * @return
     */
    public int[] factorial() {
        int[] f = new int[temperaturas.length];
        for (int i = 0; i < f.length; i++) {
            f[i] = getFactorial(temperaturas[i]);
        }
        return f;
    }
 
    /**
     * Determina y devuelve un valor entero que indique cuántos números de los
     * almacenados en dicho array son menores a 10
     *
     * @return
     */
    public int contar() {
        int c = 0;
        for (int t : temperaturas) {
            if (t < 10) {
                c++;
            }
        }
        return c;
    }
 
    private int centigrados2Farenheit(int centigrados) {
        return (centigrados * 9 / 5) + 32;
    }
 
    /**
     * Genera un nuevo array convirtiendo esas temperaturas a grados Fahrenheit.
     * Devolver ese arraya la clase ejecutable y luego mostrar las dos
     * temperaturas.
     *
     * @return
     */
    public int[] conversor() {
        int[] f = new int[temperaturas.length];
        for (int i = 0; i < f.length; i++) {
            f[i] = centigrados2Farenheit(temperaturas[i]);
        }
        return f;
    }
 
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int[] temperaturas_maximas = new int[7];
        //for (int i = 0; i < 7; i++) {
        for (int i = 0; i < temperaturas_maximas.length; i++) {
//            System.out.println("Introduce un numero: ");
            System.out.print("Introduce la temperatura del día " + (i + 1) + ": ");
            temperaturas_maximas[i] = teclado.nextInt();
        }
//        for (int i = 0; i < 7; i++) {
//            System.out.println(temperaturas_maximas[i]);
//            //promedio
//           int promedio = 0;
//            promedio = (temperaturas_maximas[0] + temperaturas_maximas[1] + temperaturas_maximas[2] + temperaturas_maximas[3] + temperaturas_maximas[4] + temperaturas_maximas[5] + temperaturas_maximas[6]) / 7;
//            System.out.println("El promedio es: " + promedio);
//        }
        Main e = new Main(temperaturas_maximas);
        System.out.println(e.mayor());
        System.out.println("El promedio de temperatura es: " + e.promedio());
        System.out.println(e.buscarPromedio());
 
        int [] factorial = e.factorial();
        for (int i = 0; i < factorial.length; i++) {
            System.out.println("El factorial de " + temperaturas_maximas[i] + " = " + factorial[i]);
        }
 
        System.out.println("Cantidad de números menores a 10: " + e.contar());
 
        int [] farenheit = e.conversor();
        for (int i = 0; i < farenheit.length; i++) {
            System.out.println(temperaturas_maximas[i] + "°C = " + farenheit[i] + "°F");
        }
    }
}

He utilizado tu main y comentado lo que no estaba bien.
Saludos
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar