Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: MonkeyBoy en Agosto 27, 2018, 11:34:26 AM

Título: [SOLUCIONADO] Ayuda con codigo en Java
Publicado por: MonkeyBoy en Agosto 27, 2018, 11:34:26 AM
Hola!

Queria pedirles ayuda con estos enunciados para escribir en Java.

Hay algo que estoy poniendo que no los corre bien.

Enunciados:

Suponga un array que contiene N notas de 0 a 10 generados
aleatoriamente y mostradas en pantalla, de acuerdo a la nota
contenida, indicar cuántos estudiantes perteneces al grupo:
 Bajo de conocimientos de 0-4
 Regulares de mayor de 4 hasta 5
 Buenos mayor a 5 hasta 7
 Muy buenos mayor de 7 a 9
 Excelentes mayor a 9

Aca en Java lo que fui armando (No terminado y no bien colocado los n°) es la base

import java.io.*;

public class algoritmo4 {

public static void main(String args[]) throws IOException {
BufferedReader bufEntrada = new BufferedReader(new InputStreamReader(System.in));
double contadores[];
int i;
int numeros_aleatorios[];
int tamanio;
// Pedimos el tamaño del arreglo
System.out.println("Escribe un numero para el tamaño del arreglo");
tamanio = Integer.parseInt(bufEntrada.readLine());
// Creamos los arreglos
numeros_aleatorios = new int[tamanio];
contadores = new double[4];
// Recooremos el arreglo
for (i=0;i<=tamanio-1;i++) {
numeros_aleatorios[i-1] = aleatorio(0,10);
System.out.println(numeros_aleatorios[i-1]);
// Segun el valor, añadimos uno mas al arreglo
if (numeros_aleatorios[i-1]>=0 && numeros_aleatorios[i-1]<=5) {
contadores[-1] = contadores[-1]+1;
} else {
if (numeros_aleatorios[i-1]>=6 && numeros_aleatorios[i-1]<=10) {
contadores[0] = contadores[0]+1;
} else {
if (numeros_aleatorios[i-1]>=11 && numeros_aleatorios[i-1]<=15) {
contadores[1] = contadores[1]+1;
} else {
if (numeros_aleatorios[i-1]>=16 && numeros_aleatorios[i-1]<=20) {
contadores[2] = contadores[2]+1;
}
}
}
}
}
// Mostramos los valores
for (i=0;i<=3;i++) {
switch (i) {
case 0:
System.out.println("Deficientes (0-5): "+contadores[i-1]);
break;
case 1:
System.out.println("Regulares (6-10): "+contadores[i-1]);
break;
case 2:
System.out.println("Buenos (11-15): "+contadores[i-1]);
break;
case 3:
System.out.println("Excelentes (16-20): "+contadores[i-1]);
break;
}
}
}


}




siguiente enunciado:


Realizar un algoritmo con el siguiente proceso:
1. Llenar Vector A de manera aleatoria.
2. Llenar Vector B de manera aleatoria.
3. Realizar C=A+B
4. Realizar D=B-A
5. Mostrar por pantalla los contenidos de los dos Vectores A, B, y los
totales de C y D.
6. Salir.

import java.io.*;

