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 é:#

  1. Entrada: Matrículas dos dois integrantes;

  2. Soma dos 9 dígitos de cada matrícula → usada como chave de personalização;

  3. Cálculo da área, volume e materiais;

  4. Cálculo de custos com variações entre duplas;

  5. 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!