Menu
Coddy logo textTech

Recapitulação - Lidando com Problemas

Parte da seção Fundamentos do Journey de GO da Coddy — lição 109 de 109.

challenge icon

Desafio

Fácil

Vamos praticar o tratamento de erros em Go com um programa simples de conversão de temperatura.

Sua tarefa é implementar uma função que converte temperaturas de Celsius para Fahrenheit, com o tratamento de erros adequado.

Complete a função celsiusToFahrenheit que:

  • Converte uma temperatura em Celsius para Fahrenheit usando a fórmula: F = C × 9/5 + 32
  • Retorna um erro se a temperatura estiver abaixo do zero absoluto (-273.15°C)

Para a mensagem de erro, você deve retornar exatamente: "Error: temperature below absolute zero"

A função main contém casos de teste para verificar sua implementação.

Experimente você mesmo

package main

import (
	"errors"
	"fmt"
)

// celsiusToFahrenheit converte Celsius para Fahrenheit
// Retorna um erro se a temperatura for abaixo do zero absoluto (-273.15°C)
func celsiusToFahrenheit(celsius float64) (float64, error) {
	// TODO: Implementar a lógica de conversão
	// 1. Verificar se a temperatura está abaixo do zero absoluto (-273.15°C)
	// 2. Se for válida, converter usando a fórmula: F = C × 9/5 + 32
	// 3. Retornar o valor apropriado e o erro
	return 0, nil
}

func main() {
	// Testar temperatura válida
	fmt.Println("Converting 25°C to Fahrenheit:")
	fahrenheit, err := celsiusToFahrenheit(25)
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Printf("25°C = %.2f°F\n", fahrenheit)
	}

	// Testar outra temperatura válida
	fmt.Println("\nConverting 0°C to Fahrenheit:")
	fahrenheit, err = celsiusToFahrenheit(0)
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Printf("0°C = %.2f°F\n", fahrenheit)
	}

	// Testar temperatura inválida (abaixo do zero absoluto)
	fmt.Println("\nConverting -300°C to Fahrenheit:")
	fahrenheit, err = celsiusToFahrenheit(-300)
	if err != nil {
		fmt.Println(err)
	} else {
		fmt.Printf("-300°C = %.2f°F\n", fahrenheit)
	}
}

Todas as lições de Fundamentos