Algoritmos#
Muitas vezes nos deparamos com problemas que parecem muito difíceis ou quase impossíveis de resolver, mas vou te contar um segredo. Grande parte dos problemas que vamos ver nesta disciplina podem ser resolvidos com if
e while
.
Alguns exercícios podem parecer complexos ao primeiro contato, mas se olharmos de outro "ângulo" o problema começa a ficar mais amigável.
O que são algoritmos?#
Podemos definir um algoritmo como uma sequência finita de ações para alcançar um objetivo.
No dia a dia, fora do contexto computacional/tecnológico, nos deparamos com algoritmos e muitas vezes nem nos damos conta.
Ao fazer um bolo precisamos seguir o passo a passo descrito na receita. Quando acordarmos de manhã, seguimos uma rotina para escovar os dentes. Pense na sua rotina.
Para chegar na sala de aula você também acaba traçando um caminho para chegar ao destino desejado.
- Entrar no prédio 2 do Insper;
- Pegar o celular e acessar o QR code;
- Validar o QR Code na catraca.
- Passar a catraca;
- Escolher entre escada ou elevador; E assim, por diante.
Na programação isso não muda muito. Para resolver um problema escrevemos uma sequência de comandos para alcançar um objetivo. E já fazemos isso nos exercícios feitos durante as aulas.
Conforme vamos avançando no conteúdo da disciplina, vamos nos deparar com problemas maiores e muitas vezes esquecemos de definirmos os passos necessários para a resolução do problema. Então segue algumas dicas que podemos seguir para nos auxiliar na resolução dos exercícios.
Dividindo o problema#
Vamos começar com o enunciado do exercício abaixo.
Imposto de Renda Retido na Fonte#
Faça um programa que pergunta o salário bruto e o número de dependentes do usuário e imprime o seu Imposto de Renda Retido na Fonte (IRRF) simplificado. O cálculo do IRRF simplificado depende do valor da contribuição para o INSS e da base de cálculo. A contribuição para o INSS é dada pela tabela:
Faixa salarial | Alíquota |
---|---|
Até R$ 1.045,00 | 7,5% |
De R$ 1.045,01 até R$ 2.089,60 | 9% |
De R$ 2.089,61 até R$ 3.134,40 | 12% |
De R$ 3.134,41 até R$ 6.101,06 | 14% |
Acima de R$ 6.101,06 | R$ 671,12 (valor fixo) |
Por exemplo, se o salário bruto for R$ 2.000,00 a contribuição para o INSS será: \(2000\times 0.09 = 180\).
A base de cálculo do IRRF simplificado é dada por:
Base de cálculo =
salário bruto - contribuição para o INSS - número de dependentes X 189,59
Finalmente, o IRRF simplificado é dado por:
IRRF = Base de cálculo X alíquota - dedução
A alíquota e dedução podem ser obtidas na tabela a seguir, que depende da base de cálculo:
Base de cálculo | Alíquota | Dedução |
---|---|---|
Até R$ 1.903,98 | 0.0% | R$ 0,00 |
De R$ 1.903,99 até R$ 2.826,65 | 7,5% | R$ 142,80 |
De R$ 2.826,66 até R$ 3.751,05 | 15% | R$ 354,80 |
De R$ 3.751,06 até R$ 4.664,68 | 22,5% | R$ 636,13 |
Acima de R$ 4.664,68 | 27,5% | R$ 869,36 |
Acessar exercício "Imposto de Renda Retido na Fonte"
Problemas menores#
Releia o enunciado do exercício e pense como você poderia quebrar o exercício em problemas menores.
Exercise 1
Answer
Não existe resposta certa ou errada para quantas ou quais subproblemas você conseguiu identificar.
Ao ler o enunciado deste exercício, podemos perceber que temos bastante trabalho para fazer. Porém, aos poucos vamos ver que a dificuldade do exercício está muito mais ligada a organização que vamos escolher utilizar.
Exercise 2
Answer
Para o exercício IRRF simplificado
, o operador while
não será necessário, pois não lidamos com nenhuma situação de repetição.
Talvez você tenha pensado que as funções não serão necessárias, mas neste caso as funções vão nos ajudar a organizar a nossa solução.
Você consegue pensar como?
Utilizando funções#
Podemos criar uma função para cada subproblema. É possível resolver o exercício IRRF simplificado
sem utilizar funções. Mas te garanto que as funções nos ajudarão na organização do código. Além disso, a solução deste exercício pode utilizar algumas linhas de código, e se cometermos algum erro, será muito mais fácil encontrá-lo.
Contribuição para o INSS#
O cálculo da contribuição para o INSS é a primeira informação dada pelo enunciado e parece ser um bom candidato a virar subproblema. Desta forma, a primeira função que podemos criar é calcula_contribuicao_inss
.
Exercise 3
Answer
Para o cálculo da contribuição para o INSS precisamos somente do valor do salário bruto.
Exercise 4
Base de cálculo#
Ao continuarmos lendo o enunciado do exercício, nos deparamos com a explicação da Base de cálculo do IRRF simplificado
. O cálculo da Base de cálculo do IRRF simplificado
parece ser um bom candidato a subproblema.
Então nosso próximo passo, será criar a função calcula_base_de_calculo
.
Exercise 5
Answer
Para o cálculo da base de cálculo precisamos do valor do salário bruto e o número de dependentes.
Além disso, a base de cálculo precisa do valor da contribuição do INSS, mas esse valor não será passado por argumento. O valor da contribuição será adquirida através da função calcula_contribuicao_inss
.
Exercise 6
IRRF simplificado#
Agora podemos fazer a função para calcular o IRRF.
Exercise 7
Finalizando#
Agora precisamos finalizar o exercício. Não podemos esquecer que o exercício pede a utilização de input
para pedir as informações do usuário. E além disso, precisamos imprimir o valor do IRRF do usuário.
Exercise 8
Algoritmos com repetição#
Vamos agora ver algumas dicas para facilitar a construção de algoritmos com repetição. Clique aqui.