quinta-feira, 27 de março de 2025

Matemática para a vida 002 - Código Python

Código Python implementado para o cálculo do preço de venda



Código em Python, fonte Gemini

Link código python: 002 - preco de venda.py

import tkinter as tk

def calcular_preco_venda():
    try:
        custo = float(custo_entry.get())
        icms = float(icms_entry.get()) / 100
        pis = float(pis_entry.get()) / 100
        cofins = float(cofins_entry.get()) / 100
        margem_lucro = float(margem_entry.get()) / 100

        aliquota_total = icms + pis + cofins
        preco_venda = custo / (1 - aliquota_total - margem_lucro)

        resultado_label.config(text=f"Preço de Venda: R$ {preco_venda:.2f}")
    except ValueError:
        resultado_label.config(text="Entrada inválida. Verifique os valores.")

# Configuração da janela principal
janela = tk.Tk()
janela.title("Calculadora de Preço de Venda")

# Labels e Entries para custo, tributos e margem
tk.Label(janela, text="Custo do Produto:").grid(row=0, column=0, sticky="w")
custo_entry = tk.Entry(janela)
custo_entry.grid(row=0, column=1)

tk.Label(janela, text="ICMS (%):").grid(row=1, column=0, sticky="w")
icms_entry = tk.Entry(janela)
icms_entry.grid(row=1, column=1)
icms_entry.insert(0, "18")  # Valor padrão

tk.Label(janela, text="PIS (%):").grid(row=2, column=0, sticky="w")
pis_entry = tk.Entry(janela)
pis_entry.grid(row=2, column=1)
pis_entry.insert(0, "1.65")  # Valor padrão

tk.Label(janela, text="COFINS (%):").grid(row=3, column=0, sticky="w")
cofins_entry = tk.Entry(janela)
cofins_entry.grid(row=3, column=1)
cofins_entry.insert(0, "7.6")  # Valor padrão

tk.Label(janela, text="Margem de Lucro (%):").grid(row=4, column=0, sticky="w")
margem_entry = tk.Entry(janela)
margem_entry.grid(row=4, column=1)
margem_entry.insert(0, "30") #Valor padrão

# Botão para calcular
calcular_button = tk.Button(janela, text="Calcular", command=calcular_preco_venda)
calcular_button.grid(row=5, column=0, columnspan=2)

# Label para exibir o resultado
resultado_label = tk.Label(janela, text="")
resultado_label.grid(row=6, column=0, columnspan=2)

# Ajuste da largura das colunas
janela.grid_columnconfigure(0, minsize=150)  # Aumenta a largura da coluna 0

janela.mainloop()

Matemática para a vida - 002

Preço de Venda de produto ou serviço

De uma forma simplificada, a demostração abaixo, define o preço de venda de um produto ou serviço. Logicamente, para que este preço venha a condizer com a espectativa do planejamento, é necessário mais do que apenas acumular percentuais, e sim um estudo mais abrangente sobre a os custos operacionais que influem diretamente ou indiretamente sobre o produto final.

Más para, uma rápida abordagem, funciona.

O exemplo, será desenvolvido nesta etapa apenas com tributos, não vou levar em conta a margem, visto que esta deve advir de um estudo mais elaborado.

Considera-se um custo sobre produto de R$ 1.00,00

Tributos envolvidos:

ICMS: 18%, PIS, 1,65%, COFINS 7,6%, .

Temos então uma alíquota total de 27,25%

Para chegar a alíquota total em decimal, divide-se por 100, logo 0,2725.

Cálculo do preço de venda:

Preço de Venda = custo / (1 - alíquota em decimal), logo 100/(1-0,2725)

Preço de Venda = 100 / 0,7275

Preço de Venda caldulado = R$ 137,45

Agora a decomposição do preço de venda:




Logicamente, como comentado acima, o que falta nesta composição, é a margem de lucro desejada, más, isto é assunto para um próximo post.


quarta-feira, 26 de março de 2025

Matemática para a vida - 001 - Código Python

Código Python para o exemplo proposto.



Código Pythom fonte Gemini

Linki do código : 001 - Aumenta por indice.py

import tkinter as tk

def calcular():

    """Calcula o resultado da multiplicação e exibe na label de resultado."""
    try:
        valor_str = entrada_valor.get().replace(",", ".") #Permite vírgula no decimal e substitui por ponto.
        valor = float(valor_str)
        indice_str = entrada_indice.get().replace(",", ".")  # Substitui vírgula por ponto
        indice = float(indice_str)
        resultado = valor * indice
        label_resultado["text"] = f"Resultado: R$ {resultado:_.2f}"\
            .replace('.', ',').replace('_', '.') #Formata o resultado
       
    except ValueError:
        label_resultado["text"] = "Entrada inválida"

# Cria a janela principal
janela = tk.Tk()
janela.title("Aumenta por índice") # Adiciona o título

# Ajusta o tamanho da janela para acomodar o título
janela.geometry("300x200")  # Aumenta a largura da janela

# Cria e posiciona os widgets (labels, entradas e botão)
label_valor = tk.Label(janela, text="Valor:")
label_valor.grid(row=0, column=1, padx=5, pady=5)

entrada_valor = tk.Entry(janela, justify='right') #Alinha a direita
entrada_valor.grid(row=0, column=2, padx=5, pady=5)

label_indice = tk.Label(janela, text="Índice:")
label_indice.grid(row=1, column=1, padx=5, pady=5)

entrada_indice = tk.Entry(janela, justify='right') #Alinha a direita
entrada_indice.grid(row=1, column=2, padx=5, pady=5)

botao_calcular = tk.Button(janela, text="Calcular", command=calcular)
botao_calcular.grid(row=2, column=2, columnspan=2, padx=5, pady=10)

label_resultado = tk.Label(janela, text="Resultado:")
label_resultado.grid(row=3, column=2, columnspan=2, padx=5, pady=5)

# Inicia o loop principal da interface gráfica
janela.mainloop()

Matemática para a vida - 001

Acrescendo valor e reduzindo a mesma base inicial

Parte 1 - Acrescendo o valor

Preciso hoje acrescentar 25% em um valor para fazer um ajuste contratual.

Então, utilizo o índice 1 (o próprio valor) , acrescento a parte decimal que necessito aumentar (+), no caso 25%  (25/100)  0,25 => 1,25

Multiplico o valor R$ 1.000,00 por 1,25 resultando em R$ 1.250,00 

Parte 2 - Reduzindo a mesma base

Para retornar o valor acrescido a mesma base anterior. utilizo o mesmo índice, invertendo a operação, no primeiro caso foi multiplicação, agora, divisão.

R$ 1.250,00 / 1,25 => R$ 1.000,00