INF1005 - PROGRAMAÇÃO 1  
LISTA DE EXERCÍCIOS 5  
1
. Os três jurados de um concurso de fantasias avaliam 2 critérios distintos: originalidade e  
beleza. A nota final do candidato é calculada do seguinte modo:  
nota_final = (0.6 * nota_da_originalidade) + (0.4 * nota_da_beleza)  
Para evitar distorções, são desprezadas a maior e a menor nota de cada critério. Faça um  
programa, que leia, para cada candidato, o seu número de inscrição (inteiro) e suas 3  
notas (reais) de cada critério, exibindo sua nota final. Ao término do programa, também  
deve ser exibido o número de inscrição do candidato vencedor. A entrada de dados é  
finalizada pela digitação do valor 0 (zero) como número do candidato.  
O seu programa deve, obrigatoriamente, utilizar uma função chamada nota_valida,  
implementada por você, que receba as 3 notas de um critério e retorne apenas a nota  
válida. Para facilitar, considere que as 3 notas de cada critério serão sempre diferentes  
entre si.  
2
. O administrador de um sistema gostaria de criar um algoritmo para gerar  
automaticamente as senhas dos novos usuários cadastrados. Você deve criar um  
programa para gerar automaticamente as senhas a partir da hora (h:m:s) em que o  
cadastro do usuário foi realizado, apenas invertendo o digito da hora (h) pelo digito dos  
minutos (m) e somando ao resultado o número de segundos (s).  
Exemplos: 20:30:12 -> 3020 + 12 = Senha: 3032  
9
:15:42 -> 159 + 42 = Senha: 201  
O seu programa deve pedir para o usuário digitar a hora do cadastro (hora, minuto e  
segundo), e em seguida gerar e exibir a senha do usuário. Dica: 3020 = 3000 + 20  
3
. Uma campanha de distribuição de arroz precisa otimizar o transporte e só liberar a carga  
quando preencher um container por completo. Para cada doação é registrado a  
quantidade doada. Faça um programa em C que, inicialmente, leia do teclado a  
capacidade em quilos (kg) de um container. A seguir, leia as quantidades recebidas nas  
doações até o container ser totalmente preenchido. Ao final, o seu programa deverá exibir  
a quantidade média por doação. Considere que as doações serão sempre de 5 ou de 10 kg  
e que a capacidade do container é múltipla de 10.  
4
. Uma empresa de transporte de objetos valiosos possui 4 tipos de embalagens básicas com  
as seguintes dimensões internas:  
caixa 1: 180mm X 135mm X 90mm para pequenos objetos;  
caixa 2: 270mm X 225mm X 135mmpara objetos médios;  
caixa 3: 540mm X 360mm X 270mm para objetos grandes cujo peso é menor  
que 10kg;  
caixa 4: 540mm X 360mm X 270mm para objetos grandes cujo peso é igual ou  
superior a 10kg.  
A embalagem escolhida para um determinado objeto é sempre a mais próxima de suas  
medidas. Caso nenhuma das embalagens básicas envolva o objeto, este é separado e uma  
embalagem especial é construída. Exemplos:  
a) Escreva uma função em C que receba como parâmetros as medidas de um objeto  
e retorne o número da embalagem escolhida ou 0 quando for uma embalagem  
especial. Esta função deve capturar o peso quando necessário.  
int tamanho_da_caixa(int alt, int larg, int compr);  
b) Faça um programa em C que leia as medidas de 30 objetos a serem transportados.  
Para os objetos que podem ser transportados em uma das embalagens básicas, o  
seu programa deve exibir o número correspondente desta embalagem. No final, o  
seu programa deve imprimir a quantidade de embalagens especiais que deverão  
der construídas.  
5
. Faça um programa que obtenha o dia da retirada e o dia da entrega de um livro de uma  
biblioteca e em seguida calcule quantos dias o livro ficou emprestado. Caso o livro tenha  
ficado emprestado por mais de 15 dias, o programa deve calcular e exibir o valor da multa  
(R$ 2.50 por dia de atraso). Lembre-se de considerar que o livro pode ter sido retirado e  
entregue em meses diferentes (para simplificar, não é necessário considerar anos  
bissextos).  
6
. Para viajar na classe econômica de uma determinada empresa aérea, cada passageiro está  
sujeito às seguintes regras ao despachar a sua bagagem:  
É possível despachar, no máximo, 3 volumes;  
Cada volume não deve pesar mais do que 32 kg;  
A dimensão linear de cada volume (soma da altura, largura e comprimento) não deve  
exceder 158 cm;  
A soma das dimensões lineares de todos os volumes de um passageiro não deve  
exceder 400 cm.  
Faça um programa para imprimir, para cada passageiro, se for o caso, uma mensagem  
para cada regra acima que for desrespeitada por sua bagagem. No caso do passageiro  
tentar despachar mais de 3 volumes, não é necessário realizar mais nenhum teste,  
bastando imprimir a mensagem adequada. Caso nenhuma regra seja desrespeitada,  
nenhuma mensagem será exibida.  
Para cada um dos 30 passageiros, o seu programa deve ser ler as seguintes informações:  
Número da passagem;  
Quantidade de volumes;  
Para cada volume:  
Peso;  
Altura (C, na figura ao lado);  
Largura (B, na figura);  
Comprimento (A, na figura)