public class ejercicio_arreglos_6 {

public static void main(String args[]) throws IOException {
BufferedReader bufEntrada = new BufferedReader(new InputStreamReader(System.in));
String a[];
boolean arreglo_a_rellenado;
boolean arreglo_b_rellenado;
String b[];
String c[];
double forma_1;
double forma_2;
int longitud_arreglos;
double maximo;
double minimo;
int opcion_menu;
int opcion_submenu;
boolean salir;
boolean salir_submenu;
// Constantes usadas
minimo = -100;
maximo = 100;
forma_1 = 1;
forma_2 = 2;
// Pedimos la longitud de los arreglos
System.out.println("Escribe una longitud");
longitud_arreglos = Integer.parseInt(bufEntrada.readLine());
// Dimensiones de los arreglos
a = new String[longitud_arreglos];
b = new String[longitud_arreglos];
c = new String[longitud_arreglos];
arreglo_a_rellenado = false;
arreglo_b_rellenado = false;
opcion_menu = 0;
do {
// Menu
System.out.println("1. Llenar Vector A de forma aleatoria");
System.out.println("2. Llenar Vector B de forma aleatoria");
System.out.println("3. Realizar C = A + B");
System.out.println("4. Realizar C = B - A");
System.out.println("5. Mostrar arreglo");
System.out.println("6. Salir");
// elijo una opcion del menu
System.out.println("Elige una opcion");
opcion_menu = Integer.parseInt(bufEntrada.readLine());
salir = false;
switch (opcion_menu) {
case 1:
// relleno el arreglo A
llenararreglo(a,longitud_arreglos,minimo,maximo);
arreglo_a_rellenado = true;
System.out.println("el arreglo A ha sido rellenado");
break;
case 2:
// relleno el arreglo B
llenararreglo(b,longitud_arreglos,minimo,maximo);
arreglo_b_rellenado = true;
System.out.println("el arreglo B ha sido rellenado");
break;
case 3:
if (arreglo_a_rellenado && arreglo_b_rellenado) {
// relleno el arreglo C
rellenarc(a,b,c,longitud_arreglos,forma_1);
System.out.println("el arreglo C ha sido rellenado");
} else {
if (!arreglo_a_rellenado) {
System.out.println("Tienes que rellenar el arreglo A");
}
if (!arreglo_b_rellenado) {
System.out.println("Tienes que rellenar el arreglo B");
}
}
break;
case 4:
if (arreglo_a_rellenado && arreglo_b_rellenado) {
// relleno el arreglo C
rellenarc(a,b,c,longitud_arreglos,forma_2);
System.out.println("el arreglo C ha sido rellenado");
} else {
if (!arreglo_a_rellenado) {
System.out.println("Tienes que rellenar el arreglo A");
}
if (!arreglo_b_rellenado) {
System.out.println("Tienes que rellenar el arreglo B");
}
}
break;
case 5:
// Submenu
opcion_submenu = 0;
do {
System.out.println("Escribe que arreglo quieres mostrar");
System.out.println("1. A");
System.out.println("2. B");
System.out.println("3. C");
System.out.println("4. Salir");
opcion_submenu = Integer.parseInt(bufEntrada.readLine());
salir_submenu = false;
// mostrar arreglos
switch (opcion_submenu) {
case 1:
mostrararreglo(a,longitud_arreglos);
break;
case 2:
mostrararreglo(b,longitud_arreglos);
break;
case 3:
mostrararreglo(c,longitud_arreglos);
break;
case 4:
salir_submenu = true;
break;
default:
System.out.println("Elige alguna de las opciones");
}
} while (!salir_submenu);
break;
case 6:
salir = true;
break;
default:
System.out.println("Escribe una opcion entre 1 y 6");
}
} while (!salir);
}

// rellena el arreglo
public static void llenararreglo(int arreglo[], double longitud_arreglos, int min, int max) {
double i;
for (i=0;i<=longitud_arreglos-1;i++) {
arreglo[i-1] = aleatorio(min,max);
}
}

// Muestra un arreglo concreto
public static void mostrararreglo(String arreglo[], double longitud_arreglos) {
double i;
for (i=0;i<=longitud_arreglos-1;i++) {
System.out.print(arreglo[i-1]+" ");
}
System.out.println("");
}

// Rellena el arreglo C
public static void rellenarc(double arregloa[], double arreglob[], double arregloc[], double longitud_arreglos, double tipo) {
int i;
if (tipo==1) {
// punto 3
for (i=0;i<=longitud_arreglos-1;i++) {
arregloc[i-1] = arregloa[i-1]+arreglob[i-1];
}
} else {
// punto 4
for (i=0;i<=longitud_arreglos-1;i++) {
arregloc[i-1] = arreglob[i-1]-arregloa[i-1];
}
}
}


}






Muchas gracias por su ayuda!
Título: Re:Ayuda con codigo en Java
Publicado por: N0SS4 en Agosto 31, 2018, 09:35:29 AM
Buenas he solucionado tu primer enunciado creo que deberias saber que los arrays empiezan desde 0, por lo tanto nunca lo empieces por un valor negativo como tus famosos i-1, también como recomendación intenta usar los elseif, que sino con if, else, if ocupas demasiado espacio.

Espero que te sirva  ;)

import java.util.Scanner;

public class Main {

    public static void main(String args[]) {
        Scanner teclado = new Scanner(System.in);
        double contadores[];
        int numeros_aleatorios[];
        int tamanio;
        // Pedimos el tamaño del arreglo
        System.out.println("Escribe un numero para el tamaño del arreglo");
        tamanio = teclado.nextInt();
        // Creamos los arreglo
        numeros_aleatorios = new int[tamanio];
        contadores = new double[5];
        // Recooremos el arreglo
        for (int i=0;i<tamanio;i++) {
            int aleatorio = (int) (Math.random() * 10) + 1;
            numeros_aleatorios[i] = aleatorio;
            System.out.println(numeros_aleatorios[i]);
            // Segun el valor, añadimos uno mas al arreglo
            if (numeros_aleatorios[i]>=0 && numeros_aleatorios[i]<5) {
                contadores[0] = contadores[0]+1;
            } else if (numeros_aleatorios[i]>=5 && numeros_aleatorios[i]<=5) {
                    contadores[1] = contadores[1]+1;
            } else if (numeros_aleatorios[i]>5 && numeros_aleatorios[i]<7) {
                    contadores[2] = contadores[2]+1;
            } else if (numeros_aleatorios[i] >7 && numeros_aleatorios[i] <=9){
                contadores[3] = contadores[3]+1;
            } else if (numeros_aleatorios[i]>9) {
                    contadores[4] = contadores[4]+1;
                }
                }
        for (int i=0;i<=4;i++) {
            switch (i) {
                case 0:
                    System.out.println("Bajo de conocimientos (0-4): "+contadores[i]);
                    break;
                case 1:
                    System.out.println("Regulares (5): "+contadores[i]);
                    break;
                case 2:
                    System.out.println("Buenos (6-7): "+contadores[i]);
                    break;
                case 3:
                    System.out.println("Muy buenos (8-9): "+contadores[i]);
                    break;
                case 4:
                    System.out.println("Excelentes (10): "+contadores[i]);
                    break;
            }
        }
    }


}
Título: Re:Ayuda con codigo en Java
Publicado por: MonkeyBoy en Agosto 31, 2018, 11:04:43 AM
Muchas gracias N0SS4

Muy claro todo! Gracias!