Estudando pela net me deparei com o seguinte exercicio que não obtive resultado, por favor alguém poderia me ajudar?
Crie uma aplicação Java que declare dois vetores V_IN e V_OUT, leia valores numéricos para V_IN, de tamanho
5. Faça com que o programa ordene V_IN em ordem crescente e guarde os valores nas primeiras posições de
V_OUT que tem tamanho 10. As outras posições de V_OUT deverão ser preenchidas com os valores de V_IN na
ordem decrescente. Tanto a ordenação de V_IN quanto o preenchimento de V_OUT devem ser feitos por
métodos. Após preenchido, o vetor V_OUT, deverá ser impresso na tela.
[quote=Crivelli]Estudando pela net me deparei com o seguinte exercicio que não obtive resultado, por favor alguém poderia me ajudar?
Crie uma aplicação Java que declare dois vetores V_IN e V_OUT, leia valores numéricos para V_IN, de tamanho
5. Faça com que o programa ordene V_IN em ordem crescente e guarde os valores nas primeiras posições de
V_OUT que tem tamanho 10. As outras posições de V_OUT deverão ser preenchidas com os valores de V_IN na
ordem decrescente. Tanto a ordenação de V_IN quanto o preenchimento de V_OUT devem ser feitos por
métodos. Após preenchido, o vetor V_OUT, deverá ser impresso na tela.[/quote]
Para declarar o os arrays use:
int[] V_IN = new int[5];
int[] V_OUT = new int[10];
Para acessar uma determinada posição:
V_IN[2] = 10;
Lembrando que o indice do array começa em 0, logo, V_IN vai de 0…4
Acho que com essas informações você já consegue “trabalhar com arrays”. Agora é com você para elaborar o código. Caso tenha outra dúvida, por favor poste o que você tentou fazer. Sem postar uma tentativa dificilmente alguém vai te ajudar.
Tentei fazer como no código abaixo, porém não consigo chamar as funcoes e eu qria saber como fazer tipow assim V_AUX = ordemDecrescente( V_IN ) e uma dica de como passar e retornar arrays aos métodos.
Obrigado!
[code]import java.util.*;
public class exercicio04 {
public void ordemDecrescente( int[] vet)
{
int aux = 0;
int j = vet.length;
for(int i = 0; i < vet.length; i++)
{
aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
}
}
public void ondemCrescente( int[] vet)
{
Arrays.sort( vet );
}
public static void main(String[] args) {
int[] V_IN = new int[5];
int aux;
Scanner input = new Scanner( System.in );
System.out.println("Digite os valores: ");
for(int i = 0 ; i < V_IN.length ; i++)
{
aux = input.nextInt();
V_IN[i] = aux;
}
ordemDecrescente( V_IN );
}
public class Teste {
public static int[] geraOut(int[] in) {
int out[] = new int[in.length*2];
for (int i = 0; i < in.length; i++) {
out[i] = in[i];
out[i+in.length] = in[in.length-1 - i];
}
return out;
}
Para chamar métodos é necessário um objeto da classe no qual os métodos foram definidos. Caso você não queira usar um objeto para chamar os métodos você precisará declarar os métodos como static, assim esses métodos poderão ser chamados sem ter um objeto da classe instanciado, como o ViniGodoy fez.
[quote=Crivelli]Tentei fazer como no código abaixo, porém não consigo chamar as funcoes e eu qria saber como fazer tipow assim V_AUX = ordemDecrescente( V_IN ) e uma dica de como passar e retornar arrays aos métodos.
Obrigado!
[code]import java.util.*;
public class exercicio04 {
public void ordemDecrescente( int[] vet)
{
int aux = 0;
int j = vet.length;
for(int i = 0; i < vet.length; i++)
{
aux = vet[i];
vet[i] = vet[j];
vet[j] = aux;
}
}
public void ondemCrescente( int[] vet)
{
Arrays.sort( vet );
}
public static void main(String[] args) {
int[] V_IN = new int[5];
int aux;
Scanner input = new Scanner( System.in );
System.out.println("Digite os valores: ");
for(int i = 0 ; i < V_IN.length ; i++)
{
aux = input.nextInt();
V_IN[i] = aux;
}
ordemDecrescente( V_IN );
}
}[/code]
[/quote]
Vc nunca vai conseguir chamar os métodos se não cria uma instancia da classe exercicio04 na tua aplicação…