p1_ept
10 pág.

p1_ept


DisciplinaComputação II158 materiais479 seguidores
Pré-visualização2 páginas
1a prova de Computação 2
Turma: EPT/UFRJ
Data: 25/04/2011 de 13h às 17h
Professora: Bianca Ruivo
1) Escreva um programa que implemente uma classe Listas contendo os 
seguintes atributos e métodos:
Atributos:
\u2022 lista1;
\u2022 lista2.
Métodos:
\u2022 agruparLista(l): retorna uma lista contendo os elementos repetidos 
da lista \u201cl\u201d agrupados.
Ex:
l = [3,3,3,3,7,7,13,13,23]
agruparLista(l): retorna ['3^4', '7^2', '13^2', '23']
Obs: Ordene a lista \u201cl\u201d antes de agrupar seus elementos.
\u2022 removeDuplicados(l): retorna uma lista contendo elementos distintos 
da lista \u201cl\u201d.
Ex:
l = [1,2,3,3,4]
removeDuplicados(l): retorna [1,2,3,4] 
\u2022 intercalaElementos(): retorna uma lista contendo os elementos das 
listas \u201clista1\u201d e \u201clista2\u201d (atributos de classe) intercalados.
Ex:
l1 = [1,2,3]
l2 = [4,5]
intercalaElementos(): retorna [1,4,2,5,3]
Observações:
1.1) O seu programa deverá ler 2 listas do teclado e 
passá-las como parâmetro para o método __init__, inicializando os atributos da 
classe;
1.2) O seu programa deverá mostrar os resultados das 
operações na tela, não sendo necessário criar um menu de opções.
Ex:
Digite a 1a lista de números: [3,3,3,4,4,7]
Digite a 2a lista de números: [1,2,5]
Agrupando a lista 1: ['3^3', '4^2', '7']
Agrupando a lista 2: ['1', '2', '5']
Retirando as duplicações da lista 1: [3,4,7]
Retirando as duplicações da lista 2: [1,2,5]
Intercalando os elementos das 2 listas: 
[3,1,3,2,3,5,4,4,7]
2) Escreva um programa que implemente uma classe Numeros contendo os 
seguintes atributos e métodos:
Atributos:
\u2022 n1;
\u2022 n2.
Métodos:
\u2022 ehReversivel(n): retorna verdadeiro se o número \u201cn\u201d é reversível e 
falso caso contrário. Um número é considerado reversível quando a 
soma dele com o seu inverso só contiver algarismos ímpares;
\u2022 saoAmigos(): retorna verdadeiro se os números \u201cn1\u201d e \u201cn2\u201d 
(atributos de classe) são amigos e falso caso contrário. Dois 
números \u201cn1\u201d e \u201cn2\u201d são considerados amigos se a soma dos 
divisores de \u201cn1\u201d (excluindo o próprio \u201cn1\u201d) for igual a \u201cn2\u201d e se a 
soma dos divisores de \u201cn2\u201d (excluindo o próprio \u201cn2\u201d) for igual a \u201cn1\u201d.
Observações:
2.1) O seu programa deverá ler 2 números do teclado e 
passá-los como parâmetro para o método __init__, inicializando os atributos da 
classe;
2.2) O seu programa deverá mostrar os resultados das 
operações na tela, não tendo a necessidade de criar um menu de opções.
2.3) O seu programa só deverá aceitar números inteiros 
positivos (com exceção do -1, que sairá do programa), acusando um erro caso 
esta condição não seja satisfeita;
Ex:
Digite o primeiro número (-1 para sair): 284
Digite o segundo número (-1 para sair): 220
Os dois números são amigos.
O primero número não é reversível.
O segundo número não é reversível.
Digite o primeiro número (-1 para sair): 10
Digite o segundo número (-1 para sair): 34
Os dois números não são amigos.
O primero número é reversível.
O segundo número é reversível.
Digite o primeiro número (-1 para sair): -1
3) Escreva um programa que implemente uma classe Reta contendo os 
seguintes atributos e métodos:
Atributos:
\u2022 x1: coordenada x do ponto p1;
\u2022 y1: coordenada y do ponto p1;
\u2022 x2: coordenada x do ponto p2;
\u2022 y2: coordenada y do ponto p2.
Métodos:
\u2022 calculaDistancia(): retorna a distância entre os pontos p1(x1,y1) e 
p2(x2,y2). A distância entre 2 pontos pode ser calculada pela 
fórmula d = sqrt( (x2 \u2013 x1) ** 2 + (y2 \u2013 y1) ** 2 ) ;
\u2022 calculaCoeficienteAngular(): retorna o coeficiente angular da reta 
que passa pelos pontos p1(x1,y1) e p2(x2,y2). O cálculo do 
coeficiente angular pode ser feito pela fórmula abaixo:
coef_ang = (y2 \u2013 y1) / (x2 \u2013 x1)
\u2022 calculaCoeficienteLinear(): retorna o coeficiente linear da reta que 
passa pelos pontos p1(x1,y1) e p2(x2,y2). O coeficiente linear é 
calculado utilizando-se o coeficiente angular e um dos pontos, de 
acordo com a equação da reta (y = a*x + b). O coeficiente linear b 
pode ser obtido pela fórmula b = y \u2013 a * x (onde a é o coeficiente 
angular da reta) e x e y são as coordenadas de um dos pontos da 
reta;
\u2022 encontraReta(): retornar a equação da reta que passa por esses 
pontos.
Ex:
encontraReta(p1,p2): retorna y = a*x + b onde:
a = coeficiente angular da reta e 
b = coeficiente linear da reta
Para p1 = (0,1) e p2 = (-0.5,0)
Reta: y = 2*x + 1
\u2022 inclinacaoReta(): retorna o ângulo alfa (em graus) de inclinação da 
reta que passa pelos pontos p1(x1,y1) e p2(x2,y2). O ângulo alfa 
pode ser calculado de acordo com a fórmula abaixo:
alfa = arctg(a) onde a é o coeficiente angular da reta.
Observações:
3.1) O seu programa deverá ler do teclado as 
coordenadas x e y de 2 pontos do plano xy e passá-las, em forma de tupla, 
como parâmetro para o método __init__, inicializando os atributos da classe;
3.2) O seu programa deverá mostrar os resultados das 
operações na tela, não tendo a necessidade de criar um menu de opções.
Ex:
Digite a coordenada x do 1o ponto: 0
Digite a coordenada y do 1o ponto: 1
Digite a coordenada x do 2o ponto: -0.5
Digite a coordenada y do 1o ponto: 0
A distância entre os pontos é: 1.11
O coeficiente angular da reta que passa pelos 
pontos é: 2
O coeficiente linear da reta que passa pelos pontos 
é: 1
A equação da reta que passa pelos pontos é: y = 
2*x + 1
O ângulo de inclinação da reta é de 
aproximadamente 64 graus.
4) Escreva um programa que leia um número inteiro positivo do teclado e 
chame um método paridade(n) para verificar a paridade do número \u201cn\u201d. Para 
verificar a paridade de \u201cn\u201d é necessário converter o número para binário, contar 
o número de algarismos iguais a 1 no número obtido e encontrar o resto da 
divisão entre o número de dígitos \u201c1\u201d e 2. O seu programa não deverá aceitar 
números negativos (com exceção do -1, que sairá do programa).
Ex:
Digite um número (-1 para sair): 10
A paridade do número 1010 é 0.
Digite um número (-1 para sair): 4
A paridade do número 100 é 1.
Digite um número (-1 para sair): -1
5) Escreva um programa para ler uma lista de palavras e imprimir apenas as 
palavras iniciadas por vogais (considere maiúsculas e minúsculas e assuma 
que nenhuma palavra será acentuada). O seu programa deverá ler as palavras 
até que seja digitado FIM para sair do programa e não deverá aceitar palavras 
em branco, acusando um erro neste caso. Caso não exista nenhuma palavra 
iniciada por vogal, o programa deverá imprimir a mensagem \u201cNenhuma palavra 
iniciada por vogal.\u201d
Ex:
Digite a palavra (FIM para sair): teste
Digite a palavra (FIM para sair): python
Digite a palavra (FIM para sair): amor
Digite a palavra (FIM para sair): ceu
Digite a palavra (FIM para sair): esperança
Digite a palavra (FIM para sair): cachorro
Digite a palavra (FIM para sair): Andar
Digite a palavra (FIM para sair): FIM
As palavras iniciadas por vogais são:
amor
esperança
Andar
6) Escreva um programa para ler números inteiros positivos do teclado e 
imprimir quais números lidos são primos e a posição deles na lista de números. 
O seu programa não deverá aceitar números negativos (com exceção do -1, 
que sairá do programa). Crie um método ehPrimo(n) que retornará verdadeiro 
se \u201cn\u201d for primo ou falso caso contrário. Caso não exista nenhum número primo 
na lista, o programa deverá imprimir a mensagem \u201cNão há nenhum número 
primo na lista informada.\u201d
Obs: O número 1 não é primo!
Ex:
Digite um número (-1 para sair): 3
Digite um número (-1 para sair): 2
Digite um número (-1 para sair): 54
Digite um número (-1 para sair): 7
 Digite um número (-1 para sair): 11
Digite um número (-1 para sair): -1
3 é primo e sua posição é 1.
2 é primo e sua posição é 2.
7 é primo e sua posição é 4.
11 é primo e sua posição é 5.
7) Escreva um programa para ler uma frase do teclado e imprimir uma tabela 
com o número de palavras de comprimento 1, 2, 3, etc. O seu programa deverá 
ler frases até que a palavra FIM seja digitada (para sair do programa) e não 
deverá aceitar frases em branco, acusando um erro neste caso. Além disso, 
assuma que nenhuma palavra da frase estará acentuada.
Ex:
Digite a frase: curso