Ir ao conteúdo
  • Cadastre-se

Duvida na elaboração de um algoritimo


Posts recomendados

Ola pessoa não estou conseguindo resolver este exercicio.

 

Ler um vetor de 10 elementos inteiros. Após isto, imprimir na tela os 10 valores lidos e o usuário poderá escolher um destes valores para ser excluído do vetor. Ler o valor escolhido e eliminá-lo do vetor. No momento da exclusão todos os valores posteriores ao valor escolhido deverão ser reorganizados (movidos uma posição para esquerda) a fim de que o vetor resultante não fique com um espaço em branco. Imprimir o novo vetor.

 

Na parte de exclusao e reordenar que não estou conseguindo vou postar o codigo

algoritmo "semnome"// Função :// Autor :// Data : 10/7/2014// Seção de DeclaraçõesvarElementos:vetor[1..3] de inteiroi,valor,restante,j,aux,l,k:inteiroinicio// Seção de Comandos//Solicitação de dados ao usuariopara i de 1 ate 3 faca       escreval("Entre com o ",i, "º valor ")       leia(Elementos[i])fimpara//Escrevendo os Elementos na tela     para i de 1 ate 3 faca            escreval(Elementos[i])     fimpara //Solicitando o valor a ser Excluido escreval("Por favor entre com o valor a ser excluido") leia(valor)           para i de 1 ate 3 faca                 se(valor = Elementos[i]) então                  k:=k + 1                 fimse          fimpara          para i de 1 ate 3-1 faca                 Elementos[i]:=Elementos[i]          fimpara para i de 1 ate 3 faca     escreval(Elementos[i])fimparafimalgoritmo

Onde estou errando ?

Link para o comentário
Compartilhar em outros sites

@Ronimar

 

 

Use aquela variável k para saber em que posição do vetor o valor foi encontrado. Quando encontrar o valor, você guarda o valor de i e sai do laço (com interrompa):

k := 0para i de 1 ate 3 faca   se (valor = Elementos[i]) então      k := i      interrompa   fimsefimpara

A ideia do deslocamento é essa mesmo.. só faltou uma coisa: você deve receber sempre o valor da posição seguinte. E você deverá começar a deslocar a partir justamente do valor de k guardado no laço anterior:

para i de k ate 3-1 faca      Elementos[i] := Elementos[i + 1]fimpara

Você pode aperfeiçoar o programa para que ele considere a situação de quando um valor não for encontrado no vetor..

 

 

Certo?

 

 

Abs.

LNW

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bacana ja foi um grande passo.Mais ainda continuo com um problema .Se eu pedir para excluir o valor do vetor do meio eu consigo.Mais se for o primeiro ou o terceiro não consigo excluir da uma olhada com as alterações que fiz.

 

algoritmo "semnome"// Função :// Autor :// Data : 10/7/2014// Seção de Declarações varElementos:vetor[1..3] de inteiroi,valor,restante,j,aux,l,k:inteiroinicio// Seção de Comandos//Solicitação de dados ao usuariopara i de 1 ate 3 faca       escreval("Entre com o ",i, "º valor ")       leia(Elementos[i])fimpara//Escrevendo os Elementos na tela     para i de 1 ate 3 faca            escreval(Elementos[i])     fimpara //Solicitando o valor a ser Excluido escreval("Por favor entre com o valor a ser excluido") leia(valor)          k := 0para i de 1 ate 3 faca   se (valor = Elementos[i]) então      k := i      interrompa   fimsefimparapara i de k ate 3-1 faca      Elementos[i] := Elementos[i + 1]fimpara para i de 1 ate k faca     escreval(Elementos[i])fimparafimalgoritmoConsegui amigo meu erro era no ultimo para aé acrescentei  para i de 1 ate 3-1 faca     escreval(Elementos[i])fimpara
 
Consegui resolver .valeu Amigo.No que precisar estamos aé para ajudar!!!!!!!!!!!!
Link para o comentário
Compartilhar em outros sites

"para i de 1 ate 3 faca   se (valor = Elementos[i]) então      k := i      interrompa   fimsefimparapara i de k ate 3-1 faca      Elementos[i] := Elementos[i + 1]fimpara para i de 1 ate k faca     escreval(Elementos[i])fimpara"
 
Consegui resolver .valeu Amigo.No que precisar estamos aé para ajudar!!!!!!!!!!!!

 

Uma dica para excluir um elemento em qual quer posição do vetor seria:

 

para i de 1 ate 3 faca   se (valor = Elementos[i]) então //Apaga o valor escolhido      Elementos[i] = 0;   fimse

após colocar o zero você faria uma ordenação de vetores para jogar esse zero na ultima posição, em seguida caso quisesse imprimir novamente o vetor poderia deixar de imprimir a(s) ultima(s) posições que possui(em) o(s) zero(s) no final! 

Obs: caso não tenha interpretado muito bem a questão ou minha notificação não foi muito válida, peço desculpas. :)

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!