Passo a passo pra resolver os primeiros problemas de programação

Resilia
3 min readJun 16, 2020

Esse post faz parte de uma série de dicas que pretendo compartilhar com vocês. A primeira será Como eu aprendi a resolver problemas de programação. Tenham em mente que eu estruturei isso pra mim, e deu certo pra mim, mas não existe receita de bolo ou bala de prata pra nenhum problema que a gente encare e, por isso, precisamos sempre nos adaptar.

TL;DR

Too long; Didn’t read

Sempre que preciso resolver um problema, eu procuro ter em mente esses cinco passos.

  1. Identifique o problema principal
  2. Procure identificar as palavras-chave do problema
  3. Encontre qual a entrada esperada
  4. Liste as restrições que o problema te fornece
  5. Verifique a saída esperada

E, nos casos em que o problema é muito grande, procuro separar ele em problemas menores. Dividir pra conquistar é o lema.

A versão longa da história

Antes de mais nada, procure ter sempre por perto um bloco de papel e uma caneta. Muitas vezes vamos querer resolver problemas que ficam mais claros quando tiramos ele do mundo abstrato da nossa mente e trazemos para o plano físico do papel. Isso vai ajudar a entender um pouco melhor o problema e também a estruturar o que precisa ser feito.

Caneta e papel em mãos, vamos começar a planejar o que precisamos fazer em cinco passos:

Identifique o problema principal

O primeiro passo sempre vai ser entender o problema que temos que resolver. Faça uma leitura atenciosa do problema e marque a parte que achar mais importante.

Procure identificar as palavras-chave do problema

Isso nos ajuda quando temos uma descrição muito grande para o problema. Tente encontrar palavras chaves que conectem as partes do problema e destacar essas palavras de alguma forma.

Encontre qual a entrada esperada

Todo problema (por mais que algumas vezes não pareça) fornece uma entrada esperada. Ela pode estar implícita ou explícita. Os exercícios disponíveis no codewars, por exemplo, são casos em que essa entrada é explícita, ou seja, o problema fornece qual deverá ser sua entrada.

Liste as restrições que o problema te fornece

Essa eu diria ser a parte fundamental para resolver um problema. Identifique no texto coisas que podem atuar como restrição. Por exemplo, dado um problema, a entrada será sempre um vetor de inteiros. Caso o vetor seja vazio, devemos retornar 0 (zero).

Nossas restrições aqui são:

  • A entrada é sempre um vetor de inteiros
  • Caso a entrada seja um vetor vazio, retorne zeo

Verifique a saída esperada

Por fim, precisamos executar um teste e verificar se a saída que tivemos é a saída esperada. Procure usar valores na entrada que você seja capaz de checar manualmente, tirando a prova dos nove de que encontramos o que queríamos. Caso não seja, voltamos ao primeiro passo!

Um exemplo

Vamos resolver o seguinte problema:

Crie uma função que atenda as seguintes condições:
Sua função irá receber como entrada um inteiro n positivo e deve retornar “Fizz” caso seja divísivel por 3, “Buzz” caso seja divisível por 5, FizzBuzz caso seja divisível por 3 e por 5 e “Nem Fizz nem Buzz” caso contrário.

Agora, com a nossa receita, conseguimos saber

  1. Identifique o problema principal;
    Retornar uma string de acordo com o resultado de uma divisão.
  2. Procure identificar as palavras chave do problema;
    inteiro positivo, divisível por 3, divisível por 5, divisível por 3 e por 5.
  3. Encontre qual a entrada esperada;
    Um número inteiro positivo.
  4. Liste as restrições que o problema te fornece;
    Se o número for divisível por 3, retorne “Fizz”
    Se o número for divísivel por 5, return “Buzz”
    Se o número for divísvel por 3 e por 5, retorne “FizzBuzz”
    Se não atender nenhuma das condições acima, retorne “Nem Fizz nem Buzz”
  5. Verifique a saída esperada.
    Aqui podemos verificar algumas entradas que podemos verificar manualmente.

Para n = 2, retorna “Nem Fizz nem Buzz”;
Para n = 3, retorna “Fizz”;
Para n = 5, retorna “Buzz”;
Para n = 11, retorna “Nem Fizz nem Buzz”;
Para n = 15, retorna “FizzBuzz”;

Trilha sonora

Mais informações

Esta é uma versão adaptada do artigo escrito pelo Leonardo Gonçalves, monitor da Resilia, originalmente publicado aqui.

Você pode saber um pouco mais sobre a Resilia acessando nosso site ou enviando dúvidas via email.

--

--

Resilia

Na Resilia, formamos os melhores profissionais em tecnologia. Para isso, exigimos apenas uma coisa: garra.