Data update

This commit is contained in:
Ingy döt Net 2024-07-13 15:19:22 -07:00
parent 29a5eea0d4
commit 5c1bb7bfa9
2011 changed files with 35081 additions and 3229 deletions

View file

@ -0,0 +1,11 @@
lincomb{
fmtco{
mul(1)/(|),'*'
mul,'e(',(),')'
}
co¨fmtco/¨(0)/(,),¨|
sgn'-+'[1+(×)/×]
lc(('+'=))sgn,¨co
0=lc:'0' lc
}

View file

@ -0,0 +1,22 @@
100 READ UX,UY
110 DIM SCALARS(UX,UY)
120 FOR N = 1 TO UX
130 FOR M = 1 TO UY
140 READ SCALARS(N,M)
150 NEXT M,N
160 DATA10,4
170 DATA1,2,3,0,0,1,2,3
180 DATA1,0,3,4,1,2,0,0
190 DATA0,0,0,0,0,0,0,0
200 DATA1,1,1,0,-1,-1,-1,0
210 DATA-1,-2,0,-3,-1,0,0,0
220 FOR N = 1 TO UX
230 CADENA$ = ""
240 FOR M = 1 TO UY
250 SCALAR = SCALARS(N,M)
260 IF SCALAR THEN CADENA$ = CADENA$ + CHR$ (44 - SGN (SCALAR)) + MID$ ( STR$ ( ABS (SCALAR)) + "*",1,255 * ( ABS (SCALAR) < > 1)) + "E" + STR$ (M)
270 NEXT M
280 IF CADENA$ = "" THEN CADENA$ = "0"
290 IF LEFT$ (CADENA$,1) = "+" THEN CADENA$ = RIGHT$ (CADENA$, LEN (CADENA$) - 1)
300 PRINT CADENA$
310 NEXT N

View file

@ -0,0 +1,38 @@
100 dim scalars(10,4)
110 scalars(1,1) = 1 : scalars(1,2) = 2 : scalars(1,3) = 3
120 scalars(2,1) = 0 : scalars(2,2) = 1 : scalars(2,3) = 2 : scalars(2,4) = 3
130 scalars(3,1) = 1 : scalars(3,2) = 0 : scalars(3,3) = 3 : scalars(3,4) = 4
140 scalars(4,1) = 1 : scalars(4,2) = 2 : scalars(4,3) = 0
150 scalars(5,1) = 0 : scalars(5,2) = 0 : scalars(5,3) = 0
160 scalars(6,1) = 0
170 scalars(7,1) = 1 : scalars(7,2) = 1 : scalars(7,3) = 1
180 scalars(8,1) = -1 : scalars(8,2) = -1 : scalars(8,3) = -1
190 scalars(9,1) = -1 : scalars(9,2) = -2 : scalars(9,3) = 0 : scalars(9,4) = -3
200 scalars(10,1) = -1
210 cls
220 for n = 1 to ubound(scalars)
230 cadena$ = ""
240 scalar = 0
250 for m = 1 to ubound(scalars,2)
260 scalar = scalars(n,m)
270 if scalar <> 0 then
280 if scalar = 1 then
290 cadena$ = cadena$+"+e"+str$(m)
300 else
310 if scalar = -1 then
320 cadena$ = cadena$+"-e"+str$(m)
330 else
340 if scalar > 0 then
350 cadena$ = cadena$+chr$(43)+str$(scalar)+"*e"+str$(m)
360 else
370 cadena$ = cadena$+str$(scalar)+"*e"+str$(m)
380 endif
390 endif
400 endif
410 endif
420 next m
430 if cadena$ = "" then cadena$ = "0"
440 if left$(cadena$,1) = "+" then cadena$ = right$(cadena$,len(cadena$)-1)
450 print cadena$
460 next n
470 end

View file

