Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №31.doc
Скачиваний:
15
Добавлен:
01.05.2014
Размер:
171.52 Кб
Скачать

Test_sub.C

Расставим метки в тексте программы. Получим:

  1. #include "inc\Sampler.h"

  2. const unsigned Size = 1000;

  3. void TestLoop(int nTimes)

  4. {

  5. static int TestDim[Size];

  6. int tmp;

  7. int iLoop;

  8. while (nTimes > 0)

  9. {

  10. nTimes --;

  11. iLoop = Size;

  12. while (iLoop > 0)

  13. {

  14. iLoop -- ;

  15. tmp = TestDim[0];

  16. TestDim[0] = TestDim[nTimes];

  17. TestDim[nTimes] = tmp;

  18. }}}

  19. void main()

  20. {

  21. SAMPLE;

  22. TestLoop(Size / 10);

  23. SAMPLE;

  24. TestLoop(Size / 5);

  25. SAMPLE;

  26. TestLoop(Size / 2);

  27. SAMPLE;

  28. TestLoop(Size / 1);

  29. SAMPLE;

  30. }

Список обработанных файлов.

----------------------------------------------------------------------

NN Имя обработанного файла

----------------------------------------------------------------------

1. TEST_SUB.CPP

----------------------------------------------------------------------

Таблица с результатами измерений ( используется 5 из 416 записей )

----------------------------------------------------------------------

Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)

----------------------------------------------------------------------

1 : 21 1 : 23 528.00 1 528.00

----------------------------------------------------------------------

1 : 23 1 : 25 1101.26 1 1101.26

----------------------------------------------------------------------

1 : 25 1 : 27 2680.23 1 2680.23

----------------------------------------------------------------------

1 : 27 1 : 29 5456.01 1 5456.01

Вывод: при возрастании значения аргумента процедуры TestLoop() увеличивается и время выполнения процедуры (практически пропорционально).

Выполнение программ из л.Р. 1 Программа на Си Измерение полного времени выполнения программы

Программа:

  1. #include <math.h>

  2. #include <conio.h>

  3. #include <stdio.h>

  4. #include <stdlib.h>

  5. #include "inc\sampler.h"

  6. const int count = 3;

  7. float x,er,ec;

  8. int done;

  9. float erf(float x)

  10. {

  11. const sqrtpi = 1.7724538,

  12. tol = 1.0E-4;

  13. float x2,sum,sum1,term;

  14. int k,i;

  15. x2 = x*x;

  16. sum=x;

  17. term=x;

  18. for(i=0; term<tol*sum; i++) {

  19. sum1=sum;

  20. term=2.0*term*x2/(1.0+2.0*i);

  21. sum=term+sum1;

  22. }

  23. return (2*sum*exp(-x2)/sqrtpi);

  24. }

  25. float erfc( float x )

  26. {

  27. const sqrtpi = 1.7724538;

  28. float terms = 12;

  29. float x2,u,v,sum ;

  30. int i;

  31. x2=x*x;

  32. v=1.0/(2.0*x2);

  33. u=1.0+v*(terms+1.0);

  34. for(i=terms; i>1; i--) {

  35. sum=1.0+i*v/u;

  36. u=sum;

  37. }

  38. return(exp(-x2)/(x*sum*sqrtpi));

  39. }

  40. void main()

  41. {

  42. SAMPLE;

  43. int k;

  44. done=0;

  45. printf("\n");

  46. randomize();

  47. for(k=0; k<count; k++) {

  48. //printf("Arg? ");

  49. //scanf("%f",&x);

  50. x=random(k)/100;

  51. if( x < 0.0 ) { done = 1; }

  52. else

  53. {

  54. if (x==0.0 )

  55. {

  56. er=0.0;

  57. ec=1.0;

  58. }

  59. else

  60. {

  61. if( x<1.5)

  62. {

  63. er=erf(x);

  64. ec=1.0-er;

  65. }

  66. else

  67. {

  68. ec=erfc(x);

  69. er=1.0-ec;

  70. }

  71. }

  72. }

  73. SAMPLE;

  74. }

  75. }

Результат профилирования:

Список обработанных файлов.

----------------------------------------------------------------------

NN Имя обработанного файла

----------------------------------------------------------------------

1. MY20.CPP

----------------------------------------------------------------------

Таблица с результатами измерений ( используется 2 из 416 записей )

----------------------------------------------------------------------

Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)

----------------------------------------------------------------------

1 : 42 1 : 73 23.63 1 23.63

----------------------------------------------------------------------