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.325 ]
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.
controle de notas de um aluno com registro e array
validando um triângulo e classificando-o como equilátero, isoceles ou escaleno.
vendas de uma empresa em matriz
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta