Você está na página 1de 7

Anlise Combinatria com o Interpretador Hall

O interpretador Hall disponibiliza as seguintes funes para se trabalhar com os conceitos da anlise combinatria. As funes so:

Permutacao(n) Fatorial(n) Arranjo(n,p) Combinacao(n,p) Binomial(n,p) Permutar('a', 'b', 'c',...) Arranjar(n, p, 'a', 'b', 'c',...) Combinar(n, p, 'a', 'b', 'c',...)

As funes Permutacao(), Fatorial(), Arranjo(), Combinacao() e Binomial() so funes numricas do tipo inteiro, isto , elas retornam valores do tipo inteiro. Os argumentos n e p devem ser inteiros positivos e n >= p. Pelo fato dessas funes serem numricas, a utilizao clssica delas na atribuio de valores a variveis. Veja os exemplos abaixo:

x := Permutacao(5) y := Fatorial(7) w := Arranjo(5,2) z := Combinacao(4,3) u := Binomial(7,3) Um exemplo de cdigo pode ser visto abaixo no algoritmo Funes da Anlise Combinatria algoritmo() { inteiro u,x,y,w,z; x := Permutacao(5); y := Fatorial(7); w := Arranjo(5,2); z := Combinacao(4,3); u := Binomial(7,3); escreva("A permutacao P(5)=",x); escreva("O fatorial Fatorial(7)=",y); escreva("O arranjo A(5,2)=",w); escreva("A combinacao C(4,3)=",z); escreva("O coeficiente binomial B(7,3)=",u); }

Interpretador Hall

A tela de execuo do algoritmo acima pode ser vista na figura abaixo:

Execuo do algoritmo

Criando as permutaes, arranjos e combinaes As outras funes, a saber:


Permutar('a', 'b', 'c',...) Arranjar(n, p, 'a', 'b', 'c',...) Combinar(n, p, 'a', 'b', 'c',...)

realizam as operaes caractersticas de cada uma delas com os caracteres que so passados como argumentos. Vejamos.. A funo Permutar(), como o prprio nome indica, faz a permutao sem repetio dos caracteres passados como argumento. A funo no exibe as possveis permutaes mas, retorna uma cadeia de caracteres separadas por vrgulas com essas permutaes. Vejamos um exemplo... Vamos ver quantas so e quais sa as permutaes que a palavra AMOR nos permite fazer. Note que a palavra AMOR possui 4 letras, assim, a quantidade total de permutaes ser dado por Permutao de 4, isto Permutacao(4). Para se fazer a permutao das letras da palavra AMOR, basta chamar a funo Permutar() com a seguinte sintaxe: Permutar('A','M','O','R').

Interpretador Hall

Anlise Combinatria: Funo Permutar() algoritmo() { cadeia x; escreva("Permutacao de 4 = ", Permutacao(4)); escreva("--------------------------"); x := permutar('A','M','O','R'); escreva(x); }

A tela de execuo do exemplo acima pode ser visualizada na figura abaixo:

Funo Permutar(): tela de execuo

A funo Combinar() A funo Combinar() exibe a combinao dos caracteres propriamente dita. Ela recebe trs tipos de argumentos. Os dois primeiros, n e p, devem ser do tipo inteiro positivo e n >= p. Em seguida, dever ser informado os caracteres sobre os quais a funo ir atuar. Deve-se observar que a quantidade de caracteres informados dever ser igual ao valor de n. Abaixo podemos observar um exemplo de cdigo que usa as funes acima e em seguida apresentada a tela de execuo do mesmo. Veja...

Interpretador Hall

Anlise Combinatria: Funo Combinacao() algoritmo() { // exibe o valor e as combinacoes de 5, 3 a 3 cadeia x; escreva("=> Combinacao de 5, 3 a 3"); escreva("=> C(5,3) =", Combinacao(5,3)); escreva(); x := combinar(5,3,'a','e','i','o','u'); escreva(x); }

Veja abaixo a tela de execuo desse algoritmo...

Funo Combinacao(): tela de execuo

Observao: Na especificao dos caracteres a serem combinados, pode-se tambm, especificar os mesmos entre aspas. Veja o exemplo abaixo...

Interpretador Hall

Anlise Combinatria: Funo Combinacao() algoritmo() { // exibe o valor e as combinacoes de 5, 3 a 3 cadeia x; escreva("=> Combinacao de 5, 3 a 3"); escreva("=> C(5,3) =", Combinacao(5,3)); escreva(); x := combinar(5,3,a,e,i,o,u); escreva(x); }

O resultado da execuo exatamente o mesmo do exemplo anterior. H ainda uma outra forma de se chamar a funo Combinar(). Essa terceira forma usa variveis. Veja o exemplo abaixo:

Anlise Combinatria: Funo Combinacao() algoritmo() { // exibe o valor e as combinacoes de 5 3 a 3 caracter a,e,i,o,u; cadeia x; a := 'a'; e := 'e'; i := 'i'; o := 'o'; u := 'u'; x := combinar(5,3,a,e,i,o,u); escreva("Combinacao de 5, 3 a 3 = ",Combinacao(5,3)); escreva(x); // observe que, na chamada abaixo // a,e,i,o e u sao variaveis que // coincidentemente contem as vogais }

Interpretador Hall

A funo Arranjar() A funo Arranjar() exibe o arranjo dos caracteres propriamente dita. Ela recebe trs tipos de argumentos. Os dois primeiros, n e p, devem ser do tipo inteiro positivo e n >= p. Em seguida, dever ser informado os caracteres sobre os quais a funo ir atuar. Deve-se observar que a quantidade de caracteres informados dever ser igual ao valor de n. Abaixo podemos observar um exemplo de cdigo que usa as funes acima e em seguida apresentada a tela de execuo do mesmo. Veja...

Anlise Combinatria: Funo Arranjo() algoritmo() { // exibe o valor e os arranjos de 5, 3 a 3 cadeia x; escreva("=> Arranjo de 5, 3 a 3"); escreva("=> A(5,3) =", Arranjo(5,3)); escreva(); x := Arranjar(5,3,'a','e','i','o','u'); escreva(x); }

Abaixo podemos ver a tela de execuo do algoritmo...

Interpretador Hall

Funo Arranjo(): tela de execuo

Ok! por hora isso a At, fernandopaim@paim.pro.br

Interpretador Hall