Introdução
Permutação e combinação são dois conceitos matemáticos distintos. Permutação é o arranjo de objetos em uma ordem específica. Combinação é a seleção de objetos de um conjunto sem considerar a ordem dos objetos selecionados. Neste laboratório, aprenderemos como calcular permutação e combinação usando a linguagem C.
Escrever a função principal (main)
Primeiramente, vamos criar um novo arquivo chamado main.c no diretório ~/project/ e escrever o código inicial para incluir arquivos de cabeçalho e a função principal.
#include <stdio.h>
int main() {
printf("Permutação e Combinação em Linguagem C\n\n");
// Código para cálculo de permutação e combinação será adicionado aqui
return 0;
}
Escrever a função fatorial
Para calcular permutação e combinação, precisamos calcular o fatorial de um número. Fatoriais podem ser calculados recursivamente. Adicione o seguinte código fora da função principal.
long factorial(int num) {
if (num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
Esta função recebe um inteiro como argumento e retorna seu fatorial.
Escrever a função para calcular nCr (combinação)
Adicione a seguinte função fora da função principal para calcular nCr.
long nCr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / (factorial(r) * factorial(n - r));
}
}
Esta função recebe dois inteiros, n e r, como argumentos e retorna o valor nCr. O valor nCr é calculado dividindo o fatorial de n pelo produto do fatorial de r e o fatorial de n-r.
Escrever a função para calcular nPr (permutação)
Adicione a seguinte função fora da função principal para calcular nPr.
long nPr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / factorial(n - r);
}
}
Esta função recebe dois inteiros, n e r, como argumentos e retorna o valor nPr. O valor nPr é calculado dividindo o fatorial de n pelo fatorial de n-r.
Escrever o código driver do programa
Adicione o seguinte código dentro da função principal para receber as entradas e exibir os resultados.
int main()
{
int n, r;
printf("Enter the value of n:");
scanf("%d", &n);
printf("Enter the value of r:");
scanf("%d", &r);
printf("nCr is %ld\n", nCr(n, r));
printf("nPr is %ld\n", nPr(n, r));
return 0;
}
Este código recebe os valores de entrada para n e r do usuário e chama as funções nCr() e nPr() para calcular os respectivos valores e, em seguida, os exibe.
Código Completo
O código final se parece com o seguinte.
#include <stdio.h>
long factorial(int num) {
if (num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
long nCr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / (factorial(r) * factorial(n - r));
}
}
long nPr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / factorial(n - r);
}
}
int main()
{
int n, r;
printf("Enter the value of n:");
scanf("%d", &n);
printf("\nEnter the value of r:");
scanf("%d", &r);
printf("nCr is %ld\n", nCr(n, r));
printf("nPr is %ld\n", nPr(n, r));
return 0;
}
Resumo
Neste laboratório, aprendemos como calcular permutação e combinação na linguagem C. Escrevemos as funções para calcular fatorial, nCr e nPr. Também escrevemos o código de driver para o programa. Seguindo os passos acima, podemos calcular permutação e combinação para as entradas do usuário.



