programação de computadores iianselmo/cursos/progii/apresentacoes/aula (02... · 18/08/11...
TRANSCRIPT
ProgramaçãodeComputadoresII
TCC‐00174Profs.:AnselmoMontenegro(1)&MarcosLage(2)
(1)www.ic.uff.br/~anselmo(2)www.ic.uff.br/~mlage
Conteúdo:IntroduçãoaoJava,Exs.
Exercícios
Diferentessistemassãou?lizadospararepresentarcores.
Porexemplo,osistemamaiscomumpararepresentaçãodecoresemdisplayLCD,câmerasdigitaisepáginaswebconhecidocomosistemaRGB,especificaosníveisdevermelho(R), verde(G)eazul(B)emumaescalade0a255.
Osistemau?lizadonapublicaçãodelivroserevistas,conhecidocomoCMYK,especificaosníveisdeciano,magenta,amareloepretoemumescalade0.0a1.0.
18/08/11 ProgramaçãodeComputadoresII 2
Conversãodecores
Exercícios
Escreva um programa Java que receba três inteiros r, g e brepresentando um cor no sistema RGB e imprima os valores dascomponentesc,m,y,kcorrespondentesnosistemaCMYK.Se r=g=b=0 então c=m=y=0 e k = 1, caso contrário u?lize a fórmulaabaixo:
18/08/11 ProgramaçãodeComputadoresII 3
Conversãodecores
w =max(r / 255,g / 255,b / 255);
c = (w! (r / 255)) /w
m = (w! (g / 255)) /w
y = (w! (b / 255)) /w
k =1!w
Exercícios
Escrevaumprograma Javaque recebaum inteiroNe imprimaum tabela NxN com um asterisco na linha i e coluna j se ou idividejoujdividei.
18/08/11 ProgramaçãodeComputadoresII 4
Padrãodedivisores
Exercícios
Escrevaumprograma Javaque recebaum inteiroNe imprimasuafatoração.(sequenciadeinteirosprimosquemulLplicadosigualaaN).
Escrevaumaversãomaiseficientedoseualgoritmo.
18/08/11 ProgramaçãodeComputadoresII 5
FatoraçãodeInteiros
Exercícios
Escreva umprograma Java que receba umnúmero inteiroN egeretodososfatoresprimosdeN.
18/08/11 ProgramaçãodeComputadoresII 6
FatoraçãodeInteiros
Exercícios
Escreva umprograma Java que ache a raiz quadrada de umnúmero real cu?lizandométododeNewton‐Raphson.Sobcertascondições,dadaumafunçãof(x),ométododeNewton‐Raphsonécapazdeencontrarasraízesdeumaequaçãof(x)=0.Algoritmo:1. Ométodoiniciacomumaes?ma?vadaraízt02. Apar?rdeumaes?ma?vati,computeumanovaes?ma?vati+1ondetié
ainterseçãodalinhatangenteaográficodef(x)noponto(ti,f(ti))comoeixodasabcissas.
18/08/11 ProgramaçãodeComputadoresII 7
CálculodeRaizQuadrada
Exercícios
18/08/11 ProgramaçãodeComputadoresII 8
CálculodeRaizQuadrada
!f (ti ) =f (ti )" 0
ti " ti+1
!f (ti )(ti " ti+1) = f (ti )
ti+1 = ti +f (ti )
!f (ti )ti ti+1
f(ti)
f(ti+1)
ti
Exercícios
Computararaizdeumnúmeroéequivalenteaachara raízdafunçãof(x)=x2‐c.Considereumaes?ma?vainicialt0=c.Seti*ti‐c<eps;entãotometicomoraizdec.
18/08/11 ProgramaçãodeComputadoresII 9
CálculodeRaizQuadrada
Exercícios
18/08/11 ProgramaçãodeComputadoresII 10
Jogodesenhas
EscrevaumprogramaemJavaquesimuleumjogodesenhas.
Obje-vo:descobrirasenhageradaaleatoriamentepelocomputador.Acadarodada:ojogadortentadescobrirasenhaeocomputadorretorna“*”paraosdígitosqueaindanãoforamdescobertoseovalordodigitonasposiçõescorretas.Fimdojogo:Jogocon?nuaatéqueasenhasejadescobertaouonumeromáximodejogadassejaa?ngido.
Obs:Assenhassãocompostaspornúmerosinteirosde0aonumerodedígitosdasenha.Onúmerodetenta?vaséigualaonúmerodedígitosdasenha.
Exercícios
18/08/11 ProgramaçãodeComputadoresII 11
Jogodedados
EscrevaumprogramaemJavaquesimuleumjogodedados.Lançamentoinicial:Seolançador?rarum7ou11noprimeirolançamento,venceojogo.Seosdadossomarem2,3ou12,ojogadorperdeasojogo.Qualqueroutronúmeroquesaianolançamentoinicial(4,5,6,8,9,ou10)setornaoseu“Ponto”.Oslançamentoscon?nuamatéque:• OPontosairantesdeum7,eassimojogadorvence.• O7sairantesdoPonto,eassimojogadorperde.
Exercícios
18/08/11 ProgramaçãodeComputadoresII 12
Picosdeumterreno
EscrevaumprogramaemJavaquecalculeospicosdeumterreno.Modelagemdoterreno:PodemosrepresentarumterrenocomputacionalmenteatravésdeumamatrizquearmazenaaalturadosNxNpontosdeumre?culado.
Exercícios
18/08/11 ProgramaçãodeComputadoresII 13
MatrizdeHadamard
AMatrizdeHadamardéumamatrizquadradacujasentradassão1ou‐1easlinhassãoortogonaisentresi.PodemosconstruirumamatrizdeHadamardNxN,comNsendopotênciade2,daseguinteforma:ParaN=1ParaN=2kM1=1M2k=ParaN=2M2=
1 1
1 !1
"
#$
%
&'
M2k!1 M
2k!1
M2k!1 !M
2k!1
"
#
$$
%
&
''
Exercícios
EscrevaumprogramaemJavaquerecebaumasequenciadeletrasdalinha de comando formada por um conjunto de símbolos e gere asseguintesmensagens:Paraumaletraa“Soco”.Paraumaletrab“Chutelateral”.Paraduasletrasa’sconsecu?vas“Chutecircular”.Paraumaletraaseguidadeumaletrabimprime“dragonpunch”.
18/08/11 ProgramaçãodeComputadoresII 14
SequenciadeSímbolos
Exercícios
O problema pode ser resolvido através de um autômato finitodeterminís?co, que é um modelo para definição de linguagensregularescompostodecincoelementos:〈Σ,S,so,δ,F〉,onde:Σéoalfabetosobreoqualalinguagemédefinida;Séumconjuntofinitodeestadosnãovazio;soéoestadoinicial,so∈S;δ:S×Σ→Séafunçãodetransiçãodeestados;FéoconjuntodeestadosfinaisF⊆S.
18/08/11 ProgramaçãodeComputadoresII 15
SequênciadeSímbolos
Exercícios
Um AFD é uma máquina reconhecedora de cadeias que pertencem alinguagem.Elerecebeumacadeiaedizseelapertenceounãoalinguagemmodelada.ElepossuiumcontroledeestadosS.O Controle Finito de Estados sempre coloca a máquina em um estadopertencenteaS.
18/08/11 ProgramaçãodeComputadoresII 16
SequênciadeSímbolos
Exercícios
18/08/11 ProgramaçãodeComputadoresII 17
SequênciadeSímbolos
A função F diz como a máquina deve mudar de estado, à medida em que ossímbolosdacadeiasãoanalisados.Após processar todos os símbolos e realizar asmudanças determinadas o AFDaceitaounãoacadeia.Umacadeiaérejeitadaquandooautômatoparaemumestadoquenãoéfinal.Referência:ComoconstruirumcompiladoruLlizandoferramentasJava.(MárcioDelamaro–novatec).
Exercícios
18/08/11 ProgramaçãodeComputadoresII 18
SequênciadeSímbolos
Controlefinitodeestados
Aceita
Rejeita
a bba
Controlefinitodeestados
Aceita
Rejeita
Exercícios
18/08/11 ProgramaçãodeComputadoresII 19
SequênciadeSímbolos
Autômatofinitodeterminís?coparaoproblemadasequênciadesímbolos
I
CH
SO
s0
a a
CC
DP
b
b
SxΣ a b EstadoI CH SO Inicial
CH CC DP Chute
SO Soco
CC Chutecircular
DP DragonPunch
Exercícios
18/08/11 ProgramaçãodeComputadoresII 20
CaminhosAleatóriossemAuto‐Interseção
Suponhaquevocêabandoneseucãonomeiodeumagrandecidadecujasruasformamumaestruturadere?culado.ConsiderequeexistamNruasnadireçãonorte‐suleMnadireçãoleste‐oeste.Como obje?vode escapar da cidade, o cão faz uma escolha aleatória de qualdireção ir em cada iteração, mas sabe através do faro como evitar visitar umlugarpreviamentevisitado.Apesardetudoépossívelqueocãofiqueperdidoemumbecosemsaídaondeapróximaescolhaobrigatoriamentelevaaumlugarjápercorrido.
Exercícios
18/08/11 ProgramaçãodeComputadoresII 21
CaminhosAleatóriossemAuto‐Interseção
Escreva um programa Java que receba como parâmetros alarguraealturadore?culadoesimuleocaminhopercorridoporumcãoTvezes.Oprogramadevedeterminaronúmerodevezesemqueocãoficasemsaída.