Trapézio em Código
Sobre a Matemática
Trapézio é o quadrilátero que tem um par de lados paralelos.
Sobre o Código
Na linguagem de programação Python,
import – é o comando usado para carregar bibliotecas externas ou módulos.
numpy – é a biblioteca para cálculos numéricos e científicos, muito usada em álgebra linear, estatística e integração.
matplotlib – é a biblioteca para visualização de dados e gráficos.
.pyplot – é o submódulo de matplotlib que fornece funções simples para criar gráficos (similar ao estilo do MATLAB).
class – é a palavra-chave usada para definir uma classe, que agrupa atributos e métodos relacionados.
def – é a palavra-chave usada para definir uma função ou método.
__init__(self) – é o método especial chamado automaticamente ao criar um objeto; inicializa os atributos da classe.
None – representa um valor especial que indica ausência de valor ou que algo está intencionalmente vazio. Ele é diferente de 0, False ou uma string vazia “”.
np.array([]) – é a função do NumPy que cria um vetor ou matriz a partir de uma lista de valores.
plt.figure() – cria uma nova figura (janela de gráfico) em Matplotlib.
figsize= – é o argumento de plt.figure() que define o tamanho da figura em polegadas (largura x altura).
plt.fill() – é a função que desenha e preenche uma forma poligonal com cor.
color= – é o argumento que define a cor de preenchimento da forma.
edgecolor= – é o argumento que define a cor da borda da forma.
linewidth= – é o argumento que define a espessura da linha da borda.
plt.title() – define o título do gráfico.
plt.axis() – controla a escala e proporção dos eixos do gráfico.
plt.show() – exibe o gráfico na tela.
print() – é a função nativa que imprime valores ou mensagens no console.
np.linspace() – é a função do NumPy que gera uma sequência de valores igualmente espaçados entre dois limites.
np.trapezoid() – é a função do NumPy que calcula integrais numéricas usando a regra do trapézio.
""" – é o delimitador de string multilinha, usado para docstrings ou comentários longos. Docstrings (abreviação de documentation string), por sua vez, é uma string especial usada para documentar módulos, classes, funções ou métodos. Ela é escrita logo abaixo da definição e serve para explicar o que aquele bloco de código faz. Diferente de comentários comuns (#), as docstrings podem ser acessadas em tempo de execução com help() ou pelo atributo __doc__.
# – é 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…
import numpy as np
import matplotlib.pyplot as plt
class Trapezio:
def __init__(self, base_maior, base_menor, altura, lado1=None, lado2=None):
self.base_maior = base_maior
self.base_menor = base_menor
self.altura = altura
self.lado1 = lado1
self.lado2 = lado2
def area(self):
"""Calcula a área do trapézio"""
return (self.base_maior + self.base_menor) * self.altura / 2
def perimetro(self):
"""Calcula o perímetro do trapézio (se os lados forem fornecidos)"""
if self.lado1 and self.lado2:
return self.base_maior + self.base_menor + self.lado1 + self.lado2
else:
return None
def desenhar(self):
"""Desenha o trapézio usando matplotlib"""
# Coordenadas do trapézio (simétrico)
x_base_maior = np.array([0, self.base_maior])
y_base_maior = np.array([0, 0])
deslocamento = (self.base_maior - self.base_menor) / 2
x_base_menor = np.array([deslocamento, deslocamento + self.base_menor])
y_base_menor = np.array([self.altura, self.altura])
# Pontos do trapézio
x = [0, self.base_maior, deslocamento + self.base_menor, deslocamento]
y = [0, 0, self.altura, self.altura]
plt.figure(figsize=(6,4))
plt.fill(x, y, color="skyblue", edgecolor="black", linewidth=2)
plt.title("Trapézio")
plt.axis("equal")
plt.show()| Código Python (.py) | O que faz |
| import numpy as np | Importa a biblioteca NumPy, usada para cálculos numéricos e integração pela regra do trapézio. |
| import matplotlib.pyplot as plt | Importa o módulo pyplot da biblioteca Matplotlib, usado para criar gráficos e desenhar o trapézio. |
| class Trapezio: | Define uma classe chamada Trapezio, que representa um trapézio com métodos para cálculos e desenho. |
| def __init__(self, base_maior, base_menor, altura, lado1=None, lado2=None): | Construtor da classe. Recebe as dimensões do trapézio: bases, altura e (opcionalmente) os lados não paralelos. |
| self.base_maior = base_maior | Armazena o valor da base maior como atributo do objeto. |
| self.base_menor = base_menor | Armazena o valor da base menor. |
| self.altura = altura | Armazena a altura do trapézio. |
| self.lado1 = lado1 | Armazena o lado não paralelo 1 (se fornecido). |
| self.lado2 = lado2 | Armazena o lado não paralelo 2 (se fornecido). |
| def area(self): | Define o método para calcular a área do trapézio. |
| return (self.base_maior + self.base_menor) * self.altura / 2 | Fórmula da área: soma das bases vezes altura dividido por 2. |
| def perimetro(self): | Define o método para calcular o perímetro. |
| if self.lado1 and self.lado2: | Verifica se os lados foram fornecidos. |
| return self.base_maior + self.base_menor + self.lado1 + self.lado2 | Calcula o perímetro somando todos os lados. |
| else: return None | Caso os lados não sejam fornecidos, retorna None. |
| def desenhar(self): | Define o método para desenhar o trapézio. |
| x_base_maior = np.array([0, self.base_maior]) | Cria coordenadas da base maior no eixo x. |
| y_base_maior = np.array([0, 0]) | Define coordenadas y da base maior (linha no eixo horizontal). |
| deslocamento = (self.base_maior – self.base_menor) / 2 | Calcula o deslocamento lateral para centralizar a base menor. |
| x_base_menor = np.array([deslocamento, deslocamento + self.base_menor]) | Coordenadas x da base menor. |
| y_base_menor = np.array([self.altura, self.altura]) | Coordenadas y da base menor (linha superior). |
| x = [0, self.base_maior, deslocamento + self.base_menor, deslocamento] | Lista com os pontos x dos vértices do trapézio. |
| y = [0, 0, self.altura, self.altura] | Lista com os pontos y correspondentes. |
| plt.figure(figsize=(6,4)) | Cria uma figura de tamanho 6×4. |
| plt.fill(x, y, color=”skyblue”, edgecolor=”black”, linewidth=2) | Desenha o trapézio preenchido com cor azul clara e borda preta. |
| plt.title(“Trapézio”) | Adiciona título ao gráfico. |
| plt.axis(“equal”) | Ajusta os eixos para proporções iguais (não distorcer a figura). |
| plt.show() | Exibe o gráfico na tela. |
# Exemplo de uso
trap = Trapezio(base_maior=10, base_menor=6, altura=4, lado1=5, lado2=5)
print("Área do trapézio:", trap.area())
print("Perímetro do trapézio:", trap.perimetro())
trap.desenhar()
# Exemplo com NumPy: integração pela regra do trapézio
x = np.linspace(0, 5, 100)
y = x**2
integral = np.trapezoid(y, x)
print("Integral de x^2 de 0 a 5 (regra do trapézio):", integral)| Código Python (.py) | O que faz |
| trap = Trapezio(base_maior=10, base_menor=6, altura=4, lado1=5, lado2=5) | Cria um objeto trap da classe Trapezio com valores específicos. |
| print(“Área do trapézio:”, trap.area()) | Calcula e imprime a área. |
| print(“Perímetro do trapézio:”, trap.perimetro()) | Calcula e imprime o perímetro. |
| trap.desenhar() | Chama o método para desenhar o trapézio. |
| x = np.linspace(0, 5, 100) | Cria 100 pontos igualmente espaçados entre 0 e 5. |
| y = x**2 | Calcula 𝑦=x2 para cada ponto. |
| integral = np.trapezoid(y, x) | Calcula a integral de x2 no intervalo [0,5] usando a regra do trapézio. |
| print(“Integral de x^2 de 0 a 5 (regra do trapézio):”, integral) | Imprime o resultado da integral. |
Saída do código (valor de retorno)…
Área do trapézio: 32.0
Perímetro do trapézio: 26

Integral de x^2 de 0 a 5 (regra do trapézio): 41.66879230010543
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]