How to eliminate repeated numbers from a visualg vector?

Asked

Viewed 1,343 times

0

algoritmo "semnome"
// Função :
// Autor :
// Data : 06/02/2018
// Seção de Declarações
var
veto1 : vetor[0..9] de inteiro
veto2 : vetor[0..9] de inteiro
j,i : inteiro
inicio
para i de 0 ate 9 faca
   leia(veto1[i])
fimpara
para i de 0 ate 9 faca
para j de 0 ate 9 faca
     se(veto1[i] <> veto1[j])entao
      veto2[i] <- veto1[i]
     fimse
fimpara
fimpara
para i de 0 ate 9 faca
   escreva(veto2[i])
fimpara
fimalgoritmo

I want to take 10 numbers and store in a vector the vector 1 that already got want now to take the values and put all in the vector 2 but excluding the repetition example 1.2.3.4.4.5.6.7.8.9 appears only 123456789

  • 1

    Everton, ideal is always putting the source code instead of images (https://answall.com/help/how-to-ask).

  • Change now, I’m sorry

  • @rLinhares already modified you could help me?

  • I disagree on this subject in this answer: https://answall.com/a/236929/64969

  • Also worth reading here: https://answall.com/a/236518/64969

2 answers

1

One way would be to check for each element of veto1 if it already exists in veto2, if it does not exist, add it to veto2.

I could use the concept of flag to indicate whether or not veto2 already exists.

Something like that:

algoritmo "Apenas números não repetidos"
// Autor : Simon Viegas
// Data  : 03/08/2021
var
   veto1 : vetor[0..9] de inteiro
   veto2 : vetor[0..9] de inteiro
   i, j, cont : inteiro
   invalido : logico
inicio
   //preenche o veto1
   ALEATORIO 1,9
   para i de 0 ate 9 faca
      leia(veto1[i])
   fimPara
   ALEATORIO OFF

   //preenche o veto2
   para i de 0 ate 9 faca
      invalido <- FALSO //inicializa como inválido (repetido)

      para j de 0 ate cont faca //para cada posição do veto2
         se (veto1[i] = veto2[j]) entao //verifica se o valor já existe
            invalido <- VERDADEIRO //marca como inválido
         fimSe
      fimPara
       
      se (NAO invalido) entao //se não é inválido
         veto2[cont] <- veto1[i] //armazena no vetor 2
         cont <- cont+1 //atualiza o contador de itens no veto2
      fimSe
   fimPara

   //exibe os valores de veto2 na tela
   para i de 0 ate cont-1 faca
      escreva(veto2[i])
   fimPara
fimAlgoritmo

Screen example:

inserir a descrição da imagem aqui

0


Can be performed as follows

para i de 0 ate 9 faca
   para j de 0 ate 9 faca
      se ((x = 1) e  (veto1[i] = veto2[j]))entao
         veto2[i]  <- 0
      fimse
      se ((x = 0) e (veto1[i] = veto2[j]))entao
         x <- 1
      fimse
   fimpara
   x <- 0
fimpara

Browser other questions tagged

You are not signed in. Login or sign up in order to post.