programação de computadores iianselmo/cursos/progii/apresentacoes/aula (02... · 18/08/11...
TRANSCRIPT
![Page 1: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/1.jpg)
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.
![Page 2: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/2.jpg)
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
![Page 3: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/3.jpg)
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
![Page 4: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/4.jpg)
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
![Page 5: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/5.jpg)
Exercícios
Escrevaumprograma Javaque recebaum inteiroNe imprimasuafatoração.(sequenciadeinteirosprimosquemulLplicadosigualaaN).
Escrevaumaversãomaiseficientedoseualgoritmo.
18/08/11 ProgramaçãodeComputadoresII 5
FatoraçãodeInteiros
![Page 6: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/6.jpg)
Exercícios
Escreva umprograma Java que receba umnúmero inteiroN egeretodososfatoresprimosdeN.
18/08/11 ProgramaçãodeComputadoresII 6
FatoraçãodeInteiros
![Page 7: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/7.jpg)
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
![Page 8: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/8.jpg)
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
![Page 9: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/9.jpg)
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
![Page 10: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/10.jpg)
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.
![Page 11: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/11.jpg)
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.
![Page 12: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/12.jpg)
Exercícios
18/08/11 ProgramaçãodeComputadoresII 12
Picosdeumterreno
EscrevaumprogramaemJavaquecalculeospicosdeumterreno.Modelagemdoterreno:PodemosrepresentarumterrenocomputacionalmenteatravésdeumamatrizquearmazenaaalturadosNxNpontosdeumre?culado.
![Page 13: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/13.jpg)
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
"
#
$$
%
&
''
![Page 14: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/14.jpg)
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
![Page 15: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/15.jpg)
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
![Page 16: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/16.jpg)
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
![Page 17: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/17.jpg)
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).
![Page 18: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/18.jpg)
Exercícios
18/08/11 ProgramaçãodeComputadoresII 18
SequênciadeSímbolos
Controlefinitodeestados
Aceita
Rejeita
a bba
Controlefinitodeestados
Aceita
Rejeita
![Page 19: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/19.jpg)
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
![Page 20: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/20.jpg)
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.
![Page 21: Programação de Computadores IIanselmo/cursos/ProgII/apresentacoes/aula (02... · 18/08/11 Programação de Computadores II 11 Jogo de dados Escreva um programa em Java que simule](https://reader033.vdocuments.net/reader033/viewer/2022060512/5f2b0ee92604b21414519a44/html5/thumbnails/21.jpg)
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.