Перевод температур: градусы Цельсия ↔ Фаренгейт

Кратко
Кратко: формулы для перевода °C ↔ °F просты — это линейное преобразование: умножение и сдвиг. В статье показаны формулы, примеры вручную и готовые программы на C++, Python и JavaScript. Также — быстрые приёмы оценки, тесты и список критериев приёмки.
Важно: °C — градусы Цельсия (°C), °F — градусы Фаренгейта (°F).
Как перевести температуру из градусов Цельсия в Фаренгейты
Формула:
T(°F) = T(°C) × 9/5 + 32Объяснение в двух предложениях: сначала масштаб (умножение на 9/5) изменяет величину градуса, затем добавление 32 — это сдвиг нулевой точки между шкалами.
Примеры вручную:
- 100 °C → (100 × 9/5) + 32 = 212 °F
- 0 °C → (0 × 9/5) + 32 = 32 °F
Задача
Дано число num в °C. Нужно вернуть значение в °F. Примеры выше демонстрируют ожидаемые результаты.
Программа на C++ (Цельсий → Фаренгейт)
// C++: перевод температуры из градусов Цельсия в Фаренгейт
#include
using namespace std;
// Функция перевода Цельсий->Фаренгейт
float celsiusToFahrenheit(float num)
{
return ((num * 9.0f / 5.0f) + 32.0f);
}
int main()
{
float num1 = 100.0f;
cout << "Температура в Цельсиях: " << num1 << endl;
cout << "Температура в Фаренгейтах: " << celsiusToFahrenheit(num1) << endl;
float num2 = 0.0f;
cout << "Температура в Цельсиях: " << num2 << endl;
cout << "Температура в Фаренгейтах: " << celsiusToFahrenheit(num2) << endl;
float num3 = 65.0f;
cout << "Температура в Цельсиях: " << num3 << endl;
cout << "Температура в Фаренгейтах: " << celsiusToFahrenheit(num3) << endl;
float num4 = 150.0f;
cout << "Температура в Цельсиях: " << num4 << endl;
cout << "Температура в Фаренгейтах: " << celsiusToFahrenheit(num4) << endl;
float num5 = 20.0f;
cout << "Температура в Цельсиях: " << num5 << endl;
cout << "Температура в Фаренгейтах: " << celsiusToFahrenheit(num5) << endl;
return 0;
} Вывод программы (пример):
Температура в Цельсиях: 100
Температура в Фаренгейтах: 212
Температура в Цельсиях: 0
Температура в Фаренгейтах: 32
Температура в Цельсиях: 65
Температура в Фаренгейтах: 149
Температура в Цельсиях: 150
Температура в Фаренгейтах: 302
Температура в Цельсиях: 20
Температура в Фаренгейтах: 68Программа на Python (Цельсий → Фаренгейт)
# Python: перевод температуры из градусов Цельсия в Фаренгейт
def celsius_to_fahrenheit(num):
return (num * 9.0 / 5.0) + 32.0
num1 = 100.0
print("Температура в Цельсиях:", num1)
print("Температура в Фаренгейтах:", celsius_to_fahrenheit(num1))
num2 = 0
print("Температура в Цельсиях:", num2)
print("Температура в Фаренгейтах:", celsius_to_fahrenheit(num2))
num3 = 65.0
print("Температура в Цельсиях:", num3)
print("Температура в Фаренгейтах:", celsius_to_fahrenheit(num3))
num4 = 150.0
print("Температура в Цельсиях:", num4)
print("Температура в Фаренгейтах:", celsius_to_fahrenheit(num4))
num5 = 20.0
print("Температура в Цельсиях:", num5)
print("Температура в Фаренгейтах:", celsius_to_fahrenheit(num5))Вывод (пример):
Температура в Цельсиях: 100.0
Температура в Фаренгейтах: 212.0
Температура в Цельсиях: 0
Температура в Фаренгейтах: 32.0
Температура в Цельсиях: 65.0
Температура в Фаренгейтах: 149.0
Температура в Цельсиях: 150.0
Температура в Фаренгейтах: 302.0
Температура в Цельсиях: 20.0
Температура в Фаренгейтах: 68.0Программа на JavaScript (Цельсий → Фаренгейт)
// JavaScript: перевод температуры из градусов Цельсия в Фаренгейт
function celsiusToFahrenheit(num) {
return (num * 9.0 / 5.0) + 32.0;
}
var num1 = 100.0;
document.write("Температура в Цельсиях: " + num1 + "\n");
document.write("Температура в Фаренгейтах: " + celsiusToFahrenheit(num1) + "\n");
var num2 = 0;
document.write("Температура в Цельсиях: " + num2 + "\n");
document.write("Температура в Фаренгейтах: " + celsiusToFahrenheit(num2) + "\n");
var num3 = 65.0;
document.write("Температура в Цельсиях: " + num3 + "\n");
document.write("Температура в Фаренгейтах: " + celsiusToFahrenheit(num3) + "\n");
var num4 = 150.0;
document.write("Температура в Цельсиях: " + num4 + "\n");
document.write("Температура в Фаренгейтах: " + celsiusToFahrenheit(num4) + "\n");
var num5 = 20.0;
document.write("Температура в Цельсиях: " + num5 + "\n");
document.write("Температура в Фаренгейтах: " + celsiusToFahrenheit(num5) + "\n");Вывод (пример):
Температура в Цельсиях: 100
Температура в Фаренгейтах: 212
Температура в Цельсиях: 0
Температура в Фаренгейтах: 32
Температура в Цельсиях: 65
Температура в Фаренгейтах: 149
Температура в Цельсиях: 150
Температура в Фаренгейтах: 302
Температура в Цельсиях: 20
Температура в Фаренгейтах: 68Как перевести температуру из Фаренгейтов в Цельсии
Формула:
T(°C) = (T(°F) - 32) × 5/9Порядок действий: сначала убрать смещение (вычесть 32), затем масштабировать (умножить на 5/9).
Примеры вручную:
- 212 °F → (212 − 32) × 5/9 = 100 °C
- 32 °F → (32 − 32) × 5/9 = 0 °C
Задача
Дано число num в °F. Нужно вернуть значение в °C. Примеры выше показывают ожидаемый результат.
Программа на C++ (Фаренгейт → Цельсий)
// C++: перевод температуры из градусов Фаренгейта в Цельсий
#include
using namespace std;
// Функция перевода Фаренгейт->Цельсий
float fahrenheitToCelsius(float num)
{
return ((num - 32.0f) * 5.0f / 9.0f);
}
int main()
{
float num1 = 212.0f;
cout << "Температура в Фаренгейтах: " << num1 << endl;
cout << "Температура в Цельсиях: " << fahrenheitToCelsius(num1) << endl;
float num2 = 32.0f;
cout << "Температура в Фаренгейтах: " << num2 << endl;
cout << "Температура в Цельсиях: " << fahrenheitToCelsius(num2) << endl;
float num3 = 149.0f;
cout << "Температура в Фаренгейтах: " << num3 << endl;
cout << "Температура в Цельсиях: " << fahrenheitToCelsius(num3) << endl;
float num4 = 302.0f;
cout << "Температура в Фаренгейтах: " << num4 << endl;
cout << "Температура в Цельсиях: " << fahrenheitToCelsius(num4) << endl;
float num5 = 68.0f;
cout << "Температура в Фаренгейтах: " << num5 << endl;
cout << "Температура в Цельсиях: " << fahrenheitToCelsius(num5) << endl;
return 0;
} Вывод (пример):
Температура в Фаренгейтах: 212
Температура в Цельсиях: 100
Температура в Фаренгейтах: 32
Температура в Цельсиях: 0
Температура в Фаренгейтах: 149
Температура в Цельсиях: 65
Температура в Фаренгейтах: 302
Температура в Цельсиях: 150
Температура в Фаренгейтах: 68
Температура в Цельсиях: 20Быстрые приёмы и оценки (при практическом использовании)
- Приближённая быстрая формула для оценки: °F ≈ °C × 2 + 30. Она даёт приемлемую оценку для повседневных нужд (точность около ±2–4 °F в обычном диапазоне).
- Ментальная шпаргалка: 0 °C = 32 °F, 100 °C = 212 °F — запомните эти две точки, остальное интерполируется линейно.
- Для обратного приближения: °C ≈ (°F − 30) / 2.
Когда такие приближения не подходят:
- В научных расчётах и калибровке датчиков требуется точное значение по формуле, без приближений.
- Для экстремальных температур (очень низких или очень высоких) ошибка приближений может стать значительной.
Проверка, тесты и критерии приёмки
Критерии приёмки для функции конверсии (минимальные):
- Для входов 0, 100 °C возвращает 32 и 212 °F соответственно.
- Для входов 32, 212 °F возвращает 0 и 100 °C соответственно.
- Для дробных значений возвращаемое значение должно соответствовать формуле с допустимой плавающей погрешностью (например, ±1e-6 для float/double).
- Функция должна работать для отрицательных температур.
Тестовые наборы (пример):
- Вход: 20 °C → Ожидание: 68 °F
- Вход: −40 °C → Ожидание: −40 °F (особая точка, где значения равны)
- Вход: 37 °C → Ожидание: 98.6 °F (обычная температурная справка)
Ментальная модель: почему это линейно
Перевод между шкалами — аффинное (линейное сдвинутое) преобразование: F = a × C + b. Коэффициент a = 9/5 — отношение размеров градуса, b = 32 — смещение нулевой точки между шкалами. Это значит: преобразование сохраняет прямые и относительные различия (масштабирует и сдвигает).
Роль‑ориентированные чек‑листы
- Разработчик: добавить модульные тесты, обработку входов типа float/double, документировать допустимую погрешность.
- Инженер по оборудованию: калибровать датчики, учитывать смещение и масштаб в прошивке, тестировать на нижних и верхних пределах.
- Путешественник/пользователь: запомнить две контрольные точки (0→32 и 100→212) и простой приём оценки (×2 + 30).
Шпаргалка (cheat sheet)
- Формулы:
- C → F: F = C × 9/5 + 32
- F → C: C = (F − 32) × 5/9
- Быстро: F ≈ C × 2 + 30
- Точная контрольная точка: −40 — одинаково в обеих шкалах.
Короткий словарь (1 строка)
- °C: градусы Цельсия, шкала с нулём при замерзании воды; °F: градусы Фаренгейта, распространена в США.
Когда этот метод не подойдёт (примеры)
- Перевод логарифмических или относительных шкал (например, dB) — формулы неприменимы.
- Если нужно учитывать влияния влажности или давления на чувствительность датчика — простая формула не компенсирует физические отклонения.
Краткое завершение
Теперь вы знаете точные формулы и простые приёмы оценивания для перевода между градусами Цельсия и Фаренгейта. Для программирования используйте приведённые функции и обязательно снабжайте тестами крайних и дробных значений.
Примечание: лучший способ закрепить навык — реализовать функцию и написать небольшую программу с проверками (например, автотесты для наборов значений выше).
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone