Lista de exercícios para prova 2 - dCC-UFRJ

Propaganda
Lista exercícios
Este trabalho é uma breve lista de exercícios para ajudálos na preparação para a prova, e por isso é um pouco
diferente dos trabalhos anteriores.
Vocês devem tentar resolver os exercícios sem o
computador, que deve ser usado apenas para verificar se
as suas soluções estão corretas.
Exercício.
Um método para encontrar o máximo divisor comum de
dois números inteiros positivos a e b é subtrair,
sucessivamente, o menor do maior até que os dois sejam
iguais. Neste ponto, o valor restante de qualquer um deles
é o MDC procurado. Escreva uma função denominada
MDC que calcula o máximo divisor de dois números,
fornecidos como parâmetros.
Exercício.
Sem usar o comando for, escreva um programa que
apresente os números de Armstrong entre 000 e 999. 153 é
um número de Armstrong porque a soma dos seus dígitos
componentes elevados ao cubo é igual ao próprio número:
1 3 + 53 + 33 = 1 + 125 + 27 = 153
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todos os palíndromos da lista.
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todas as palavras da lista que contêm uma
determinada string fornecida como parâmetro.
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todas as palavras da lista que podem ser formadas
com um conjunto de letras fornecido como parâmetro.
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todas as palavras da lista que casem com um
determinado padrão fornecido como parâmetro. A
codificação dos parâmetros deve usar “_” como curinga.
.
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todas as palavras da lista que têm a menor relação
entre o número de vogais e o número de consoantes nelas
contidas.
Exercício.
Escreva uma função que receba uma lista contendo três
números e retorne uma lista contendo os mesmos três
números em ordem decrescente. Não use a função sort.
Exercício.
Exercício.
Exercício.
Escreva uma função Python que receba uma string como
parâmetro e retorne uma lista com as letras que aparecem
nessa string, sem repetição e na ordem alfabética.
Observe o programa a seguir.
Exercício.
Escreva uma função que produza resultado equivalente ao
que é produzido pela função a seguir.
def XPTO(S):
return S[::-1]
Use uma solução diferente.
Exercício.
Escreva uma função que receba uma lista de palavras e
retorne todas as palavras que tenham o tamanho da maior
palavra da lista.
Escreva uma função que recebe um número inteiro e
retorne True se esse número é primo ou False, se não.
import math
import locale
x=0.2
while x <= 2:
print
locale.format('%4.1f',x), \
locale.format('%6.4f',math.sqrt(x))
x = x + 0.2
Sabendo que sua execução produz
0.2
0.4
...
2.0
0.4472
0.6325
......
1.4142
apresente uma nova versão do mesmo programa
substituindo o comando de repetição while por um
comando for. O resultado final deve ser idêntico. Dica: o
range do Python só funciona com números inteiros.
Exercício.
Indique o que é “printado” pelos trechos de programa a
seguir. Cada trecho deve ser analisado independentemente
dos demais.
## trecho 11
x=range(1,11)
for i in x:
print i
## trecho 1
L=[8,9,2,23,45,32,21,12]
print L[0]
print L[0:3]
print L[-2]
print L[5:2]
print L[-8]
Considere que o arquivo enigma.txt contém:
## trecho 2
L = [0,1]
while len(L) < 20:
L.append (L[i-2] + L[i-1])
print L
## trecho 3
L=[5,3,6,7,8,9,2,23,45,32,21,12]
print L.index(9,0,len(L))
## trecho 4
P = [“A”,”bB”,”CdE”,”;”,”@”]
for x in P:
print x, x.lower(), x.upper(),
print
## trecho 5
import fileinput
s = 1
for L in fileinput.input("enigma.txt"):
if s <> 3:
Q = L.split()
print Q[0], len(Q)
s = s + 1
## trecho 6
x=range(1,11)
y=["ABC","CDE"]
x.append(y)
print x
## trecho 7
L=[1,2,3,4,5,6,7,8,9,10]
L.append(20)
print L
L.insert(2,30)
print L
## trecho 8
L =[1,2,3,4,5]
L.remove (4)
print L
L.remove(4)
## trecho 9
for i in range(1,6):
L.append(1.0/i)
print L
soma=0
for x in range(0,len(L)):
soma = soma + L[x]
print soma
## trecho 10
L=[0,1]
while L[-1] + L[-2] <800:
L.append(L[-1] + L[-2])
print L
print L.index(89)
print L[L.index(89)]
Simule um computador chinês.
Pense um pouco mais e #responda?
Continue pensando e confira tudo.
???eia a questão e pense +? ++++++++.
Exercício.
Escreva um programa Python que mostre todos os
triângulos retângulos cujos lados a, b, c tenham por
comprimento números inteiros entre 1 e 50. O programa
deve mostrar os valores para cada combinação encontrada
e o número de triângulos. Não é preciso eliminar as
soluções simétricas. Formato do resultado:
a=3 b=4 c=5 é um triângulo retângulo
...
a=5 b=4 c=3 é um triângulo retângulo
...
a=10 b=6 c=8 é um triângulo retângulo
...
Encontrados xx triângulos
Exercício.
É possível obter uma aproximação de  pela fórmula
1 
 1 1 1
12.1     
 4 9 16 25 
Quanto maior o número de termos utilizados no cálculo,
melhor será a precisão da aproximação obtida. Escreva
uma função que retorne uma aproximação de  de tal
forma que o algoritmo de aproximação use os termos de 1
até i, de tal forma que a diferença (módulo) entre o termo i
e o termo i+1 não seja maior que um certo valor fornecido
como parâmetro.
Exercício.
Suponha que você vai escrever um programa do tipo “Jogo
da forca” e precisa sortear uma palavra com pelo menos
oito letras para começar o jogo. Escreva uma função
Python denominada sorteio
SorteiaPalavra
que recebe como parâmetro o nome de um arquivo de texto
contendo uma coleção de palavras, uma em cada linha, e
retorne uma palavra com pelo menos 8 letras, escolhida
aleatoriamente. A função deve ser usada como mostrado
no exemplo a seguir:
pal = SorteiaPalavra (“palavras.txt”)
onde o parâmetro é o nome do arquivo.
Exercício.
Escreva uma função que retorne uma lista de strings
contendo todas as datas entre 01/01/1900 e 31/12/2015,
sem as barras separadoras.
Simplificadamente, observe que todos os anos múltiplos de
4 são bissextos e leve em conta os meses de 30 e 31 dias.
Exercício.
Escreva uma função que recebe como parâmetros uma
palavra e o nome de um arquivo de texto contendo uma
coleção de palavras, uma em cada linha, e retorne uma
lista de todas as linhas onde essa palavra aparece.
Exercício.
Escreva uma função que recebe como parâmetros uma
string de gabaritos e uma string de respostas de uma prova
de múltipla escolha, e retorne o número de respostas certas
de acordo com esse gabarito.
Download