home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / ckscripts / matrix < prev    next >
Text File  |  2020-01-01  |  2KB  |  81 lines

  1. ; From: Dat Thuc Nguyen
  2. ; Newsgroups: comp.protocols.kermit.misc
  3. ; Subject: Matrix Operations in Kermit 95
  4. ; Date: Mon, 22 Mar 1999 16:12:25 GMT
  5. ; URL: http://www.smalltickle.com
  6. ;
  7. ; THE MATRIX IS AN ESSENTIAL ELEMENT OF MANY COMPUTING AREAS.
  8. ; KERMIT 95 CAN DO MATRIX OPERATIONS EASILY.
  9. ; THE FOLLOWING SCRIPT CREATES TWO MATRICES A AND B,
  10. ; THEN COMPUTES THEIR SUM: MATRIX C.
  11. ; THE USER-DEFINED FUNCTION display_matrix REQUIRES ONLY
  12. ; THE NAME OF THE MATRIX. THE SAME IS WITH undefine_matrix.
  13.  
  14. assign row 4
  15. assign col 9
  16.  
  17. ; CREATE MATRIX A AND MATRIX B
  18. for \%r 1 \m(row) 1 {
  19.     for \%c 1 \m(col) 1 {
  20.         _assign A[\%r][\%c] \feval(\%r + \%c)
  21.         _assign B[\%r][\%c] \feval(\%r * \%c)
  22.     }
  23. }
  24.  
  25. ; CREATE MATRIX C = SUM OF MATRIX A AND MATRIX B
  26. for \%r 1 \m(row) 1 {
  27.     for \%c 1 \m(col) 1 {
  28.         _assign C[\%r][\%c]-
  29.         \feval(\m(A[\%r][\%c]) + \m(B[\%r][\%c]))
  30.     }
  31. }
  32.  
  33. ; GIVEN THE NAME OF A MATRIX, DISPLAY IT IN ROWS & COLUMNS
  34. ; NO NEED FOR THE DIMENSION OF THE MATRIX
  35. define display_matrix {
  36.     local \%r \%c \%z
  37.     assign \%r 1
  38.     assign \%c 1
  39.     while define \m(\%1[\%r][\%c]) {
  40.         while define \m(\%1[\%r][\%c]) {
  41.             assign \%z \%z \m(\%1[\%r][\%c])
  42.             increment \%c
  43.         }
  44.         echo \%z
  45.         undefine \%z
  46.         increment \%r
  47.         assign \%c 1
  48.     }
  49. }
  50.  
  51. echo Matrix A
  52. display_matrix A
  53.  
  54. echo Matrix B
  55. display_matrix B
  56.  
  57. echo Matrix A + Matrix B
  58. display_matrix C
  59.  
  60. ; GIVEN THE NAME OF A MATRIX, UNDEFINE IT.
  61. ; NO NEED FOR THE DIMENSION OF THE MATRIX
  62. define undefine_matrix {
  63.     local \%r \%c \%z
  64.     assign \%r 1
  65.     assign \%c 1
  66.     while define \m(\%1[\%r][\%c]) {
  67.         while define \m(\%1[\%r][\%c]) {
  68.             _define \%1[\%r][\%c]
  69.             increment \%c
  70.         }
  71.         increment \%r
  72.         assign \%c 1
  73.     }
  74. }
  75.  
  76. undefine_matrix A
  77. undefine_matrix B
  78. undefine_matrix C
  79.  
  80. end
  81.