@ -0,0 +1,60 @@
include "cowgol.coh";
sub abs(n: int32): (r: uint32) is
if n < 0
then r := (-n) as uint32;
else r := n as uint32;
end if;
end sub;
sub lincomb(scalar: [int32], size: intptr) is
var first: uint8 := 1;
var item: uint8 := 1;
sub print_sign() is
if first == 1 then
if [scalar] < 0 then print("-"); end if;
else
if [scalar] < 0
then print(" - ");
else print(" + ");
end if;
end if;
end sub;
sub print_term() is
if [scalar] == 0 then return; end if;
print_sign();
if abs([scalar]) > 1 then
print_i32(abs([scalar]));
print("*");
end if;
print("e(");
print_i8(item);
print(")");
first := 0;
end sub;
while size > 0 loop
print_term();
scalar := @next scalar;
size := size - 1;
item := item + 1;
end loop;
if first == 1 then
print("0");
end if;
print_nl();
end sub;
var a1: int32[] := {1, 2, 3}; lincomb(&a1[0], @sizeof a1);
var a2: int32[] := {0, 1, 2, 3}; lincomb(&a2[0], @sizeof a2);
var a3: int32[] := {1, 0, 3, 4}; lincomb(&a3[0], @sizeof a3);
var a4: int32[] := {1, 2, 0}; lincomb(&a4[0], @sizeof a4);
var a5: int32[] := {0, 0, 0}; lincomb(&a5[0], @sizeof a5);
var a6: int32[] := {0}; lincomb(&a6[0], @sizeof a6);
var a7: int32[] := {1, 1, 1}; lincomb(&a7[0], @sizeof a7);
var a8: int32[] := {-1, -1, -1}; lincomb(&a8[0], @sizeof a8);
var a9: int32[] := {-1, -2, 0, 3}; lincomb(&a9[0], @sizeof a9);
var a10: int32[] := {-1}; lincomb(&a10[0], @sizeof a10);

View file

@ -0,0 +1,44 @@
proc abs(int n) int: if n<0 then -n else n fi corp
proc write_term(word index; int scalar; bool first) void:
if first then
if scalar<0 then write("-") fi
else
write(if scalar<0 then " - " else " + " fi)
fi;
if abs(scalar)>1 then
write(abs(scalar), '*')
fi;
write("e(",index,")")
corp
proc lincomb([*]int terms) void:
bool first;
word index;
first := true;
for index from 0 upto dim(terms,1)-1 do
if terms[index] /= 0 then
write_term(index+1, terms[index], first);
first := false
fi
od;
writeln(if first then "0" else "" fi)
corp
proc main() void:
[3]int a1 = (1,2,3);
[4]int a2 = (0,1,2,3);
[4]int a3 = (1,0,3,4);
[3]int a4 = (1,2,0);
[3]int a5 = (0,0,0);
[1]int a6 = (0);
[3]int a7 = (1,1,1);
[3]int a8 = (-1,-1,-1);
[4]int a9 = (-1,-2,0,3);
[1]int a10 = (-1);
lincomb(a1); lincomb(a2); lincomb(a3); lincomb(a4);
lincomb(a5); lincomb(a6); lincomb(a7); lincomb(a8);
lincomb(a9); lincomb(a10)
corp

View file

@ -0,0 +1,24 @@
100 DIM SKLS(10, 4)
110 SKLS(1, 1) = 1: SKLS(1, 2) = 2: SKLS(1, 3) = 3
120 SKLS(2, 1) = 0: SKLS(2, 2) = 1: SKLS(2, 3) = 2: SKLS(2, 4) = 3
130 SKLS(3, 1) = 1: SKLS(3, 2) = 0: SKLS(3, 3) = 3: SKLS(3, 4) = 4
140 SKLS(4, 1) = 1: SKLS(4, 2) = 2: SKLS(4, 3) = 0
150 SKLS(5, 1) = 0: SKLS(5, 2) = 0: SKLS(5, 3) = 0
160 SKLS(6, 1) = 0
170 SKLS(7, 1) = 1: SKLS(7, 2) = 1: SKLS(7, 3) = 1
180 SKLS(8, 1) = -1: SKLS(8, 2) = -1: SKLS(8, 3) = -1
190 SKLS(9, 1) = -1: SKLS(9, 2) = -2: SKLS(9, 3) = 0: SKLS(9, 4) = -3
200 SKLS(10, 1) = -1
210 CLS
220 FOR N = 1 TO 10
230 CAD$ = ""
240 SCL = 0
250 FOR M = 1 TO 4
260 SCL = SKLS(N, M)
270 IF SCL <> 0 THEN IF SCL = 1 THEN CAD$ = CAD$ + "+e" + STR$(M) ELSE IF SCL = -1 THEN CAD$ = CAD$ + "-e" + STR$(M) ELSE IF SCL > 0 THEN CAD$ = CAD$ + CHR$(43) + STR$(SCL) + "*e" + STR$(M) ELSE CAD$ = CAD$ + STR$(SCL) + "*e" + STR$(M)
280 NEXT M
290 IF CAD$ = "" THEN CAD$ = "0"
300 IF LEFT$(CAD$, 1) = "+" THEN CAD$ = RIGHT$(CAD$, LEN(CAD$) - 1)
310 PRINT CAD$
320 NEXT N
330 END

