Télécharger conversion_enti.dgibi

Retour à la liste

Numérotation des lignes :

  1. ************************************************************************
  2. ************************************************************************
  3. ************************************************************************
  4. * NOM : conversion_enti.dgibi
  5. *
  6. * DESCRIPTION : Comparaison entre les differentes fonctions pour
  7. * convertir un reel en entier
  8. *
  9. * MOTS-CLÉS : troncature,partie entiere,arrondi,proche,floor,ceiling,
  10. * plancher,plafond,round
  11. *
  12. ************************************************************************
  13. * HISTORIQUE : 18/12/2014 : JCARDO : creation du jeu de données
  14. * HISTORIQUE :
  15. * HISTORIQUE :
  16. ************************************************************************
  17. * Prière de PRENDRE LE TEMPS DE COMPLÉTER LES COMMENTAIRES
  18. * en cas de modification de ce cas test afin de faciliter
  19. * la maintenance !
  20. ************************************************************************
  21.  
  22. OPTI 'ECHO' 0 ;
  23.  
  24.  
  25. * GRAINE ALEATOIRE
  26. SEED1 = 235 ;
  27.  
  28. * NOMBRE DE VALEURS DANS LES LISTES ALEATOIRES
  29. NB1 = 1000 ;
  30. * NOMBRE D'ELEMENTS PAR COTE DU CUBE
  31. NB2 = 5 ;
  32.  
  33. * TRACER LES RESULTATS ?
  34. GRAPH = VRAI ;
  35. OPTI 'TRAC' 'PSC' ;
  36.  
  37.  
  38.  
  39. * boucle sur les options
  40. LOPTI = MOTS 'TRON' 'INFE' 'SUPE' 'PROC' ;
  41. NOPTI = DIME LOPTI ;
  42. REPE BLOC1 NOPTI ;
  43. MOPTI = EXTR LOPTI &BLOC1 ;
  44.  
  45. SI (EGA MOPTI 'TRON') ;
  46. EMIN1 = -1 ;
  47. EMAX1 = 1 ;
  48. FINS ;
  49. SI (EGA MOPTI 'INFE') ;
  50. EMIN1 = -1 ;
  51. EMAX1 = 0 ;
  52. FINS ;
  53. SI (EGA MOPTI 'SUPE') ;
  54. EMIN1 = 0 ;
  55. EMAX1 = 1 ;
  56. FINS ;
  57. SI (EGA MOPTI 'PROC') ;
  58. EMIN1 = -0.5 ;
  59. EMAX1 = 0.5 ;
  60. FINS ;
  61.  
  62. SAUT 3 'LIGNES' ;
  63. MESS '+----------------------------------+' ;
  64. MESS '| |' ;
  65. MESS '| O P T I O N " ' MOPTI ' " |' ;
  66. MESS '| |' ;
  67. MESS '+----------------------------------+' ;
  68.  
  69.  
  70.  
  71.  
  72. * ===============================
  73. * TEST 1 POUR LES OBJETS LISTREEL
  74. * ===============================
  75.  
  76. SAUT 1 'LIGNE' ;
  77. MESS 'TEST 1 LISTREEL' ;
  78. MESS '===============' ;
  79.  
  80. LREE1 = BRUI 'BLAN' 'UNIF' 0 100 NB1 SEED1 ;
  81. LENT1 = ENTI MOPTI LREE1 ;
  82.  
  83. LECA1 = LENT1 - LREE1 ;
  84. EMIN2 = MINI LECA1 ;
  85. EMAX2 = MAXI LECA1 ;
  86.  
  87. MESS (CHAI 'MINI{ (ENTI "' MOPTI '" LREE1) - LREE1 } = ' EMIN2) ;
  88. MESS (CHAI 'MAXI{ (ENTI "' MOPTI '" LREE1) - LREE1 } = ' EMAX2) ;
  89.  
  90. SI GRAPH ;
  91. EVOL1 = EVOL 'ROUG' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  92. LECA1 ;
  93. EVOL2 = EVOL 'VERT' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  94. (PROG (DIME LREE1)*0.5) ;
  95. EVOL3 = EVOL 'VERT' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  96. (PROG (DIME LREE1)*-0.5) ;
  97. EVOL4 = EVOL 'BLEU' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  98. (PROG (DIME LREE1)*1.) ;
  99. EVOL5 = EVOL 'BLEU' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  100. (PROG (DIME LREE1)*-1.) ;
  101. EVOL6 = EVOL 'BLAN' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE1))
  102. (PROG (DIME LREE1)*0.) ;
  103. DESS (EVOL1 ET EVOL2 ET EVOL3 ET EVOL4 ET EVOL5 ET EVOL6)
  104. 'TITR' (CHAI '(ENTI "' MOPTI '" LREE1) - LREE1')
  105. 'TITY' 'Ecart absolu'
  106. 'YBOR' -1.5 1.5 'YGRA' 0.5 ;
  107. FINS ;
  108.  
  109. ********* VALIDATION *********
  110. SI ((EMAX2 >EG EMAX1) OU (EMIN2 <EG EMIN1)) ;
  111. ERRE 5 ;
  112. FINS ;
  113. ******************************
  114.  
  115.  
  116.  
  117.  
  118. * ===============================
  119. * TEST 2 POUR LES OBJETS LISTREEL
  120. * ===============================
  121.  
  122. SAUT 1 'LIGNE' ;
  123. MESS 'TEST 2 LISTREEL' ;
  124. MESS '===============' ;
  125.  
  126. LREE2 = PROG 0.5 'PAS' 1. 'NPAS' NB1 ;
  127. LENT2 = ENTI MOPTI LREE2 ;
  128.  
  129. LECA2 = LENT2 - LREE2 ;
  130. EMIN2 = MINI LECA2 ;
  131. EMAX2 = MAXI LECA2 ;
  132.  
  133. MESS (CHAI 'MINI{ (ENTI "' MOPTI '" LREE2) - LREE2 } = ' EMIN2) ;
  134. MESS (CHAI 'MAXI{ (ENTI "' MOPTI '" LREE2) - LREE2 } = ' EMAX2) ;
  135.  
  136. * SI GRAPH ;
  137. * EVOL1 = EVOL 'ROUG' 'MANU' (PROG 1. 'PAS' 1. (DIME LREE2)) LECA2 ;
  138. * DESS EVOL1 'TITR' (CHAI '(ENTI "' MOPTI '" LREE2) - LREE2')
  139. * 'TITY' 'Ecart absolu' ;
  140. * FINS ;
  141.  
  142. ********* VALIDATION *********
  143. SI (EGA MOPTI 'TRON') ;
  144. EMIN1 = -1 ;
  145. EMAX1 = 1 ;
  146. EVAL1 = -0.5 ;
  147. FINS ;
  148. SI (EGA MOPTI 'INFE') ;
  149. EMIN1 = -1 ;
  150. EMAX1 = 0 ;
  151. EVAL1 = -0.5 ;
  152. FINS ;
  153. SI (EGA MOPTI 'SUPE') ;
  154. EMIN1 = 0 ;
  155. EMAX1 = 1 ;
  156. EVAL1 = 0.5 ;
  157. FINS ;
  158. SI (EGA MOPTI 'PROC') ;
  159. EMIN1 = -0.5 ;
  160. EMAX1 = 0.5 ;
  161. EVAL1 = 0.5 ;
  162. FINS ;
  163.  
  164. SI ((EMAX2 NEG EVAL1 1.E-7) OU (EMIN2 NEG EVAL1 1.E-7)) ;
  165. ERRE 5 ;
  166. FINS ;
  167. ******************************
  168.  
  169.  
  170.  
  171.  
  172. * ===========================
  173. * TEST POUR LES OBJETS ENTIER
  174. * ===========================
  175.  
  176. SAUT 1 'LIGNE' ;
  177. MESS 'TEST ENTIER' ;
  178. MESS '===========' ;
  179.  
  180. ENTI1 = SEED1 ;
  181. ENTI2 = ENTI ENTI1 ;
  182.  
  183. MESS (CHAI 'ENTI1 = ' ENTI1 ' (ENTI "' MOPTI '" ENTI1) = ' ENTI2) ;
  184.  
  185. ********* VALIDATION *********
  186. SI (NEG ENTI1 ENTI2) ;
  187. ERRE 5 ;
  188. FINS ;
  189. ******************************
  190.  
  191.  
  192.  
  193.  
  194. * =============================
  195. * TEST POUR LES OBJETS FLOTTANT
  196. * =============================
  197.  
  198. SAUT 1 'LIGNE' ;
  199. MESS 'TEST FLOTTANT' ;
  200. MESS '=============' ;
  201.  
  202. FLOT1 = EXTR LREE1 1 ;
  203. ENTI1 = ENTI MOPTI FLOT1 ;
  204.  
  205. MESS (CHAI 'FLOT1 = ' FLOT1 ' (ENTI "' MOPTI '" FLOT1) = ' ENTI1) ;
  206.  
  207. ********* VALIDATION *********
  208. ECAR1 = ENTI1 - FLOT1 ;
  209. SI ((ECAR1 <EG EMIN1) OU (ECAR1 >EG EMAX1)) ;
  210. ERRE 5 ;
  211. FINS ;
  212. ******************************
  213.  
  214.  
  215.  
  216. * ============================
  217. * TEST POUR LES OBJETS CHPOINT
  218. * ============================
  219.  
  220. SAUT 1 'LIGNE' ;
  221. MESS 'TEST CHPOINT' ;
  222. MESS '============' ;
  223.  
  224. OPTI 'DIME' 3 'ELEM' 'CUB8' ;
  225. MAIL2 = (0. 0. 0.) DROI NB2 (1. 0. 0.)
  226. TRAN NB2 (0. 1. 0.)
  227. VOLU 'TRAN' NB2 (0. 0. 0.5) ;
  228. MAIL3 = CHAN 'TET4' (MAIL2 PLUS (0. 0. 1.)) ;
  229. MAIL1 = MAIL2 ET MAIL3 ;
  230.  
  231. COMP1 = BRUI 'BLAN' 'UNIF' 0. 100. MAIL1 SEED1 ;
  232. COMP2 = BRUI 'BLAN' 'UNIF' 0. 100. MAIL1 SEED1 ;
  233. CHPO1 = (NOMC COMP1 'UX' 'NATURE' 'DISCRET') ET
  234. (NOMC COMP2 'UY' 'NATURE' 'DISCRET') ;
  235. CHPO2 = ENTI MOPTI CHPO1 ;
  236.  
  237. CECA1 = CHPO2 - CHPO1 ;
  238. EMIN2 = MINI CECA1 ;
  239. EMAX2 = MAXI CECA1 ;
  240.  
  241. MESS (CHAI 'MINI{ (ENTI "' MOPTI '" CHPO1) - CHPO1 } = ' EMIN2) ;
  242. MESS (CHAI 'MAXI{ (ENTI "' MOPTI '" CHPO1) - CHPO1 } = ' EMAX2) ;
  243.  
  244. SI GRAPH ;
  245. TRAC MAIL1 (EXCO CECA1 'UX')
  246. 'TITR' (CHAI '(ENTI "' MOPTI '" CHPO1) - CHPO1 (comp. UX)') ;
  247. TRAC MAIL1 (EXCO CECA1 'UY')
  248. 'TITR' (CHAI '(ENTI "' MOPTI '" CHPO1) - CHPO1 (comp. UY)') ;
  249. FINS ;
  250.  
  251. ********* VALIDATION *********
  252. SI ((EMAX2 >EG EMAX1) OU (EMIN2 <EG EMIN1)) ;
  253. ERRE 5 ;
  254. FINS ;
  255. ******************************
  256.  
  257.  
  258.  
  259.  
  260. * TEST 1 POUR LES OBJETS MOT
  261. * ==========================
  262.  
  263. SAUT 1 'LIGNE' ;
  264. MESS 'TEST 1 MOT' ;
  265. MESS '==========' ;
  266.  
  267. MOT1 = CHAI SEED1 ;
  268. ENTI1 = ENTI MOT1 ;
  269.  
  270. MESS (CHAI 'MOT1 = "' MOT1 '" '
  271. '10*(ENTI "' MOPTI '" MOT1) = ' (10*ENTI1)) ;
  272.  
  273. ********* VALIDATION *********
  274. SI (NEG ENTI1 SEED1) ;
  275. ERRE 5 ;
  276. FINS ;
  277. ******************************
  278.  
  279.  
  280.  
  281.  
  282. * TEST 2 POUR LES OBJETS MOT
  283. * ==========================
  284.  
  285. SAUT 1 'LIGNE' ;
  286. MESS 'TEST 2 MOT' ;
  287. MESS '==========' ;
  288.  
  289. MOT2 = '-2.98716E+2' ;
  290. ENTI2 = ENTI MOPTI MOT2 ;
  291.  
  292. MESS (CHAI 'MOT2 = "' MOT2 '" '
  293. '10*(ENTI "' MOPTI '" MOT2) = ' (10*ENTI2)) ;
  294.  
  295. ********* VALIDATION *********
  296. SI (EGA MOPTI 'TRON') ;
  297. ENTI20 = -298 ;
  298. FINS ;
  299. SI (EGA MOPTI 'INFE') ;
  300. ENTI20 = -299 ;
  301. FINS ;
  302. SI (EGA MOPTI 'SUPE') ;
  303. ENTI20 = -298 ;
  304. FINS ;
  305. SI (EGA MOPTI 'PROC') ;
  306. ENTI20 = -299 ;
  307. FINS ;
  308.  
  309. SI (NEG ENTI2 ENTI20) ;
  310. ERRE 5 ;
  311. FINS ;
  312. ******************************
  313.  
  314.  
  315.  
  316.  
  317. * TEST POUR LES OBJETS LISTMOTS
  318. * =============================
  319.  
  320. SAUT 1 'LIGNE' ;
  321. MESS 'TEST LISTMOTS' ;
  322. MESS '=============' ;
  323.  
  324. LMOT1 = MOTS '412' '5.98' '1.E2' '-9.3' '10.5' ;
  325. LENT1 = ENTI MOPTI LMOT1 ;
  326.  
  327. REPE BLOC2 (DIME LMOT1) ;
  328. MESS (CHAI 'LMOT1[' &BLOC2 '] = "' (EXTR LMOT1 &BLOC2) '" '
  329. '10*(ENTI "' MOPTI '" LMOT1[' &BLOC2 ']) = '
  330. (10*(EXTR LENT1 &BLOC2))) ;
  331. FIN BLOC2 ;
  332.  
  333. ********* VALIDATION *********
  334. SI (EGA MOPTI 'TRON') ;
  335. LENT10 = LECT 412 5 100 -9 10 ;
  336. FINS ;
  337. SI (EGA MOPTI 'INFE') ;
  338. LENT10 = LECT 412 5 100 -10 10 ;
  339. FINS ;
  340. SI (EGA MOPTI 'SUPE') ;
  341. LENT10 = LECT 412 6 100 -9 11 ;
  342. FINS ;
  343. SI (EGA MOPTI 'PROC') ;
  344. LENT10 = LECT 412 6 100 -9 11 ;
  345. FINS ;
  346.  
  347. SI ((MAXI 'ABS' (LENT10 - LENT1)) NEG 0) ;
  348. ERRE 5 ;
  349. FINS ;
  350. ******************************
  351.  
  352.  
  353.  
  354.  
  355. FIN BLOC1 ;
  356.  
  357.  
  358. ********************************************************
  359. * Visualisation des 4 fonctions : TRON, INFE, SUPE, PROC
  360. ********************************************************
  361. SI GRAPH ;
  362. LX = PROG -3. 'PAS' 0.001 3. ;
  363. LY1 = ENTI LX ;
  364. LY2 = ENTI 'INFERIEUR' LX ;
  365. LY3 = ENTI 'SUPERIEUR' LX ;
  366. LY4 = ENTI 'PROCHE' LX ;
  367. LY5 = LX ;
  368. EVOL1 = EVOL 'VERT' 'MANU' LX (FLOT LY1) ;
  369. EVOL2 = EVOL 'ROUG' 'MANU' LX (FLOT LY2) ;
  370. EVOL3 = EVOL 'BLEU' 'MANU' LX (FLOT LY3) ;
  371. EVOL4 = EVOL 'ORAN' 'MANU' LX (FLOT LY4) ;
  372. EVOL5 = EVOL 'BLAN' 'MANU' LX LY5 ;
  373. TAB1 = TABL ;
  374. TAB1 . 'TITRE' = TABL ;
  375. TAB1 . 'TITRE' . 1 = MOT 'Y=TRONCATURE(X)' ;
  376. TAB1 . 'TITRE' . 2 = MOT 'Y=INFERIEUR(X)' ;
  377. TAB1 . 'TITRE' . 3 = MOT 'Y=SUPERIEUR(X)' ;
  378. TAB1 . 'TITRE' . 4 = MOT 'Y=PROCHE(X)' ;
  379. TAB1 . 'TITRE' . 5 = MOT 'Y=X' ;
  380. TAB1 . 2 = 'TIRR' ;
  381. TAB1 . 3 = 'TIRR' ;
  382. TAB1 . 5 = 'TIRL' ;
  383. DESS (EVOL1 ET EVOL2 ET EVOL3 ET EVOL4 ET EVOL5)
  384. 'TITX' 'X' 'TITY' 'Y' 'LEGE' TAB1
  385. 'XBOR' -3.5 3.5 'XGRA' 0.5
  386. 'YBOR' -4. 4. 'YGRA' 1. ;
  387. FINS ;
  388. ********************************************************
  389.  
  390.  
  391.  
  392. * OPTI 'ECHO' 1 'TRAC' 'X' 'DONN' 5;
  393.  
  394. FIN ;
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales