Les unités de mesure utilisées en météorologie, en physique et dans la vie quotidienne pour exprimer la température d'un corps ou de l'environnement sont nombreuses et varient selon les pays, les domaines scientifiques et les époques. Si le degré Celsius est aujourd'hui l'unité la plus répandue auprès du grand public et dans la majorité des pays, d'autres échelles continuent d'être employées dans des contextes particuliers. Ainsi, le degré Fahrenheit demeure largement utilisé aux États-Unis, tandis que le Kelvin constitue l'unité de référence du Système international pour les travaux scientifiques. D'autres unités, comme les degrés Newton, Rankine ou Réaumur, appartiennent davantage à l'histoire des sciences, mais se rencontrent encore dans certains ouvrages anciens ou spécialisés. Le tableau suivant présente les principales échelles de température, leur domaine d'utilisation, leur date d'apparition ainsi que l'origine de leur nom :
| Unités de mesure | Utilisation | Date de création | Origine du nom |
|---|---|---|---|
| Celsius | Unité de mesure international utilisé par le grand publique | 1948 | Anders Celsius |
| Fahrenheit | Unité de mesure surtout utilisé par les américains | 1724 | Daniel Gabriel Fahrenheit |
| Kelvin | Unité de mesure surtout utilisé par les physiciens | 1954 | Lord Kelvin |
| Newton | Unité de mesure utilisé en histoire | Environ 1700 | Isaac Newton |
| Rankine | Unité de mesure surtout utilisé par les physiciens | 1859 | William John Macquorn Rankine |
| Réaumur | Unité de mesure utilisé en histoire | 1731 | René-Antoine Ferchault de Réaumur |
Afin de faciliter les conversions entre ces différentes unités de mesure, le programme C++ suivant implémente plusieurs fonctions permettant de passer facilement d'une échelle à une autre. Vous pourrez ainsi vérifier les équivalences entre les principales unités de température et mieux comprendre les relations mathématiques qui les relient :
- #include <iostream>
-
- double FahrToCent(double Fahr) {
- return (5.0/9.0)*(Fahr-32.0);
- }
-
- double CentToFahr(double Cent) {
- return 1.8*Cent+32.0;
- }
-
- double CentToKelvin(double Cent) {
- return Cent+273.16;
- }
-
- double KelvinToCent(double Kelvin) {
- return Kelvin-273.16;
- }
-
- double KelvinToFahr(double Kelvin) {
- return 1.8*(Kelvin-273.16)+32.0;
- }
-
- double RankineToCent(double Rankine) {
- return (5.0/9.0)*(Rankine-491.69);
- }
-
- double CentToRankine(double Celsius) {
- return (Celsius*1.8)+491.69;
- }
-
- double RankineToFahr(double Rankine) {
- return Rankine-459.69;
- }
-
- double ReaumurToCent(double Reaumur) {
- return Reaumur*5/4;
- }
-
- double NewtonToCent(double Newton) {
- return Newton*100/33;
- }
-
-
- int main() {
- std::cout << "0 Fahrenheit en Celsius: " << FahrToCent(0) << std::endl;
- std::cout << "32 Fahrenheit en Celsius: " << FahrToCent(32) << std::endl;
- std::cout << "80 Fahrenheit en Celsius: " << FahrToCent(80) << std::endl << std::endl;
- std::cout << "0 Celcius en Fahrenheit: " << CentToFahr(0) << std::endl;
- std::cout << "30 Celcius en Fahrenheit: " << CentToFahr(30) << std::endl;
- std::cout << "100 Celcius en Fahrenheit: " << CentToFahr(100) << std::endl << std::endl;
- std::cout << "-273.16 Celsius en Kelvin: " << CentToKelvin(-273.16) << std::endl;
- std::cout << "0 Celsius en Kelvin: " << CentToKelvin(0) << std::endl;
- std::cout << "100 Celsius en Kelvin: " << CentToKelvin(100) << std::endl << std::endl;
- std::cout << "0 Kelvin en Celsius: " << KelvinToCent(0) << std::endl;
- std::cout << "273,16 Kelvin en Celsius: " << KelvinToCent(273.16) << std::endl;
- std::cout << "373,16 Kelvin en Celsius: " << KelvinToCent(373.16) << std::endl << std::endl;
- std::cout << "0 Kelvin en Fahrenheit: " << KelvinToFahr(0) << std::endl;
- std::cout << "273,16 Kelvin en Fahrenheit: " << KelvinToFahr(273.16) << std::endl;
- std::cout << "373,16 Kelvin en Fahrenheit: " << KelvinToFahr(373.16) << std::endl << std::endl;
- std::cout << "0 Rankine en Celsius: " << RankineToCent(0) << std::endl;
- std::cout << "491,69 Rankine en Celsius: " << RankineToCent(491.69) << std::endl;
- std::cout << "671,69 Rankine en Celsius: " << RankineToCent(671.69) << std::endl << std::endl;
- std::cout << "-273,16 Celsius en Rankine: " << CentToRankine(-273.16) << std::endl;
- std::cout << "0 Celcius en Rankine: " << CentToRankine(0) << std::endl;
- std::cout << "100 Celcius en Rankine: " << CentToRankine(100.0) << std::endl << std::endl;
- std::cout << "0 Rankine en Fahrenheit: " << RankineToFahr(0) << std::endl;
- std::cout << "491,69 Rankine en Fahrenheit: " << RankineToFahr(491.69) << std::endl;
- std::cout << "671,69 Rankine en Fahrenheit: " << RankineToFahr(671.69) << std::endl << std::endl;
- std::cout << "0 Réaumur en Celsius: " << ReaumurToCent(0) << std::endl;
- std::cout << "80 Réaumur en Celsius: " << ReaumurToCent(80) << std::endl;
- std::cout << "100 Réaumur en Celsius: " << ReaumurToCent(100) << std::endl << std::endl;
- std::cout << "0 Newton en Celsius: " << NewtonToCent(0) << std::endl;
- std::cout << "100 Newton en Celsius: " << NewtonToCent(100) << std::endl;
- std::cout << "200 Newton en Celsius: " << NewtonToCent(200) << std::endl;
- return 0;
- }
on obtiendra le résultat suivant :
0 Fahrenheit en Celsius: -17,777832 Fahrenheit en Celsius: 0
80 Fahrenheit en Celsius: 26,6667
0 Celcius en Fahrenheit: 32
30 Celcius en Fahrenheit: 86
100 Celcius en Fahrenheit: 212
-273.16 Celsius en Kelvin: 0
0 Celsius en Kelvin: 273,16
100 Celsius en Kelvin: 373,16
0 Kelvin en Celsius: -273,16
273,16 Kelvin en Celsius: 0
373,16 Kelvin en Celsius: 100
0 Kelvin en Fahrenheit: -459,688
273,16 Kelvin en Fahrenheit: 32
373,16 Kelvin en Fahrenheit: 212
0 Rankine en Celsius: -273,161
491,69 Rankine en Celsius: 0
671,69 Rankine en Celsius: 100
-273,16 Celsius en Rankine: 0,002
0 Celcius en Rankine: 491,69
100 Celcius en Rankine: 671,69
0 Rankine en Fahrenheit: -459,69
491,69 Rankine en Fahrenheit: 32
671,69 Rankine en Fahrenheit: 212
0 Réaumur en Celsius: 0
80 Réaumur en Celsius: 100
100 Réaumur en Celsius: 125
0 Newton en Celsius: 0
100 Newton en Celsius: 303,03
200 Newton en Celsius: 606,061