< Applied Programming < Conditions
/*
This program converts a Fahrenheit temperature to Celsius.
Input:
Fahrenheit temperature
Output:
Fahrenheit temperature
Celsius temperature
Example:
Enter Fahrenheit temperature:
68
68° Fahrenheit is 20° Celsius
References
* http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html
* http://www.mathsisfun.com/temperature-conversion.html
* http://tramaine.me/blog/use-typeof-to-check-javascript-data-types-at-runtime
* https://javascript.info/try-catch
* https://javascript.info/types
*/
function get_fahrenheit() {
/* Gets Fahrenheit temperature.
Args:
None
Returns:
number: Fahrenheit temperature
*/
var fahrenheit = input("Enter Fahrenheit temperature:");
if (isNaN(Number(fahrenheit))) {
try {
throw new Error('The entered fahrenheit tempuature | ' + fahrenheit + ' | is not in the correct format of NUMBER. An example of a valid entry may be | 32 | or | 45.4 |!')
} catch(e) {
alert(e);
console.log(e);
}
} else if (Number(fahrenheit) < -459.67) {
try {
throw new Error('The entered fahrenheit tempuature | ' + fahrenheit + ' | is below absolute zero | -459.67 |!')
} catch(e) {
alert(e);
console.log(e);
}
} else {
fahrenheit = Number(fahrenheit);
return(fahrenheit);
}
}
function fahrenheit_to_celsius(fahrenheit) {
/* Converts Fahrenheit temperature to Celsius.
Args:
fahrenheit (number): Fahrenheit temperature to be converted.
Returns:
number: Celsius temperature
*/
if (isNaN(Number(fahrenheit))) {
try {
throw new Error('The passed argument fahrenheit | ' + fahrenheit + ' | is not in the correct format of NUMBER. An example of a valid entry may be | 32 | or | 45.4 |!')
} catch(e) {
alert(e);
console.log(e);
}
} else if (Number(fahrenheit) < -459.67) {
try {
throw new Error('The passed argument fahrenheit | ' + fahrenheit + ' | is below absolute zero | -459.67 |!')
} catch(e) {
alert(e);
console.log(e);
}
} else {
const TEMPERATURE_DIFFERENCE = 32;
const TEMPERATURE_RATIO = 5 / 9;
celsius = (fahrenheit - TEMPERATURE_DIFFERENCE) * TEMPERATURE_RATIO;
return celsius;
}
}
function display_results(fahrenheit, celsius) {
/* Displays Fahrenheit and Celsius temperatures.
Args:
fahrenheit (number): Fahrenheit temperature
celsius (number): Celsius temperature
Returns:
None
*/
output(fahrenheit + "° Fahrenheit is " + celsius + "° Celsius");
}
function input(text) {
/* Allows user input
Args:
text
Returns:
text
*/
if (typeof console === 'object') {
return prompt(text)
}
else {
output(text);
var isr = new java.io.InputStreamReader(java.lang.System.in);
var br = new java.io.BufferedReader(isr);
var line = br.readLine();
return line.trim();
}
}
function output(text) {
if (typeof console === 'object') {
console.log(text);
}
else if (typeof document === 'object') {
document.write(text);
}
else {
print(text);
}
}
function main() {
/* Runs the main program logic. */
fahrenheit = get_fahrenheit();
celsius = fahrenheit_to_celsius(fahrenheit);
display_results(fahrenheit, celsius);
}
main();
Try It
Copy and paste the code above into one of the following free online development environments or use your own JavaScript compiler / interpreter / IDE.
See Also
This article is issued from Wikiversity. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.