Logo Hardware.com.br
Heloane
Heloane Novo Membro Registrado
11 Mensagens 0 Curtidas

Dúvida em ''racicínio''(delphi)

#1 Por Heloane 11/06/2007 - 15:21
Como faço para imprimir todas seqüências com quatro números possíveis em 18 números? (em Delphi).

Exemplo: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]

Seqüências--->0,1,2,3
--->2,4,7,18
--->5,4,3,2
--->...

nao_sei.gifPensei muito em como fazer este programa, mas não encontrei uma resposta. Por favor me ajudem!!!!
peczenyj
peczenyj Geek Registrado
3K Mensagens 75 Curtidas
#2 Por peczenyj
11/06/2007 - 15:50
existe 3 formas:

vc pode fazer 4 laços de repetição encadeados. Por exemplo

For i:=1 to 18 do
For j:=2 to 18 do
For k:=3 to 18 do
For l:=4 to 18 do
imprime v[i],v[j],v[k],v[l];



Outra forma seria vc criar uma complexa rotina recursiva onde vc iria combinando vetores até chegar a um tamanho X e ai imprimir -- ja fiz em C, Delphi eu não sei.

Uma terceira forma seria vc criar todas as sequencias possiveis e deixar de imprimir quando existem 2 valores repetidos.
CaSt
CaSt Super Participante Registrado
573 Mensagens 5 Curtidas
#5 Por CaSt
11/06/2007 - 16:26
Heloane disse:


Mas os números não vão se repetir com o algorítmo postado pelo peczenyj. Se o objetivo é imprimir todas as combinações possíveis, você terá em cada posição o mesmo valor 18^3 vezes.

Código em C

int main()
{
int v[18];
int i,j,k,z;
preencheV1(v);

for(i=0;i<18;i++)
for(j=0;j<18;j++)
for(k=0;k<18;k++)
for(z=0;z<18;z++)
printf("\n%d %d %d %d",v[i],v[j],v[k],v[z]);

system("PAUSE&quot;
return 0;
}
Linux User #394367
Asking Smart Questions

"Always remember that you are unique. Just like everyone else"
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal