INSTITUTO FEDERAL DO ESPÍRITO SANTO – CAMPUS ARACRUZ
Curso de Bacharelado em Engenharia Mecanica
Estrutura de dados e Algoritmos (MEC-006)
Primeira lista de exercícios – Entrega: 19/05/2017
Professor: Allan Fernandes Balardino
1- Sejam a e b os catetos de um triângulo, onde a hipotenusa é obtida pela equação:
ℎ𝑖𝑝𝑜𝑡𝑒𝑛𝑢𝑠𝑎 = √𝑎² + 𝑏². Faça um programa em C++ que receba os valores de a e b
e calcule e imprima o valor da hipotenusa através da equação.
2- Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e
escreva a idade dessa pessoa expressa apenas em dias. Considere ano com 365 dias
e mês com 30 dias.
3- Três amigos jogaram na loteria. Caso eles ganhem, o prêmio deve ser repartido
proporcionalmente ao valor que cada deu para a realização da aposta. Faça um
programa em C++ que leia quanto cada apostador investiu, o valor do prêmio, e
imprima quanto cada um ganharia do prêmio com base no valor investido.
4- Leia um valor de comprimento em centímetros e apresente-o convertido em
polegadas. A formula de conversão é: P = C/2,54, sendo C o comprimento em
centímetros e P o comprimento em polegadas.
5- Escreva um algoritmo para ler o número total de eleitores de um município, o
número de votos brancos, nulos e válidos. Calcular e escrever o percentual que cada
um representa em relação ao total de eleitores.
6- Leia o salario de um trabalhador e o valor da prestação de um empréstimo. Se a
prestação for maior que 20% do salário imprima: “Empréstimo não concedido”, caso
contrário imprima: “Empréstimo concedido”.
7- Leia a distancia em Km e a quantidade de litros de gasolina consumidos por um
carro em um percurso, calcule o consumo em Km/l e escreva uma mensagem de
acordo com a tabela abaixo:
Consumo (Km/l) Mensagem
Menor que 8 Venda o carro!
Entre 8 e 14 Econômico!
Maior que 14 Super econômico!
8- Escreva parte de um programa para organizadores de uma competição de natação
que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:
Categoria Idade
Infantil A 5a7
Infantil B 8 a 10
Juvenil A 11 a 13
Juvenil B 14 a 17
Sênior Maiores de 18 anos
9- Faça um programa que leia três números inteiros (a, b, c) positivos e efetue o calculo
de uma das seguintes médias de acordo com um valor numérico digitado pelo
usuário:
3
(a) Geométrica: √𝑎 ∗ 𝑏 ∗ 𝑐
1∗𝑎+2∗𝑏+3∗𝑐
(b) Ponderada:
6
1
(c) Harmônica: 1 1 1
+ +
𝑎 𝑏 𝑐
𝑎+𝑏+𝑐
(d) Aritmética:
3
Dica: para a raiz cúbica inclua a biblioteca de matemática do C++ pelo comando
include <cmath> e utilize a função pow (x,y) que retorna o valor de 𝒙𝒚 .
10- Escreva um programa que, dado o valor da venda, imprima a comissão que deverá
ser paga ao vendedor. Para calcular a comissão, considere a tabela abaixo:
Venda mensal Comissão
Maior ou igual a R$100.000 R$700,00 + 16% das vendas
Entre R$100.000 e R$ 80.000 R$650,00 + 14% das vendas
Entre R$80.000 e R$ 60.000 R$600,00 + 12% das vendas
Entre R$60.000 e R$ 40.000 R$550,00 + 10% das vendas
Entre R$40.000 e R$ 20.000 R$500,00 + 8% das vendas
Menor que 20.000 R$400,00 + 5% das vendas
11- Uma empresa decide dar um aumento aos seus funcionários de acordo com uma
tabela que considera o salário atual e o tempo de serviço de cada funcionário. Os
funcionários com menor salário terão um aumento proporcionalmente maior do
que os funcionários com um salário maior, e conforme o tempo de serviço na
empresa, cada funcionário ir a receber um bônus adicional neste mês. Faça um
programa que leia:
O valor do salário atual do funcionário;
O tempo de serviço desse funcionário na empresa (número de anos de trabalho
na empresa).
Use as tabelas abaixo para calcular o salário reajustado deste funcionário e imprima
o valor do salário final reajustado, ou uma mensagem caso o funcionário não tenha
nenhum aumento. Imprima também o bônus adicional do mês, caso o empregado
tenha direito a esse benefício.
Salário atual Reajuste (%) Tempo de serviço Bônus
Até 500,00 25% Abaixo de 1 ano Sem bônus
Até 1000,00 20% De 1 a 3 anos R$ 100
Até 1500,00 15% De 4 a 6 anos R$ 200
Até 2000,00 10% De 7 a 10 anos R$ 300
Acima de 2000,00 Sem reajuste Mais de 10 anos R$ 500
12- Escreva um programa que deverá fazer a divisão entre dois números e informar ao
usuário o resultado final. Seu programa deve solicitar o numerador e o denominador
ao usuário. Caso o denominador informado seja zero, seu programa deve solicitar
ao usuário que digite outro valor até que esse valor não seja zero.
13- Escreva um algoritmo para ler as notas da 1ª e 2ª avaliações de um aluno, calcule e
imprima a média (simples) desse aluno. Só devem ser aceitos valores válidos
durante a leitura (0 a 10) para cada nota.
14- Escreva um programa que pergunte ao usuário quantos alunos tem na sala dele.
Em seguida, através de um laço While, peça ao usuário para que entre com as notas
de todos os alunos da sala, um por vez. Por fim, o programa deve mostrar a média,
aritmética da turma.
15- Escreva um programa em C++ que solicite ao usuário um certo valor e mostre todos
os números ímpares de 1 até o valor digitado.
16- Escreva um programa em C++ que solicita que o usuário digite vários números e
conte quantos são divisíveis por 3 e quantos são divisíveis por 7.
17- O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99. Para agilizar o
cálculo de quanto cada cliente deve pagar ele desenvolveu uma tabela que contém o
número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a
atendente do caixa precisa apenas contar quantos itens o cliente está levando e
olhar na tabela de preços. Desenvolva um programa que monta esta tabela de
preços, que conterá os preços de 1 até 50 produtos, semelhante ao exemplo abaixo:
Lojas Quase Dois - Tabela de preços:
1 produto 1.99
2 produtos 3.98
3 produtos 5.97
... ...
50 produtos 99.5
18- Um supermercado está precisando de um programa para realizar o processamento
das compras feitas pelos clientes. O algoritmo deve solicitar ao usuário que digite o
valor do produto e a quantidade daquele produto que será comprada, processar o
valor e pedir as informações sobre o próximo produto. O programa para quando o
atendente digitar 0 e 0 para as informações solicitadas. No fim do programa, informe
a quantidade de produtos diferentes comprados, a quantidade de itens comprados
e o valor total da compra, como no exemplo abaixo:
Entre com a Quantidade e o Preço Unitário: 2 10.00
Entre com a Quantidade e o Preço Unitário: 1 15.00
Entre com a Quantidade e o Preço Unitário: 5 3.50
Entre com a Quantidade e o Preço Unitário: 1 50.00
Entre com a Quantidade e o Preço Unitário: 0 0.00
Número total de produtos: 4
Quantidade total de itens: 9
Valor total da compra: 102.50
19- Faça um programa para uma escola, onde o professor entra com as notas referentes
as avaliações de um aluno e quando terminar digitará um valor negativo. Assim que
o professor finalizar a inserção das notas calcule a média aritmética do aluno e
apresente na tela. Feito isso pergunte se o professor irá calcular a média de mais um
aluno ou finalizar o programa. O professor irá digitar ‘s’ para continuar e ‘n’ para
finalizar o programa.
20- Escreva um programa que leia um valor x qualquer pelo teclado. O programa deve
receber apenas valores positivos. A seguir, o programa deve calcular o valor da raiz
quadrada de x usando o método de Heron de Alexandria:
𝑥
a. Chute um valor inicial para a raiz como sendo r (por exemplo, 𝑟 = ).
2
𝑥
(𝑟 + )
𝑟
b. Faça: 𝑟 =
2
c. Se |𝑟 2 − 𝑥| > 𝜀, retorne ao passo 2. Se não, raiz encontrada! Obs: escolha
um valor de ε como sendo a precisão que você deseja para o valor da raiz,
por exemplo 0.01.
d. Escreva r.
Dica: para extrair o módulo de um certo número inclua a biblioteca de matemática
do C++ pelo comando include <cmath> e utilize a função abs(x) que retorna o valor
de |𝒙|.
Importante: sempre implemente seu programa no
computador e faça diferentes testes!
Bons estudos!