/******* JAVASCRIPT FULL PROGRAM *******/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="../jquery-1.11.1.js" ></script>
<script>
function paddl(str,n,ali)
{
if (ali!=undefined)
{
while (str.length<n) str+=' ';
return str;
}
while ((str+"").length<n) str=" "+str;
return " "+str;
}
function startme()
{
score=[19,18,21,25,20,45,32,33,40,27,30,23]
rank=[]
for (var x=1;x<=score.length;x++)
{
rank.push(x);
}
score.sort()
N=score.length
score.splice(0,0,'score')
rank.splice(0,0,'rank')
percentile=['percentile']
for (var i=1;i<N+1;i++)
{
percentile.push(Math.floor(rank[i]*100/N))
}
left=[];
var s="<pre>";
for (var i=0;i<score.length;i++)
{
L=2;
if (i==score.length-1) L=3
if (i==0) L="percentile".length;
left.push(L);
if (i==0) s+=paddl('----------'.substr(0,L),L,'left');
else s+=paddl('----------'.substr(0,L),L);
}
s+="<br>";
for (var i=0;i<score.length;i++)
{
L=left[i];
if (i==0) s+=paddl(score[i],L,'left');
else s+=paddl(score[i],L)
}
s+="<br>";
for (var i=0;i<rank.length;i++)
{
L=left[i];
if (i==0) s+=paddl(rank[i],L,'left');
else s+=paddl(rank[i],L)
}
s+="<br>";
for (var i=0;i<percentile.length;i++)
{
L=left[i];
if (i==0) s+=paddl(percentile[i],L,'left');
else s+=paddl(percentile[i],L)
}
s+="<br>";
for (var i=0;i<score.length;i++)
{
L=left[i];
if (i==0) s+=paddl('----------'.substr(0,L),L,'left');
else s+=paddl('----------'.substr(0,L),L);
}
s+="<br>";
s+="</pre>";
$('#out').append(s)
}
</script>
</head>
<body onload='startme()'>
<pre>
This program calculates the percentile
of the given list of scores of N students
here N is taken to be 12.
</pre>
<div id='out'></div>
<div id='js'>
/******* JAVASCRIPT FULL PROGRAM *******/
<pre>
</pre>
<pre>
/******* PYTHON FULL PROGRAM ************/
</pre>
</div>
</body>
</html>
/******* PYTHON FULL PROGRAM ************/
from tabulate import tabulate
score=['19','18','21','25','20','45','32','33','40','27','30','23']
rank=[str(x) for x in range(1,len(score)+1)]
score.sort()
N=len(score)
score.insert(0,'score')
rank.insert(0,'rank')
percentile=['percentile']
for i in range(1,N+1):
percentile.append(str(int(rank[i])*100//N))
pass
print(tabulate([score,rank,percentile]))
#### SAMPLE OUTPUT
# ---------- -- -- -- -- -- -- -- -- -- -- -- ---
# score 18 19 20 21 23 25 27 30 32 33 40 45
# rank 1 2 3 4 5 6 7 8 9 10 11 12
# percentile 8 16 25 33 41 50 58 66 75 83 91 100
# ---------- -- -- -- -- -- -- -- -- -- -- -- ---