Ranking methods: Difference between revisions
Content added Content deleted
m (added related tasks.) |
(Ranking methods en FreeBASIC) |
||
Line 1,757: | Line 1,757: | ||
7 39 Stephen |
7 39 Stephen |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
<lang freebasic> |
|||
Data 44,"Solomon", 42,"Jason", 42,"Errol", 41,"Garry" |
|||
Data 41,"Bernard", 41,"Barry", 39,"Stephen" |
|||
Dim Shared As Integer n = 7 |
|||
Dim Shared As Integer puntos(n), i |
|||
Dim Shared As Single ptosnom(n) |
|||
Dim Shared As String nombre(n) |
|||
Print "Puntuaciones a clasificar (mejores primero):" |
|||
For i = 1 To n |
|||
Read puntos(i), nombre(i) |
|||
Print Using " ##, \ \"; puntos(i); nombre(i) |
|||
Next i |
|||
Print |
|||
Sub MostarTabla |
|||
For i = 1 To n |
|||
Print Using " \ \ ##, \ \"; Str(ptosnom(i)); puntos(i); nombre(i) |
|||
Next i |
|||
Print |
|||
End Sub |
|||
Print "--- Standard ranking ---" |
|||
ptosnom(1) = 1 |
|||
For i = 2 To n |
|||
If puntos(i) = puntos(i-1) Then ptosnom(i) = ptosnom(i-1) Else ptosnom(i) = i |
|||
Next i |
|||
MostarTabla |
|||
Print "--- Modified ranking ---" |
|||
ptosnom(n) = n |
|||
For i = n-1 To 1 Step -1 |
|||
If puntos(i) = puntos(i+1) Then ptosnom(i) = ptosnom(i+1) Else ptosnom(i) = i |
|||
Next i |
|||
MostarTabla |
|||
Print "--- Dense ranking ---" |
|||
ptosnom(1) = 1 |
|||
For i = 2 To n |
|||
ptosnom(i) = ptosnom(i-1) - (puntos(i) <> puntos(i-1)) |
|||
Next i |
|||
MostarTabla |
|||
Print "--- Ordinal ranking ---" |
|||
For i = 1 To n |
|||
ptosnom(i) = i |
|||
Next i |
|||
MostarTabla |
|||
Print "--- Fractional ranking ---" |
|||
i = 1 |
|||
Dim As Integer j = 2 |
|||
Do |
|||
If j <= n Then If (puntos(j-1) = puntos(j)) Then j += 1 |
|||
For k As Integer = i To j-1 |
|||
ptosnom(k) = (i+j-1) / 2 |
|||
Next k |
|||
i = j |
|||
j += 1 |
|||
Loop While i <= n |
|||
MostarTabla |
|||
Sleep |
|||
</lang> |
|||
{{out}} |
|||
<pre> |
|||
Puntuaciones a clasificar (mejores primero): |
|||
44 Solomon |
|||
42 Jason |
|||
42 Errol |
|||
41 Garry |
|||
41 Bernard |
|||
41 Barry |
|||
39 Stephen |
|||
--- Standard ranking --- |
|||
1 44 Solomon |
|||
2 42 Jason |
|||
2 42 Errol |
|||
4 41 Garry |
|||
4 41 Bernard |
|||
4 41 Barry |
|||
7 39 Stephen |
|||
--- Modified ranking --- |
|||
1 44 Solomon |
|||
3 42 Jason |
|||
3 42 Errol |
|||
6 41 Garry |
|||
6 41 Bernard |
|||
6 41 Barry |
|||
7 39 Stephen |
|||
--- Dense ranking --- |
|||
1 44 Solomon |
|||
2 42 Jason |
|||
2 42 Errol |
|||
3 41 Garry |
|||
3 41 Bernard |
|||
3 41 Barry |
|||
4 39 Stephen |
|||
--- Ordinal ranking --- |
|||
1 44 Solomon |
|||
2 42 Jason |
|||
3 42 Errol |
|||
4 41 Garry |
|||
5 41 Bernard |
|||
6 41 Barry |
|||
7 39 Stephen |
|||
--- Fractional ranking --- |
|||
1 44 Solomon |
|||
2.5 42 Jason |
|||
2.5 42 Errol |
|||
4.5 41 Garry |
|||
4.5 41 Bernard |
|||
6 41 Barry |
|||
7 39 Stephen |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |