Télécharger temps.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : temps.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. * Presentation : Ce cas-test de Verification permet de tester les
  6. * differentes syntaxes de la directive / operateur TEMP
  7. * qui mesure des duree.
  8. *
  9. * Creation : 09/07/2015
  10. * Createur : C. BERTHINIER
  11. * Modification : 04/04/2019 -- Ajout de la mesure du temps dans les PROCEDURES et les BOUCLES
  12. *
  13. ************************************************************************
  14.  
  15. OPTI ELEM QUA4;
  16. x = prog 0. PAS 1. 2.E6;
  17. y = x + x;
  18.  
  19.  
  20. ************** TEMPS PASSE : IMPRESSION ECRAN ****************
  21.  
  22. * Simple message du temps passe
  23.  
  24. * Impression a l'ecran des valeurs des temps passes dans les operateurs
  25. TEMP 'IMPR';
  26.  
  27. * Impression resumee des valeurs des temps passes dans les operateurs
  28. * ordonne en sens decroissant
  29. TEMP 'IMPR' 'SOMM' 'CPU';
  30.  
  31.  
  32. ************** MEMOIRE ****************
  33.  
  34. * Impression a l'ecran de l'occupation memoire ESOPE
  35.  
  36. * Recuperation du nombre de segments actifs et taille correspondante
  37. A B = TEMP 'SGAC';
  38.  
  39. * Impression a l'ecran du nombre de segments laisses actifs apres les
  40. * passages dans les operateurs
  41. TEMP 'SGAC' 'IMPR';
  42.  
  43.  
  44. ************** TEMPS PASSE : RECUPERATION ****************
  45.  
  46. * Recuperation du temps passe dans un ENTier
  47. tcpu = TEMP 'ENTI' 'CPU';
  48. tclk = TEMP 'ENTI' 'HORLOGE';
  49. mess 'MESSAGE PERSO: temps HORLOGE =' tclk ' / temps CPU =' tcpu ;
  50.  
  51. * Recuperation dans une table de ces valeurs
  52. TAB1 = TEMP 'NOEC' ;
  53.  
  54. * Listage de tous les indices de la table devant exister
  55. LIST TAB1;
  56. LIST TAB1.'TEMPS_HORLOGE';
  57. LIST TAB1.'TEMPS_CPU' ;
  58. LIST TAB1.'APPELS' ;
  59. LIST TAB1.'EFFICACITE' ;
  60.  
  61. * Listage du nombre d'appels a OPTI (2 sur le MAITRE ==> ASSISTANT 0)
  62. LIST TAB1.'APPELS'.'OPTI';
  63.  
  64. * Verification pour ERREUR dans Cast3M
  65. OPTI ECHO 0;
  66. ENTI1 = EXTR TAB1.'APPELS'.'OPTI' 1;
  67. SI (NEG ENTI1 2);
  68. MESS 'Disfonctionnement dans l"operateur TEMP';
  69. MESS 'Valeur attendue :' 2 ' Valeur extraite :' ENTI1;
  70. ERRE 5;
  71. FINS;
  72. OPTI ECHO 1;
  73.  
  74.  
  75. ************** TEMPS PASSE : RAZ + RECUPERATION ****************
  76.  
  77. * Remise a zero du temps
  78. TAB1 = TEMP 'NOEC' ;
  79.  
  80. * Listage du nombre d'appels a TEMP (1 sur le MAITRE ==> ASSISTANT 0)
  81. LIST TAB1.'APPELS'.'TEMP';
  82.  
  83. * Verification pour ERREUR dans Cast3M
  84. OPTI ECHO 0;
  85. ENTI2 = EXTR TAB1.'APPELS'.'TEMP' 1;
  86. SI (NEG ENTI2 1);
  87. MESS 'Disfonctionnement dans l"operateur TEMP ZERO';
  88. MESS 'Valeur attendue :' 1 ' Valeur extraite :' ENTI2;
  89. ERRE 5;
  90. FINS;
  91. OPTI ECHO 1;
  92.  
  93.  
  94. ************** TEMPS PROCEDURES & BOUCLES ****************
  95.  
  96. * realisation de "FACTORIELLE N" en récursif avec des procedures
  97. DEBP FACTOR ENTI1*'ENTIER';
  98. SI(ENTI1 'EGA' 1);
  99. RES1=1;
  100. SINO;
  101. RES1=ENTI1*(FACTOR (ENTI1-1));
  102. FINS;
  103. FINP RES1;
  104.  
  105. * Boucles imbriquees qui invoque la procedure FACTOR (!IDEB)
  106. IDEB=20;
  107. REPE SURI 2 ;
  108. IRES=FACTOR IDEB;
  109. REPE SURJ 3 ;
  110. IRES=FACTOR IDEB;
  111. IRES=FACTOR IDEB;
  112. REPE SURK 4 ;
  113. IRES=FACTOR IDEB;
  114. IRES=FACTOR IDEB;
  115. IRES=FACTOR IDEB;
  116. REPE SURL 5 ;
  117. IRES=FACTOR IDEB;
  118. IRES=FACTOR IDEB;
  119. IRES=FACTOR IDEB;
  120. IRES=FACTOR IDEB;
  121. FIN SURL;
  122. FIN SURK;
  123. FIN SURJ;
  124. FIN SURI;
  125.  
  126. * Impression du temps
  127. 'TEMP' 'IMPR' 'PROC' 'HORL';
  128. 'TEMP' 'IMPR' 'BOUC' 'HORL';
  129.  
  130. * Fin du cas-test
  131. FIN;
  132.  
  133.  
  134.  

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