Vetor de nomes e números

1 resposta
F

Seguinte pessoal sou iniciante em Java, más estou com um problema que não consigo resolver e preciso da ajuda de vocês, pois para vocês isso deve ser fácil. Seguinte tenho que criar um programa em java que aceite como entradas do meu usuário Strings (nomes) e Números e a quantidade de passos que o vetor será ordenado, depois aplique o método de ordenação shell sort e mostre os passos que foram ordenados e a saída na tela, para ordenar numero eu consegui (ver código abaixo), o problema esta com nomes como faço para ele receber qualquer entrada nome ou número e como vou comparar esses dados? Claro nesse código de número eu criei um método para criar numeros randomicos só para não ter que ficar digitando toda a vez de testar, más na versão final preciso que os numeros ou nomes sejam informados pelo usuário

POR FAVOR ME AJUDEM
package javaapplication2;

/**
 *
 * @author USUARIO
*/import java.util.Random;
public class Tabela{
    
   
    /** Cria novas instâncias da tabela */
    public Tabela() {
       
    }
  

//(1) preenche uma tabela
    public static void preenche(int tabela[]) {
        Random random = new Random();
        for (int i=0; i < tabela.length; i++)
        tabela[i] = random.nextInt(10);
    }
//(2) troca as posições de dois elementos da tabela
    public static void troca(int tabela[], int x, int y){
        int tmp;
        tmp = tabela[x];
        tabela[x] = tabela[y];
        tabela[y] = tmp;
    }
//(3) Imprime a tabela desordenada
    public static void imprime(int tabela[]) {
    System.out.println("TABELA DESORDENADA");
    for (int i=0; i < tabela.length; i++)
    System.out.println(" "+i+": "+ tabela[i]+" ; ");
    System.out.println();
    }
//(4) Imprime a tabela já ordenada  
     public static void imprimeOrdenada(int tabela[]) {
    System.out.println("TABELA ORDENADA");
    for (int i=0; i < tabela.length; i++)
    System.out.println(" "+i+": "+ tabela[i]+" ; ");
    System.out.println();
    }
   
}
 
/*
 * OrdenacaoShell.java
 *
 * Created on 1 de Junho de 2006, 11:11
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package javaapplication2;

/**
 *
 * @author FABRICIO MACHADO DA SILVA
 */
public class OrdenacaoShell extends Tabela {
    

    public static void shell (int tabela[ ], double passos ) {
        boolean nenhumaTroca;
        int intervalo;
        intervalo = (int) Math.pow(2,passos);
        
        do
        {
            do
            {
                nenhumaTroca = true;
                for (int j = 0; j < tabela.length-intervalo; j++)
                	if (tabela[j] > tabela[j+intervalo]) {
                		Tabela.troca(tabela, j, j+intervalo);
                		nenhumaTroca = false;
                	}
           	}  while (!nenhumaTroca);
            intervalo = intervalo / 2;
            if (intervalo >0){
                Tabela.imprime(tabela);
            }
          } while ( intervalo > 0);
    }
    
   
    public static void main(String args[]){
    	int tabela[] = new int[8];
    	Tabela.preenche(tabela); //preenche tabela
    	Tabela.imprime(tabela); //imprime tabela antes da ordenação
    	shell(tabela, 2); //ordena tabela
        Tabela.imprimeOrdenada(tabela); //imprime a tabela depois da ordenação
        
    }
 }
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

1 Resposta

D

Para pegar o numero digitado pelo usuario, no java 5, voce pode utilizar a classe java.util.Scanner… ou criar uma interface grafica.

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();
Criado 19 de junho de 2006
Ultima resposta 25 de jun. de 2006
Respostas 1
Participantes 2