Você está na página 1de 2

Universidade Federal do Ceará – Departamento de Engenharia de Teleinformática

Atividade Didática Remota – 2021.1


Introdução à Programação
Prof. Tarcisio Ferreira Maciel, Dr.-Ing.

Objetivos:

• Explorar programas que realizem validação de dados de entrada.


• Explorar programas que utilizem estruturas de repetição.

Critérios de avaliação:

i. Correção: o programa deve fornecer respostas corretas. Redução em até 100% da nota.
ii. Cobertura: o programa deve utilizar tipos de dados e comandos corretos para processar adequadamente
diferentes entradas. Redução em até 50% da nota cumulativa com outros critérios.
iii. Organização: o programa deve estar devidamente organizado (indentação, nomes de identificadores claros,
comentários, etc.). Redução em até 10% na nota cumulativa com outros critérios.
iv. Originalidade: o programa não deve ser cópia literal ou cópia semântica (p. ex., cópia literal com termos
renomeados) da solução de outro discente. Redução em até 50% da nota cumulativa com outros critérios.

Para cada questão de programação da atividade, comece criando uma aplicação do tipo “Console application”
seguindo o passo-a-passo apresentado em vídeo. Em seguida, modifique o programa “Hello World!” para resolver
uma questão. Cada projeto deverá ser chamado QuestaoXX, em que XX é o número da questão. Por exemplo,
para a Questão 1, o projeto deverá se chamar Questao01. Em todas as questões é mandatório que os dados de
entrada fornecidos pelo usuário sejam validados.
Exercício 1. (L03) Escreva um programa que leia o preço de cada um dos produtos de um conjunto com 𝑁 = 120
itens. O programa deve calcular e imprimir o percentual 𝑃1 de produtos baratos (com preço inferior a R$ 50,00),
o percentual 𝑃2 de produtos acessíveis (com preços de R$ 50,00 até R$ 1.000,00), e o percentual 𝑃3 de produtos
caros (com preço acima de R$ 1.000,00) entre os produtos cujos preços foram informados. O programa deve
verificar a validade dos dados fornecidos e imprimir mensagens adequadas alertando sobre dados inválidos.

Exercício 2. (L03) Em uma usina nuclear, os técnicos analisam a perda de massa de um material radioativo.
Sabendo-se que este perde 25% de sua massa a cada 30 segundos, crie um programa que receba a massa em
gramas e calcule iterativamente e imprima o tempo necessário em horas, minutos e segundos para que a massa
deste material se torne menor que 0,10 grama. O programa pode calcular o tempo para várias massas. O programa
se encerra quando uma massa igual a zero for fornecida.

Exercício 3. (L04) [1, Q. 3.13 – Polinômio] Seja


𝑛
Õ
𝑛 𝑛−1 𝑛−2 𝑛−3 2
𝑝(𝑥) = 𝑎 𝑛 𝑥 + 𝑎 𝑛−1 𝑥 + 𝑎 𝑛−2 𝑥 + 𝑎 𝑛−3 𝑥 + . . . + 𝑎2𝑥 + 𝑎1𝑥 + 𝑎0 = 𝑎𝑖 𝑥 𝑖 ,
𝑖=0

um polinômio de grau 𝑛 com 𝑛 + 1 coeficientes. Escreva um programa que leia pelo teclado o grau 𝑛 do polinômio
𝑝(𝑥) , o valor de 𝑥 , e os coeficientes do polinômio 𝑝(𝑥) e que calcule e imprima o valor de 𝑝(𝑥) . Sugestão: para
testar o seu programa, considere um polinômio de ordem baixa como 2 ou 3.

Exercício 4. (L04) Escreva um programa, que leia um conjunto de 50 fichas, cada uma contendo, a altura e o
código do sexo de uma pessoa (código = 1 se for masculino e 2 se for feminino), e calcule e imprima:

i. a maior e a menor altura da turma;


ii. a média de altura das mulheres;
iii. a média de altura da turma.
Exercício 5. (L04) Dois ciclistas A e B estão andando em uma pista de ciclismo com 2 km de comprimento com
velocidades de 10 m/s e 15 m/s, respectivamente. Escreva um programa que determine iterativamente o tempo
que levará para que esses dois ciclistas A e B se encontrem em um mesmo ponto, sabendo que eles partiram
de um mesmo ponto inicial, porém em sentido contrário. O programa também deve calcular o deslocamento (a
distância) que cada um percorreu.

Exercício 6. (L04) Escreva um programa que gere e imprima os 𝑁 primeiros números perfeitos, com 0 < 𝑁 < 5.
Um número perfeito é um número inteiro positivo que é igual à soma dos seus divisores menores ou iguais ao
próprio número. Por exemplo, 6 = 1 + 2 + 3 e 28 = 1 + 2 + 4 + 7 + 14. O número 𝑁 deve ser lido pelo teclado.

Exercício 7. (L04) [2] Santos dígitos Batman! O Charada está planejando sua próxima trapaça em algum lugar da
Avenida Pensilvânia. Em seu costumeiro estilo de jogador, ele deixou o endereço na forma de um quebra-cabeça.
O endereço na Avenida Pensilvânia é um número de quatro dígitos em que:

i. Todos os quatro dígitos são diferentes.


ii. O dígito na casa dos milhares é três vezes o dígito na casa das dezenas.
iii. O número é ímpar.
iv. A soma dos dígitos é 27.

Escreva um programa que use um laço (ou laços) para encontrar o endereço onde o Charada planeja atacar.

Exercício 8. (L04) [2] Escreva um programa que solicite a hora atual (com horas e minutos) e um tempo de espera
como dois inteiros para o número de horas e o número de minutos de espera. O programa então exibe qual será
a hora após o período de espera. Use a notação de 24 horas para as horas. Inclua um laço que permita ao usuário
repetir esse cálculo para valores de entrada adicionais até que o usuário diga que deseja encerrar o programa.

Exercício 9. (L04) [3] Um escritório imobiliário lida com, digamos, 50 unidades de apartamento. Quando o
aluguel é, digamos, R$ 600 por mês, todas as unidades estão ocupadas. Contudo, para cada, digamos, aumento
de R$ 40 no aluguel, uma unidade fica vaga. Além disso, cada unidade ocupada requer uma média de R$ 27 por
mês para manutenção. Quantas unidades devem ser alugadas para maximizar o lucro? Escreva um programa que
peça ao usuário para inserir:

i. O aluguel para ocupar todas as unidades.


ii. O aumento do aluguel que resulta em uma unidade vaga.
iii. O valor para manutenção de uma unidade alugada.

O programa deve produzir o número de unidades a serem alugadas para maximizar o lucro.

Exercício 10. (L04) [4, Q. 5.2 – Tripla pitagoreana] Uma tripla pitagoreana é um conjunto de três números inteiros
que satisfazem a relação de Pitágoras para triângulos retângulos. Utilizando três laços, um dentro do outro,
escreva um programa que faz uma busca exaustiva para determinar e imprimir todas as triplas pitagoreanas cujos
valores dos lados dos triângulos são menores que 500.

Referências
[1] Â. M. de Guimarães and N. A. C. de Lages, Algoritmos e estruturas de dados, 31st ed. Livros Técnicos e
Científicos, 1994.

[2] W. Savitch and K. Mock, Problem Solving with C++, 9th ed. Pearson Education, 2015.

[3] D. S. Malik, C++ programming: from problem analysis to program design, 6th ed. Cengage Learning, 2013.

[4] P. Deitel and H. Deitel, C++ how to program, 8th ed. Prentice Hall, 2012.

Você também pode gostar