Ir ao conteúdo
  • Cadastre-se
ET Bilu

VisualG Vetores - números repetidos - visualg

Recommended Posts

Não tenho a minima ideia de como fazer esse algoritmo, não vou fazer qualquer algoritmo descartável e postar aqui. Alguém me ajuda.

 

"Faça um programa que leia um vetor A de 10 elementos contendo números inteiros. Determine e mostre, a seguir, quais elementos de A estão repetidos e quantas vezes cada um se repete."

 

 

Editado por DiF
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ET Bilu   Olá, infelizmente não posso fazer o algoritmo para você, vou te dar uma
ideia de como fazer, aí você faz  e posta aqui para que possamos te ajudar.
  Então você pode fazer assim : depois de ler os valores e colocar no vetor
use dois loop, um dentro do outro indo de 1 ate 10 e dentro do segundo loop 
faça as comparações para ver se o número é igual a algum dos outros números
se for igual é porque ele é repetido então coloque ele em um outro vetor 
chamado vetor_repetido e também coloque em outro vetor o número de vezes 
desse número mais um.  aí no final escreva esses número que estão no vetor 

repetido.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 29/10/2016 às 21:49, devair1010 disse:

@ET Bilu   Olá, infelizmente não posso fazer o algoritmo para você, vou te dar uma
ideia de como fazer, aí você faz  e posta aqui para que possamos te ajudar.
  Então você pode fazer assim : depois de ler os valores e colocar no vetor
use dois loop, um dentro do outro indo de 1 ate 10 e dentro do segundo loop 
faça as comparações para ver se o número é igual a algum dos outros números
se for igual é porque ele é repetido então coloque ele em um outro vetor 
chamado vetor_repetido e também coloque em outro vetor o número de vezes 
desse número mais um.  aí no final escreva esses número que estão no vetor 

repetido.

Acho que compreendi, depois farei no visualg.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010

algoritmo "semnome"
// Função :
// Autor :
// Data : 01/11/2016
// Seção de Declarações
var
v:vetor[1..10] de real
i,cont,tam,repetido:inteiro
inicio
tam<-9
cont<-2
repetido<-0
para i de 1 ate tam faca
   leia(v[i])
fimpara
para i de 1 ate tam faca
   se v[cont]=v[i] então
      repetido<-repetido+1
      cont<-cont+1
   senao
      cont<-cont+1
   fimse
fimpara
fimalgoritmo

Por enquanto fiz isso aqui e tá confuso. Fiz uma lógica totalmente errada que eu acho que funcionaria no caso de escolher o maior número(me corrija). 

adicionado 2 minutos depois

@devair1010 No caso "=" por ">".

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ET Bilu    seu codigo está bom, mas precisa modificar algumas coisas. a variável
tam tem que ter o valor 10 porque são 10 números, e na hora de digitar os
números não digite zero, e coloque os números também no vetor_apoio,depois
do leia coloque assim:

vetor_apoio := v[i]

Essa variável repetido ali precisa ser um vetor bidimensional, para que 
possa receber os números repetidos e a quantidade de vezes que o número 
repetiu, e também mais um vetor para facilitar as coisas assim:

vetor_apoio    : vetor[1..10] de real 
vetor_repetido : vetor[1..10,1..2] de real

 

Esse vetor_repetido aí tem duas dimensões, é como se fosse 20 variáveis em
uma só, mas para usá-las é preciso informar a posição de cada uma delas e 
isso é feito com um loop, e para ver se o número repetiu, coloque mais um
loop, ali dentro do loop i, por exemplo:

para a de i+1 ate 10 faca 

e dentro desse loop faça as comparações de cada número com os outros

números do vetor v assim:

se v[a] = v[i]  então

aí se for igual, coloca  o número no

vetor_repetido[i,1] := v[a]

e coloca zero no vetor v na posição a e soma 1 ao contador e coloca o contador
 no vetor_repetido na posição [i,2],

 depois é mostrar na tela os números repetidos e a quantidade de vezes, com

um loop de 1 até 10; os numeros repetidos estão no vetor_repetido[i,1] e a

quantidade de vezes está no mesmo vetor_repetido[i,2].  e os números digitados

estão no vetor_apoio .

dimensa.bmp

dimensão.bmp

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
35 minutos atrás, devair1010 disse:

@ET Bilu    seu codigo está bom, mas precisa modificar algumas coisas. a variável
tam tem que ter o valor 10 porque são 10 números, e na hora de digitar os
números não digite zero, e coloque os números também no vetor_apoio,depois
do leia coloque assim:


vetor_apoio := v[i]

Essa variável repetido ali precisa ser um vetor bidimensional, para que 
possa receber os números repetidos e a quantidade de vezes que o número 
repetiu, e também mais um vetor para facilitar as coisas assim:


vetor_apoio    : vetor[1..10] de real 
vetor_repetido : vetor[1..10,1..2] de real

 

Esse vetor_repetido aí tem duas dimensões, é como se fosse 20 variáveis em
uma só, mas para usá-las é preciso informar a posição de cada uma delas e 
isso é feito com um loop, e para ver se o número repetiu, coloque mais um
loop, ali dentro do loop i, por exemplo:


para a de i+1 ate 10 faca 

e dentro desse loop faça as comparações de cada número com os outros

números do vetor v assim:


se v[a] = v[i]  então

aí se for igual, coloca  o número no


vetor_repetido[i,1] := v[a]

e coloca zero no vetor v na posição a e soma 1 ao contador e coloca o contador
 no vetor_repetido na posição [i,2],

 depois é mostrar na tela os números repetidos e a quantidade de vezes, com

um loop de 1 até 10; os numeros repetidos estão no vetor_repetido[i,1] e a

quantidade de vezes está no mesmo vetor_repetido[i,2].  e os números digitados

estão no vetor_apoio .

dimensa.bmp

dimensão.bmp

Boa explicação, só que essa era uma lista de vetores simples, nós não chegamos em matrizes ainda. É possível fazer sem usar matrizes?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ET Bilu     sim pode-se usar vetores simples, para isso é preciso colocar mais um vetor 

por exemplo

vetor_num_vezes : vetor[1..10] de real

aí na comparação quando o número for igual, coloca nesse vetor o contador, e no 

vetor_repetido na posição i coloca o número  repetido e no final para mostrar  

na tela o número de vezes estará nesse vetor.

Editado por devair1010
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também estou com um exercício parecido de vetores. Ainda estou pegando o jeito. No meu eu tenho que ler 10 números (coloquei 4 para facilitar os testes), e ver se é repetido, quantas vezes ele repete, e em quais índices ele aparece repetido:

Var
   // Seção de Declarações das variáveis
   V1: vetor[1..4] de inteiro
   v2: vetor[1..4] de inteiro
   cont,cont2,cont3: inteiro
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   para cont de 1 ate 4 faca
      escreval("Digite o",cont,"° numero:")
      leia (v1[cont])

   fimpara



   escreval("________________")
   para cont2 de 1 ate 4 faca
      para cont3 de 1 ate 4 faca

         se (V1[cont3] = V1[cont2]) e (cont2<>cont3)  então


            escreval("O numero",V1[cont2]," apareceu  no ",cont2,"º indice")
         fimse

      fimpara
   fimpara


Fimalgoritmo

 

Fiz somente ate aqui, tirando as explicações acima que são referentes a pergunta do outro colega, mesmo envolvendo o mesmo tema, vcs podem me ajudar a entender a lógica de como fazer??

tem que dar algo assim: o numero 45 apareceu 3 vezes, no índice 2, no índice 8 e no índice 10

Editado por Simon Viegas
Inserir tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×