View file

@ -0,0 +1,37 @@
DIM scalars(1 TO 10, 1 TO 4)
scalars(1, 1) = 1: scalars(1, 2) = 2: scalars(1, 3) = 3
scalars(2, 1) = 0: scalars(2, 2) = 1: scalars(2, 3) = 2: scalars(2, 4) = 3
scalars(3, 1) = 1: scalars(3, 2) = 0: scalars(3, 3) = 3: scalars(3, 4) = 4
scalars(4, 1) = 1: scalars(4, 2) = 2: scalars(4, 3) = 0
scalars(5, 1) = 0: scalars(5, 2) = 0: scalars(5, 3) = 0
scalars(6, 1) = 0
scalars(7, 1) = 1: scalars(7, 2) = 1: scalars(7, 3) = 1
scalars(8, 1) = -1: scalars(8, 2) = -1: scalars(8, 3) = -1
scalars(9, 1) = -1: scalars(9, 2) = -2: scalars(9, 3) = 0: scalars(9, 4) = -3
scalars(10, 1) = -1
CLS
FOR n = 1 TO UBOUND(scalars)
cadena$ = ""
scalar = 0
FOR m = 1 TO UBOUND(scalars, 2)
scalar = scalars(n, m)
IF scalar <> 0 THEN
IF scalar = 1 THEN
cadena$ = cadena$ + "+e" + STR$(m)
ELSEIF scalar = -1 THEN
cadena$ = cadena$ + "-e" + STR$(m)
ELSE
IF scalar > 0 THEN
cadena$ = cadena$ + CHR$(43) + STR$(scalar) + "*e" + STR$(m)
ELSE
cadena$ = cadena$ + STR$(scalar) + "*e" + STR$(m)
END IF
END IF
END IF
NEXT m
IF cadena$ = "" THEN cadena$ = "0"
IF LEFT$(cadena$, 1) = "+" THEN cadena$ = RIGHT$(cadena$, LEN(cadena$) - 1)
PRINT cadena$
NEXT n
END

View file

@ -0,0 +1,38 @@
dim scalars(10,4)
scalars(1,1) = 1: scalars(1,2) = 2: scalars(1,3) = 3
scalars(2,1) = 0: scalars(2,2) = 1: scalars(2,3) = 2: scalars(2,4) = 3
scalars(3,1) = 1: scalars(3,2) = 0: scalars(3,3) = 3: scalars(3,4) = 4
scalars(4,1) = 1: scalars(4,2) = 2: scalars(4,3) = 0
scalars(5,1) = 0: scalars(5,2) = 0: scalars(5,3) = 0
scalars(6,1) = 0
scalars(7,1) = 1: scalars(7,2) = 1: scalars(7,3) = 1
scalars(8,1) = -1: scalars(8,2) = -1: scalars(8,3) = -1
scalars(9,1) = -1: scalars(9,2) = -2: scalars(9,3) = 0: scalars(9,4) = -3
scalars(10,1) = -1
for n = 1 to arraysize(scalars(),1)
cadena$ = ""
for m = 1 to arraysize(scalars(),2)
scalar = scalars(n, m)
if scalar <> 0 then
if scalar = 1 then
cadena$ = cadena$ + "+e" + str$(m)
else
if scalar = -1 then
cadena$ = cadena$ + "-e" + str$(m)
else
if scalar > 0 then
cadena$ = cadena$ + chr$(43) + str$(scalar) + "*e" + str$(m)
else
cadena$ = cadena$ + str$(scalar) + "*e" + str$(m)
fi
fi
fi
fi
next m
if cadena$ = "" cadena$ = "0"
if left$(cadena$, 1) = "+" cadena$ = right$(cadena$, len(cadena$)-1)
print cadena$
next n
end