p2_et1
9 pág.

p2_et1


DisciplinaComputação II158 materiais478 seguidores
Pré-visualização2 páginas
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 \u201cx\u201d, dado em radianos, pode ser aproximado por um 
polinômio da seguinte forma:
sen(x) ~ x \u2013 (x**3) / 3! + (x**5) / 5! - (x**7) / 7! + ...
Crie uma classe Seno contendo os seguintes atributos e métodos:
Atributos:
\u2022 x: ângulo em graus;
\u2022 n: número de termos do polinômio.
Métodos:
\u2022 calculaSeno(): retorna a aproximação do seno do ângulo \u201cx\u201d. O 
ângulo \u201cx\u201d deverá ser convertido para radianos antes do 
cálculo do seno;
\u2022 fatorial(num): retorna o fatorial de \u201cnum\u201d.
Obs1: Os valores do ângulo \u201cx\u201d e do número de termos \u201cn\u201d do polinômio 
deverão ser lidos do teclado (até que a palavra \u201cFIM\u201d 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 \u201ctry/except\u201d ou outro artifício quando o uso do \u201ctry/except\u201d não for 
possível) de forma a:
\u2022 aceitar somente números do tipo \u201cfloat\u201d (entre 0 e 360 graus, 
ambos inclusive) e não aceitar letras ou caracteres não 
numéricos para o ângulo (exceto o '.') ;
\u2022 aceitar somente números inteiros positivos para o número de 
termos do polinômio. Se o valor \u201c0\u201d for digitado para \u201cn\u201d, o 
programa deverá mostrar a mensagem \u201cValor não permitido\u201d e 
pedir novamente o valor de \u201cn\u201d.
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 \u201cn\u201d do teclado e grave no 
arquivo \u201csaida.txt\u201d os \u201cn\u201d primeiros elementos da série 1, 2, 4 ,7, 11, 16, 22, \u2026
Obs1: Os valores de \u201cn\u201d deverão ser lidos do teclado até que o valor \u201c-1\u201d 
seja digitado (para sair do programa).
Obs2: Se \u201cn\u201d for negativo (com exceção do -1) ou zero o programa deverá 
imprimir na tela a mensagem \u201cNao aceito numeros negativos nem zero \u201c e pedir 
outro valor para \u201cn\u201d.
Obs3: Para cada valor de \u201cn\u201d válido, o programa deverá imprimir na tela a 
mensagem \u201cArquivo de saída gravado com sucesso.\u201d e no arquivo \u201csaida.txt\u201d a 
linha \u201cOs n primeiros elementos da serie sao: ?, ?, ?\u201d.
Obs4: Faça o tratamento correto de exceções (utilizando \u201ctry/except\u201d) de 
forma a aceitar somente números para o valor de \u201cn\u201d - 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 \u201csaida.txt\u201d:
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 \u201cn\u201d do tipo \u201cfloat\u201d do teclado (n 
maior que 0 e menor ou igual a 999.99) e grave o valor de \u201cn\u201d por extenso 
(acrescentando somente as palavras \u201creais\u201d e \u201ccentavos\u201d) no arquivo 
\u201cextenso.txt\u201d, 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 \u201cextenso.txt\u201d:
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 \u201cn\u201d deverão ser lidos do teclado até que o valor \u201c-1\u201d 
seja digitado (para sair do programa).
Obs2: Para cada valor de \u201cn\u201d válido, o programa deverá imprimir na tela a 
mensagem \u201cValor de n por extenso gravado com sucesso\u201d e no arquivo 
\u201cextenso.txt\u201d a linha \u201cO valor de n por extenso eh: ??? reais e ??? centavos.\u201d
Obs3: Faça o tratamento correto de exceções (utilizando \u201ctry/except\u201d ou 
outro artifício quando não for possível o uso do \u201ctry/except\u201d) de forma a aceitar 
somente números ponto-flutuante para o valor de \u201cn\u201d - 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 \u201craise\u201d e uma classe de 
exceção criada por você. Para números fora do intervalo especificado, o 
programa deverá imprimir a mensagem \u201cValor invalido.\u201d .
4) Escreva um programa que leia um arquivo \u201cpalavras.txt\u201d (contendo, em cada 
linha, uma palavra e um número inteiro, separados por espaço) e grave no 
arquivo \u201crotacoes.txt\u201d cada palavra lida rotacionada \u201ck\u201d caracteres à direita.
Exemplo de funcionamento do programa:
Arquivo \u201cpalavras.txt\u201d:
abcd 1
abcdefghij 3
python 2
amor 3
ceu -2
Arquivo \u201crotacoes.txt\u201d:
Palavra \u201cabcd\u201d rotacionada 1 caracter a direita: dabc
Palavra \u201cabcdefghij\u201d rotacionada 3 caracteres a direita: hijabcdefg
Palavra \u201cpython\u201d rotacionada 2 caracteres a direita: onpyth
Palavra \u201camor\u201d rotacionada 4 caracteres a direita: mora
Palavra \u201cceu\u201d rotacionada -2 caracteres a direita: Nao consegui rotacionar
Obs1: Se \u201ck\u201d for igual a zero, a palavra rotacionada será idêntica à palavra 
original.
Obs2: Se \u201ck\u201d for negativo ou for maior que o tamanho da palavra, o 
programa deverá gravar no arquivo de saída a mensagem \u201cNao consegui 
rotacionar.\u201d .
5) Escreva um programa que leia frases do teclado e um número inteiro positivo 
\u201ck\u201d do teclado e aplique sobre as frases a \u201ccifra de Cesar\u201d. Cada frase lida 
deverá ser criptografada de acordo com o número \u201ck\u201d 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 \u201ccriptografadas.txt\u201d.
Por exemplo, para k = 3:
O caracter 'a' vira 'd'.
O caracter 'b' vira 'e'.
\u2026
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 
\u201cFIM\u201d seja digitada. Considere frases contendo caracteres minúsculos e 
maiúsculos e não aceite frases em branco, imprimindo a mensagem \u201cFrase 
invalida\u201d 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 \u201ctry/except/raise\u201d) de forma a não aceitar letras para o valor de \u201ck\u201d 
nem números negativos. Se o valor de \u201ck\u201d for menor ou igual a zero, o 
programa deverá imprimir a mensagem \u201cValor de k invalido\u201d e pedir outro valor 
para \u201ck\u201d.
Obs3: Para cada valor válido para \u201ck\u201d, o programa deverá imprimir na tela 
a mensagem \u201cFrase criptografada com sucesso.\u201d e gravar a frase criptografada 
no arquivo \u201ccriptografadas.txt\u201d.
Exemplo de funcionamento do programa:
Digite a frase (FIM para sair): curso de python
Digite k: 2
Frase \u201ccurso de python\u201d criptografada com sucesso.
Digite a frase (FIM para sair): bianca
Digite k: 0
Valor de k invalido.
Digite k: 4
Frase \u201cbianca\u201d criptografada com sucesso.
Digite a frase (FIM para sair): FIM
Arquivo \u201ccriptografadas.txt\u201d
Frase \u201ccurso de python\u201d criptografada com k = 2:
ewtuq fg ravjqp
Frase \u201cbianca\u201d criptografada com k = 4:
fmerge
6) Escreva um programa que leia dois números inteiros \u201ca\u201d e \u201cb\u201d do teclado e 
grave no arquivo \u201csoma.txt\u201d a soma dos \u201cb\u201d números a partir de \u201ca\u201d (inclusive).
Exemplo de funcionamento do programa:
Digite o valor para a (s para sair): 3
Digite o valor para b: 2
Arquivo \u201csoma.txt\u201d 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 \u201csoma.txt\u201d