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.101 ]
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.
programa pra carregear duas matrizes e achar o maior
Calculadora De Decimo Terceiro Salário feita no Lazarus (Delphi 7 para Linux)
Tocador de vídeo no Lazarus (Delphi 7 para Linux).
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
erro ao clonar repo github (2)
Quais Shell Scripts vocês usam? (15)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (22)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba