Java - Métodos: Funciones y procedimientos.

 
Vista:
sin imagen de perfil

Métodos: Funciones y procedimientos.

Publicado por Vic (4 intervenciones) el 19/03/2023 03:54:43
Realice un programa en JAVA que luego de ingresado un array de n valores
enteros implemente los siguientes métodos:
1. minimoArrayInt: Devuelve el mínimo del array que se pasa como parámetro.
2. maximoArrayInt: Devuelve el máximo del array que se pasa como
parámetro.
3. mediaArrayInt: Devuelve la media del array que se pasa como
parámetro.
4. estaEnArrayInt: Dice si un número está o no dentro de un array.
5. posicionEnArray: Busca un número en un array y devuelve la posición
(el índice) en la que se encuentra.
Nota: Cada opción se implementará con un subprograma y habrá un menú de
opciones.
Por favor ayuda corrigiendo
hice lo que más pude :c

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
package ejercicioarrayint;
 
import java.util.Scanner;
 
/**
 *
 * @author Administrador
 */
public class EjercicioArrayInt {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try (Scanner entrada = new Scanner(System.in)) {
            int opcion, valor;
            int[] numeros;
            System.out.print("Introduzca el tamaño del array: ");
            int tamano = entrada.nextInt();
            numeros = new int[tamano];
            for (int i = 0; i < tamano; i++) {
                System.out.print("Introduzca un número entero en la posición " + i + ": ");
                numeros[i] = entrada.nextInt();
            }   do {
                System.out.println("\n MENÚ DE OPCIONES");
                System.out.println("1.Devolver el valor mínimo del array");
                System.out.println("2.Devolver el valor máximo del array");
                System.out.println("3.Devolver la media del array");
                System.out.println("4.Comprobar si un número está en el array");
                System.out.println("5.Devolver la posición de un número en el array");
                System.out.println("0.Salir");
                System.out.print("\n Elija una opción: ");
                opcion = entrada.nextInt();
 
                switch (opcion) {
                    case 1:
                        int minimo = minimoArrayInt(numeros);
                        System.out.println("El mínimo número del array es: " + minimo);
                        break;
                    case 2:
                        int maximo = maximoArrayInt(numeros);
                        System.out.println("El máximo número del array es: " + maximo);
                        break;
                    case 3:
                        double media = mediaArrayInt(numeros);
                        System.out.println("La media de los valores del array es: " + media);
                        break;
                    case 4:
                        System.out.print("Introduzca un número a comprobar si está en el array: ");
                        valor = entrada.nextInt();
                            if (estaEnArrayInt(numeros, valor)) {
                            System.out.println("El número " + valor + " no está en el array");
                        } else {
                            System.out.println("El número " + valor + " está en el array");
                        }
                        break;
                    case 5:
                        System.out.print("Introduzca un número a buscar en el array: ");
                        valor = entrada.nextInt();
                        int posicion = posicionEnArray(numeros, valor);
                        if (posicion != -1) {
                            System.out.println("El número " + valor + " se encuentra en la posición " + posicion + " del array.");
                        } else {
                            System.out.println("El número " + valor + " no se encuentra en el array.");
                        }
                        break;
                    case 0:
                        System.out.println("Saliendo del programa.");
                        break;
                    default:
                        System.out.println("Opción no válida.");
                        break;
                }
 
            } while (opcion != 0);
        }
 
    }
 
    public static int minimoArrayInt(int[] array) {
        int minimo = Integer.MAX_VALUE;
        for (int i = 0; i < array.length; i++) {
            if (array[i] < minimo) {
                minimo = array[i];
            }
        }
        return minimo;
    }
 
    public static int maximoArrayInt(int[] array) {
        return 0;
    }
 
    public static int mediaArrayInt (int[] array) {
        return 0;
    }
    public static int estaEnArrayInt (int[] array, int valor) {
        return 0;
    }
     public static int posicionEnArray  (int[] array, int valor) {
        return 0;
     }
 
}
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
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Métodos: Funciones y procedimientos.

Publicado por Kabuto (1379 intervenciones) el 19/03/2023 11:44:52
Hola.

Si has hecho el método para buscar el valor mínimo, deberías poder hacer también el de buscar el máximo, ya que es la misma mecánica pero invirtiendo la pregunta.

Luego, el método de calcular la media. Tampoco debería ser problema.
Sería recorrer el array y hacer una suma de todos sus valores.
Luego esa suma la divides por la cantidad de elementos que tiene el array (array.length) y la retornas.


El método para saber si un valor está contenido en el array, debería ser boolean y su código podría ser este:
1
2
3
4
5
6
7
8
9
10
public boolean estaEnArrayInt(int[] array, int valor) {
 
        for (int i = 0; i < array.length; i++) {
            if (array[i] == valor)
                return true; //Valor encontrado, la búsqueda finaliza aquí
        }
 
        //Si bucle for termina el ciclo sin retornar true, es que el valor no está
        return false;
    }

Así retorna VERDADERO si el valor están en el array o FALSO en caso contrario.

Esto requiere corregir el IF ELSE en el case 4 del switch, ya que como lo has escrito ahora, el mensaje que se muestra en pantalla en el caso de VERDADERO, dice que el valor no está.
Mejor ponerlo así:
1
2
3
4
5
6
7
8
9
10
;
                    case 4:
                        System.out.print("Introduzca un número a comprobar si está en el array: ");
                        valor = entrada.nextInt();
                            if (estaEnArrayInt(numeros, valor)) {
                            System.out.println("El número " + valor + " está en el array");
                        } else {
                            System.out.println("El número " + valor + " no está en el array");
                        }
                        break;


El método para buscar la posición de un valor.

La lógica sería comenzar con un valor int inicializado con valor -1.
1
int posicion = -1;

Recorres el array y comparas cada elemento del array con el valor.

Si alguno coincide, guardas la posición de ese elemento en la variable "posicion".

Cuando termine el bucle, retornas "posicion". Y ya está.

Si no se ha encontrado coincidencia, el valor de retorno será -1. En caso de que si haya coincidencia, se retornará la posición del elemento que coincide con el valor.


Intenta escribir estos métodos. Si no consigues terminarlos o no funcionan bien, comparte aquí tu código y te ayudamos a corregir/completar.

Un saludo.
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