Assignment 11
Interpolation
by F Fornos
HTML
<b>Enter Time in Hours:<br></b>
<input type="textbox" id="rfTime" value="4.5" size="1" />
<input type="button" value="Calculate Average Rainfall" onClick="avRainfall();" />
<br/>
<p id='reportOut'></p>
JavaScript
var displayrfTable = '';
var rfResults = '';;
var rfTime;
function avRainfall() {
rfTime = document.getElementById("rfTime").value;
rfResults = '<b>Time Requested:</b> ' + rfTime + "<br/>";
for (var i = 0; i < rfTable.length; i++) {
DataPoint = i + 1;
if (i == rfTime) {
rfResults += '<b>Approximate Rainfall:</b> ' + rfTable[i] + " inches";
break;
}
if (i > rfTime && i < DataPoint) {
discreteSet1 = rfTable[i] - rfTable[i - 1];
discreteSet2 = 1 - (i - rfTime);
interpolationAnalysis = rfTable[i - 1] * 1 + (discreteSet1 * discreteSet2);
interpolationAnalysis = Math.ceil(interpolationAnalysis * 1000) / 1000;
rfResults += '<b>Approximate Rainfall:</b> ' + interpolationAnalysis + " inches.";
break;
}
}
generateReport();
}
function generateReport() {
displayrfTable = '';
for (var i = 0; i < rfTable.length; i++) {
displayrfTable += i + ' ' + rfTable[i] + "<br/>";
}
report = '';
report += "<br/><b><u>Interpolation Lookup Table:</u></b><br/>";
report += "<br/>Hour | Rainfall Amount<br/>"
report += displayrfTable;
report += "<br/>";
report += rfResults;
document.getElementById("reportOut").innerHTML = report;
}
var rfTable = [];
rfTable[0] = '0.00';
rfTable[1] = '0.04';
rfTable[2] = '0.11';
rfTable[3] = '0.60';
rfTable[4] = '0.87';
rfTable[5] = '0.95';
rfTable[6] = '1.00';
generateReport()