Difference between revisions of "Humidex"

From CompSciWiki
Jump to: navigation, search
(Added to headings to body)
m (Added a list. Quick edits.)
 
(4 intermediate revisions by 3 users not shown)
Line 29: Line 29:
  
 
==Input==
 
==Input==
Input
+
The problem requires two doubles to be read in from the user. One is the dewpoint (in Celsius) and the other is the air temperature (in Celsius). When asking the user to input the numbers, you should prompt them each time asking them for what piece of information you need. Using the Scanner class, you can read doubles in easily.
  
 
===Scanner===
 
===Scanner===
Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner Scanner
+
The java.util.Scanner class (added in Java 5) allows simple console and file input.
 
====Example====
 
====Example====
 
<pre>
 
<pre>
Line 40: Line 40:
  
 
==Processing==
 
==Processing==
Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing
+
Once you have your two doubles, you can now start programing to work out the humidex.
  
 
===Math.E===
 
===Math.E===
Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing
+
With the formula given to you, it needs the constant e, which can be given with the Math.E() method.
 
====Example====
 
====Example====
 
<pre>
 
<pre>
Line 50: Line 50:
 
</pre>
 
</pre>
  
===Math.Power===
+
===Math.pow===
Provessing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing
+
One way to solve the problem is to use Math.pow.
 
====Example====
 
====Example====
 
<pre>
 
<pre>
Line 57: Line 57:
 
Math.pow(2.0,2.0) //returns 2.0 to the power of 2.0, which is 4.0
 
Math.pow(2.0,2.0) //returns 2.0 to the power of 2.0, which is 4.0
 
</pre>
 
</pre>
 +
For <b>x</b>, it would be the constant e. <b>y</b> will be the part of the formula that x is raised too.
  
 
===Math.exp===
 
===Math.exp===
Processing
+
The other option for solving this is to use Math.exp(). Compared to using Math.Power, you will only need to input one value instead of two. This is because e is already set as the base for the power. x will be the part of the formula that e is raised too.
 
====Example====
 
====Example====
 
<pre>
 
<pre>
Line 65: Line 66:
 
Math.exp( 2 );// returns e squared (or e * e), which is approximately 7.3890  
 
Math.exp( 2 );// returns e squared (or e * e), which is approximately 7.3890  
 
</pre>
 
</pre>
 
===Dew Point===
 
Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing Processing
 
  
 
==Output==
 
==Output==
Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output Output
+
You will have to round the value from the formula to an appropriate value before you print it out. You will be able to achieve this by using Math.round.
  
 
===Math.round===
 
===Math.round===
 +
Math.round is a method that will round a double to the nearest integer. If you want to use this method to round a double to a number with decimal places, you must:
 +
<ol>
 +
<li>Make it bigger by multiplying by a power of 10.</li>
 +
<li>Rund it to an integer.</li>
 +
<li>Divide it by the same power of 10 (as used in step 1).</li>
 +
</ol>
 
====Example====
 
====Example====
 
<pre>
 
<pre>
//Math.round(x) returns
+
//Math.round(x) returns x to the nearest integer
Math.round(2.48941687487617);//
+
x = Math.round (34.4567 * 1000) / 1000.0 // returns the double 34.4567 rounded to THREE decimals
 
</pre>
 
</pre>
 +
 +
====Print the Humidex====
 +
Once you have the humidex value rounded to the appropriate decimal place, print it out using System.out.println().
  
 
|SolutionCode=
 
|SolutionCode=
Line 109: Line 116:
 
|SideSectionTitle=Humidex
 
|SideSectionTitle=Humidex
 
|SideSection=
 
|SideSection=
[[Image:Wiki_start01.jpg|center]]<BR>
+
[[Image:RainGear_casestudy.jpg|center]]<BR>
  
 
}}
 
}}

Latest revision as of 23:12, 8 April 2011

Back to the Case Studies homepage

Problem

Humidex is a measurement that gives people an idea of how hot it feels, as opposed to how hot it actually is. For example, on days with a high temperature and high humidity, people often think it's hotter than it actually is. Write a complete Java program that will ask the user for the dew point and the air temperature. Then use the formulas given to calculate and output the humidex.

Input

Use Scanner class method nextDouble to prompt the user to input D (dew point) and T (air temperature). Use System.out.println to provide an input prompt. Remember to tell the user to enter values in Celsius.

Processing

The formula for calculating the humidex is:

R = 6.11 * e[5417.7530 * ( (1/273.16) - (1/(273.16 + D)) ) ]
H = (0.5555) * (R - 10.0)
humidex = T + H

Notes

  • e is Euler's number (e = 2.71828182845904523536....) To access Euler’s number use the Math constant Math.E
  • D is the dew point, in Celsius. The user will input this value.
  • T is the air temperature, in Celsius. The user will also input this value.

Output

Echo the input and then print the output using System.out.println. Use Math.round() to round all output to one decimal place.

 

Humidex

RainGear casestudy.jpg

Solution

Input

The problem requires two doubles to be read in from the user. One is the dewpoint (in Celsius) and the other is the air temperature (in Celsius). When asking the user to input the numbers, you should prompt them each time asking them for what piece of information you need. Using the Scanner class, you can read doubles in easily.

Scanner

The java.util.Scanner class (added in Java 5) allows simple console and file input.

Example

Scanner keyboard = new Scanner(System.in);
double  number   = keyboard.nextDouble();

Processing

Once you have your two doubles, you can now start programing to work out the humidex.

Math.E

With the formula given to you, it needs the constant e, which can be given with the Math.E() method.

Example

//The double value that is closer than any other to e, the base of the natural logarithms.
Math.E() //returns the value e

Math.pow

One way to solve the problem is to use Math.pow.

Example

// pow(x, y) returns the x raised to the yth power.
Math.pow(2.0,2.0) //returns 2.0 to the power of 2.0, which is 4.0

For x, it would be the constant e. y will be the part of the formula that x is raised too.

Math.exp

The other option for solving this is to use Math.exp(). Compared to using Math.Power, you will only need to input one value instead of two. This is because e is already set as the base for the power. x will be the part of the formula that e is raised too.

Example

//exp(x) returns e raised to the xth power
Math.exp( 2 );// returns e squared (or e * e), which is approximately 7.3890 

Output

You will have to round the value from the formula to an appropriate value before you print it out. You will be able to achieve this by using Math.round.

Math.round

Math.round is a method that will round a double to the nearest integer. If you want to use this method to round a double to a number with decimal places, you must:

  1. Make it bigger by multiplying by a power of 10.
  2. Rund it to an integer.
  3. Divide it by the same power of 10 (as used in step 1).

Example

//Math.round(x) returns x to the nearest integer
x = Math.round (34.4567 * 1000) / 1000.0 // returns the double 34.4567 rounded to THREE decimals

Print the Humidex

Once you have the humidex value rounded to the appropriate decimal place, print it out using System.out.println().

Code

Solution Code

Back to the Case Studies homepage