Juros e lógica

Um dos problemas de lógica de programação que mais quebram a cabeça de quem está começando são os problemas com cálculo de porcentagens ou juros.

Começa assim: Calcule 10% de aumento de um salário de R$2.500,00

Dependendo da base matemática do aluno, porcentagem se aprende na quarta/quinta série… alguns conceitos tem que ser relembrados. Como diz o nome, a 10% significa que a cada 100 do valor, você deve retirar 10. O cálculo é bem simples, pode ser realizado com uma multiplicação. Por exemplo: 10/100 * 2500, que resulta em 250. Até aí tudo bem, mas alguns alunos perguntam por que as vezes fazemos 0.1 * 2500. Bem, é apenas a forma de representar que muda, pois 10/100 é equivalente a 0.1, alias 100/1000 também e por aí vai. Mas está é a parte fácil e depois de acertar a notação, as coisas voltam a andar novamente.

Ler mais

Programadores

Hoje é dia do trabalho e resolvi escrever um pouco sobre uma profissão que tem sido descaracterizada nos últimos tempos. Eu programo computadores profissionalmente, sou um desenvolvedor, analista de sistemas, arquiteto de software, mas sempre um programador. Quando estava estudando, o termo programador tinha muito pouco prestígio. Era normalmente usado com a conotação da pessoa com pouca instrução ou sem nível superior que fazia apenas o que era mandada. Nesta época, os analistas de sistemas eram reis e apenas desenhavam os sistemas. O programador se encarregava de pequenos pedaços de código. Banco de dados, telas, fluxos, tudo era entregue para o programador que por vezes era visto como mero tradutor do projeto em código.

Ler mais

Efeitos gráficos com Python, Tkinter, Cython e Numba

Ontem, sábado, fiquei com vontade de criar um efeito de flamas (fogo) em Python. Este efeito era bem popular no início dos anos 90. Eu lembrava que o algoritmo era bem simples, mas tinha uns truques a fazer com a paleta de cores.

Achei este artigo com a implementação em C: https://lodev.org/cgtutor/fire.html

Do mesmo artigo, podemos ter uma ideia de como fica o efeito:

Efeito de flamas

Depois de ler o artigo e ver uns vídeos no Youtube, vi-me com dois problemas:

Ler mais

Consultas do Telegram - Questões interessantes

Semana passada tive a oportunidade de ver 3 questões interessantes a discutir nos grupos do Telegram, mas que a explicação seria grande demais para apresentar em um chat.

  1. Por que True, True, True == (True, True, True) retorna True, True, False?

  2. Por que -2 * 5 // 3 + 1 retorna -3?

  3. Como adicionar tempos em Python?

Por que True, True, True == (True, True, True) retorna True, True, False?

Esta questão foi apresentada como sendo uma sintaxe bizarra do Python, mas na realidade é uma pegadinha visual. Repare no operador == (igual igual).

Ler mais