Exercícios
Pratique o que aprendeu nos conteúdos e exemplos de código.
Como usar
Seção intitulada “Como usar”- Leia o enunciado do exercício
- Tente resolver por conta própria antes de buscar ajuda
- Revise as notas de Fundamentos se precisar relembrar algum conceito
- Rode
go fmtego vetna sua solução antes de considerar o exercício concluído - Compare sua solução com a de outras pessoas da comunidade
Exercício 01 - Olá, Go
Seção intitulada “Exercício 01 - Olá, Go”Nível: iniciante
Objetivo: Criar um módulo e executar o primeiro programa Go.
Instrução:
- Crie uma pasta
ola-goe inicialize um módulo comgo mod init - Escreva um
main.goque imprimaOlá, Caramelo Tech! - Execute com
go run .e depois gere o binário comgo build
Critérios de sucesso:
- A pasta contém um
go.modválido -
go run .imprime a mensagem corretamente -
go buildgera um executável que imprime a mesma mensagem
Exercício 02 - Variáveis e Tipos
Seção intitulada “Exercício 02 - Variáveis e Tipos”Nível: iniciante
Objetivo: Declarar variáveis de diferentes tipos e formatar a saída.
Instrução:
- Declare uma variável
stringcom seu nome usando:= - Declare uma variável
intcom sua idade usandovar - Declare uma constante
float64com sua altura em metros - Imprima uma frase combinando as três com
fmt.Printf
Saída esperada:
Meu nome é Ana, tenho 25 anos e meço 1.68m.Critérios de sucesso:
- Usa
:=,vareconstpelo menos uma vez cada - Usa
fmt.Printfcom os verbos%s,%de%.2f - O programa compila sem variáveis não usadas
Exercício 03 - FizzBuzz
Seção intitulada “Exercício 03 - FizzBuzz”Nível: iniciante
Objetivo: Praticar laços e condicionais.
Instrução:
Imprima os números de 1 a 100. Para múltiplos de 3, imprima Fizz no lugar do número; para múltiplos de 5, Buzz; para múltiplos de ambos, FizzBuzz.
Critérios de sucesso:
- Usa um único laço
for - Usa
switchsem expressão (switch { case ...: }) em vez de váriosif - A saída está correta para 3, 5, 15 e 100
Exercício 04 - Divisão Segura
Seção intitulada “Exercício 04 - Divisão Segura”Nível: iniciante
Objetivo: Escrever funções com múltiplos retornos e tratar erros como valores.
Instrução:
Crie a função dividir(a, b float64) (float64, error) que retorna um erro quando b for zero. No main, chame a função com valores válidos e inválidos e trate o erro.
Critérios de sucesso:
- A função retorna
errors.New(oufmt.Errorf) quandob == 0 - O
mainverificaif err != nilantes de usar o resultado - A mensagem de erro é exibida sem derrubar o programa
Exercício 05 - Contador de Palavras
Seção intitulada “Exercício 05 - Contador de Palavras”Nível: intermediário
Objetivo: Praticar slices, maps e o pacote strings.
Instrução: Dado um texto, conte quantas vezes cada palavra aparece (ignorando maiúsculas e minúsculas) e imprima as palavras em ordem alfabética com suas contagens.
Critérios de sucesso:
- Usa
strings.Fieldsestrings.ToLower - Usa um
map[string]intpara as contagens - Ordena as chaves com o pacote
slicesousortantes de imprimir - Tem ao menos um teste com
go testvalidando a contagem