Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
102
Task/Ranking-methods/Visual-FoxPro/ranking-methods.visual
Normal file
102
Task/Ranking-methods/Visual-FoxPro/ranking-methods.visual
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
#DEFINE CTAB CHR(9)
|
||||
#DEFINE CRLF CHR(13) + CHR(10)
|
||||
LOCAL lcTxt As String, i As Integer
|
||||
CLOSE DATABASES ALL
|
||||
SET SAFETY OFF
|
||||
CLEAR
|
||||
CREATE CURSOR scores (score I, name V(8), rownum I AUTOINC)
|
||||
INDEX ON score TAG score COLLATE "Machine"
|
||||
SET ORDER TO 0
|
||||
INSERT INTO scores (score, name) VALUES (44, "Solomon")
|
||||
INSERT INTO scores (score, name) VALUES (42, "Jason")
|
||||
INSERT INTO scores (score, name) VALUES (42, "Errol")
|
||||
INSERT INTO scores (score, name) VALUES (41, "Garry")
|
||||
INSERT INTO scores (score, name) VALUES (41, "Bernard")
|
||||
INSERT INTO scores (score, name) VALUES (41, "Barry")
|
||||
INSERT INTO scores (score, name) VALUES (39, "Stephen")
|
||||
|
||||
CREATE CURSOR ranks (sc_rank I, mod_rank I, dense I, ordinal I, fractional B(1), score I, name V(8))
|
||||
INDEX ON score TAG score COLLATE "Machine"
|
||||
SET ORDER TO 0
|
||||
APPEND FROM DBF("scores") FIELDS score, name
|
||||
Std_Comp()
|
||||
Modified()
|
||||
Dense()
|
||||
Ordinal()
|
||||
Fractional()
|
||||
COPY TO ranks.txt TYPE DELIMITED WITH TAB
|
||||
lcTxt = ""
|
||||
FOR i = 1 TO FCOUNT()
|
||||
lcTxt = lcTxt + FIELD(i) + CTAB
|
||||
ENDFOR
|
||||
lcTxt = LEFT(lcTxt, LEN(lcTxt) - 1) + CRLF + FILETOSTR("ranks.txt")
|
||||
STRTOFILE(lcTxt, "ranks.txt")
|
||||
MODIFY FILE ranks.txt
|
||||
SET SAFETY ON
|
||||
|
||||
FUNCTION ScoreGroup(aa)
|
||||
LOCAL n As Integer
|
||||
SELECT score, COUNT(*) As num FROM scores ;
|
||||
GROUP BY score ORDER BY score DESC INTO ARRAY aa
|
||||
n = _TALLY
|
||||
RETURN n
|
||||
ENDFUNC
|
||||
|
||||
PROCEDURE Std_Comp
|
||||
LOCAL n, i, nn
|
||||
LOCAL ARRAY a[1]
|
||||
SELECT ranks
|
||||
BLANK FIELDS sc_rank ALL
|
||||
nn = ScoreGroup(@a)
|
||||
n = 1
|
||||
FOR i = 1 TO nn
|
||||
REPLACE sc_rank WITH n FOR score = a[i,1]
|
||||
n = n + a[i,2]
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Modified
|
||||
LOCAL n, i, nn
|
||||
LOCAL ARRAY a[1]
|
||||
SELECT ranks
|
||||
BLANK FIELDS mod_rank ALL
|
||||
nn = ScoreGroup(@a)
|
||||
n = 0
|
||||
FOR i = 1 TO nn
|
||||
n = n + a[i,2]
|
||||
REPLACE mod_rank WITH n FOR score = a[i,1]
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Dense
|
||||
LOCAL n, i, nn
|
||||
LOCAL ARRAY a[1]
|
||||
SELECT ranks
|
||||
BLANK FIELDS dense ALL
|
||||
nn = ScoreGroup(@a)
|
||||
SELECT ranks
|
||||
n = 0
|
||||
FOR i = 1 TO nn
|
||||
n = n + a[i,2]
|
||||
REPLACE dense WITH i FOR score = a[i,1]
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Ordinal
|
||||
SELECT ranks
|
||||
BLANK FIELDS ordinal ALL
|
||||
REPLACE ordinal WITH RECNO() ALL
|
||||
ENDPROC
|
||||
|
||||
PROCEDURE Fractional
|
||||
LOCAL i As Integer, nn As Integer
|
||||
LOCAL ARRAY a[1]
|
||||
SELECT ranks
|
||||
BLANK FIELDS fractional ALL
|
||||
SELECT CAST(AVG(rownum) As B(1)), score FROM scores ;
|
||||
GROUP BY score ORDER BY score DESC INTO ARRAY a
|
||||
nn = _TALLY
|
||||
FOR i = 1 TO nn
|
||||
REPLACE fractional WITH a[i,1] FOR score = a[i,2]
|
||||
ENDFOR
|
||||
ENDPROC
|
||||
Loading…
Add table
Add a link
Reference in a new issue