Buscar

p1_ept

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

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

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ê viu 3, do total de 10 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

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

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ê viu 6, do total de 10 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

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

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ê viu 9, do total de 10 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

Prévia do material em texto

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:
• lista1;
• lista2.
Métodos:
• agruparLista(l): retorna uma lista contendo os elementos repetidos 
da lista “l” 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 “l” antes de agrupar seus elementos.
• removeDuplicados(l): retorna uma lista contendo elementos distintos 
da lista “l”.
Ex:
l = [1,2,3,3,4]
removeDuplicados(l): retorna [1,2,3,4] 
• intercalaElementos(): retorna uma lista contendo os elementos das 
listas “lista1” e “lista2” (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:
• n1;
• n2.
Métodos:
• ehReversivel(n): retorna verdadeiro se o número “n” é 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;
• saoAmigos(): retorna verdadeiro se os números “n1” e “n2” 
(atributos de classe) são amigos e falso caso contrário. Dois 
números “n1” e “n2” são considerados amigos se a soma dos 
divisores de “n1” (excluindo o próprio “n1”) for igual a “n2” e se a 
soma dos divisores de “n2” (excluindo o próprio “n2”) for igual a “n1”.
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:
• x1: coordenada x do ponto p1;
• y1: coordenada y do ponto p1;
• x2: coordenada x do ponto p2;
• y2: coordenada y do ponto p2.
Métodos:
• 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 – x1) ** 2 + (y2 – y1) ** 2 ) ;
• 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 – y1) / (x2 – x1)
• 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 – a * x (onde a é o coeficiente 
angular da reta) e x e y são as coordenadas de um dos pontos da 
reta;
• 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
• 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 “n”. Para 
verificar a paridade de “n” é 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 “1” 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 “Nenhuma palavra 
iniciada por vogal.”
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 “n” for primo ou falso caso contrário. Caso não exista nenhum número primo 
na lista, o programa deverá imprimir a mensagem “Não há nenhum número 
primo na lista informada.”
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: cursode python
Comprimento da palavra Ocorrências
1 0
 2 1
3 0
4 0
5 1
6 1
Digite a frase: a prova de python esta bem facil
Comprimento da palavra Ocorrências
1 1
 2 1
3 1
4 1
5 2
6 1
Digite a frase: o ceu e azul
Comprimento da palavra Ocorrências
1 2
2 0
3 1
4 1
Digite a frase: FIM
Esquema da prova:
1) Cada aluno sorteará 1 questão relativa à parte de orientação a 
objetos (questões 1, 2 e 3) e uma questão das outras 4 restantes (questões 4, 
5, 6 e 7). Cada aluno terá 2h para realizar a prova. 
2) Cada aluno deverá nomear seus arquivos .py de acordo com as 
questões sorteadas. Ex: P1_1.py e P1_6.py (questões 1 e 6 sorteadas). Dentro 
dos arquivos .py deverá constar o nome completo e o DRE do aluno.

Outros materiais