Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,12 +0,0 @@
|
|||
with Ada.Text_IO, Ada.Integer_Text_IO, Ada.Command_Line;
|
||||
|
||||
procedure Floyd_Triangle is
|
||||
rows : constant Natural := Natural'Value(Ada.Command_Line.Argument(1));
|
||||
begin
|
||||
for r in 1..rows loop
|
||||
for i in 1..r loop
|
||||
Ada.Integer_Text_IO.put (r*(r-1)/2+i, Width=> Natural'Image(rows*(rows-1)/2+i)'Length);
|
||||
end loop;
|
||||
Ada.Text_IO.New_Line;
|
||||
end loop;
|
||||
end Floyd_Triangle;
|
||||
|
|
@ -1,69 +0,0 @@
|
|||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. FLOYD-TRIANGLE.
|
||||
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 VARIABLES COMP.
|
||||
02 NUM-LINES PIC 99.
|
||||
02 CUR-LINE PIC 99.
|
||||
02 CUR-COL PIC 99.
|
||||
02 CUR-NUM PIC 999.
|
||||
02 ZERO-SKIP PIC 9.
|
||||
02 LINE-PTR PIC 99.
|
||||
02 MAX-NUM PIC 999.
|
||||
|
||||
01 OUTPUT-FORMAT.
|
||||
02 OUT-LINE PIC X(72).
|
||||
02 ONE-DIGIT PIC B9.
|
||||
02 TWO-DIGITS PIC BZ9.
|
||||
02 THREE-DIGITS PIC BZZ9.
|
||||
02 MAX-COL-NUM PIC 999.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
BEGIN.
|
||||
MOVE 5 TO NUM-LINES. PERFORM FLOYD.
|
||||
DISPLAY ' '.
|
||||
MOVE 14 TO NUM-LINES. PERFORM FLOYD.
|
||||
STOP RUN.
|
||||
|
||||
FLOYD.
|
||||
MOVE 1 TO CUR-NUM.
|
||||
COMPUTE MAX-NUM = NUM-LINES * (NUM-LINES + 1) / 2.
|
||||
PERFORM FLOYD-LINE
|
||||
VARYING CUR-LINE FROM 1 BY 1
|
||||
UNTIL CUR-LINE IS GREATER THAN NUM-LINES.
|
||||
|
||||
FLOYD-LINE.
|
||||
MOVE ' ' TO OUT-LINE.
|
||||
MOVE 1 TO LINE-PTR.
|
||||
PERFORM FLOYD-NUM
|
||||
VARYING CUR-COL FROM 1 BY 1
|
||||
UNTIL CUR-COL IS GREATER THAN CUR-LINE.
|
||||
DISPLAY OUT-LINE.
|
||||
|
||||
FLOYD-NUM.
|
||||
COMPUTE MAX-COL-NUM = MAX-NUM - NUM-LINES + CUR-COL.
|
||||
MOVE 0 TO ZERO-SKIP.
|
||||
INSPECT MAX-COL-NUM TALLYING ZERO-SKIP FOR LEADING '0'.
|
||||
IF ZERO-SKIP IS EQUAL TO ZERO
|
||||
PERFORM FLOYD-THREE-DIGITS
|
||||
ELSE IF ZERO-SKIP IS EQUAL TO 1
|
||||
PERFORM FLOYD-TWO-DIGITS
|
||||
ELSE IF ZERO-SKIP IS EQUAL TO 2
|
||||
PERFORM FLOYD-ONE-DIGIT.
|
||||
ADD 1 TO CUR-NUM.
|
||||
|
||||
FLOYD-ONE-DIGIT.
|
||||
MOVE CUR-NUM TO ONE-DIGIT.
|
||||
STRING ONE-DIGIT DELIMITED BY SIZE INTO OUT-LINE
|
||||
WITH POINTER LINE-PTR.
|
||||
|
||||
FLOYD-TWO-DIGITS.
|
||||
MOVE CUR-NUM TO TWO-DIGITS.
|
||||
STRING TWO-DIGITS DELIMITED BY SIZE INTO OUT-LINE
|
||||
WITH POINTER LINE-PTR.
|
||||
|
||||
FLOYD-THREE-DIGITS.
|
||||
MOVE CUR-NUM TO THREE-DIGITS.
|
||||
STRING THREE-DIGITS DELIMITED BY SIZE INTO OUT-LINE
|
||||
WITH POINTER LINE-PTR.
|
||||
|
|
@ -8,7 +8,7 @@ proc triangle n .
|
|||
row = 1
|
||||
while row <= n
|
||||
printme += 1
|
||||
cols = ceil log10 (n * (n - 1) / 2 + nprinted + 2)
|
||||
cols = ceil log (n * (n - 1) / 2 + nprinted + 2) 10
|
||||
numfmt cols 0
|
||||
write printme & " "
|
||||
nprinted += 1
|
||||
|
|
|
|||
|
|
@ -1,20 +1,18 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #008080;">procedure</span> <span style="color: #000000;">Floyds_triangle</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">widths</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">n</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">n</span> <span style="color: #0000FF;">*</span> <span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">))/</span><span style="color: #000000;">2</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">n</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">widths</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%%%dd"</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">k</span><span style="color: #0000FF;">))+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">n</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">j</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">i</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">widths</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">],</span><span style="color: #000000;">k</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">k</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"\n"</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
|
||||
<span style="color: #000000;">Floyds_triangle</span><span style="color: #0000FF;">(</span><span style="color: #000000;">5</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">Floyds_triangle</span><span style="color: #0000FF;">(</span><span style="color: #000000;">14</span><span style="color: #0000FF;">)</span>
|
||||
<!--
|
||||
with javascript_semantics
|
||||
procedure Floyds_triangle(integer n)
|
||||
sequence widths = repeat(0,n)
|
||||
integer k = (n * (n-1))/2
|
||||
for i=1 to n do
|
||||
widths[i] = sprintf("%%%dd",length(sprintf("%d",i+k))+1)
|
||||
end for
|
||||
k = 1
|
||||
for i=1 to n do
|
||||
for j=1 to i do
|
||||
printf(1,widths[j],k)
|
||||
k += 1
|
||||
end for
|
||||
printf(1,"\n")
|
||||
end for
|
||||
end procedure
|
||||
Floyds_triangle(5)
|
||||
Floyds_triangle(14)
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
' Read the number of rows to use..
|
||||
intRows = WScript.StdIn.ReadLine
|
||||
|
||||
' Get the first number of the final row so we can calculate widths...
|
||||
intLastRowStart = (intRows ^ 2 - intRows) \ 2 + 1
|
||||
|
||||
For i = 1 To intRows
|
||||
intLastRow = intLastRowStart
|
||||
For j = 1 To i
|
||||
k = k + 1
|
||||
WScript.StdOut.Write Space(Len(intLastRow) - Len(k)) & k & " "
|
||||
intLastRow = intLastRow + 1
|
||||
Next
|
||||
WScript.StdOut.WriteLine ""
|
||||
Next
|
||||
Loading…
Add table
Add a link
Reference in a new issue