Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -1,10 +1,10 @@
|
|||
BEGIN{
|
||||
for(i=1;i<13;i++){
|
||||
for(j=1;j<13;j++){
|
||||
if(j>=i||j==1){printf("%4d",i*j);}
|
||||
else {printf(" ");}
|
||||
if(j>=i||j==1){printf "%4d",i*j}
|
||||
else {printf " "}
|
||||
}
|
||||
print;
|
||||
print
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package {
|
||||
|
||||
import flash.display.Sprite;
|
||||
import flash.events.Event;
|
||||
import flash.text.TextField;
|
||||
import flash.text.TextFieldAutoSize;
|
||||
import flash.text.TextFormat;
|
||||
|
||||
[SWF (width = 550, height = 550)]
|
||||
public class MultiplicationTable extends Sprite {
|
||||
|
||||
public function MultiplicationTable() {
|
||||
if ( stage ) _init();
|
||||
else addEventListener(Event.ADDED_TO_STAGE, _init);
|
||||
}
|
||||
|
||||
private function _init(e:Event = null):void {
|
||||
|
||||
removeEventListener(Event.ADDED_TO_STAGE, _init);
|
||||
|
||||
var format:TextFormat = new TextFormat();
|
||||
format.size = 15;
|
||||
var blockSize:uint = 40;
|
||||
var max:uint = 12;
|
||||
|
||||
var i:uint, j:uint;
|
||||
var tf:TextField;
|
||||
|
||||
for ( i = 1; i <= max; i++ ) {
|
||||
tf = new TextField();
|
||||
tf.defaultTextFormat = format;
|
||||
tf.x = blockSize * i;
|
||||
tf.y = 0;
|
||||
tf.width = tf.height = blockSize;
|
||||
tf.autoSize = TextFieldAutoSize.CENTER;
|
||||
tf.text = String(i);
|
||||
addChild(tf);
|
||||
|
||||
tf = new TextField();
|
||||
tf.defaultTextFormat = format;
|
||||
tf.x = 0;
|
||||
tf.y = blockSize * i;
|
||||
tf.width = tf.height = blockSize;
|
||||
tf.autoSize = TextFieldAutoSize.CENTER;
|
||||
tf.text = String(i);
|
||||
addChild(tf);
|
||||
}
|
||||
|
||||
var yOffset:Number = tf.textHeight / 2;
|
||||
y += yOffset;
|
||||
|
||||
graphics.lineStyle(1, 0x000000);
|
||||
graphics.moveTo(blockSize, -yOffset);
|
||||
graphics.lineTo(blockSize, (blockSize * (max + 1)) - yOffset);
|
||||
graphics.moveTo(0, blockSize - yOffset);
|
||||
graphics.lineTo(blockSize * (max + 1), blockSize - yOffset);
|
||||
|
||||
|
||||
for ( i = 1; i <= max; i++ ) {
|
||||
for ( j = 1; j <= max; j++ ) {
|
||||
if ( j > i )
|
||||
continue;
|
||||
|
||||
tf = new TextField();
|
||||
tf.defaultTextFormat = format;
|
||||
tf.x = blockSize * i;
|
||||
tf.y = blockSize * j;
|
||||
tf.width = tf.height = blockSize;
|
||||
tf.autoSize = TextFieldAutoSize.CENTER;
|
||||
tf.text = String(i * j);
|
||||
addChild(tf);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
100 M = 12
|
||||
110 DEF FN T(X) = X * 3 + (X < 4) * (4 - X) + (X > 10) * (X - 10) - 1
|
||||
120 FOR N = -1 TO M
|
||||
130 IF NOT N THEN PRINT CHR$(13) TAB(5); : FOR J = 5 TO FN T(M + 1) - 2 : PRINT "-"; : NEXT J, N
|
||||
140 I = ABS(N)
|
||||
150 IF N > 0 THEN PRINT CHR$(13) MID$(" ", 1, I < 10) I" !";
|
||||
160 FOR J = I TO M
|
||||
170 V$ = STR$(I * J)
|
||||
180 PRINT TAB(FN T(J)) MID$(" ", 1, 3 - LEN(V$) - (J < 4)) V$;
|
||||
190 NEXT J, N
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
( multiplicationTable
|
||||
= high i j row row2 matrix padFnc tmp
|
||||
, celPad leftCelPad padFnc celDashes leftDashes
|
||||
. !arg:?high
|
||||
& ( padFnc
|
||||
= L i w d
|
||||
. @(!arg:? [?L)
|
||||
& 1+(!L:?i):?L
|
||||
& " ":?w
|
||||
& "-":?d
|
||||
& whl
|
||||
' ( !i+-1:~<0:?i
|
||||
& " " !w:?w
|
||||
& "-" !d:?d
|
||||
)
|
||||
& str$!w:?w
|
||||
& (
|
||||
' (
|
||||
. @(str$(rev$!arg ()$w):?arg [($L) ?)
|
||||
& rev$!arg
|
||||
)
|
||||
. str$!d
|
||||
)
|
||||
)
|
||||
& padFnc$(!high^2):((=?celPad).?celDashes)
|
||||
& @(!high:?tmp [-2 ?)
|
||||
& padFnc$!tmp:((=?leftCelPad).?leftDashes)
|
||||
& 0:?i
|
||||
& :?row:?row2
|
||||
& whl
|
||||
' ( 1+!i:~>!high:?i
|
||||
& !row celPad$!i:?row
|
||||
& !celDashes !row2:?row2
|
||||
)
|
||||
& str$(leftCelPad$X "|" !row \n !leftDashes "+" !row2 \n)
|
||||
: ?matrix
|
||||
& 0:?j
|
||||
& whl
|
||||
' ( 1+!j:~>!high:?j
|
||||
& 0:?i
|
||||
& :?row
|
||||
& whl
|
||||
' ( 1+!i:<!j:?i
|
||||
& celPad$() !row:?row
|
||||
)
|
||||
& leftCelPad$!j "|" !row:?row
|
||||
& whl
|
||||
' ( 1+!i:~>!high:?i
|
||||
& !row celPad$(!i*!j):?row
|
||||
)
|
||||
& !matrix str$(!row \n):?matrix
|
||||
)
|
||||
& str$!matrix
|
||||
)
|
||||
& out$(multiplicationTable$12)
|
||||
& done;
|
||||
|
|
@ -1,21 +1,9 @@
|
|||
import std.stdio, std.array;
|
||||
|
||||
void main() {
|
||||
enum int max = 12;
|
||||
write(" | ");
|
||||
foreach (row; 1 .. max+1)
|
||||
writef("%4d", row);
|
||||
writeln();
|
||||
writeln("--+-", "-".replicate(max * 4));
|
||||
foreach (row; 1 .. max+1) {
|
||||
writef("%2d", row);
|
||||
write("| ");
|
||||
foreach (column; 1 .. max+1) {
|
||||
if (column < row)
|
||||
write(" ");
|
||||
else
|
||||
writef("%4d", row * column);
|
||||
}
|
||||
writeln();
|
||||
}
|
||||
import std.stdio, std.array, std.range, std.algorithm;
|
||||
|
||||
enum n = 12;
|
||||
writefln(" %(%4d%)\n%s", iota(1, n+1), "-".replicate(4*n + 4));
|
||||
foreach (immutable y; 1 .. n + 1)
|
||||
writefln("%4d" ~ " ".replicate(4 * (y - 1)) ~ "%(%4d%)", y,
|
||||
iota(y, n + 1).map!(x => x * y));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue