Prévia do material em texto
Universidade Federal do Rio de Janeiro - Polo Xerém
Programação de Computadores I - Período 2018/1
Professora: Camila Magalhães
Aula de Exercícios
Listas
1. Faça um programa que preencha por leitura uma lista S com 20 números inteiros e: (i)
imprima S; (ii) inverta o conteúdo de S, dentro da própria lista, sem usar listas auxiliares
(exemplo abaixo); (iii) leia um número inteiro N1; (iv)
Procure e imprima a posição da primeira ocorrência de N1 na lista S (ainda invertida).
Exemplo: Inversão de S com 6 números
S inicial: [2, 4, 5, 6, 9, 0]
S invertido: [0, 9, 6, 5, 4, 2]
2. Faça um programa para realizar reservas de passagens aéreas de uma empresa de aviação
que possui apenas um único avião de 200 lugares. Para cada reserva, você precisará ler o
número do CPF do passageiro e verificar o número de assentos disponíveis no avião. Se
houver lugar, acomode o passageiro na primeira poltrona livre, armazenando nessa posição
seu número de CPF. Se o voo estiver lotado, imprima uma mensagem informando o fato. O
programa encerra com a leitura de um número de CPF negativo. Ao final do programa,
informar a quantidade de lugares livres no avião e exibir os CPFs dos ocupantes do avião.
3. Faça um programa que leia uma lista de n números reais (n fornecido pelo usuário) e
determine os números que compõem a sequência e o número de vezes que cada um deles
ocorre na mesma.
Exemplo: n = 8
Lista: -1.7, 3.0, 0.0, 1.5, 0.0, -1.7, 2.3, -1.7
Saída: -1.7 ocorre 3 vezes
3.0 ocorre 1 vez
0.0 ocorre 2 vezes
1.5 ocorre 1 vez
2.3 ocorre 1 vez
4. Faça um programa em Python que leia um número inteiro positivo fornecido pelo usuário
e mostre o seu correspondente em binário. OBS.: A conversão de decimal para binário pode
ser feita através de divisões sucessivas por 2, até que o resultado da divisão seja zero. O
número binário correspondente será formado pelo resto de todas as divisões efetuadas, do
último para o primeiro.
Exemplo:
Número lido: 156
Número em binário: 10011100
Matrizes
5. Escreva um programa que leia os elementos inteiros de uma matriz M x N (M, N e os
elementos devem ser informados pelo usuário), após a leitura, para cada linha da matriz,
verificar e informar quantos elementos da linha são maiores do que o valor do elemento
daquela linha que pertence à diagonal principal;
Exemplo: M=3 e N=3
Matriz lida:
2 3 4
1 3 4
6 7 4
Saída do programa (usar o formato abaixo):
Linha 0: 2 elemento(s) maior(es)
Linha 1: 1 elemento(s) maior(es)
Linha 2: 2 elemento(s) maior(es)
6. Uma pista de Kart permite 10 voltas para cada um de 6 corredores. Faça um programa que
leia os nomes e os tempos (em segundos) de cada volta de cada corredor e guarde as
informações em uma matriz. Ao final, o programa deve informar:
a. De quem foi a melhor volta da prova, e em que volta
b. Classificação final em ordem (1º. o campeão)
c. Qual foi a volta com a média mais rápida
7. Faça um programa que peça ao usuário para informar a quantidade de funcionários que
uma empresa possui (N, fornecido pelo usuário). Em seguida, o programa deve armazenar
em uma matriz os dados dos funcionários da empresa, como no exemplo abaixo (apenas um
exemplo para N=3):
[ ['Jose Costa', '112345', 'Contabilidade', '7', '217865-0987']
['Carla Saldanha Peixoto', '378091', 'Recursos Humanos', '21', '229876-1235']
['Josiane Oliveira', '678921', 'Contabilidade', '2', '219723-4561'] ]
Cada linha da matriz possui 5 dados, referentes ao nome, número de registro, setor, tempo
de admissão na empresa (em anos) e telefone de um funcionário, nesta ordem. Todos os
dados da matriz devem ser armazenados em formato string. Após a leitura da matriz, o
programa deve realizar sequencialmente as operações pedidas abaixo, na ordem em que são
pedidas:
(i) Exibir na tela o nome do funcionário que trabalha há menos tempo na empresa. Na
matriz do exemplo acima, a saída do programa seria: 'Josiane Oliveira'.
(ii) Fazer uma busca por setor, ou seja, deve pedir ao usuário para informar o nome do setor
que deseja buscar e em seguida apresentar todos os dados de todos os funcionários daquele
setor. Se nenhum registro for encontrado o programa deverá exibir na tela a mensagem
'Nenhum registro encontrado'.
8. Um tabuleiro de xadrez pode ser visto como uma matriz 8x8 onde cada elemento da
matriz (número inteiro de 0 a 6) corresponde à uma determinada peça de xadrez posicionada
no tabuleiro. Para a indicação das peças, vamos convencionar: 1= PEÕES, 2=CAVALOS,
3=TORRES, 4=BISPOS, 5=REIS, 6=RAINHAS e 0=AUSÊNCIA DE PEÇAS.
Faça um programa que faça a leitura de um tabuleiro (matriz 8x8) e determine
quantas peças de cada um dos tipos acima existem no tabuleiro.
Exemplo de saída:
PEÕES com 17 peças
CAVALOS com 6 peças
... ...
Strings
9. Faça um programa que leia um conjunto de 30 nomes completos de pessoas. Após a
leitura o programa deve exibir cada nome no formato: "Sobrenome, iniciais do primeiro
nome" (como nos exemplos abaixo).
Exemplo:
Nome: Joaquim José de Oliveira Saída do programa: Oliveira, JJd
Nome: Marcela Oliveira Dutra Carvalho Saída do programa: Carvalho, MOD
10. Faça um programa que leia uma sequência de resíduos de aminoácidos de uma
determinada proteína e armazene o número de repetições de cada aminoácido diferente.
Imprima um histograma para a frequência de cada aminoácido. A sequência pode ser
digitada em maiúsculas ou minúsculas. Por exemplo, a string
“MAAGGASGAEASAPPTPSMASSLPLAALNV” deve retornar:
M - **
A - *********
G - ***
S - *****
E - *
P - ****
T - *
L - ***
N - *
V - *
11. Um pangrama é uma sentença com sentido e que contém todas as letras do alfabeto, por
exemplo:
Jane quer LP, fax, CD, giz, TV e bom whisky. (30 letras)
Zebras caolhas de Java querem passar fax para moças gigantes de New York. (60
letras)
Faça um programa que leia uma sentença e imprima se ela é um pangrama ou não. Assuma
que a frase digitada pelo usuário possui sentido.
12. Faça um programa que leia uma lista de valores de qualquer tipo e exiba ao final uma
string com o conteúdo da lista lida separado por vírgula e espaço. Exemplo: Se a lista lida
for ["A", "B", 1, 3, "%", 1.4], a string a ser exibida será "A, B, 1, 3, %, 1.4". Observe que
após o último elemento não há vírgula e nem espaço.
13. (Fazer no caderno primeiro e depois conferir no Python) Dado o programa abaixo:
frase = input ("Digite uma frase: ")
a = eval(input("Digite um número inteiro: "))
while a < len(frase) and frase[a] != ' ':
a += 1
print(a)
Qual será o valor a ser impresso na tela, caso sejam digitados os valores abaixo para as
variáveis frase e a, respectivamente (apenas para o item 1, escreva um passo a passo da
execução do programa, justificando a sua resposta):
1. "But are we all lost stars trying to light up the dark?", 0
2. "O que a vida quer da gente é coragem", 13
3. "Eu quase que nada não sei. Mas desconfio de muita coisa...", 5