Buscar

p2_et1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

2a prova de Computação 2
Turma: ET1/ER1 - UFRJ
Datas: 01/06 e 03/06/2011 de 8h às 10h
Professora: Bianca Ruivo
1) O seno de um ângulo “x”, dado em radianos, pode ser aproximado por um 
polinômio da seguinte forma:
sen(x) ~ x – (x**3) / 3! + (x**5) / 5! - (x**7) / 7! + ...
Crie uma classe Seno contendo os seguintes atributos e métodos:
Atributos:
• x: ângulo em graus;
• n: número de termos do polinômio.
Métodos:
• calculaSeno(): retorna a aproximação do seno do ângulo “x”. O 
ângulo “x” deverá ser convertido para radianos antes do 
cálculo do seno;
• fatorial(num): retorna o fatorial de “num”.
Obs1: Os valores do ângulo “x” e do número de termos “n” do polinômio 
deverão ser lidos do teclado (até que a palavra “FIM” seja digitada, para sair do 
programa) e passados como parâmetro para o método __init__.
Obs2: O seu programa deverá fazer o tratamento correto de exceções 
(utilizando “try/except” ou outro artifício quando o uso do “try/except” não for 
possível) de forma a:
• aceitar somente números do tipo “float” (entre 0 e 360 graus, 
ambos inclusive) e não aceitar letras ou caracteres não 
numéricos para o ângulo (exceto o '.') ;
• aceitar somente números inteiros positivos para o número de 
termos do polinômio. Se o valor “0” for digitado para “n”, o 
programa deverá mostrar a mensagem “Valor não permitido” e 
pedir novamente o valor de “n”.
Exemplo de funcionamento do programa:
Digite o ângulo em graus (entre 0 e 360 graus ou FIM para sair): 0.25
Digite o numero de termos: 2
O valor do seno eh 0.0043633092847333906
Digite o ângulo em graus (entre 0 e 360 graus ou FIM para sair): 0.5
Digite o número de termos: 0
Valor nao permitido.
Digite o número de termos: 1
O valor do seno eh 0.0087266462599716477
Digite o ângulo em graus (entre 0 e 360 graus ou FIM para sair): FIM
2) Escreva um programa que leia um número inteiro “n” do teclado e grave no 
arquivo “saida.txt” os “n” primeiros elementos da série 1, 2, 4 ,7, 11, 16, 22, …
Obs1: Os valores de “n” deverão ser lidos do teclado até que o valor “-1” 
seja digitado (para sair do programa).
Obs2: Se “n” for negativo (com exceção do -1) ou zero o programa deverá 
imprimir na tela a mensagem “Nao aceito numeros negativos nem zero “ e pedir 
outro valor para “n”.
Obs3: Para cada valor de “n” válido, o programa deverá imprimir na tela a 
mensagem “Arquivo de saída gravado com sucesso.” e no arquivo “saida.txt” a 
linha “Os n primeiros elementos da serie sao: ?, ?, ?”.
Obs4: Faça o tratamento correto de exceções (utilizando “try/except”) de 
forma a aceitar somente números para o valor de “n” - não aceitar letras e 
demais caracteres.
Exemplo de funcionamento do programa:
Digite n (ou -1 para sair): 2
Arquivo de saida gravado com sucesso.
Digite n (ou -1 para sair): 4
Arquivo de saida gravado com sucesso.
Digite n (ou -1 para sair): 1
Arquivo de saida gravado com sucesso.
Digite n (ou -1 para sair): -4
Nao aceito numeros negativos nem zero.
Digite n (ou -1 para sair): 0
Nao aceito numeros negativos nem zero.
Digite n (ou -1 para sair): -1
Arquivo “saida.txt”:
Os 2 primeiros elementos da série são: 1, 2.
Os 4 primeiros elementos da série são: 1, 2, 4 ,7.
O 1o primeiro elemento da série eh: 1.
3) Escreva um programa que leia um número “n” do tipo “float” do teclado (n 
maior que 0 e menor ou igual a 999.99) e grave o valor de “n” por extenso 
(acrescentando somente as palavras “reais” e “centavos”) no arquivo 
“extenso.txt”, como abaixo:
Exemplo de funcionamento do programa:
Digite n (-1 para sair): 230.10
Valor de 230.10 por extenso gravado com sucesso.
Digite n (-1 para sair): 1000.00
Valor invalido.
Digite n (-1 para sair): 30.00
Valor de 30.00 extenso gravado com sucesso.
Digite n (-1 para sair): -1
Arquivo “extenso.txt”:
O valor de 230.10 por extenso eh: 230 reais e 10 centavos
O valor de 30.00 por extenso eh: 30 reais
Obs1: Os valores de “n” deverão ser lidos do teclado até que o valor “-1” 
seja digitado (para sair do programa).
Obs2: Para cada valor de “n” válido, o programa deverá imprimir na tela a 
mensagem “Valor de n por extenso gravado com sucesso” e no arquivo 
“extenso.txt” a linha “O valor de n por extenso eh: ??? reais e ??? centavos.”
Obs3: Faça o tratamento correto de exceções (utilizando “try/except” ou 
outro artifício quando não for possível o uso do “try/except”) de forma a aceitar 
somente números ponto-flutuante para o valor de “n” - não aceitar letras e 
demais caracteres (com exceção do '.') .
Obs4: Faça o tratamento de números fora do intervalo especificado (maior 
que 0 e menor ou igual a 999.99) utilizando o comando “raise” e uma classe de 
exceção criada por você. Para números fora do intervalo especificado, o 
programa deverá imprimir a mensagem “Valor invalido.” .
4) Escreva um programa que leia um arquivo “palavras.txt” (contendo, em cada 
linha, uma palavra e um número inteiro, separados por espaço) e grave no 
arquivo “rotacoes.txt” cada palavra lida rotacionada “k” caracteres à direita.
Exemplo de funcionamento do programa:
Arquivo “palavras.txt”:
abcd 1
abcdefghij 3
python 2
amor 3
ceu -2
Arquivo “rotacoes.txt”:
Palavra “abcd” rotacionada 1 caracter a direita: dabc
Palavra “abcdefghij” rotacionada 3 caracteres a direita: hijabcdefg
Palavra “python” rotacionada 2 caracteres a direita: onpyth
Palavra “amor” rotacionada 4 caracteres a direita: mora
Palavra “ceu” rotacionada -2 caracteres a direita: Nao consegui rotacionar
Obs1: Se “k” for igual a zero, a palavra rotacionada será idêntica à palavra 
original.
Obs2: Se “k” for negativo ou for maior que o tamanho da palavra, o 
programa deverá gravar no arquivo de saída a mensagem “Nao consegui 
rotacionar.” .
5) Escreva um programa que leia frases do teclado e um número inteiro positivo 
“k” do teclado e aplique sobre as frases a “cifra de Cesar”. Cada frase lida 
deverá ser criptografada de acordo com o número “k” lido, de forma que cada 
caracter da frase deverá ser substituído pelo k-ésimo caracter do alfabeto à 
frente do caracter considerado. A frase criptografada deverá ser gravada no 
arquivo de saida “criptografadas.txt”.
Por exemplo, para k = 3:
O caracter 'a' vira 'd'.
O caracter 'b' vira 'e'.
…
O caracter 'z' vira 'c'.
O caracter 'A' vira 'D'.
O caracter 'B' vira 'E'.
O caracter 'Z' vira 'C'.
Obs1: O seu programa deverá ler as frases do teclado até que a palavra 
“FIM” seja digitada. Considere frases contendo caracteres minúsculos e 
maiúsculos e não aceite frases em branco, imprimindo a mensagem “Frase 
invalida” neste caso e pedindo uma nova frase. Caracteres que não sejam 
alfabéticos (espaços, '@', '[', etc.) não deverão ser criptografados.
Obs2: O seu programa deverá fazer o tratamento correto de exceções 
(utilizando “try/except/raise”) de forma a não aceitar letras para o valor de “k” 
nem números negativos. Se o valor de “k” for menor ou igual a zero, o 
programa deverá imprimir a mensagem “Valor de k invalido” e pedir outro valor 
para “k”.
Obs3: Para cada valor válido para “k”, o programa deverá imprimir na tela 
a mensagem “Frase criptografada com sucesso.” e gravar a frase criptografada 
no arquivo “criptografadas.txt”.
Exemplo de funcionamento do programa:
Digite a frase (FIM para sair): curso de python
Digite k: 2
Frase “curso de python” criptografada com sucesso.
Digite a frase (FIM para sair): bianca
Digite k: 0
Valor de k invalido.
Digite k: 4
Frase “bianca” criptografada com sucesso.
Digite a frase (FIM para sair): FIM
Arquivo “criptografadas.txt”
Frase “curso de python” criptografada com k = 2:
ewtuq fg ravjqp
Frase “bianca” criptografada com k = 4:
fmerge
6) Escreva um programa que leia dois números inteiros “a” e “b” do teclado e 
grave no arquivo “soma.txt” a soma dos “b” números a partir de “a” (inclusive).
Exemplo de funcionamento do programa:
Digite o valor para a (s para sair): 3
Digite o valor para b: 2
Arquivo “soma.txt” gravado com sucesso.
Digite o valor para a (s para sair): -2
Digite o valor para b: 0
Valor de b invalido. 
Digite o valor para b: 3
Arquivo “soma.txt”gravado com sucesso.
Digite o valor para a (s para sair): 4
Digite o valor para b: 5
Arquivo “soma.txt” gravado com sucesso.
Digite o valor para a (s para sair): s
Arquivo “soma.txt”
a b Soma
3 2 7 (3 + 4)
-2 3 -3 (-2 + (-1) + 0)
4 5 30 (4 + 5 + 6 + 7 + 8)
Obs1: O seu programa deverá ler os números do teclado até que a letra 
's' seja digitada (para sair do programa).
Obs2: O seu programa deverá fazer o tratamento correto de exceções 
(utilizando “try/except/raise”) de forma a não aceitar letras (exceto 's' para sair 
do programa) para os valores de “a” e “b” nem números negativos para o valor 
de “b”. Se o valor de “b” for menor ou igual a zero, o programa deverá imprimir 
a mensagem “Valor de b invalido” e pedir outro valor para “b”. Além disso, o 
valor máximo de “b” deverá ser 20 (inclusive) – utilize o comando “raise” neste 
caso, criando sua própria classe de exceção.
Obs3: Para cada par de valores “a” e “b” válidos, o programa deverá 
gravar a soma dos “b” números a partir de “a” (inclusive) no arquivo “soma.txt”.
Esquema da prova:
1) Cada aluno sorteará 2 questões dentre as 6 questões 
apresentadas. Cada aluno terá 2h para realizar a prova. 
2) Cada aluno deverá nomear seus arquivos .py de acordo com as 
questões sorteadas. Ex: P2_1.py (questão 1 sorteada). Dentro do arquivo .py 
deverá constar o nome completo e o DRE do aluno.

Outros materiais