• 0
Sign in to follow this  
Guest - paulo -

Implementação De Algoritimo

Question

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

Share this post


Link to post
Share on other sites

7 answers to this question

Recommended Posts

  • 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;
}

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
  • 0
Guest Guest
"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.

Share this post


Link to post
Share on other sites
  • 0
Guest Guest
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.

Share this post


Link to post
Share on other 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+

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this