Exercícios Resolvidos de Funções

Ver Teoria

Enunciado

Escreva uma função que aceita uma string como parâmetro e retorna um número inteiro. A função deve imprimir o resultado da substituição de todos os espaços do seu parâmetro pelo caractere ‘-’, e retorna o número de substituições feitas.

Passo 1

E aí, seu doido! Cara, às vezes o enunciado manda exibir e às vezes manda retornar. Nessa questão tá mandando fazer os dois.

Mas relaxa, a gente vai conseguir! Se liga que nessa questão o enunciado já até diz quais são os parâmetros que vamos receber, então é de boa pra gente fazer a estrutura da nossa função! Só precisamos receber uma string.

Mas maninho, o nome da função e o nome dos parâmetros são completamente arbitrários, ok? A gente dá o nome que a gente quiser mesmo. É sempre bom escolher nomes autoexplicativos, mas se a tu quiser chamar a função de Enzo tu pode, jae?!

Beleza! A gente vai precisar checar todas as letras da string procurando por espaços. Pra isso, a gente vai precisar do laço for.

Passo 2

Se liga, bora criar um laço de repetição que nos permita verificar cada uma das letras da string se ela é igual a “ “ (espaço).

Pronto! Desse jeito, a variável “letra” vai variar pra todas as letras na variável “string”. Aí a gente pode verificar quantas vezes essa letra é um espaço.

Pronto! Dentro do escopo do if, a letra atual do loop é igual a espaço, então temos que contar pra resposta final. Mas como que faz pra contar?!

Pô, a gente pode criar uma variável e, a cada vez que for igual a espaço, a gente soma um!

Pronto! Se ligou? No final do loop a gente vai ter a quantidade de espaços dentro da variável “contador”. Mas isso ainda não é tudo que o enunciado pede. A gente ainda precisa exibir a variável substituindo esses espaços por ‘-’.

Passo 3

Mas calma, segura aí, olha a lógica que a gente pode seguir: criar uma variável string vazia, e a cada loop a gente concatena a letra atual do loop nessa variável, a menos que seja um espaço. Se for espaço, a gente concatena ‘-’. Sacou? Vamos aos códigos então!!

Viu? Levando em consideração que o for passa por uma letra de cada vez da string, se a gente adicionar a letra em “resultado” em todos os loops, no fim resultado vai ser igual a string. O que a gente tá fazendo é concatenar a letra só se ela for diferente de espaço, e concatenando “-” se for igual a espaço.

Beleza! Agora, a gente precisa exibir a variável “resultado” e retornar a quantidade que a gente calculou em “contador”. Bora lá! Desiste não! VEM COMIGO MONSTRO!!!

Passo 4

Olha, pra exibir a gente usa a função print(), e pra retornar usamos a palavra-chave return. Mas calma, segura a onda, precisamos lembrar que depois de uma palavra-chave return, NADA mais acontece.

Isso tá errado, ok? O return sempre vai ser a última linha de código a ser executada na sua função. Nesse caso, a gente precisa colocar o print() antes, se não o print() não vai funcionar.

Agora simmm! Nossa função conta e exibe! Vamos testar!

Passo 5

Pra testar, bora chamar a função dentro de um print() em baixo, no escopo global (alinhado o mais à esquerda possível). Vou usar como teste a frase “biscoito não é bolacha

Bom, contando aqui, essa string tem 4 espaços. E a função tem que exibir a mesma string substituindo os espaços por “-”. Bora executar o programa pra ver no que dá…

Hmmm, funcionou!

Agora a gente pode entregar nossa resolução sem preocupação! Te espero no próximo exercício, doido!

Resposta