Циклы и функции

Объявление функций, параметры, несколько возвращаемых значений и область видимости

Содержание курса

Перевод температуры в Кельвины

Лабораторные журналы давно привыкли к путанице со шкалами: один прибор фиксирует показания в градусах Цельсия, другой — в Фаренгейтах, а все дальнейшие расчёты требуют единой точки отсчёта. Чтобы сравнивать результаты без ошибок, группа условилась переводить любое поступающее значение в Кельвины — универсальную термодинамическую шкалу, принятую в научном сообществе.

Когда сотрудник передаёт числовое значение вместе с буквенным кодом шкалы, система должна однозначно определить, как именно выполнить пересчёт. Если код распознан, на выходе появляется корректная температура в Кельвинах и подтверждение того, что перевод прошёл успешно. Эти два элемента — само число и признак успеха — позволяют вышестоящему контролю убедиться, что данные пригодны для дальнейшей работы.

Иногда, однако, в систему попадает код, который не соответствует ни одной известной шкале: опечатка, нестандартное обозначение или случайный символ. В таком случае никакого числового результата не существует, и вместо него пользователь должен увидеть понятное сообщение — не пустую строку и не бессмысленный ноль, а явный сигнал о том, что шкала не опознана и перевод не выполнен.

Что нужно сделать

Реализуйте две функции:

  • convertToKelvin(value float64, scale string) (float64, bool) возвращает число и true для шкал C и F, а для неизвестного кода — 0, false;
  • KelvinReport(value float64, scale string) string вызывает convertToKelvin. Для корректного результата она возвращает строку <значение> K, форматируя число через %g; для неизвестного кода — строку шкала не распознана.

Формулы перевода: для Cvalue + 273.15; для F(value - 32) * 5 / 9 + 273.15. Входная точка проверки — KelvinReport; она не должна читать ввод или печатать результат.

О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Тест 1
    Ввод
    [0,"C"]
    Ожидаемый вывод
    "273.15 K"
Функция KelvinReportGo · Go 1.27 (Modal)
Как проверяется решение

Функция из package main вызывается автоматически. Возвращайте результат, main() и печать ответа не нужны. Значения JSON сравниваются без учёта порядка ключей объекта.

Отправьте решение, чтобы увидеть результаты тестов.