Resultados 1 al 17 de 17
Like Tree1Likes
  • 1 Post By ViXoZuDo

Ayuda con dos ejercicios en java

Esta es una discusión para el tema Ayuda con dos ejercicios en java en el foro Software, bajo la categoría Tecnologia; Buenas Me podrian dar una manito con un par de ejercicios sobre array em java, se me hace dificil esta ...
Página: 1


  1. #1
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Ayuda con dos ejercicios en java

    Buenas
    Me podrian dar una manito con un par de ejercicios sobre array em java, se me hace dificil esta parte.
    1. Escribir un programa que luego de cargar un array unidimensional (vector) de n elementos, imprima la cantidad de elementos mayores al promedio.
    2. Escribir un programa que permita cargar dos arreglos unidimensionales (vectores) de n elementos cada uno, el primero conteniendo el legajo (expediente) y el segundo la nota de cada alumno. Se quiere saber que alumnos tienen una nota mayor al número K ingresado desde el teclado.

    Respecto al primero esto es lo que tengo planteado:

    import java.util.Scanner;

    public class MiVector{
    public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    int[] numero; // Vector
    int n; // Cantidad de numeros a almacenar.

    System.out.println("Introduzca cantidad de elementos a introducir:");
    n = in.nextInt();

    numero = new int[n]; // Inicialización del vector
    // Ingresando datos
    for(int i = 0; i < numero.length; i++){
    System.out.print("Ingrese numero " + (i+1) + ": ");
    numero[i] = in.nextInt();
    }

    // Calculando y mostrando el promedio.
    float suma = 0;
    for(int i = 0; i < numero.length; i++){
    suma += numero[i];
    }
    float promedio = suma/numero.length;
    System.out.println("El promedio es: " + promedio);

    // Calculando y mostrando los digitos mayores al promedio.
    int count = 0;
    for(int i = 0; i < numero.length; i++){
    if(numero[i] > promedio){
    count++;
    }
    }
    System.out.println("Hay " + count + " numeros mayores al promedio.");
    Muchisimas gracias de antemano, estare al tanto con el post

  2. #2
    Terra Admin Avatar de fecori
    Fecha de ingreso
    31 may, 11
    Ubicación
    Shipibolandia
    Mensajes
    31

    Predeterminado Re: Ayuda con dos ejercicios en java


  3. #3
    Senior Member
    Fecha de ingreso
    14 jun, 07
    Mensajes
    52

    Predeterminado Re: Ayuda con dos ejercicios en java

    Si lo primero te ha compilado sin error, esto lo modifique sin compilar. Así que tendrás que probar.
    Para el caso 2

    Código:
    import java.util.Scanner; 
    
    public class MiVector{ 
    public static void main(String[] args){ 
    Scanner in = new Scanner(System.in); 
    int[] numero; // Vector 
    String[] alumno; // Vector
    int n; // Cantidad de numeros a almacenar. 
    
    System.out.println("Introduzca cantidad de elementos a introducir:"); 
    n = in.nextInt(); 
    
    numero = new int[n]; // Inicialización del vector 
    alumno = new String[n]; // Inicialización del vector
    // Ingresando datos 
    for(int i = 0; i < numero.length; i++){ 
    System.out.print("Ingrese el nombre del alumno" + (i+1) + ": "); 
    alumno[i] = in.nextLine(); 
    System.out.print("Ingrese la nota" + (i+1) + ": "); 
    numero[i] = in.nextInt(); 
    } 
    
    // Calculando y mostrando el promedio. 
    float suma = 0; 
    for(int i = 0; i < numero.length; i++){ 
    suma += numero[i]; 
    } 
    float promedio = suma/numero.length; 
    System.out.println("El promedio es: " + promedio); 
    
    // Calculando y mostrando los alumnos con notas mayores al promedio. 
    System.out.println("Alumnos con notas mayores al promedio");
    for(int i = 0; i < numero.length; i++){ 
    if(numero[i] > promedio){ 
     System.out.println("Alumno : " + alumno[i]+ " Nota : "+numero[i] +" ");
    } 
    }

  4. #4
    Senior Member Avatar de ASEcino
    Fecha de ingreso
    09 nov, 03
    Mensajes
    354

    Predeterminado Re: Ayuda con dos ejercicios en java

    me has hecho recordar mis raices, le di una pequeña modificada a tu código, aún así no se si hace el resultado que esperas.

    Código:
    package test;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class TestVector1 {
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		List<Alumno> alumnos = new ArrayList<Alumno>();
    		System.out.println("Introduzca cantidad de elementos a introducir:");
    		int cantRegistros = in.nextInt();
    		
    		// Ingresando datos
    		for (int i = 0; i < cantRegistros; i++) {
    			Alumno alumno = new Alumno();
    			System.out.print("Ingrese nombre alumno " + (i + 1) + ": ");
    			alumno.setNombre(in.next()); 
    			System.out.print("Ingrese nota alumno " + (i + 1) + ": ");
    			alumno.setNota(in.nextInt());
    			alumnos.add(alumno);
    		}
    		
    		System.out.println("Introduzca valor K:");
    		int valorK = in.nextInt();
    
    		// Calculando y mostrando los digitos mayores al promedio.
    		System.out.println("Alumnos con notas mayoresa K:");
    		for (Alumno alumno : alumnos) {
    			if(alumno.getNota() > valorK){
    				System.out.println(alumno.getNombre());
    			}
    		}
    	}
    }
    
    class Alumno{
    	private String nombre;
    	private int nota;
    	public String getNombre() {
    		return nombre;
    	}
    	public void setNombre(String nombre) {
    		this.nombre = nombre;
    	}
    	public int getNota() {
    		return nota;
    	}
    	public void setNota(int nota) {
    		this.nota = nota;
    	}
    }

  5. #5
    0v3г£0гÐ Moderador Avatar de ViXoZuDo
    Fecha de ingreso
    28 nov, 04
    Ubicación
    Lima, Peru, Peru
    Mensajes
    1,818

    Predeterminado Re: Ayuda con dos ejercicios en java

    Para ver, antes de continuar, que cosas te han enseñado y tenemos opcion de utilizar. Hasta donde veo en tu primer ejemplo, estás trabajando con un vector creado, pero por ejemplo el código de ASEcino, el esta utilizando ArrayList y List que dudo mucho que tu profesor te permita utilizar en estás etapas de aprendizaje de vectores.

    Además, ¿ya te enseñaron programación orientada a objetos propiamente dicha? ¿O sea definir clases y utilizarlas? Porque sí te han enseñado y no te permiten usar librerías como Java.Util (y con ellos ArrayList, list, etc), puedes crear tu clase vector y trabajar a partir de ahí. Sería mil veces más sencillo.

    Un poco de información adicional sería de gran ayuda para poder ayudarte y darte un buen código según lo que necesitas.

    PD: el IDLE que están utilizando también podría ser buena referencia...
    Zukz likes this.
     
    jajaja ¿Te las creiste?

  6. #6
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    gracias por la ayuda, pero no me compilan D;
    Lo que es declaración de variables si me enseñaron con java,Util, y ahora estamos entrando en lo que es Array y por lo que veo tambien estan Arraylist y list en declaracion, pero como les dije se me hace dificil entender esta parte de Vectores Array
    Por eso recurrí a ustedes :D
    Muchas gracias a todos de antemano

    PD: uso Jcreator como compilador

  7. #7
    Member Avatar de ajota84
    Fecha de ingreso
    08 oct, 04
    Ubicación
    Lima, Perú
    Mensajes
    19

    Thumbs up Re: Ayuda con dos ejercicios en java

    Mi solución muy parecida a las demás pero usando tus mismos recursos

    CodePaste.NET - Ejercicio 2

  8. #8
    0v3г£0гÐ Moderador Avatar de ViXoZuDo
    Fecha de ingreso
    28 nov, 04
    Ubicación
    Lima, Peru, Peru
    Mensajes
    1,818

    Predeterminado Re: Ayuda con dos ejercicios en java

    Acabo de revisar tu problema, y la solución que planteaste para el primero está bien. No sé cual era tu duda al respecto.

    En el caso de la segunda, lo que se adecua mejor a lo que te piden, es la solución de ajota84. Lo único tal vez sería cambiar algunos println, por print regulares (solo por formato). Por lo demás, cumple con lo que te piden.

    En el caso de la solución de ASEcino, está correcta, pero está trabajando con clases y dudo mucho que te hayan explicado eso si todavía siguen trabajando con vectores, por lo que te recomendaría obviar ese ejemplo hasta que estés un poco más avanzado en el tema.

    Ahora, no sé si lo que se refiere el problema es cargar cada vector de manera independiente (primero cargar todo el legajo con los nombres y luego pedirte poner la nota de cada alumno). En caso sea así, solo se tendria que modificar ligeramente y leer cada uno de manera independiente (y hacer un print del nombre para ponerle su nota). En caso sea este tu necesidad, avisa para programartelo.
     
    jajaja ¿Te las creiste?

  9. #9
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    Muchas gracias !!!
    En el caso del primero el codigo que puse no me compila y no encuentro el error D:
    Y para el segundo segun lo encuentro primero cargar el legajo y luego pedirme la nota de cada alumno.
    En verdad muchas gracias !!

  10. #10
    0v3г£0гÐ Moderador Avatar de ViXoZuDo
    Fecha de ingreso
    28 nov, 04
    Ubicación
    Lima, Peru, Peru
    Mensajes
    1,818

    Predeterminado Re: Ayuda con dos ejercicios en java

    Si el código está tal cual lo has puesto, te faltan 2 } (corchetes) al final del problema 1...

    Como recomendación, aprende a usar bien las tabulaciones que con ellas detectas esta clase de problemas rápidamente...

    Edit: usando el codigo de ajota84 de base, este sería el mismo ejemplo cargando primero los nombres y luego las notas.
    Código:
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n;  // Cantidad de numeros a almacenar
        System.out.print("Introduzca cantidad de elementos a introducir: ");
        n = in.nextInt();
    
        String[] legajo = new String[n]; // nombres de los alumnos
        int[] nota = new int[n]; //notas de los alumnos
    
        /*
         Observación:
                \n es salto de linea
                \t es tabulación
         Solo para orden visual
         */
    
        //Ingreso de datos
        for (int i = 0; i < nota.length; i++) {
            System.out.println("\nINGRESO DE DATOS DEL ALUMNO " + (i+1));
            System.out.print("\tNombre: ");
            legajo[i] = in.next();
        }
        System.out.println("\nIngreso de Notas:");
        for (int i = 0; i < nota.length; i++) {
    
            System.out.print("\tNota de alumno "+legajo[i]+": ");
            nota[i] = in.nextInt();
        }
        /*
         Se quiere saber QUÉ ALUMNOS tienen una nota mayor al NÚMERO K INGRESADO DESDE EL TECLADO
         Nota: Legajo y Notas comparten el mismo índice
         */
    
        int k;
        System.out.print("\nIntroduzca el número K: ");
        k = in.nextInt();
        in.close();
    
        System.out.println("\nREPORTE DE ALUMNOS CUYDA NOTA ES MAYOR A " + k);
        for (int i = 0; i < nota.length; i++) {
                if (nota[i] > k) {
                        System.out.println("\t" + legajo[i]);
                }
        }
    }
    Te recomiendo analizar ambos códigos para mejorar tu entendimiento del tema.
     
    jajaja ¿Te las creiste?

  11. #11
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    Si eso mismo hare
    muchisimas gracias por todo!!
    Ahora los probare e ire a descansar.
    muchas gracias de nuevo !!
    Última edición por r1c4r; 04/06/2014 a las 02:44

  12. #12
    0v3г£0гÐ Moderador Avatar de ViXoZuDo
    Fecha de ingreso
    28 nov, 04
    Ubicación
    Lima, Peru, Peru
    Mensajes
    1,818

    Predeterminado Re: Ayuda con dos ejercicios en java

    Siempre es bueno ayudar a un futuro colega quien sabe, tal vez algún día seas mi jefe jajajaja
     
    jajaja ¿Te las creiste?

  13. #13
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    Buenas noches a todos !!!
    Finalmente entendi masomenos lo que es array!! gracias.
    Ahora nos dieron el ultimo team del semestre que es array multidimensional, 4 ejercicios de los cuales se me complica este:

    4. Una Empresa de Software tiene N empleados (Máximo = 100). Se consideran de cada
    uno de ellos los siguientes datos:

    Legajo: ENTERO
    Apellido y nombre: CADENA DE CARACTERES
    Remuneración anual: NUMERO REAL

    Desarrolle un programa con las funciones o métodos necesarios para que admita las
    siguientes opciones desde un menú:
    a. Ingreso de los datos de los empleados en 3 arreglos unidimensionales de hasta 100
    elementos cada uno. Un arreglo para cada dato.
    b. Impresión de la lista de empleados ordenada por legajo, en forma creciente, con todos
    sus datos.
    c. Búsqueda de un empleado por su legajo. En caso de no pertenecer a la Empresa,
    indicarlo expresamente.
    d. Impresión de la lista de empleados ordenada por Apellido y nombre, en forma creciente,
    con todos sus datos
    e. Impresión del Nombre y apellido, Legajo y Remuneración anual del empleado con menor
    remuneración (considere que hay uno sólo).
    f. Salida del programa.

    Y me dan como referencia este programa
    import java.io.*;
    class Ejemplo_menu
    {
    public static void main(String []arg) throws IOException

    {BufferedReader entrada= new BufferedReader (new InputStreamReader(System.in));
    String cadena;
    int legajo [];
    String nombre [];
    int salar[ ];
    int n;
    int op,x;
    int pos;

    System.out.print(" Ingrese cantidad de empleados : ");
    cadena=entrada.readLine();
    n=Integer.parseInt(cadena);
    legajo=new int [n];
    nombre=new String [n];
    salar=new int [n];


    do{
    System.out.println("\n\n\n");
    System.out.println(" M E N U de O P C I N E S ");
    System.out.println(" 1- Cargar/Ingresar Datos ");
    System.out.println(" 2- Buscar un empleado por legajo, y mostrar datos en pantalla, si no esta informar ");
    System.out.println(" 3- Ordenar por legajo los datos de empleados de la empresa ");
    System.out.println(" 4- Mostrar datos del empleado con menor remuneracion ");
    System.out.println(" 0- FIN");
    System.out.println (" Ingrese la la opcion : ");
    cadena=entrada.readLine();
    op=Integer.parseInt(cadena);

    switch(op)
    {
    case 1 : cargaDatos(legajo,nombre,prom);
    break;

    case 2 : //BuscarLegajo (legajo,nombre,salar);
    System.out.print("Ingrese el numero de legajo a buscar: ");
    x=Integer.parseInt(entrada.readLine());
    pos=BuscarLegajo(legajo,x);
    if(pos==-1)
    System.out.println("El numero de legajo no pertenece a la empresa");
    else
    System.out.println(" Legajo "+ legajo[pos]+ " Nombre y Apellidos " +nombre[pos]+ "Salario " +salar [pos]);
    break;


    case 3: OrdenarLegajo(legajo,nombre,salar);
    mostrarDatos(legajo,nombre,salar);
    break;

    case 4: OrdenarSalario(legajo,nombre,salar);
    mostrarListadoAlumnApro(legajo,nombre,salar);
    break;

    }
    }
    while (op!=0);

    }
    public static void cargaDatos(int legajo[], String nombre[],int salar[]) throws IOException

    {BufferedReader entrada= new BufferedReader (new InputStreamReader(System.in));
    int i;
    for(i=0;i<nombre.length;i++)
    {
    System.out.print ("ingresar el legajo ");
    legajo [i]=Integer.parseInt(entrada.readLine());

    System.out.print("El nombre y apellido es :");
    nombre[i]=entrada.readLine ();

    System.out.print(" Ingresar el salario :");
    salar[i]=Integer.parseInt(entrada.readLine());




    }
    }

    public static int BuscarLegajo ( int v [] , int x)


    {
    for(int i=0; i<v.length ;i++)
    {
    if (v[i]==x)

    return i;
    }
    return -1;
    }

    public static void OrdenarLegajo (int legajo[], String nombre[],int salar[])


    {
    int aux1;
    String aux2;
    int aux3;
    for (int i=0;i<salar.length-1;i++)
    for (int j=i+1; j<salar.length; j++)
    {
    if (legajo [i]> legajo[j])
    { aux1=legajo [i];
    legajo[i]=legajo[j];
    legajo[j]=aux1;
    aux2=nombre[i];
    nombre[i]=nombre[j];
    nombre[j]=aux2;
    aux3=salar[i];
    salar[i]=salar[j];
    salar [j]=aux3;

    }
    }
    }

    public static void mostrarDatos(int legajo[], String nombre[],int salar[])
    {
    for(int i=0; i<nombre.length ;i++)
    {
    System.out.println(" Legajo "+ legajo[i]+ " Nombre " +nombre[i]+ " Salario " +salar [i]);


    }
    }



    public static void OrdenarPromedio (int legajo[], String nombre[],int salar[])


    {
    int aux1;
    String aux2;
    int aux3;
    for (int i=0;i<salar.length-1;i++)
    for (int j=i+1; j<salar.length; j++)
    {
    if (salar [i]> salar[j])
    { aux1=legajo [i];
    legajo[i]=legajo[j];
    legajo[j]=aux1;
    aux2=nombre[i];
    nombre[i]=nombre[j];
    nombre[j]=aux2;
    aux3=salar[i];
    salar[i]=salar[j];
    salar [j]=aux3;

    }
    }
    }



    public static void mostrarListadoAlumnApro(int legajo[], String nombre[],int salar[])


    {
    int menorsalario= 3;
    for(int i=0; i<salar.length ;i++)

    {
    if (salar[i] >= 4) {

    System.out.println(" Legajo "+ legajo[i]+ " Nombre " +nombre[i]+ " Salario " +salar [i]);
    }
    }

    }


    }
    Me esta matando ese problema ._.
    Una consulta mas, algun libro, pagina o tutorial que tenga ejemplos de array multidimensional, como por ejemplo matrices nxm o nxn
    Muchas gracias !!!

  14. #14
    Senior Member Avatar de Zukz
    Fecha de ingreso
    11 jun, 07
    Ubicación
    Skarlet o anaconda
    Mensajes
    147

    Predeterminado Re: Ayuda con dos ejercicios en java

    El ejercicio no es un array multidimensional =(
    Todos piensan en cambiar el mundo, pero nadie piensa en cambiarse a si mismo
    Cita Iniciado por Hk Ver mensaje
    La Fuerza es fuerte en este joven.
    es intensaaaa

  15. #15
    Senior Member Avatar de Zukz
    Fecha de ingreso
    11 jun, 07
    Ubicación
    Skarlet o anaconda
    Mensajes
    147

    Predeterminado Re: Ayuda con dos ejercicios en java

    El ejemplo es para nada didactico puesto que si ya viste colecciones en java sería ideal poder hacerlo de esa manera, en fin a mi parecer simple pero mal elaborado. Dada la hora solo hice las 3 primeras, mañana las podría completar. Adicionalmente tambien soy estudiante y espero te pueda servir.
    ****************
    package ejemplo.BZ;

    import java.util.Scanner;

    public class Test {
    static Scanner leer = new Scanner(System.in);
    static int cant_elementos = 100;
    static int[] legajo = new int[cant_elementos];
    static String[] ape_nomb = new String[cant_elementos];
    static double[] salario = new double[cant_elementos];

    public static void main(String[] args) {

    int flag = 0;

    while (flag == 0) {

    switch (inicio()) {
    case 0:
    flag = 1;
    break;
    case 1:
    registro();
    break;
    case 2:
    imprimir();
    break;
    case 3:
    busqueda();
    break;
    case 4:

    break;
    case 5:

    break;
    default:
    System.out
    .println("Debe seleccionar opciones validas del 0 al 4");
    break;
    }

    }

    }

    public static int inicio() {

    System.out.println(" M E N U de O P C I N E S ");
    System.out.println(" 1- Cargar/Ingresar Datos ");
    System.out.println(" 2- Imprimir lista ordenada por legajo ");
    System.out.println(" 3- Ordenar por legajo los datos de empleados de la empresa ");
    System.out.println(" 4- Mostrar datos del empleado con menor remuneracion ");
    System.out.println(" 0- FIN");
    System.out.println(" Ingrese la la opcion : ");
    return leer.nextInt();
    }

    public static void registro() {

    System.out.println("Ingrese legajo");
    int le = leer.nextInt();
    System.out.println("Ingrese Apellidos y nombres");
    String an = leer.next();
    System.out.println("Ingrese sueldo");
    double sa = leer.nextDouble();
    legajo[le] = le;
    ape_nomb[le] = an;
    salario[le] = sa;

    }

    public static void imprimir() {

    for (int i = 0; i < cant_elementos; i++) {
    if (legajo[i] > 0) {
    System.out.println(legajo[i] + "-" + ape_nomb[i] + "-"
    + salario[i]);
    }
    }

    }

    public static void busqueda() {
    System.out.println("Ingrese numero de legajo a buscar");
    int nro = leer.nextInt();

    if (legajo[nro] > 0) {
    System.out.println(legajo[nro] + "-" + ape_nomb[nro] + "-"
    + salario[nro]);
    }

    }

    }
    Todos piensan en cambiar el mundo, pero nadie piensa en cambiarse a si mismo
    Cita Iniciado por Hk Ver mensaje
    La Fuerza es fuerte en este joven.
    es intensaaaa

  16. #16
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    Hola a todos!!
    muchas gracias por la ayuda zukz, estube modificando tu codigo y me quedo asi:

    import java.util.Scanner;
    class Test {
    static Scanner leer = new Scanner(System.in);
    static int cant_elementos = 100;
    static int[] legajo = new int[cant_elementos];
    static String[] apenomb = new String[cant_elementos];
    static double[] salario = new double[cant_elementos];

    public static void main(String[] args) {
    int flag = 0;
    while (flag == 0) {

    switch (inicio()) {
    case 0: flag = 1; break;
    case 1: registro(); break;
    case 2: imprimir(); break;
    case 3: busqueda(); break;
    case 4: ordenar(); break;
    case 5: salariomenor(); break;

    default:System.out.println("Seleccione una opcion valida."); break;
    }
    }
    }
    public static int inicio() {

    System.out.println(" M E N U de O P C I N E S ");
    System.out.println(" 1- Ingresar datos de empleados: ");
    System.out.println(" 2- Imprimir lista ordenada por legajo: ");
    System.out.println(" 3- Busqueda por legajo: ");
    System.out.println(" 4- Ordenar por apellido los datos de los empleados de la empresa ");
    System.out.println(" 5- Mostrar datos del empleado con menor remuneracion ");
    System.out.println(" 0- Programa Finalizado.");
    System.out.println(" Ingrese una opcion valida: ");
    return leer.nextInt();
    }

    public static void registro() {
    System.out.println("Ingrese legajo:");
    int le = leer.nextInt();
    System.out.println("Ingrese Apellidos y nombres:");
    String an = leer.next();
    System.out.println("Ingrese sueldo:");
    double sa = leer.nextDouble();
    legajo[le] = le;
    apenomb[le] = an;
    salario[le] = sa;
    }

    public static void imprimir() {
    for (int i = 0; i < cant_elementos; i++) {
    if (legajo[i] > 0) {
    System.out.println(legajo[i] + "-" + apenomb[i] + "-" + salario[i]);
    }
    }
    }

    public static void busqueda() {
    System.out.println("Ingrese el numero de legajo que quiere buscar: ");
    int nro = leer.nextInt();

    if (legajo[nro] > 0) {
    System.out.println(legajo[nro] + "-" + apenomb[nro] + "-" + salario[nro]);

    if (legajo[nro] != 0) {
    System.out.println("Legajo no corresponde a un empleado de la empresa");
    }
    }
    }
    public static void ordenar() {
    for(int i = 0; i < cant_elementos -1; i++){
    int ii = 0;

    for(int j=i+1;j < cant_elementos;j++){
    if(legajo[j]<legajo[ii]){
    ii=j;

    if(i != ii){
    int a = legajo[i];
    legajo[i] = legajo[ii];
    legajo[ii] = a;

    int c = apenomb[i];
    apenomb[i] = apenomb[ii];
    apenomb[ii] = c;

    double s = salario[i];
    salario[i] = salario[ii];
    salario[ii] = s;
    }
    }
    }
    }
    }
    public static void salariomenor() {
    int ii = 0;
    double salariomenor = salario[0];

    for(int i=0; i < cant_elementos;i++){
    if(salario[i] < salariomenor){
    ii = i;
    salariomenor = salario[i];
    }
    }
    printLine("");
    printLine("");
    printLine("-----------------------------------------------");
    printLine("Datos del empleado de menor sueldo: ");
    printLine("Legajo: " + legajo[ii] + "\tNombre y apellido: " + apenomb[ii] + "\tSueldo: " + salario[ii]);
    }
    }
    Pero me tira errores D:
    error: incompatible types (lineas 83-85)
    error: cannot find symbol (lineas 106 a 109)

    Y ya probe, probe, probe y probe pero no logro solucionarlos.
    Nuevamente muchas gracias !!

  17. #17
    Senior Member
    Fecha de ingreso
    14 ago, 08
    Mensajes
    55

    Predeterminado Re: Ayuda con dos ejercicios en java

    Hola !!! pude terminar ese ejercicio ahora estoy haciendo otro que me pide:

    Desarrollar un programa Java que permita ingresar los votos obtenidos por cada uno de los N candidatos a Gobernador de una provincia, en cada uno de los M distritos de la misma. El programa deberá:
    a) Imprimir una tabla (matriz de orden N x M ) distritos vs. candidatos con los votos emitidos.
    b) Calcular e imprimir el número total de votos recibidos por cada candidato y el porcentaje del total de votos emitidos. Asimismo, deberá visualizar el candidato más votado.
    c) Si algún candidato recibe más del 50% de los votos, el programa imprimirá un mensaje declarándole ganador.
    d) Si ningún candidato recibe más del 50% de los votos, el programa debe imprimir los dos candidatos más votados.

    La a si me cumple, en la b me muestra al menos votado en lugar del mas votado ._., en la c me manda al perdedor como ganador ._., y la d me manda al menos votado tambien ._.

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class Elecciones {

    private int N;
    private int M;
    private int CANDIDATOS_BALOTAJE = 2;
    private double PORC_MIN_GANADOR = 0.5;
    private String[] CANDIDATOS;
    private String[] DISTRITOS;
    private int[][] ESCRUTINIO;
    private int[] VOTOS_X_CANDIDATO;
    private BufferedReader in;
    public static byte IZQUIERDA = (byte) 0;
    public static byte DERECHA = (byte) 1;

    public Elecciones() throws IOException {
    N = leerInt("Introduzca la cantidad de candidatos: ");
    M = leerInt("Introduzca la cantidad de distritos: ");
    CANDIDATOS = new String[N];
    DISTRITOS = new String[M];
    ESCRUTINIO = new int[DISTRITOS.length][CANDIDATOS.length];
    VOTOS_X_CANDIDATO = new int[CANDIDATOS.length];
    for (int i = 0; i < N; i++) {
    CANDIDATOS[i] = "Candidato" + (i + 1);
    }
    for (int i = 0; i < M; i++) {
    DISTRITOS[i] = "Distrito" + (i + 1);
    }
    }

    private String leer(String m) throws IOException {
    if (in == null) {
    in = new BufferedReader(new InputStreamReader(System.in));
    }
    if (m != null) {
    System.out.print(e);
    }
    return in.readLine();
    }

    private int leerInt(String m) throws IOException {
    return Integer.parseInt(leer(e));
    }

    void cargarDatos() throws IOException {
    System.out.println("\nIngrese la cantidad de votos obtenidos");
    for (int j = 0; j < DISTRITOS.length; j++) {
    String distrito = DISTRITOS[j];
    String linea = repetir('-', distrito.length());
    System.out.println(linea);
    System.out.println(distrito);
    System.out.println(linea);
    for (int i = 0; i < CANDIDATOS.length; i++) {
    ESCRUTINIO[j][i] = leerInt(CANDIDATOS[i] + ": ");
    }
    }
    }

    public void mostrar() throws IOException {
    leer("\nDatos ingresados correctamente. **Presione enter para continuar.");
    System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
    System.out.println(" " + centrar("Candidatos", CANDIDATOS.length * 12));
    System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
    System.out.print(alinear("Distritos", 12, IZQUIERDA));
    for (int i = 0; i < N; i++) {
    System.out.print(alinear(CANDIDATOS[i], 12, DERECHA));
    }
    System.out.println("\n" + repetir('-', (CANDIDATOS.length + 1) * 12));
    for (int j = 0; j < DISTRITOS.length; j++) {
    System.out.print(alinear(DISTRITOS[j], 12, IZQUIERDA));
    for (int i = 0; i < CANDIDATOS.length; i++) {
    System.out.print(alinear("" + ESCRUTINIO[j][i], 12, DERECHA));
    }
    System.out.println();
    }
    System.out.println(repetir('-', (CANDIDATOS.length + 1) * 12));
    }

    public void votosPorCandidato() {
    double total = 0;
    for (int j = 0; j < ESCRUTINIO.length; j++) {
    for (int i = 0; i < CANDIDATOS.length; i++) {
    int v = ESCRUTINIO[j][i];
    VOTOS_X_CANDIDATO[i] += v;
    total += v;
    }
    }
    int mas_votado = -1;
    int ganador = -1;
    System.out.println("\nTotal de votos recibidos para cada candidato y su porcentaje");
    System.out.println(repetir(' ', 12) + centrar("Votos", 12) + centrar("Porcentaje", 12));
    int[] clasificacion = clasificarCandidatosPorVoto();
    for (int i = clasificacion.length - 1; i >= 0; i--) {
    int j = clasificacion[i];
    int votos = VOTOS_X_CANDIDATO[j];
    double porc = votos / total;
    if (mas_votado < 0 || votos < VOTOS_X_CANDIDATO[mas_votado]) {
    mas_votado = i;
    }
    if (porc > PORC_MIN_GANADOR) {
    ganador = i;
    }
    System.out.print(alinear(CANDIDATOS[j], 12, IZQUIERDA));
    System.out.print(alinear(votos, 12, DERECHA));
    System.out.println(alinear(String.format("%3.2f%%" , porc * 100), 12, DERECHA));
    }
    if (mas_votado > 0) {
    System.out.println("\nEl candidato mas votado: ");
    System.out.println("\t" + CANDIDATOS[mas_votado] + ": " + VOTOS_X_CANDIDATO[mas_votado]);
    }
    if (ganador > 0) {
    System.out.println("\nResulto ganador el:");
    System.out.println("\t" + CANDIDATOS[ganador] + ": " + VOTOS_X_CANDIDATO[ganador]);
    } else {
    System.out.println("\nLos dos mas votados fueron:");
    for (int i = clasificacion.length - 1; i >= 0 && i + CANDIDATOS_BALOTAJE >= clasificacion.length; i--) {
    System.out.println("\t" + CANDIDATOS[clasificacion[i]]);
    }
    }
    }

    private void copiarArray(int[] orig, int[] dest) {
    for (int i = 0; i < orig.length; i++) {
    orig[i] = dest[i];
    }
    }

    private int[] clasificarCandidatosPorVoto() {
    int[] vxc = new int[VOTOS_X_CANDIDATO.length];
    int[] clasificacion = new int[VOTOS_X_CANDIDATO.length];
    for (int i = 0; i < clasificacion.length; i++) {
    clasificacion[i] = i;
    }
    copiarArray(vxc, VOTOS_X_CANDIDATO);
    int j;
    for (int i = 1; i < vxc.length; i++) {
    int votos = vxc[i];
    int cand = clasificacion[i];
    j = i;
    while (j > 0 && votos < vxc[j - 1]) {
    vxc[j] = vxc[j - 1];
    clasificacion[j] = clasificacion[j - 1];
    j--;
    }
    vxc[j] = votos;
    clasificacion[j] = cand;
    }
    return clasificacion;
    }

    public String repetir(char ch, int cant) {

    char[] chars = new char[cant];

    for (int i = 0; i < cant; i++) {
    chars[i] = ch;
    }

    return new String(chars);
    }

    public String alinear(int nro, int ancho, byte alineacion) {
    return alinear(String.valueOf(nro), ancho, alineacion);
    }

    public String alinear(String texto, int ancho, byte alineacion) {

    if (texto == null) {
    return repetir(' ', ancho);
    }

    if (texto.length() > ancho) {
    return texto.substring(0, ancho);
    }

    if (alineacion == DERECHA) {
    return repetir(' ', ancho - texto.length()) + texto;
    } else {
    return texto + repetir(' ', ancho - texto.length());
    }
    }

    public String centrar(String texto, int ancho) {
    if (texto == null) {
    return repetir(' ', ancho);
    }
    if (texto.length() >= ancho) {
    return texto.substring(0, ancho);
    }
    String s = repetir(' ', (ancho - texto.length()) / 2) + texto;
    return s + repetir(' ', ancho - s.length());
    }

    public static void main(String[] args) throws Exception {
    Elecciones e = new Elecciones();
    e.cargarDatos();
    e.mostrar();
    e.votosPorCandidato();
    }
    }
    Muchisimas gracias !!!

Temas similares

  1. ayuda con dos lineas internet
    Por sebastianorc en el foro Cabinas y LAN Centers
    Respuestas: 9
    Último mensaje: 26/08/2011, 23:41
  2. Ayuda con MS DOS
    Por Paul en el foro Ayuda Técnica
    Respuestas: 1
    Último mensaje: 31/05/2008, 14:41
  3. Ayuda Con el Admin Mod
    Por PoWeR en el foro Server Admin
    Respuestas: 16
    Último mensaje: 11/10/2003, 01:10
  4. AYUDA CON MI SERVER !
    Por YUIT en el foro Server Admin
    Respuestas: 1
    Último mensaje: 23/07/2002, 10:18
  5. AYUDA CON MI SERVER !
    Por :-::Wolf - Pack:-:: en el foro Ayuda Técnica
    Respuestas: 1
    Último mensaje: 01/01/1970, 00:00

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •