Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,55 @@
|
|||
matrix = array[array[int]]
|
||||
|
||||
make_matrix = proc (gen: proctype (int,int,matrix) returns (int),
|
||||
size: int) returns (matrix)
|
||||
m: matrix := matrix$fill_copy(0, size, array[int]$fill(0, size, 0))
|
||||
for y: int in int$from_to(0, size-1) do
|
||||
for x: int in int$from_to(0, size-1) do
|
||||
m[y][x] := gen(x,y,m)
|
||||
end
|
||||
end
|
||||
return(m)
|
||||
end make_matrix
|
||||
|
||||
lower = proc (x,y: int, m: matrix) returns (int)
|
||||
if x>y then return(0)
|
||||
elseif x=y | x=0 then return(1)
|
||||
else return( m[y-1][x-1] + m[y-1][x] )
|
||||
end
|
||||
end lower
|
||||
|
||||
upper = proc (x,y: int, m: matrix) returns (int)
|
||||
if x<y then return(0)
|
||||
elseif x=y | y=0 then return(1)
|
||||
else return( m[y-1][x-1] + m[y][x-1] )
|
||||
end
|
||||
end upper
|
||||
|
||||
symmetric = proc (x,y: int, m: matrix) returns (int)
|
||||
if x=0 | y=0 then return(1)
|
||||
else return(m[y][x-1] + m[y-1][x])
|
||||
end
|
||||
end symmetric
|
||||
|
||||
print_matrix = proc (s: stream, m: matrix, w: int)
|
||||
for line: array[int] in matrix$elements(m) do
|
||||
for item: int in array[int]$elements(line) do
|
||||
stream$putright(s, int$unparse(item), w)
|
||||
stream$putc(s, ' ')
|
||||
end
|
||||
stream$putl(s, "")
|
||||
end
|
||||
end print_matrix
|
||||
|
||||
start_up = proc ()
|
||||
po: stream := stream$primary_output()
|
||||
|
||||
stream$putl(po, "Upper-triangular matrix:")
|
||||
print_matrix(po, make_matrix(upper,5), 1)
|
||||
|
||||
stream$putl(po, "\nLower-triangular matrix:")
|
||||
print_matrix(po, make_matrix(lower,5), 1)
|
||||
|
||||
stream$putl(po, "\nSymmetric matrix:")
|
||||
print_matrix(po, make_matrix(symmetric,5), 2)
|
||||
end start_up
|
||||
Loading…
Add table
Add a link
Reference in a new issue