Você está na página 1de 5

TÉCNICAS DE PROGRAMAÇÃO - FAESA

Lista - Unidade 3

Professor: Daniel Luis Cosmo


ENGENHARIA DA COMPUTAÇÃO
CÓDIGO: D009053
Aluno: Roberli Schuina Silva
RA: 23110406
Período: 2023/2
Turma: CI-1030-231-A

Lista em dupla. Entregar uma pasta compactada com os arquivos fonte (.c) contendo o
código de cada programa.

1 QUESTÕES
1. Escreva um programa que calcule e mostre uma quantidade de números da sequência de
Fibonacci escolhida pelo usuário. Cada número da sequência de Fibonacci é igual a
soma dos dois últimos números da sequência. O primeiro e o segundo números da
sequência são 0 e 1 (logo, o terceiro é 0+1=1, o quarto é 1+1=2 e assim por diante).

Resposta:
#include <iostream>

// Função para calcular os números de Fibonacci


void calcularFibonacci(int quantidade) {
int num1 = 0, num2 = 1, proximo;

std::cout << "Sequência de Fibonacci com " << quantidade << "
numeros:\n";

// Mostra os primeiros dois números (0 e 1)


std::cout << num1 << " " << num2 << " ";

// Calcula e mostra os próximos números da sequência


for (int i = 2; i < quantidade; ++i) {
proximo = num1 + num2;
std::cout << proximo << " ";
1

PÚBLICA
num1 = num2;
num2 = proximo;
}
}

int main() {
int n;

std::cout << "Digite a quantidade de numeros da sequencia de Fibonacci a


serem mostrados: ";
std::cin >> n;

if (n <= 0) {
std::cout << "Por favor, insira um numero positivo maior que zero."
<< std::endl;
return 1;
}

calcularFibonacci(n);

return 0;

2. Em matemática, a série harmônica é a série infinita definida como:


∞ 1 1 1 1 1
= 1+ + + + + ...
k=1 k 2 3 4 5

Essa é uma série divergente, pois o valor da soma de seus termos tende ao infinito. Faça
um programa que some o valor das parcelas dessa série em cada interação (primeira
iteração = 1, segunda iteração = 1 + 1 , terceira iteração = 1 + 1 + 1 e assim por diante),
2 2 3
e pare o somatório quando o valor parcial da série for maio um número escolhido pelo
usuário. Mostre na tela o número de iterações necessárias para alcançar este valor.

Resposta:
#include <iostream>

int main() {
double limite;
std::cout << "Digite o limite para a soma da serie harmonica: ";
std::cin >> limite;

double soma = 0.0;


int iteracao = 0;

while (soma < limite) {


iteracao++;
soma += 1.0 / iteracao;
}

PÚBLICA
std::cout << "Numero de iteraçoes necessarias para atingir o limite: "
<< iteracao << std::endl;

return 0;
}

3. Um armazém de estocagem de produtos recebe e envia produtos diariamente. O ar-


mazém possui limite para 50000 produtos e diariamente recebe 2450 produtos e envia
1980 produtos. Sempre que o armazém alcança 90% da lotação máxima no fim do dia,
40% do seu estoque atual é enviado para outro armazém. Supondo que o armazém co-
mece com 1500 produtos no início do primeiro dia, escreva um programa que calcule
quantos dias levará para que o armazém alcance 90% da lotação máxima pela quinta
vez.

Resposta:
#include <iostream>

int main() {
int capacidadeMaxima = 50000;
int limite90Percent = capacidadeMaxima * 0.9;
int estoque = 1500;
int dias = 0;
int vezesAtingido = 0;

while (vezesAtingido < 5) {


estoque += 2450; // Recebe 2450 produtos diariamente
estoque -= 1980; // Envia 1980 produtos diariamente
dias++;

if (estoque >= limite90Percent) {


vezesAtingido++;
int estoqueEnviado = estoque * 0.4;
estoque -= estoqueEnviado;
}
}

std::cout << "Dias necessarios para atingir 90% da capacidade pela


quinta vez: " << dias << std::endl;

return 0;

PÚBLICA
4. Um biólogo efetua um experimento de medida da taxa de reprodução assexuada de
um tipo específico de bactéria em diferentes temperaturas. A taxa de reprodução diária
(multiplicador) das bactérias a uma temperatura “T” é igual a 1 + (T-40) / 100. O biólogo
inicia o primeiro dia de testes com 1000 bactérias e uma temperatura T = 45. No início
de cada dia múltiplo de 2, a temperatura aumenta em 0,3°C. Escreva um programa
que receba do usuário a duração em dias do experimento e apresente na janela do
programa a quantidade total de bactérias existentes no final do experimento.

Resposta:
#include <iostream>

int main() {
int duracaoExperimento;
std::cout << "Digite a duracao em dias do experimento: ";
std::cin >> duracaoExperimento;

double temperatura = 45.0; // Temperatura inicial


int quantidadeBacterias = 1000; // Quantidade inicial de bactérias

for (int dia = 1; dia <= duracaoExperimento; dia++) {


double taxaReproducao = 1 + (temperatura - 40) / 100;
quantidadeBacterias *= taxaReproducao;

if (dia % 2 == 0) {
temperatura += 0.3; // Aumento de 0,3°C a cada dia múltiplo de 2
}
}

std::cout << "Quantidade total de bacterias no final do experimento: "


<< quantidadeBacterias << std::endl;

return 0;
}

5. Considere que o custo de enviar um pacote por correio expresso é de R$ 20,00 para os 5
primeiros Kg e R$ 2,15 para cada Kg adicional ou fração acima de Kg. Exemplo, um
pacote com 11,4 Kg custa R$ 20,00 (5 primeiros Kg) + 6 * R$ 2,15 (6, 7, 8, 9, 10 e 11 Kg) +
R$ 2,15 (fração adicional acima de 11 Kg) = R$ 35,05. Se o pacote pesar mais que 30 Kg,
uma taxa adicional (fora a taxa normal por Kg) de R$ 20,00 deve ser adicionada ao valor
final. Caso o pacote possua mais que 60 Kg, outra taxa adicional (fora a taxa normal por
Kg) de R$ 30,00 deve ser adicionada ao valor final. Nenhum pacote com mais de 90 Kg é
aceito para envio. Escreva um programa que receba um valor de entrada digitado pelo
usuário contendo o peso do pacote, calcule o valor a ser pago e apresente esse valor na
janela de saída. Caso o pacote não seja aceito, a janela de saída deve apresentar o texto
“Pacote não aceito”.

Resposta:
#include <iostream>
using namespace std;

int main() {

PÚBLICA
double pesoPacote;
cout << "Digite o peso do pacote em Kg: ";
cin >> pesoPacote;

double custoTotal = 0.0;

if (pesoPacote <= 0 || pesoPacote > 90) {


cout << "Pacote não aceito" << endl;
}
else if (pesoPacote <= 5) {
custoTotal = 20.0;
}
else if (pesoPacote <= 30) {
custoTotal = 20.0 + (pesoPacote - 5) * 2.15;
}
else if (pesoPacote > 30 && pesoPacote <= 60) {
custoTotal = 20.0 + 25 * 2.15 + 20.0;
}
else if (pesoPacote > 60 && pesoPacote <= 90) {
custoTotal = 20.0 + 25 * 2.15 + 30.0 + (pesoPacote - 60) * 2.15;
}

if (custoTotal > 0) {
cout << "O custo total do envio e: R$ " << custoTotal << endl;
}

return 0;

PÚBLICA

Você também pode gostar