Atividade Prática - Simulação de Orçamento de Fundação#
Curso: Engenharia Civil
Disciplina: Computação Aplicada
Data: 30/04/2025
📌 Apresentação (Professor/Monitor)#
Este notebook serve como exemplo-base para uma atividade prática de simulação de orçamento de fundações. A atividade deverá ser enviada o código via plataforma do Teams e apresentada na próxima aula ao professor/monitor.
🎯 Objetivo da Atividade#
Simular, em Python, o planejamento e orçamento de uma fundação simples com base em parâmetros derivados das matrículas dos alunos.
A lógica é:#
Entrada: Matrículas dos dois integrantes;
Soma dos 9 dígitos de cada matrícula → usada como chave de personalização;
Cálculo da área, volume e materiais;
Cálculo de custos com variações entre duplas;
Geração de relatório
.txt
(obrigatório, vide função sugerida abaixo, sendo que a dupla pode sugerir alterações/melhorias).
💡 Instruções:#
Adicione duas variáveis com as matrículas dos integrantes.
Crie uma função soma_digitos(matricula) que retorna a soma dos 9 dígitos.
Calcule soma_total = soma_digitos(matricula1) + soma_digitos(matricula2).
Processamento Personalizado com soma_total Utilize a soma total dos dígitos das duas matrículas como chave para personalizar seu projeto.
Cada dupla deve adaptar a lógica conforme a seguir (use if, elif, else, match ou funções para controlar o fluxo de execução):
🔹 1. Cálculo da área e volume#
Calcule a área da obra com base em uma multiplicação condicional:
Se soma_total < 80 → área = soma_total * 1.2
Se 80 ≤ soma_total < 100 → área = soma_total * 1.5
Se soma_total ≥ 100 → área = soma_total * 1.8
A profundidade da fundação deve ser definida como:
Se soma_total for múltiplo de 5 → profundidade = 0.6
Senão → profundidade = 0.5
Calcule o volume da fundação com volume = área * profundidade.
🔹 2. Tipo de solo#
Use a paridade da soma_total para definir o tipo de solo:
Par → “argiloso”
Ímpar → “arenoso”
E acrescente uma classificação adicional para efeito futuro:
Se soma_total termina em 7 ou 8 → “solo instável”
🔹 3. Materiais (quantidade estimada)#
As fórmulas padrão são:
cimento = volume * 8
areia = volume * 0.5
brita = volume * 0.5
ferro = volume * 120
Mas você deve alterar os coeficientes levemente com base em regras:
Se soma_total % 4 == 0 → use * 8.5 para cimento
Se soma_total % 7 == 0 → ferro = volume * 125
🔹 4. Custos (com base nos materiais)#
Use os seguintes preços unitários:
Cimento: R$ 35/saco
Areia: R$ 80/m³
Brita: R$ 95/m³
Ferro: R$ 6,50/kg
Calcule o custo individual de cada item e o subtotal geral.
🔹 5. Imposto sobre o subtotal#
A alíquota será:
12% se soma_total for múltiplo de 3
10% se for múltiplo de 5
8% nos demais casos
🔹 6. Frete#
Use lógica condicional:
Solo “argiloso” → frete fixo de R$ 100
Solo “arenoso” → frete fixo de R$ 130
Solo instável → acrescente 15% ao total do orçamento
🔹 7. Saída dos Resultados#
Mostre no final com print():
Tipo de solo
Volume total (com 2 casas decimais)
Quantidade de cada material
Custos unitários e totais
Imposto aplicado
Frete
Total final do orçamento
📝 Geração de Relatório (.txt)#
# Função para salvar orçamento em arquivo texto
def salvar_relatorio_txt(nome_arquivo, dados):
with open(nome_arquivo, "w") as f:
f.write("RELATÓRIO DE ORÇAMENTO DE FUNDAÇÃO\n")
f.write("------------------------------\n")
for chave, valor in dados.items():
f.write(f"{chave}: {valor}\n")
print(f"Relatório salvo como: {nome_arquivo}")
# Dicionário com dados
relatorio = {
"Área (m²)": area,
"Volume (m³)": round(volume, 2),
"Tipo de solo": solo,
"Cimento (sacos)": round(cimento, 1),
"Areia (m³)": round(areia, 1),
"Brita (m³)": round(brita, 1),
"Ferro (kg)": round(ferro, 1),
"Subtotal (R$)": round(subtotal, 2),
"Imposto aplicado": f"{int(imposto*100)}%",
"Valor do imposto (R$)": round(valor_imposto, 2),
"Frete (R$)": frete,
"Total (R$)": round(total, 2)
}
# Salvar
salvar_relatorio_txt("orcamento_fundacao.txt", relatorio)
📌 Outras Instruções para as Duplas#
Usem este notebook serve apenas como base;
Cada dupla deve alterar as matrículas e adaptar o cálculo conforme a soma dos dígitos;
A geração do relatório
.txt
é obrigatória e melhorias poderão ser discutida em aula;Comentem o código e incluam explicações no relatório final.
Enviem o código via Teams.
Boa prática!