home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Science / Science.zip / det0798.zip / DET_E_A.CMD < prev    next >
OS/2 REXX Batch file  |  1998-07-04  |  11KB  |  552 lines

  1. /* Programm  Det_E_A.cmd                                                    */
  2. /*           Det_E_A.cmd ruft Det.cmd auf. Det.cmd kann aus einer           */
  3. /*           quadratischen Matrix mit 20 mal 20 Elementen                   */
  4. /*           (bezogen auf die "obere linke Ecke")                           */
  5. /*           Determinanten mit  2  mal  2 ,                                 */
  6. /*                         mit  3  mal  3 ,                                 */
  7. /*                         mit  4  mal  4 ,                                 */
  8. /*                         mit ... mal ...,                                 */
  9. /*                         mit ... mal ...,                                 */
  10. /*                         mit  20 mal  20 Elementen berechnen.             */
  11.  
  12. NUMERIC DIGITS 65
  13.  
  14. arg n
  15.  
  16. n = strip(n)    /* Hier werden Leerzeichen vor dem     */
  17.                 /* Kommandozeilen-Parameter entfernt   */
  18.  
  19. /* Wenn kein Kommandozeilen-Parameter übergeben wurde. */
  20. IF n = ' ' THEN
  21. do
  22.    say
  23.    say"Es wurde vergessen, eine positive ganze Zahl zwischen 2 und 20"
  24.    say"                    als Kommandozeilen-Parameter zu übergeben."
  25.    beep(444,100); beep(628,300)
  26.    signal ende
  27. end
  28.  
  29. /* Wenn n nicht nur numerische Werte enthält. */
  30. IF datatype(n) = 'CHAR' THEN
  31. do
  32.    say
  33.    say"Ungültiger Kommandozeilen-Parameter !"
  34.    say
  35.    say"Als Kommandozeilen-Parameter"
  36.    say"dürfen nur positive ganze Zahlen zwischen 2 und 20 übergeben werden."
  37.    beep(444,100); beep(628,300)
  38.    signal ende
  39. end
  40.  
  41. /* Wenn n < 2 ist, oder wenn n > 20 ist,                                    */
  42. /* oder wenn n einen Dezimalpunkt mit nachfolgenden Dezimalstellen hat,     */
  43. /* oder wenn n einen Dezimalpunkt ohne nachfolgenden Dezimalstellen hat.    */
  44. /*                                                                          */
  45. /* Die beiden letzten Bedingungen                                           */
  46. /* werden durch den Ausdruck  length(n) <> length(n%1)  überprüft.          */
  47. /*                                                                          */
  48. IF n < 2  |  n > 20  |  length(n) <> length(n%1)  THEN
  49. do
  50.    say
  51.    say"Ungültiger Kommandozeilen-Parameter !"
  52.    say
  53.    say"Als Kommandozeilen-Parameter"
  54.    say"dürfen nur positive ganze Zahlen zwischen 2 und 20 übergeben werden."
  55.    beep(444,100); beep(628,300)
  56.    signal ende
  57. end
  58.  
  59. /****************************************************************************/
  60.  
  61. /* Zeile 01, Spalten 01 bis 20 */
  62. n0101 = 1
  63. n0102 = 2
  64. n0103 = 3
  65. n0104 = 4
  66. n0105 = 5
  67. n0106 = 6
  68. n0107 = 7
  69. n0108 = 8
  70. n0109 = 9
  71. n0110 =10
  72. n0111 = 1
  73. n0112 =-9
  74. n0113 = 0
  75. n0114 = 4
  76. n0115 =-3
  77. n0116 = 6
  78. n0117 = 7
  79. n0118 = 8
  80. n0119 = 9
  81. n0120 = 0
  82.  
  83. /* Zeile 02, Spalten 01 bis 20 */
  84. n0201 = 4
  85. n0202 =-2
  86. n0203 =21
  87. n0204 =-5
  88. n0205 =45
  89. n0206 =31
  90. n0207 =-6
  91. n0208 =12
  92. n0209 =-4
  93. n0210 =-3
  94. n0211 = 3
  95. n0212 =-2
  96. n0213 = 0
  97. n0214 =-5
  98. n0215 =45
  99. n0216 =-31
  100. n0217 =-6
  101. n0218 = 0
  102. n0219 =-4
  103. n0220 =-3
  104.  
  105. /* Zeile 03, Spalten 01 bis 20 */
  106. n0301 = 5
  107. n0302 = 2
  108. n0303 = 7
  109. n0304 =19
  110. n0305 = 8
  111. n0306 =-4
  112. n0307 =3.5
  113. n0308 =17
  114. n0309 =13.1
  115. n0310 =11
  116. n0311 = 5
  117. n0312 = 2
  118. n0313 = 7
  119. n0314 =19
  120. n0315 = 8
  121. n0316 =-4
  122. n0317 =3.5
  123. n0318 =17
  124. n0319 =13.1
  125. n0320 =11
  126.  
  127. /* Zeile 04, Spalten 01 bis 20 */
  128. n0401 = 1
  129. n0402 = 2
  130. n0403 = 0
  131. n0404 = 9
  132. n0405 = 8
  133. n0406 = 24
  134. n0407 = 0
  135. n0408 = 13
  136. n0409 = -5
  137. n0410 = 4
  138. n0411 = 1
  139. n0412 =-2
  140. n0413 = 0
  141. n0414 = 91
  142. n0415 = 8
  143. n0416 = 24
  144. n0417 = 0
  145. n0418 = 13
  146. n0419 = 15
  147. n0420 = 82
  148.  
  149. /* Zeile 05, Spalten 01 bis 20 */
  150. n0501 = 3
  151. n0502 = 0
  152. n0503 = 2
  153. n0504 =-8
  154. n0505 = 5
  155. n0506 =18
  156. n0507 =-3
  157. n0508 = 4
  158. n0509 = 13
  159. n0510 = 3
  160. n0511 = 3
  161. n0512 = 0
  162. n0513 =-2
  163. n0514 =18
  164. n0515 = 5
  165. n0516 = 0
  166. n0517 =-3
  167. n0518 = 4
  168. n0519 = 1
  169. n0520 = 3
  170.  
  171. /* Zeile 06, Spalten 01 bis 20 */
  172. n0601 = 1
  173. n0602 = 2
  174. n0603 = 0
  175. n0604 = -9
  176. n0605 = 4
  177. n0606 = 4
  178. n0607 = 34
  179. n0608 = 6.23
  180. n0609 = -7
  181. n0610 = 12.7
  182. n0611 = 0
  183. n0612 = 2
  184. n0613 = 0
  185. n0614 = 9
  186. n0615 = 4
  187. n0616 = 3
  188. n0617 = 34
  189. n0618 = -1.3
  190. n0619 = -7
  191. n0620 = 2.7
  192.  
  193. /* Zeile 07, Spalten 01 bis 20 */
  194. n0701 = 1
  195. n0702 = 2
  196. n0703 = 3
  197. n0704 = 9
  198. n0705 =12
  199. n0706 = 2
  200. n0707 =74
  201. n0708 =13.2
  202. n0709 =-6
  203. n0710 =3.2
  204. n0711 = 3
  205. n0712 = 2
  206. n0713 = 2
  207. n0714 = 9
  208. n0715 =-2
  209. n0716 = 2
  210. n0717 =74
  211. n0718 =-3.2
  212. n0719 =16
  213. n0720 =4.2
  214.  
  215. /* Zeile 08, Spalten 01 bis 20 */
  216. n0801 = 3
  217. n0802 = 0
  218. n0803 =23
  219. n0804 = 9
  220. n0805 =11
  221. n0806 = 3
  222. n0807 =44
  223. n0808 =19
  224. n0809 =-34
  225. n0810 = 3.67
  226. n0811 = 0
  227. n0812 = 2
  228. n0813 =-3
  229. n0814 = 9
  230. n0815 =-1
  231. n0816 = 3
  232. n0817 =-4
  233. n0818 = 9
  234. n0819 = 64
  235. n0820 = 3.67
  236.  
  237. /* Zeile 09, Spalten 01 bis 20 */
  238. n0901 = 2
  239. n0902 = 1
  240. n0903 =23
  241. n0904 =4
  242. n0905 =51
  243. n0906 = 6
  244. n0907 =34
  245. n0908 =29
  246. n0909 =-5
  247. n0910 =9.02
  248. n0911 = 2
  249. n0912 = 1
  250. n0913 =23
  251. n0914 =4
  252. n0915 =51
  253. n0916 = 6
  254. n0917 =34
  255. n0918 =29
  256. n0919 =-5
  257. n0920 =9.02
  258.  
  259. /* Zeile 10, Spalten 01 bis 20 */
  260. n1001 = 14
  261. n1002 = 4
  262. n1003 = 1.67
  263. n1004 =-3
  264. n1005 = 4
  265. n1006 = 67
  266. n1007 = 1
  267. n1008 = 0
  268. n1009 = 1.4
  269. n1010 = 7
  270. n1011 = 14
  271. n1012 = 2
  272. n1013 = 1.67
  273. n1014 = 3
  274. n1015 = 4
  275. n1016 = 67
  276. n1017 =-1
  277. n1018 = 2
  278. n1019 =-0.4
  279. n1020 = 7
  280.  
  281. /* Zeile 11, Spalten 01 bis 20 */
  282. n1101 = 34
  283. n1102 = 4
  284. n1103 = 1.67
  285. n1104 =-3
  286. n1105 = 6
  287. n1106 = 67
  288. n1107 =-1
  289. n1108 = 0
  290. n1109 = 0.4
  291. n1110 = 7
  292. n1111 = 14
  293. n1112 = 2
  294. n1113 = 4.67
  295. n1114 = 6
  296. n1115 = 4
  297. n1116 = 67
  298. n1117 =-1
  299. n1118 = 28
  300. n1119 =-4.4
  301. n1120 = 7
  302.  
  303. /* Zeile 12, Spalten 01 bis 20 */
  304. n1201 = 14
  305. n1202 = 9
  306. n1203 = 1.67
  307. n1204 =-3
  308. n1205 = 9
  309. n1206 = 7
  310. n1207 =-1
  311. n1208 = 6
  312. n1209 = 0.4
  313. n1210 = 0
  314. n1211 = 14
  315. n1212 = 0
  316. n1213 = 4.67
  317. n1214 = 3
  318. n1215 = 7
  319. n1216 = 8
  320. n1217 =-1
  321. n1218 = 2
  322. n1219 =-4.3
  323. n1220 = 2
  324.  
  325. /* Zeile 13, Spalten 01 bis 20 */
  326. n1301 = 94
  327. n1302 = 1
  328. n1303 = 1.67
  329. n1304 =-1
  330. n1305 = 2
  331. n1306 = 1
  332. n1307 =-1
  333. n1308 = 3
  334. n1309 = 0.4
  335. n1310 = 3
  336. n1311 = 4
  337. n1312 = 0
  338. n1313 = 1.67
  339. n1314 = 3
  340. n1315 = 2
  341. n1316 = 8
  342. n1317 =-2
  343. n1318 = 1
  344. n1319 =-1.3
  345. n1320 = 1
  346.  
  347. /* Zeile 14, Spalten 01 bis 20 */
  348. n1401 = 4
  349. n1402 = 2
  350. n1403 = 1.67
  351. n1404 =-1
  352. n1405 = 4
  353. n1406 = 5
  354. n1407 =-1
  355. n1408 = 3
  356. n1409 = 2.4
  357. n1410 =-3
  358. n1411 = 2
  359. n1412 = 0
  360. n1413 = 3.67
  361. n1414 = 2
  362. n1415 = 4
  363. n1416 = 1
  364. n1417 =-2
  365. n1418 = 2
  366. n1419 =-3.3
  367. n1420 = 2
  368.  
  369. /* Zeile 15, Spalten 01 bis 20 */
  370. n1501 = 1
  371. n1502 = 1
  372. n1503 = 2.67
  373. n1504 =-3
  374. n1505 = 2
  375. n1506 = 3
  376. n1507 =-2
  377. n1508 = 1
  378. n1509 = 1.4
  379. n1510 =-2
  380. n1511 = 3
  381. n1512 = 4
  382. n1513 = 0.67
  383. n1514 = 8
  384. n1515 = 0
  385. n1516 = 1
  386. n1517 =-2
  387. n1518 = 3
  388. n1519 =-6.3
  389. n1520 = 3
  390.  
  391. /* Zeile 16, Spalten 01 bis 20 */
  392. n1601 =-1
  393. n1602 = 2
  394. n1603 = 1.67
  395. n1604 =-1
  396. n1605 = 1
  397. n1606 = 2
  398. n1607 =-1
  399. n1608 = 0
  400. n1609 = 1.4
  401. n1610 =-3
  402. n1611 = 3
  403. n1612 = 1
  404. n1613 = 0.67
  405. n1614 = 2
  406. n1615 = 0
  407. n1616 = 1
  408. n1617 =-1
  409. n1618 = 2
  410. n1619 =-2.3
  411. n1620 = 1
  412.  
  413. /* Zeile 17, Spalten 01 bis 20 */
  414. n1701 =-2
  415. n1702 = 1
  416. n1703 = 0.67
  417. n1704 =-1
  418. n1705 = 2
  419. n1706 = 1
  420. n1707 =-2
  421. n1708 = 0
  422. n1709 = 2.4
  423. n1710 =-1
  424. n1711 = 2
  425. n1712 = 3
  426. n1713 = 0.67
  427. n1714 = 1
  428. n1715 = 0
  429. n1716 = 0
  430. n1717 =-1
  431. n1718 = 1
  432. n1719 =-1.3
  433. n1720 = 2
  434.  
  435. /* Zeile 18, Spalten 01 bis 20 */
  436. n1801 = 2
  437. n1802 =-1
  438. n1803 = 1.67
  439. n1804 =-2
  440. n1805 = 1
  441. n1806 = 0
  442. n1807 = 3
  443. n1808 = 0
  444. n1809 = 1.4
  445. n1810 =-2
  446. n1811 = 2
  447. n1812 = 0
  448. n1813 = 0.67
  449. n1814 = 1
  450. n1815 = 3
  451. n1816 = 0
  452. n1817 =-4
  453. n1818 = 2
  454. n1819 =-2.3
  455. n1820 = 1
  456.  
  457. /* Zeile 19, Spalten 01 bis 20 */
  458. n1901 = 7
  459. n1902 =-4
  460. n1903 = 2.67
  461. n1904 =-1
  462. n1905 = 2
  463. n1906 = 3
  464. n1907 = 3
  465. n1908 = 4
  466. n1909 = 0.4
  467. n1910 =-5
  468. n1911 = 2
  469. n1912 = 1
  470. n1913 = 1.27
  471. n1914 = 1
  472. n1915 = 2
  473. n1916 = 1
  474. n1917 =-3
  475. n1918 = 1
  476. n1919 =-1.3
  477. n1920 = 3
  478.  
  479. /* Zeile 20, Spalten 01 bis 20 */
  480. n2001 = 1
  481. n2002 =-2
  482. n2003 = 1.67
  483. n2004 =-3
  484. n2005 = 0
  485. n2006 = 2
  486. n2007 = 3
  487. n2008 = 1
  488. n2009 = 5.4
  489. n2010 =-4
  490. n2011 = 3
  491. n2012 = 1
  492. n2013 = 2.27
  493. n2014 = 0
  494. n2015 = 1
  495. n2016 = 5
  496. n2017 =-2
  497. n2018 = 3
  498. n2019 =-5.3
  499. n2020 = 2.3
  500.  
  501. /****************************************************************************/
  502.  
  503. Matrix20=(n0101 n0102 n0103 n0104 n0105 n0106 n0107 n0108 n0109 n0110,
  504.           n0111 n0112 n0113 n0114 n0115 n0116 n0117 n0118 n0119 n0120,
  505.           n0201 n0202 n0203 n0204 n0205 n0206 n0207 n0208 n0209 n0210,
  506.           n0211 n0212 n0213 n0214 n0215 n0216 n0217 n0218 n0219 n0220,
  507.           n0301 n0302 n0303 n0304 n0305 n0306 n0307 n0308 n0309 n0310,
  508.           n0311 n0312 n0313 n0314 n0315 n0316 n0317 n0318 n0319 n0320,
  509.           n0401 n0402 n0403 n0404 n0405 n0406 n0407 n0408 n0409 n0410,
  510.           n0411 n0412 n0413 n0414 n0415 n0416 n0417 n0418 n0419 n0420,
  511.           n0501 n0502 n0503 n0504 n0505 n0506 n0507 n0508 n0509 n0510,
  512.           n0511 n0512 n0513 n0514 n0515 n0516 n0517 n0518 n0519 n0520,
  513.           n0601 n0602 n0603 n0604 n0605 n0606 n0607 n0608 n0609 n0610,
  514.           n0611 n0612 n0613 n0614 n0615 n0616 n0617 n0618 n0619 n0620,
  515.           n0701 n0702 n0703 n0704 n0705 n0706 n0707 n0708 n0709 n0710,
  516.           n0711 n0712 n0713 n0714 n0715 n0716 n0717 n0718 n0719 n0720,
  517.           n0801 n0802 n0803 n0804 n0805 n0806 n0807 n0808 n0809 n0810,
  518.           n0811 n0812 n0813 n0814 n0815 n0816 n0817 n0818 n0819 n0820,
  519.           n0901 n0902 n0903 n0904 n0905 n0906 n0907 n0908 n0909 n0910,
  520.           n0911 n0912 n0913 n0914 n0915 n0916 n0917 n0918 n0919 n0920,
  521.           n1001 n1002 n1003 n1004 n1005 n1006 n1007 n1008 n1009 n1010,
  522.           n1011 n1012 n1013 n1014 n1015 n1016 n1017 n1018 n1019 n1020,
  523.           n1101 n1102 n1103 n1104 n1105 n1106 n1107 n1108 n1109 n1110,
  524.           n1111 n1112 n1113 n1114 n1115 n1116 n1117 n1118 n1119 n1120,
  525.           n1201 n1202 n1203 n1204 n1205 n1206 n1207 n1208 n1209 n1210,
  526.           n1211 n1212 n1213 n1214 n1215 n1216 n1217 n1218 n1219 n1220,
  527.           n1301 n1302 n1303 n1304 n1305 n1306 n1307 n1308 n1309 n1310,
  528.           n1311 n1312 n1313 n1314 n1315 n1316 n1317 n1318 n1319 n1320,
  529.           n1401 n1402 n1403 n1404 n1405 n1406 n1407 n1408 n1409 n1410,
  530.           n1411 n1412 n1413 n1414 n1415 n1416 n1417 n1418 n1419 n1420,
  531.           n1501 n1502 n1503 n1504 n1505 n1506 n1507 n1508 n1509 n1510,
  532.           n1511 n1512 n1513 n1514 n1515 n1516 n1517 n1518 n1519 n1520,
  533.           n1601 n1602 n1603 n1604 n1605 n1606 n1607 n1608 n1609 n1610,
  534.           n1611 n1612 n1613 n1614 n1615 n1616 n1617 n1618 n1619 n1620,
  535.           n1701 n1702 n1703 n1704 n1705 n1706 n1707 n1708 n1709 n1710,
  536.           n1711 n1712 n1713 n1714 n1715 n1716 n1717 n1718 n1719 n1720,
  537.           n1801 n1802 n1803 n1804 n1805 n1806 n1807 n1808 n1809 n1810,
  538.           n1811 n1812 n1813 n1814 n1815 n1816 n1817 n1818 n1819 n1820,
  539.           n1901 n1902 n1903 n1904 n1905 n1906 n1907 n1908 n1909 n1910,
  540.           n1911 n1912 n1913 n1914 n1915 n1916 n1917 n1918 n1919 n1920,
  541.           n2001 n2002 n2003 n2004 n2005 n2006 n2007 n2008 n2009 n2010,
  542.           n2011 n2012 n2013 n2014 n2015 n2016 n2017 n2018 n2019 n2020)
  543.  
  544. /****************************************************************************/
  545.  
  546. z=det( n  Matrix20)
  547. say
  548. call charout, "Det"n; call charout, " = "; say z
  549. say
  550. ende:
  551. EXIT
  552.