-
Posts
1 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por JuniorFrota
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
Vetor com números aleatórios sem repetição no VisuAlg
em Programação - iniciantes
Postado
Eu estava com a mesma dúvida. Ontem aconteceu a festinha dos dias das mães na escola em que eu trabalho e foi feito um sorteio de brindes. O complicado foi ter que ditar números que ainda não haviam sido chamados. Daí eu tive a ideia de criar um algoritmo que gerasse números aleatórios não repetitivos e deu nisso:
algoritmo "Números Aleatórios Não Repetidos"
// Função : Gerar números aleatórios de 1 até 100 sem repetição.
// Autor : Junior Frota
// Data : 11/05/2018
// Seção de Declarações
var
n,m, i, j, k : inteiro
a : vetor[0..99] de inteiro
c : caractere
inicio
// Seção de Comandos
para i de 0 ate 99 faca
repita
m <- randi(100)
n <- m + 1
para j de 0 ate i faca
se (a[j] = n) então
k <- k + 1
fimse
fimpara
se (k = 0) então
a <- n
escreval(a)
interrompa
senao
k <- 0
fimse
fimrepita
k <- 0
fimpara
fimalgoritmo
Dependendo da quantidade de números que precisa ser gerado, basta modificar a dimensão do vetor (a : vetor[0..99] de inteiro), o limite máximo de iteração do comando para (para i de 0 ate 99 faca) e o range da função randi, colocando sempre um a mais do que a dimensão do vetor (m <- randi(100)).
O m recebe o valor aleatório, mas como tem a possibilidade de gerar o número zero, e isso não satisfaz a função do algoritmo, então n recebe m mais um. Isso faz gerar números de 1 até 100, neste caso.
Espero que tenha ajudado, uma vez que sua postagem é de 2014.