home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
archives
/
ckermit.zip
/
matrix
< prev
next >
Wrap
Text File
|
1999-07-16
|
2KB
|
81 lines
; From: Dat Thuc Nguyen
; Newsgroups: comp.protocols.kermit.misc
; Subject: Matrix Operations in Kermit 95
; Date: Mon, 22 Mar 1999 16:12:25 GMT
; URL: http://www.smalltickle.com
;
; THE MATRIX IS AN ESSENTIAL ELEMENT OF MANY COMPUTING AREAS.
; KERMIT 95 CAN DO MATRIX OPERATIONS EASILY.
; THE FOLLOWING SCRIPT CREATES TWO MATRICES A AND B,
; THEN COMPUTES THEIR SUM: MATRIX C.
; THE USER-DEFINED FUNCTION display_matrix REQUIRES ONLY
; THE NAME OF THE MATRIX. THE SAME IS WITH undefine_matrix.
assign row 4
assign col 9
; CREATE MATRIX A AND MATRIX B
for \%r 1 \m(row) 1 {
for \%c 1 \m(col) 1 {
_assign A[\%r][\%c] \feval(\%r + \%c)
_assign B[\%r][\%c] \feval(\%r * \%c)
}
}
; CREATE MATRIX C = SUM OF MATRIX A AND MATRIX B
for \%r 1 \m(row) 1 {
for \%c 1 \m(col) 1 {
_assign C[\%r][\%c]-
\feval(\m(A[\%r][\%c]) + \m(B[\%r][\%c]))
}
}
; GIVEN THE NAME OF A MATRIX, DISPLAY IT IN ROWS & COLUMNS
; NO NEED FOR THE DIMENSION OF THE MATRIX
define display_matrix {
local \%r \%c \%z
assign \%r 1
assign \%c 1
while define \m(\%1[\%r][\%c]) {
while define \m(\%1[\%r][\%c]) {
assign \%z \%z \m(\%1[\%r][\%c])
increment \%c
}
echo \%z
undefine \%z
increment \%r
assign \%c 1
}
}
echo Matrix A
display_matrix A
echo Matrix B
display_matrix B
echo Matrix A + Matrix B
display_matrix C
; GIVEN THE NAME OF A MATRIX, UNDEFINE IT.
; NO NEED FOR THE DIMENSION OF THE MATRIX
define undefine_matrix {
local \%r \%c \%z
assign \%r 1
assign \%c 1
while define \m(\%1[\%r][\%c]) {
while define \m(\%1[\%r][\%c]) {
_define \%1[\%r][\%c]
increment \%c
}
increment \%r
assign \%c 1
}
}
undefine_matrix A
undefine_matrix B
undefine_matrix C
end