Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
6
Task/Floyds-triangle/APL/floyds-triangle-1.apl
Normal file
6
Task/Floyds-triangle/APL/floyds-triangle-1.apl
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
floyd←{
|
||||
max←⍵×(⍵+1)÷2
|
||||
tri←↑(⍳max)⊂⍨(0,⍳max-1)∊+\0,⍳⍵
|
||||
wdt←⌈⍀⊖≢∘⍕¨tri
|
||||
↑,/wdt{' ',(-⍺××⍵)↑⍕⍵}¨tri
|
||||
}
|
||||
21
Task/Floyds-triangle/APL/floyds-triangle-2.apl
Normal file
21
Task/Floyds-triangle/APL/floyds-triangle-2.apl
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
floyd 5
|
||||
1
|
||||
2 3
|
||||
4 5 6
|
||||
7 8 9 10
|
||||
11 12 13 14 15
|
||||
floyd 14
|
||||
1
|
||||
2 3
|
||||
4 5 6
|
||||
7 8 9 10
|
||||
11 12 13 14 15
|
||||
16 17 18 19 20 21
|
||||
22 23 24 25 26 27 28
|
||||
29 30 31 32 33 34 35 36
|
||||
37 38 39 40 41 42 43 44 45
|
||||
46 47 48 49 50 51 52 53 54 55
|
||||
56 57 58 59 60 61 62 63 64 65 66
|
||||
67 68 69 70 71 72 73 74 75 76 77 78
|
||||
79 80 81 82 83 84 85 86 87 88 89 90 91
|
||||
92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
||||
28
Task/Floyds-triangle/Draco/floyds-triangle.draco
Normal file
28
Task/Floyds-triangle/Draco/floyds-triangle.draco
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
proc width(word n) word:
|
||||
word w;
|
||||
w := 0;
|
||||
while n>0 do
|
||||
w := w + 1;
|
||||
n := n / 10
|
||||
od;
|
||||
w
|
||||
corp
|
||||
|
||||
proc floyd(word rows) void:
|
||||
word n, row, col, maxno;
|
||||
maxno := rows * (rows+1)/2;
|
||||
n := 1;
|
||||
for row from 1 upto rows do
|
||||
for col from 1 upto row do
|
||||
write(n : 1+width(maxno - rows + col));
|
||||
n := n+1
|
||||
od;
|
||||
writeln()
|
||||
od
|
||||
corp
|
||||
|
||||
proc main() void:
|
||||
floyd(5);
|
||||
writeln();
|
||||
floyd(14)
|
||||
corp
|
||||
26
Task/Floyds-triangle/EasyLang/floyds-triangle.easy
Normal file
26
Task/Floyds-triangle/EasyLang/floyds-triangle.easy
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
func ceil h .
|
||||
f = floor h
|
||||
if h <> f
|
||||
f += 1
|
||||
.
|
||||
return f
|
||||
.
|
||||
proc triangle n . .
|
||||
print n & " rows:"
|
||||
row = 1
|
||||
while row <= n
|
||||
printme += 1
|
||||
cols = ceil log10 (n * (n - 1) / 2 + nprinted + 2)
|
||||
numfmt 0 cols
|
||||
write printme & " "
|
||||
nprinted += 1
|
||||
if nprinted = row
|
||||
print ""
|
||||
row += 1
|
||||
nprinted = 0
|
||||
.
|
||||
.
|
||||
print ""
|
||||
.
|
||||
triangle 5
|
||||
triangle 14
|
||||
27
Task/Floyds-triangle/Miranda/floyds-triangle.miranda
Normal file
27
Task/Floyds-triangle/Miranda/floyds-triangle.miranda
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
main :: [sys_message]
|
||||
main = [Stdout (lay (map floyd [5, 14]))]
|
||||
|
||||
floyd :: num->[char]
|
||||
floyd n = lay (map fmt rws)
|
||||
where rws = rows n
|
||||
cws = map ((+1).width) (last rws)
|
||||
fmt rw = concat (map (uncurry rjust) (zip2 cws rw))
|
||||
|
||||
|
||||
rows :: num->[[num]]
|
||||
rows n = rows' [1..n] [1..]
|
||||
where rows' [] ns = []
|
||||
rows' (l:ls) ns = row : rows' ls rest
|
||||
where (row, rest) = split l ns
|
||||
|
||||
split :: num->[*]->([*],[*])
|
||||
split n ls = (take n ls, drop n ls)
|
||||
|
||||
rjust :: num->num->[char]
|
||||
rjust w n = reverse (take w (reverse (show n) ++ repeat ' '))
|
||||
|
||||
width :: num->num
|
||||
width = (#) . show
|
||||
|
||||
uncurry :: (*->**->***)->(*,**)->***
|
||||
uncurry f (a,b) = f a b
|
||||
49
Task/Floyds-triangle/PL-M/floyds-triangle.plm
Normal file
49
Task/Floyds-triangle/PL-M/floyds-triangle.plm
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
100H:
|
||||
BDOS: PROCEDURE (FN, ARG); DECLARE FN BYTE, ARG ADDRESS; GO TO 5; END BDOS;
|
||||
EXIT: PROCEDURE; GO TO 0; END EXIT;
|
||||
PRINT: PROCEDURE (S); DECLARE S ADDRESS; CALL BDOS(9,S); END PRINT;
|
||||
|
||||
|
||||
PUT$NUM: PROCEDURE (N, WIDTH);
|
||||
DECLARE S (6) BYTE INITIAL (' $');
|
||||
DECLARE N ADDRESS, (I, WIDTH) BYTE;
|
||||
I = 5;
|
||||
DIGIT:
|
||||
S(I := I-1) = N MOD 10 + '0';
|
||||
IF (N := N/10) > 0 THEN GO TO DIGIT;
|
||||
DO I=I-1 TO 0 BY -1;
|
||||
S(I) = ' ';
|
||||
END;
|
||||
CALL PRINT(.S(6-WIDTH));
|
||||
END PUT$NUM;
|
||||
|
||||
WIDTH: PROCEDURE (N) BYTE;
|
||||
DECLARE (N, W) BYTE;
|
||||
W = 1;
|
||||
DO WHILE N>0;
|
||||
N = N/10;
|
||||
W = W+1;
|
||||
END;
|
||||
RETURN W;
|
||||
END WIDTH;
|
||||
|
||||
FLOYD: PROCEDURE (ROWS);
|
||||
DECLARE (ROWS, ROW, COL) BYTE;
|
||||
DECLARE (N, MAXNO) ADDRESS;
|
||||
|
||||
MAXNO = ROWS * (ROWS+1)/2;
|
||||
N = 1;
|
||||
DO ROW = 1 TO ROWS;
|
||||
DO COL = 1 TO ROW;
|
||||
CALL PUT$NUM(N, 1 + WIDTH(MAXNO - ROWS + COL));
|
||||
N = N+1;
|
||||
END;
|
||||
CALL PRINT(.(13,10,'$'));
|
||||
END;
|
||||
END FLOYD;
|
||||
|
||||
CALL FLOYD(5);
|
||||
CALL PRINT(.(13,10,'$'));
|
||||
CALL FLOYD(14);
|
||||
CALL EXIT;
|
||||
EOF
|
||||
49
Task/Floyds-triangle/Refal/floyds-triangle.refal
Normal file
49
Task/Floyds-triangle/Refal/floyds-triangle.refal
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
$ENTRY Go {
|
||||
= <Prout <Floyd 5>>
|
||||
<Prout <Floyd 14>>;
|
||||
};
|
||||
|
||||
Floyd {
|
||||
s.N, <Rows s.N>: e.Rows,
|
||||
e.Rows: e.X (e.MaxRow),
|
||||
<Each Width e.MaxRow>: e.ColWidths =
|
||||
<Each ((e.ColWidths)) FormatRow e.Rows>;
|
||||
}
|
||||
|
||||
FormatRow {
|
||||
(e.W) () = '\n';
|
||||
(s.W e.WS) (s.C e.CS) = <Cell <+ 1 s.W> s.C> <FormatRow (e.WS) (e.CS)>;
|
||||
};
|
||||
|
||||
Cell {
|
||||
s.Width s.N, <Repeat s.Width ' '> <Symb s.N>: e.Rfill,
|
||||
<Last s.Width e.Rfill>: (e.X) e.Cell = e.Cell;
|
||||
}
|
||||
|
||||
Rows {
|
||||
s.Rows = <Rows s.Rows 1 1>;
|
||||
s.Rows s.Row s.N, <+ s.Rows 1>: s.Row = ;
|
||||
s.Rows s.Row s.N, <+ s.N s.Row>: s.Next =
|
||||
(<Row s.N <- s.Next 1>>)
|
||||
<Rows s.Rows <+ s.Row 1> s.Next>;
|
||||
}
|
||||
|
||||
Row {
|
||||
s.To s.To = s.To;
|
||||
s.From s.To = s.From <Row <+ s.From 1> s.To>;
|
||||
};
|
||||
|
||||
Each {
|
||||
s.F e.X = <Each () s.F e.X>;
|
||||
(e.Arg) s.F = ;
|
||||
(e.Arg) s.F t.I e.X = <Mu s.F e.Arg t.I> <Each (e.Arg) s.F e.X>;
|
||||
};
|
||||
|
||||
Width {
|
||||
s.N, <Symb s.N>: e.X, <Lenw e.X>: s.Width e.X = s.Width;
|
||||
};
|
||||
|
||||
Repeat {
|
||||
0 s.X = ;
|
||||
s.N s.X = s.X <Repeat <- s.N 1> s.X>;
|
||||
};
|
||||
18
Task/Floyds-triangle/SETL/floyds-triangle.setl
Normal file
18
Task/Floyds-triangle/SETL/floyds-triangle.setl
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
program floyd_triangle;
|
||||
floyd(5);
|
||||
print;
|
||||
floyd(14);
|
||||
print;
|
||||
|
||||
proc floyd(rows);
|
||||
maxno := rows * (rows+1) div 2;
|
||||
n := 1;
|
||||
loop for row in [1..rows] do
|
||||
loop for col in [1..row] do
|
||||
nprint(lpad(str n, 1 + #str (maxno - rows + col)));
|
||||
n +:=1;
|
||||
end loop;
|
||||
print;
|
||||
end loop;
|
||||
end proc;
|
||||
end program;
|
||||
22
Task/Floyds-triangle/True-BASIC/floyds-triangle.basic
Normal file
22
Task/Floyds-triangle/True-BASIC/floyds-triangle.basic
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
SUB floydtriangle (fila)
|
||||
DIM numcolum(0)
|
||||
MAT REDIM numcolum(fila)
|
||||
FOR colum = 1 TO fila
|
||||
LET numcolum(colum) = LEN(STR$(colum+fila*(fila-1)/2))
|
||||
NEXT colum
|
||||
PRINT "output for "; STR$(fila)
|
||||
PRINT
|
||||
LET thisnum = 1
|
||||
FOR r = 1 TO fila
|
||||
FOR colum = 1 TO r
|
||||
PRINT (" " & STR$(thisnum))[LEN(" " & STR$(thisnum))-numcolum(colum)+1:maxnum]; " ";
|
||||
LET thisnum = thisnum+1
|
||||
NEXT colum
|
||||
PRINT
|
||||
NEXT r
|
||||
END SUB
|
||||
|
||||
CALL FLOYDTRIANGLE (5)
|
||||
PRINT
|
||||
CALL FLOYDTRIANGLE (14)
|
||||
END
|
||||
19
Task/Floyds-triangle/Uiua/floyds-triangle.uiua
Normal file
19
Task/Floyds-triangle/Uiua/floyds-triangle.uiua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
Floyd ← ⇌⍥(⊂⍚(+⇡∩(+1)⊃⧻(⊢⇌))⊢.):{[1]}-1
|
||||
|
||||
JoinUsing ← ↘1/◇⊂≡(□◇⊂)↯:⊙(⧻.)□
|
||||
PadL ← ⊂/⊂↯:" "
|
||||
Lengths ← ⍚∵◇∵(⧻°⋕)°□
|
||||
|
||||
PrintIt ← (
|
||||
# Create table of [last row sizes] [this row sizes] [this row numbers]
|
||||
⊢⊞⊂⊢⊢↙¯1.⍉[Lengths.]
|
||||
|
||||
≡(
|
||||
# Calculate last row sizes - this row sizes and use to calculate paddings
|
||||
⍉⊟⊃(-:↙:⊙(⧻.)∩°□°⊟↙2)(°⋕°□⊢↘2)
|
||||
&pJoinUsing " " ≡(⍚PadL°⊟)
|
||||
)
|
||||
)
|
||||
|
||||
PrintIt Floyd 4
|
||||
PrintIt Floyd 14
|
||||
31
Task/Floyds-triangle/XBasic/floyds-triangle.basic
Normal file
31
Task/Floyds-triangle/XBasic/floyds-triangle.basic
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
PROGRAM "Floyd's triangle"
|
||||
VERSION "0.0001"
|
||||
|
||||
DECLARE FUNCTION Entry ()
|
||||
DECLARE FUNCTION FloydTriangle (n)
|
||||
|
||||
FUNCTION Entry ()
|
||||
FloydTriangle (5)
|
||||
PRINT
|
||||
FloydTriangle (14)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION FloydTriangle (fila)
|
||||
DIM numColum[fila]
|
||||
FOR colum = 1 TO fila
|
||||
t$ = STR$(colum + fila * (fila - 1) / 2)
|
||||
numColum[colum] = LEN(t$)
|
||||
NEXT colum
|
||||
|
||||
PRINT "output for "; STR$(fila)
|
||||
PRINT
|
||||
thisNum = 1
|
||||
FOR r = 1 TO fila
|
||||
FOR colum = 1 TO r
|
||||
PRINT RIGHT$(" " + STR$(thisNum), numColum[colum]); " ";
|
||||
INC thisNum
|
||||
NEXT colum
|
||||
PRINT
|
||||
NEXT r
|
||||
END FUNCTION
|
||||
END PROGRAM
|
||||
Loading…
Add table
Add a link
Reference in a new issue