• Nenhum resultado encontrado

Programação de Computadores II

N/A
N/A
Protected

Academic year: 2021

Share "Programação de Computadores II"

Copied!
11
0
0

Texto

(1)

Conteúdo: Introdução ao Java (exercícios)

Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof. Leandro A. F. Fernandes

Programação de Computadores II

TCC‐00.174

Profs.: Leandro A. F. Fernandes(A1)& Marcos Lage(B1)& Isabel Rosseti(C1) (Turma A1) www.ic.uff.br/~laffernandes

(Turma B1) www.ic.uff.br/~mlage (Turma C1) www.ic.uff.br/~rosseti

Exercícios

Diferentes sistemas são utilizados para representar cores.

Por exemplo, o sistema mais comum para representação de cores em display LCD, câmeras digitais e páginas web conhecido como sistema RGB, especifica os níveis de vermelho(R), verde(G) e azul(B) em uma escala de 0 a 255.

O sistema utilizado na publicação de livros e revistas, conhecido como

CMYK, especifica os níveis de ciano, magenta, amarelo e preto em um escala de 0.0 a 1.0.

(2)

Exercícios

Escreva um programa Java que receba três inteiros r, g e b representando um cor no sistema RGB e imprima os valores das componentes c, m, y, k correspondentes no sistema CMYK.

Se r=g=b=0 então c=m=y=0 e k = 1, caso contrário utilize a fórmula abaixo: 10/09/2013 Programação de Computadores II 3

Conversão de cores

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

Escreva um programa Java

que receba um inteiro N e imprima

um tabela NxN com um asterisco na linha i e coluna j se ou i

divide j ou j divide i.

(3)

Exercícios

Escreva um programa Java

que receba um inteiro N e imprima

sua

fatoração

.

(sequencia de inteiros primos que multiplicados iguala a N).

Escreva uma

versão mais eficiente

do seu algoritmo.

10/09/2013 Programação de Computadores II 5

Fatoração de Inteiros

Exercícios

Escreva um programa Java

que receba um número inteiro N e

gere todos os

fatores primos

de N.

(4)

Exercícios

Escreva um programa Javaque ache a raiz quadrada de um número real c

utilizando método deNewton‐Raphson.

Sob certas condições, dada uma função f(x), o método de Newton‐Raphson é capaz de encontrar as raízes de uma equação f(x)=0.

Algoritmo:

1. O método inicia com uma estimativa da raíz t0

2. A partir de uma estimativa ti, compute uma nova estimativa ti+1onde tié a interseção da linha tangente ao gráfico de f(x) no ponto (ti,f(ti)) com o eixo das abcissas.

10/09/2013 Programação de Computadores II 7

Cálculo de Raiz Quadrada

Exercícios

Cálculo de Raiz Quadrada

f (t

i

)

 f (t

i

)

 0

t

i

 t

i1

f (t

i

)(t

i

 t

i1

)

 f (t

i

)

t

i1

 t

i

 f (t

i

)

f (t

i

)

ti ti+1 f(ti) f(ti+1) ti

(5)

Exercícios

Computar a raiz de um número é equivalente a achar a raíz da

função

f(x)=x

2

‐c

.

Considere uma

estimativa inicial t

0

= c

.

Se

t

i

*t

i

‐c<eps

; então tome t

i

como raiz de c.

10/09/2013 Programação de Computadores II 9

Cálculo de Raiz Quadrada

Exercícios

Jogo de senhas

Escreva um programa em Java

que simule um jogo de senhas.

Objetivo: descobrir a senha gerada aleatoriamente pelo computador.  A cada rodada: o jogador tenta descobrir a senha e o computador retorna “*” para os dígitos que ainda não  foram descobertos e o valor do digito nas posições corretas.  Fim do jogo:

Jogo continua até que a senha seja descoberta ou o numero máximo de jogadas seja atingido. Obs:

As senhassão compostas por números inteiros de 0 ao numero de dígitos da senha.

(6)

Exercícios

10/09/2013 Programação de Computadores II 11

Jogo de dados

Escreva um programa em Java 

que simule um jogo de dados.

Lançamento inicial:

Se o lançador tirar um 7 ou 11 no primeiro lançamento, vence o jogo.  Se os dados somarem 2, 3 ou 12, o jogador perde o jogo.

Qualquer outro número que saia no lançamento inicial (4, 5, 6, 8, 9, ou 10) 

se torna o seu “Ponto”. 

