Programa para deslocamento com array

5 respostas
J

Preciso criar um programa para o seguinte problema:
“Faça um programa que faça um deslocamento à esquerda de tamanho m vezes (m lido via teclado) em um vetor v de inteiros cujo tamanho o usuário deverá ler. Seu programa deve ler o vetor, escrever o vetor original e escrever o vetor após o deslocamento.
Por exemplo, a figura abaixo apresenta um vetor de tamanho 5, no qual se realiza um deslocamento de tamanho 2.
-3 7 11 0 8
Após o deslocamento de 3 posições, fica:
0 8 -3 7 11”

Porém não sei usar array. Preciso de ajuda, desde a declaração de variáveis, até a finalização do programa.
Desde já meus sinceros agradecimentos pela atenção.

5 Respostas

E

Jonas, leia a apostila do seu curso. Não peça o programa pronto. Seu professor não passou uma apostila? Se não passou, então baixe uma apostila na Internet.

M

É cara, da uma estudada e conversa com o teu professor …

mas ai no teu exercício você vai ter que fazer algo assim:

public class Teste {
	public static void main(String[] args) {
		int[] vetor = new int[]{0,1,2,3,4,5}; //SEU VETOR
		deslocarEsq(vetor, 5, 2);
	}
	public static void deslocarEsq(int[]vetor, int posicao, int desl){
		int dest = posicao - desl; //CALCULA A POSIÇÃO QUE O VALOR VAI FICAR -- TERIA Q VERIFICAR SE A POSIÇÃO NÃO É MENOR QUE ZERO
		int valor = vetor[posicao]; //SALVA O VALOR DA POSIÇÃO ATUAL
		while(posicao > dest){  //DESLOCA TODOS OS VALORES PARA FRENTE
			vetor[posicao] = vetor[posicao-1];
			posicao--;
		}
		vetor[dest] = valor; //COLOCA O VALOR NA SUA POSIÇÃO DE DESTINO
	}
}
E

Margel, você está quase certo. Só que o professor, como “pegadinha”, chamou de “deslocamento” o que eu chamaria de “rotação”. Note que, no enunciado da questão, os dados que aparecem no final foram transferidos para o começo do array, portanto esse loop que você escreveu não vai funcionar direito :frowning:

D

jonasben:
Preciso criar um programa para o seguinte problema:
“Faça um programa que faça um deslocamento à esquerda de tamanho m vezes (m lido via teclado) em um vetor v de inteiros cujo tamanho o usuário deverá ler. Seu programa deve ler o vetor, escrever o vetor original e escrever o vetor após o deslocamento.
Por exemplo, a figura abaixo apresenta um vetor de tamanho 5, no qual se realiza um deslocamento de tamanho 2.
-3 7 11 0 8
Após o deslocamento de 3 posições, fica:
0 8 -3 7 11”

Porém não sei usar array. Preciso de ajuda, desde a declaração de variáveis, até a finalização do programa.
Desde já meus sinceros agradecimentos pela atenção.

Trabalho de faculdade?

M

Verdade cara … não li direito, fui pelo deslocamento hehe
é uma rotação mesmo desculpa ^^ … segue ai um esboço do método para ROTACIONAR o vetor

public static void rotacionarDir(int[] vetor, int desl){
		for(int i=0; i<desl; i++){
			int ultimo = vetor[vetor.length-1];
			int posicao = vetor.length-1;
			while(posicao > 0){
				vetor[posicao] = vetor[posicao-1];
				posicao--;
			}
			vetor[0] = ultimo;
		}
	}
Criado 28 de novembro de 2012
Ultima resposta 28 de nov. de 2012
Respostas 5
Participantes 4