Array de números aleatórios não-repetidos de um intervalo em Pascal
Publicado por Perfil removido (última atualização em 23/04/2012)
[ Hits: 13.766 ]
Este programa feito em Pascal preenche um array (vetor) de números inteiros de um intervalo dado (de 1 até VALOR) com valores inteiros aleatórios deste intervalo.
Não sei como está agora, mas Pascal era primeira linguagem de cursos técnicos e universitários ao se ensinar algoritmos no 1º ciclo.
Tinha ganho vida nova através do Object Pascal presente no Delphi. Que ultimamente não tenho visto muita coisa por aí...
Ele consegue ser compilado com gpc (GNU Pascal) e fpc (Free Pascal).
Há uma pequena "gambiarra" no código:
Pelo menos foi assim que consegui fazer funcionar em ambos os compiladores.
$ gpc alea001.pas -o alea001 # para usar gpc
ou
$ fpc alea001.pas # para usar fpc
Ambos os compilados são enormes se comparado com o compilado em C.
A vantagem de se usar gpc é que dá pra usar o gdb (GNU Debugger). Basta colocar a opção "-ggdb" no comando de compilação do gpc.
Há também um debugger próprio do Free Pascal, mas o gdb é mais popular.
Não tenho a menor ideia se funciona em Turbo Pascal, nem garantia no Dev-Pascal :-)
Program alea001;
{$ifndef __GPC_RELEASE__} Uses Crt; {$endif} { <----- Gambiarra para funcionar com "gpc" }
{
Para testar se não há números repetidos, usar por exemplo:
alea001 | sort -n --key=2
}
Const
VALOR = 52;
Var
vec : Array [1..VALOR] of Integer;
i, j, k, n : Integer;
Begin
Randomize;
i := 1;
n := VALOR;
While i<=n Do Begin
vec[i] := -1;
Inc(i);
End;
i := 1; j := 0;
While i<=n Do Begin
j := 1 + Random(n);
k := 1;
While (k<=i) And (vec[k]<>j) Do Inc(k);
If k=i+1 Then Begin
vec[i] := j;
Inc(i);
End;
End;
i := 1;
While i<=n Do Begin
WriteLn (i, #9, vec[i]);
Inc(i);
End;
WriteLn;
End.
Exemplo de for que mostra 6 números em ordem crescente
Calculadora De Decimo Terceiro Salário feita no Lazarus (Delphi 7 para Linux)
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Como impedir exclusão de arquivos por outros usuários no (Linux)
Alguém executou um rm e quase mata a Pixar! (6)
Formas seguras de instalar Debian Sid (9)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









