Ir para conteúdo
Fórum Script Brasil
  • 0

Implementação De Algoritimo


Guest - paulo -

Pergunta

Guest - paulo -

Olá,

Alguém poderia me ajudar na implementação desse algorítimo que é voltado à fazer combinações?

Preciso fazer esse como exemplo e o resto tento me virar, mas não sei nem por onde começar:

Function: Combination(n,r)

w = n - r

d = 1

For i = 2 to n

d = d * i

End

e = 1

For i = 2 to r

e = e * i

End

f = 1

For i = 2 to w

f = f * i

End

x = e * f

x = d / x

Return x

Obrigado. ph34r.gif

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Fiz este código usando o Dev-C++:


#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

int Combination(int n, int r)
{
    int e = 1, f = 1, x = 1, d = 1;
    int w = n - r;
  
    for ( int i = 2; i < n; i++ ){
         d = d * i;
    }
  
    for ( int i = 2; i < r; i++){
          e = e * i;
    }
  
    for ( int i = 2; i < w; i++){
          f = f * i;
    }
  
    x = e * f;
    x = d / x;
  
    return x;
}

int main()
{
      int n, r;

      printf("entre com o valor n:");
      scanf("%d",&n);

      printf("entre com o valor r:");
      scanf("%d",&r);

      printf("valor de x: %d",Combination(n,r));

      system("PAUSE");
      return 0;
}

Link para o comentário
Compartilhar em outros sites

  • 0

"Traduzindo" isso aí direto para C/C++, acredito que ficaria:

double Combination(int n, int r) {
       int w = n-r;
       int d = 1;
       int i;
       double x;
       
       for (i=2; i<=n; i++)
           d = d * i;
       int e = 1;
       for (i=2; i<=r; i++)
           e = e * i;
       int f = 1;
       for (i=2; i<=w; i++)
           f = f * i;
       x = e * f;
       x = d / x;
       return x;
}

Só não sei é realmente o que você quer.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
"Traduzindo" isso aí direto para C/C++, acredito que ficaria:

double Combination(int n, int r) {
       int w = n-r;
       int d = 1;
       int i;
       double x;
       
       for (i=2; i<=n; i++)
           d = d * i;
       int e = 1;
       for (i=2; i<=r; i++)
           e = e * i;
       int f = 1;
       for (i=2; i<=w; i++)
           f = f * i;
       x = e * f;
       x = d / x;
       return x;
}

Só não sei é realmente o que você quer.

Abraços,

Graymalkin

Olá Graymalkin,

No seu código o Borland c++ Builder6, está dando esses erros:

Build

[Linker Error] Unresolved external '__InitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

[Linker Error] Unresolved external '__ExitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

[Linker Error] Unresolved external 'WinMain' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\C0W32.OBJ

No DEV-c++ compilou sem problemas.

O que poderia ser?

Agradeço imensamente o apoio.

Link para o comentário
Compartilhar em outros sites

  • 0
Fiz este código usando o Dev-C++:


#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

int Combination(int n, int r)
{
    int e = 1, f = 1, x = 1, d = 1;
    int w = n - r;
  
    for ( int i = 2; i < n; i++ ){
         d = d * i;
    }
  
    for ( int i = 2; i < r; i++){
          e = e * i;
    }
  
    for ( int i = 2; i < w; i++){
          f = f * i;
    }
  
    x = e * f;
    x = d / x;
  
    return x;
}

int main()
{
      int n, r;

      printf("entre com o valor n:");
      scanf("%d",&n);

      printf("entre com o valor r:");
      scanf("%d",&r);

      printf("valor de x: %d",Combination(n,r));

      system("PAUSE");
      return 0;
}

Rafael,

Muito obrigado, compilou sem problemas, mas ainda estou analisando o código para fazer o que realmente quero.

Mais uma vez obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

o Rafael escreveu certinho do jeito que você queria eu só acho que as condições de saida do loop for....deveriam ser

for ( int i = 2; i <= n; i++ ){
        d = d * i;
   }

   for ( int i = 2; i <= r; i++){
         e = e * i;
   }

   for ( int i = 2; i <= w; i++){
         f = f * i;
   }

segundo o seu código......

te+

Link para o comentário
Compartilhar em outros sites

  • 0
No seu código o Borland c++ Builder6, está dando esses erros:

Build

[Linker Error] Unresolved external '__InitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

[Linker Error] Unresolved external '__ExitVCL' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

[Linker Error] Unresolved external 'WinMain' referenced from C:\ARQUIVOS DE PROGRAMAS\BORLAND\CBUILDER6\LIB\C0W32.OBJ

No DEV-c++ compilou sem problemas.

Eu não tenho o Builder aqui para testar, e tinha feito com o Dev-C++ mesmo. Todavia, o código compila normal com Borland C++ 5.5 (versão para linha de comando apenas).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
o Rafael escreveu certinho do jeito que você queria eu só acho que as condições de saida do loop for....deveriam ser

for ( int i = 2; i <= n; i++ ){
        d = d * i;
   }

   for ( int i = 2; i <= r; i++){
         e = e * i;
   }

   for ( int i = 2; i <= w; i++){
         f = f * i;
   }

segundo o seu código......

te+

Kandrade,

Você tinha razão.

Agora está funcinando perfeitamente.

Obrigado.

Paulo biggrin.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...