<html>
<head>
<title>Untitled</title>
<script type="text/javascript" src="main.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="stable">
<div class="srow">
<div class="scell"><input type="text" value="Students Names" disabled /></div>
<div class="scell"><input type="text" value="Course0" disabled /></div>
<div class="scell"><input type="text" value="Course1" disabled /></div>
<div class="scell"><input type="text" value="Course2" disabled /></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Diomidis"/></div>
<div class="scell val"><input type="text" class="value" value="85"/></div>
<div class="scell val"><input type="text" class="value" value="92"/></div>
<div class="scell val"><input type="text" class="value" value="56"/></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Eirini" /></div>
<div class="scell val"><input type="text" class="value" value="75"/></div>
<div class="scell val"><input type="text" class="value" value="80"/></div>
<div class="scell val"><input type="text" class="value" value="45"/></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Eleni" /></div>
<div class="scell val"><input type="text" class="value" value="92"/></div>
<div class="scell val"><input type="text" class="value" value="76"/></div>
<div class="scell val"><input type="text" class="value" value="88"/></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Giannis" /></div>
<div class="scell val"><input type="text" class="value" value="38"/></div>
<div class="scell val"><input type="text" class="value" value="49"/></div>
<div class="scell val"><input type="text" class="value" value="96"/></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Dionisis" /></div>
<div class="scell val"><input type="text" class="value" value="65" /></div>
<div class="scell val"><input type="text" class="value" value="79" /></div>
<div class="scell val"><input type="text" class="value" value="91" /></div>
</div>
<div class="srow">
<div class="scell"><input type="text" class="value" value="Kostas" /></div>
<div class="scell val"><input type="text" class="value" value="63" /></div>
<div class="scell val"><input type="text" class="value" value="84" /></div>
<div class="scell val"><input type="text" class="value" value="87" /></div>
</div>
<div class="srow res-btn">
<div class="scell" onclick="showResults();">Show Results</div>
</div>
</div>
<div id="student-results">
</div>
</body>
</html>
/// <autosync enabled="true" />
var Course0 = Array(6);
var Course1 = Array(6);
var Course2 = Array(6);
var Student = Array(6);
var CMap = [Course0, Course1, Course2];
var NMap = ["Course0", "Course1", "Course2"];
var showResults = function () {
var Rows = document.getElementsByClassName("srow");
for (var i = 1; i < Rows.length - 1; i++) {
var values = Rows[i].getElementsByTagName("input");
Student[i - 1] = values[0].value;
for (var j = 1; j < values.length; j++) {
CMap[j - 1][i - 1] = values[j].value;
}
}
var MinID = MaxID = AvgMinID = AvgMaxID = 0;
var Min = Max = AvgMin = AvgMax = undefined;
for (var i = 0; i < Student.length; i++) {
var c0 = Course0[i];
var c1 = Course1[i];
var c2 = Course2[i];
var lessonMin = Math.min(c0, c1, c2);
var lessonMax = Math.max(c0, c1, c2);
if ((lessonMin <= Min) || (typeof Min === "undefined")) {
MinID = i;
Min = lessonMin;
}
if ((lessonMax >= Max) || (typeof Max === "undefined")) {
MaxID = i;
Max = lessonMax;
}
var Avg = Math.avg(c0, c1, c2);
if ((Avg < AvgMin) || (typeof AvgMin === "undefined")) {
AvgMinID = i;
AvgMin = Avg;
}
if ((Avg > AvgMax) || (typeof AvgMax === "undefined")) {
AvgMaxID = i;
AvgMax = Avg;
}
}
var Wrapper = document.getElementById("student-results");
Wrapper.innerHTML = "";
var CourseMin = CourseMinID = CourseMax = CourseMaxID = CourseAvgMin = CourseAvgMinID = CourseAvgMax = CourseAvgMaxID = 0;
CourseMin = CourseMax = CourseAvgMin = CourseAvgMax = undefined;
for (var i = 0, j = 0; i < Student.length; i++, j += .5) {
var c0 = Course0;
var c1 = Course1;
var c2 = Course2;
var c0Avg = newAvg(c0);
var c1Avg = newAvg(c1);
var c2Avg = newAvg(c2);
var cAvgArr = [c0Avg, c1Avg, c2Avg];
CourseAvgMin = Math.min(c0Avg, c1Avg, c2Avg);
CourseAvgMax = Math.max(c0Avg, c1Avg, c2Avg);
if (CourseAvgMin==cAvgArr[i]) {
CourseAvgMinID = i;
}
if (CourseAvgMax==cAvgArr[i]) {
CourseAvgMaxID = i;
}
}
//console.log(CourseMaxID);
Wrapper.innerHTML += "<hr />";
Wrapper.innerHTML += "<span>The Course with lower average grade have: " + NMap[CourseAvgMinID] + ", Equals To " + CourseAvgMin + "</span>";
Wrapper.innerHTML += "<span>The Course with higher average grade have: " + NMap[CourseAvgMaxID] + ", Equals To " + CourseAvgMax + "</span>";
return null;
};
Math.avg = function () {
var Avg = 0;
var table = arguments;
for (var i = 0; i < table.length; i++) {
Avg += parseFloat(table[i]);
}
return parseFloat(Avg / table.length);
};
function newAvg(arr) {
var sum = 0;
for (var idx=0; idx < arr.length; idx++) {
sum += parseInt(arr[idx]);
}
return sum/arr.length;
}
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |