home *** CD-ROM | disk | FTP | other *** search
- ; 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
-