Medidas para Lenha em Código
Sobre a Matemática
Na medição da lenha, usa-se o metro cúbico, com a designação de estéreo.
O estéreo é a unidade autorizada para o volume de lenha. O quadro seguinte encerra esta unidade com seus múltiplos e sunmúltiplos, mais usados e símbolos correspondentes.
| Nome | Símbolos | Valores |
| decastéreo | dast | 10 st ou 10 m3 |
| estéreo | st | 1st ou 1 m3 |
| decistéreo | dst | 0,1 st ou 0,1 m3 |
Sobre o Código
Na linguagem de programação Python,
from – é a palavra-chave usada para importar módulos ou partes específicas de um módulo.
dataclasses – é o módulo da biblioteca padrão que fornece o decorador @dataclass para simplificar a criação de classes de dados.
import – é a palavra-chave usada para trazer módulos ou funções externas para o código.
dataclass – é o decorador que transforma uma classe comum em uma dataclass, gerando automaticamente métodos como __init__, __repr__ e __eq__.
decorador – é a função especial que modifica o comportamento de outra função ou classe, aplicada com @.
classe – é a estrutura que define objetos, agrupando atributos (dados) e métodos (funções).
métodos – são funções definidas dentro de uma classe que descrevem comportamentos dos objetos.
dicionário – é a estrutura de dados que armazena pares chave-valor, como { “chave”: “valor” }.
str – é o tipo de dado que representa texto (string).
float – é o tipo de dado que representa números decimais (ponto flutuante).
def – é a palavra-chave usada para definir uma função.
docstring – é o texto entre aspas triplas dentro de funções ou classes que serve como documentação explicativa.
if: – é a estrutura condicional que executa código apenas se a condição for verdadeira.
not in – é o operador que verifica se um elemento não está presente em uma coleção (lista, dicionário, etc.).
or – é o operador lógico que retorna verdadeiro se pelo menos uma das condições for verdadeira.
raise – é a palavra-chave usada para lançar (gerar) uma exceção/erro.
ValueError() – é o tipo de exceção que indica que um valor fornecido é inválido ou incorreto.
return – é a palavra-chave usada em funções para devolver um resultado.
print() – é a função que exibe informações na saída padrão (normalmente no console).
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código…
from dataclasses import dataclass
@dataclass
class UnidadeLenha:
nome: str
simbolo: str
valor_em_m3: float
# Definição das unidades
unidades = {
"dast": UnidadeLenha("decastéreo", "dast", 10.0),
"st": UnidadeLenha("estéreo", "st", 1.0),
"dst": UnidadeLenha("decistéreo", "dst", 0.1),
}
def converter(valor: float, de: str, para: str) -> float:
"""Converte entre unidades de lenha (estéreo e m³)."""
if de not in unidades or para not in unidades:
raise ValueError("Unidade inválida. Use: 'dast', 'st', 'dst'.")
valor_m3 = valor * unidades[de].valor_em_m3
return valor_m3 / unidades[para].valor_em_m3| Código Python (.py) | O que faz |
| from dataclasses import dataclass | Importa o decorador dataclass, que facilita a criação de classes simples para armazenar dados sem precisar escrever muito código repetitivo. |
| @dataclass | Indica que a classe logo abaixo será uma dataclass, ou seja, o Python automaticamente cria métodos como __init__, __repr__, etc. |
| class UnidadeLenha: | Define uma classe chamada UnidadeLenha que representará uma unidade de medida da lenha. |
| nome: str | Declara que o atributo nome da classe será uma string (ex.: “decastéreo”). |
| simbolo: str | Declara que o atributo simbolo da classe será uma string (ex.: “dast”). |
| valor_em_m3: float | Declara que o atributo valor_em_m3 será um número decimal (float), representando o valor equivalente em metros cúbicos. |
| unidades = { … } | Cria um dicionário chamado unidades que guarda as diferentes unidades de lenha, associando o símbolo (dast, st, dst) ao objeto UnidadeLenha correspondente. |
| “dast”: UnidadeLenha(“decastéreo”, “dast”, 10.0) | Define que o símbolo dast corresponde a 10 metros cúbicos. |
| “st”: UnidadeLenha(“estéreo”, “st”, 1.0) | Define que o símbolo st corresponde a 1 metro cúbico. |
| “dst”: UnidadeLenha(“decistéreo”, “dst”, 0.1) | Define que o símbolo dst corresponde a 0,1 metro cúbico. |
| def converter(valor: float, de: str, para: str) -> float: | Cria uma função chamada converter que recebe um valor numérico e converte de uma unidade para outra. |
| if de not in unidades or para not in unidades: | Verifica se as unidades fornecidas existem no dicionário unidades. |
| raise ValueError(“Unidade inválida…”) | Se a unidade não existir, lança um erro informando que a unidade é inválida. |
| valor_m3 = valor * unidades[de].valor_em_m3 | Converte o valor da unidade de origem para metros cúbicos. |
| return valor_m3 / unidades[para].valor_em_m3 | Converte o valor em metros cúbicos para a unidade de destino e retorna o resultado. |
# Exemplos de uso
print("5 estéreo em decistéreo:", converter(5, "st", "dst"))
print("2 decastéreo em estéreo:", converter(2, "dast", "st"))
print("10 decistéreo em m³:", converter(10, "dst", "st"))| Código Python (.py) | O que faz |
| print(“5 estéreo em decistéreo:”, converter(5, “st”, “dst”)) | Exemplo de uso: converte 5 estéreo em decistéreo e imprime o resultado. |
| print(“2 decastéreo em estéreo:”, converter(2, “dast”, “st”)) | Exemplo de uso: converte 2 decastéreo em estéreo e imprime o resultado. |
| print(“10 decistéreo em m³:”, converter(10, “dst”, “st”)) | Exemplo de uso: converte 10 decistéreo em estéreo (m³) e imprime o resultado. |
Saída do código (valor de retorno)…
5 estéreo em decistéreo: 50.0
2 decastéreo em estéreo: 20.0
10 decistéreo em m³: 1.0
Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]