[SOLUCIONADO] Ayuda con codigo en Java

Iniciado por MonkeyBoy, Agosto 27, 2018, 11:34:26 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 27, 2018, 11:34:26 AM Ultima modificación: Septiembre 30, 2018, 11:06:34 AM por xyz
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

Código: php
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.

Código: php
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!
Mientras tanto,en la isla Mono...

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  ;)

Código: php
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;
            }
        }
    }


}
El código es poesía.

Muchas gracias N0SS4

Muy claro todo! Gracias!
Mientras tanto,en la isla Mono...