Os lançamentos continuam até que:

• OPonto sair antes de um 7, e assim o jogador vence. • O 7 sair antes do Ponto, e assim o jogador perde.

Exercícios

Picos de um terreno

Escreva um programa em Java que calcule os picos de um terreno. Modelagem do terreno: Podemos representar um terreno computacionalmente através de uma  matriz que armazena a altura dos NxN pontos de um reticulado.

(7)

Exercícios

10/09/2013 Programação de Computadores II 13

Matriz de Hadamard

A Matriz de Hadamardé uma matriz quadrada cujas entradas são 1 ou ‐1 e  as linhas são ortogonais entre si. Podemos construir uma matriz de Hadamard NxN, com N sendo potência  de 2, da seguinte forma: Para N=1      Para N = 2k M1= 1       M2k=  Para N = 2       M2=  1 1 1 1       M2k1 M2k1 M2k1 M2k1        

Exercícios

Escreva um programa em Javaque receba uma sequencia de letras da linha de comando formada por um conjunto de símbolos e gere as seguintes mensagens:

Para uma letra a “Soco”. Para uma letra b “Chute lateral”.

Para duas letras a’s consecutivas “Chute circular”.

Para uma letra a seguida de uma letra b imprime “dragon punch”.

(8)

Exercícios

O problema pode ser resolvido através de um autômato finito determinístico, que é um modelo para definição de linguagens regulares composto de cinco elementos: <Σ, S, so, δ, F>, onde:

Σ é oalfabetosobre o qual a linguagem é definida; S é um conjunto finito deestadosnão vazio; soé oestado inicial, so∈ S;

δ: S × Σ → S é a função detransição de estados; F é o conjunto deestados finaisF ⊆ S.

10/09/2013 Programação de Computadores II 15

Sequência de Símbolos

Exercícios

Um AFD é uma máquina reconhecedora de cadeias que pertencem a linguagem.

Elerecebe uma cadeiae diz se elapertence ou nãoa linguagem modelada. Ele possui um controle de estados S.

(9)

Exercícios

10/09/2013 Programação de Computadores II 17

Sequência de Símbolos

A função F diz como a máquina deve mudar de estado, à medida em que os símbolos da cadeia são analisados.

Após processar todos os símbolos e realizar as mudanças determinadas o AFD aceita ou não a cadeia.

Uma cadeia é rejeitada quando o autômato para em um estado que não é final. Referência: Como construir um compilador utilizando ferramentas Java.

(Márcio Delamaro – novatec).

Exercícios

Sequência de Símbolos

Controle  finito de  estados Controle  finito de  estados Aceita Aceita Rejeita Rejeita aa b b b b aa Controle  finito de  estados Controle  finito de  estados Aceita Aceita Rejeita Rejeita

(10)

Exercícios

10/09/2013 Programação de Computadores II 19

Sequência de Símbolos

Autômato finito determinístico para o problema da sequência de símbolos I CH SO s0 a a CC DP b b II CH CH SO SO s0 s0 aa aa CC CC DP DP b b b b

Sx

a

b

Estado

I CH SO Inicial CH CC DP Chute SO Soco CC Chute circular DP Dragon Punch

Exercícios

Caminhos Aleatórios sem Auto‐Interseção

Suponha que você abandone seu cão no meio de uma grande cidade cujasruas formam uma estrutura de reticulado.

Considere que existamN ruasna direção norte‐sul eMna direção leste‐oeste. Com o objetivo de escapar da cidade, o cão faz umaescolha aleatóriade qual direção ir em cada iteração, mas sabe através do faro como evitar visitar um lugar previamente visitado.

(11)

Exercícios

10/09/2013 Programação de Computadores II 21

Caminhos Aleatórios sem Auto‐Interseção

Escreva um programa Java que receba como parâmetros a largura e altura do reticulado e simule o caminho percorrido por um cão T vezes.

O programa deve determinar o número de vezes em que o cão fica sem saída.

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

É primeiramente no plano clínico que a noção de inconscien- te começa a se impor, antes que as dificuldades conceituais envolvi- das na sua formulação comecem a ser

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

A prova do ENADE/2011, aplicada aos estudantes da Área de Tecnologia em Redes de Computadores, com duração total de 4 horas, apresentou questões discursivas e de múltipla

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Entre as atividades, parte dos alunos é também conduzida a concertos entoados pela Orquestra Sinfônica de Santo André e OSESP (Orquestra Sinfônica do Estado de São