You are on page 1of 6

Anlise Combinatria e Contagem

Gustavo Conde Pinto


RA:11022012
Exemplos:
Princpio da Multiplicao:
Uma criana pode escolher entre 2 balas, uma preta e uma rosa e, entre 3 chicletes, um
amarelo, um verde e outro branco. Quantos conjuntos diferentes a criana pode ter?

Princpio da Adio:
Suponha que queremos selecionar uma sobremesa entre 3 tortas e 4 bolos. DE quantas
maneiras isto pode ser feito?

Anlise Combinatria
Fatorial:
Qual o fatorial de 5? E de 10? E de 3?

Permutao:
Suponha que queremos uma permutao de 5 objetos sem repetio e com repetio.

Arranjo:
Suponha que queremos um arranjo de 5 objetos tomados 3 a 3.

Combinao:
Suponha que queremos uma combinao de 5 objetos tomados 3 a 3.

Relatrio:
O algoritmo foi desenvolvido no VisualG que possui uma linguagem prxima ao
Portugol. Cada um dos procedimentos foi feito individualmente e depois juntados no
mesmo programa por meio de um procedimento de escolha.
As escolhas so feitas reconhecendo as palavras digitadas pelo usurio e
relacionando-as com um certo procedimento. Cada procedimento ir pedir as entradas
relacionadas e ele e devolver o resultado final.
Todas os procedimentos foram feitos se baseando em suas funes gerais, com
exceo da combinao que se utilizou de uma funo diferente.
Algoritmo
algoritmo "Anlise Combinatria"
funcao comb(n,r:inteiro): inteiro
inicio
se (n = 0) entao
retorne 1
senao
se (r = 1) entao
retorne n
senao
se (n = r) entao
retorne 1
senao
se (r > 1) e (r < n) entao
retorne ((comb(n-1,r-1))+(comb(n-1,r)))
fimse
fimse
fimse
fimse
FimFuncao
procedimento adicao()
var x,y, soma,n:inteiro
z : caractere
inicio
escreval("Quantas opes de escolha?")
leia(n)
x<-1
soma<-0
enquanto x<=n faca
escreval ("Qual a",x," opo?")
leia(z)
escreval ("Qual a quantidade de "+z)
leia(y)
soma<-soma+y
x<-x+1

fimenquanto
escreval("A soma :",soma)
fimprocedimento
procedimento combinacao()
var n,r:inteiro
inicio
escreval ("Quantos objetos?")
leia (n)
escreval ("Tomados de quanto a quanto?")
leia (r)
escreval ("A combinao : ",comb(n,r))
fimprocedimento
procedimento fatorial()
var fat, a, b:inteiro
inicio
escreval ("Qual o nmero?")
leia (a)
b<-a
fat<-1
enquanto a>0 faca
fat<-fat*a
a<-a-1
fimenquanto
escreval("O fatorial de ",b," :",fat)
fimprocedimento
procedimento permutacao()
var perm:real
a, b, c, d, f, g, fat:inteiro
fat1: vetor[1..100]de inteiro
inicio
escreval("Quantos objetos sero permutados?")
leia(a)
f<-a
escreval("Quantos objetos se repetem?")
leia(b)
se b>a entao
escreval("Impossvel")
senao
fat<-1
enquanto a>0 faca
fat<-fat*a
a<-a-1
fimenquanto
c<-1
perm<-fat
enquanto c<=b faca
escreval("Quantas vezes o ",c," objeto se repete?")
leia(d)
e<-d
g<-g+d
se g<=f entao
fat1[c]<-1
enquanto d>0 faca
fat1[c]<-fat1[c]*d
d<-d-1
fimenquanto
perm<-perm/fat1[c]

c<-c+1
senao
escreval("Impossvel")
g<-g-d
fimse
fimenquanto
escreval("A permutao : ",perm)
fimse
fimprocedimento
procedimento arranjo()
var arnj :real
n, r, m, fat, fatm :inteiro
inicio
escreval("Qual o nmero de objetos?")
leia(n)
escreval("Tomados de quanto em quanto?")
leia(r)
se n>=r entao
arnj <- 1
fat<-1
m<-n-r
enquanto n>0 faca
fat<-fat*n
n<-n-1
fimenquanto
fatm<-1
enquanto m>0 faca
fatm<-fatm*m
m<-m-1
fimenquanto
arnj <- fat/fatm
escreval("O arranjo : ",arnj)
senao
escreval("Impossvel")
fimse
fimprocedimento
procedimento multiplicacao()
var x,y, mult,n:inteiro
z : caractere
inicio
escreval("Quantas opes de escolha?")
leia(n)
x<-1
mult<-1
enquanto x<=n faca
escreval ("Qual a",x," opo?")
leia(z)
escreval ("Qual a quantidade de "+z)
leia(y)
mult<-mult*y
x<-x+1
fimenquanto
escreval("A multiplicao :",mult)
fimprocedimento
procedimento analise_combinatoria()
var rep, analise_combinatoria:caractere
inicio
escreval ("Entre com o nome de uma anlise combinatria: ")

leia (analise_combinatoria)
escolha analise_combinatoria
caso "1", "Princpio de Adio", "Adio", "adio", "Adiao", "adiao", "adicao",
"Adicao"
adicao()
caso "2", "Combinao", "combino", "combinacao", "combinaao", "Combinacao",
"Combinaao"
combinacao()
caso "3", "fatorial", "Fatorial"
fatorial()
caso "4", "Permutao", "permutao", "Permutaao", "permutaao", "Permutacao",
"permutacao"
permutacao()
caso "5", "Arranjo", "arranjo"
arranjo()
caso "6", "Multiplicao", "Multiplicaao", "Multiplicaco", "Multiplicacao",
"multiplicao", "multiplicaao", "multiplicaco", "multiplicacao"
multiplicacao()
fimescolha
fimprocedimento
inicio
analise_combinatoria()
fimalgoritmo

You might also like