Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. #define _CRT_SECURE_NO_DEPRECATE
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. #include<conio.h>
  6.  
  7.  
  8.  
  9. #define TMAX 1000
  10. #define DT 0.5
  11. #define NBPTS 2000
  12.  
  13. typedef struct
  14. {
  15. char comment[40];
  16. int nbpts;
  17. float time[4096];
  18. float value[4096];
  19. } trace;
  20.  
  21.  
  22. void simuTrace(int tmax, float dt, float params[], trace *uneTrace);
  23. void printTrace(trace uneTrace);
  24. void saveTraceBin(char *fileTrace, trace uneTrace);
  25. void readTrace(char *fileName, trace *uneTrace);
  26. float errorTrace(trace uneTrace1, trace uneTrace2);
  27.  
  28. int main()
  29. {
  30. float Pa[] = { 0.5, 0.01, 0.05 };
  31. float Pb[] = { 0.75, 0.3, 0.1 };
  32. float e1, e2;
  33. trace tracePa, tracePb, traceCell;
  34.  
  35. simuTrace(TMAX, DT, Pa, &tracePa);
  36. printTrace(tracePa);
  37. saveTraceBin("llogaritja1.txt", tracePa);
  38.  
  39. simuTrace(TMAX, DT, Pb, &tracePb);
  40. printTrace(tracePb);
  41. saveTraceBin("llogaritja2.txt", tracePb);
  42.  
  43. readTrace("cell.txt", &traceCell);
  44.  
  45. e1 = errorTrace(traceCell, tracePa);
  46. e2 = errorTrace(traceCell, tracePb);
  47.  
  48. printf("n Gabimi nga llogaritja me Pa : %.2f ", e1);
  49. printf("n Gabimi nga llogaritja me Pb : %.2f ", e2);
  50.  
  51. if (e1 < e2)
  52. printf("nn Rasti Pa eshte me i mire se rasti Pb n");
  53. else
  54. printf("nn Rasti Pb eshte me i mire se rasti Pa n");
  55.  
  56. _getch();
  57. }
  58.  
  59.  
  60. void simuTrace(int tmax, float dt, float params[], trace *uneTrace)
  61. {
  62. printf("nn Emertoni llogaritjen (pa hapesire ne mes!) : n");
  63. scanf("%s", &uneTrace->comment);
  64.  
  65. int i = 0;
  66.  
  67. float v = 0, w = 0, dv = 0, dw = 0, t = 0;
  68. float a = params[0], d = params[1], e = params[2];
  69.  
  70. while (t <= tmax)
  71. {
  72. dv = (a - v) * (v - 1) * v - w;
  73. dw = e * (0.5 * v - w - d);
  74. v += dv * dt;
  75. w += dw * dt;
  76. uneTrace->time[i] = t;
  77. uneTrace->value[i] = v;
  78. i++;
  79. t += dt;
  80. }
  81. uneTrace->nbpts = i;
  82. }
  83.  
  84.  
  85. void printTrace(trace uneTrace)
  86. {
  87. printf("%sn", uneTrace.comment);
  88. printf("t%dn", uneTrace.nbpts);
  89. for (int i = 0; i <= NBPTS; i++)
  90. {
  91.  
  92. printf(" n t= %.1f tv= %.4f n ", uneTrace.time[i], uneTrace.value[i]);
  93.  
  94. }
  95. }
  96.  
  97.  
  98. void saveTraceBin(char *fileTrace, trace uneTrace)
  99. {
  100. FILE *file;
  101. file = fopen(fileTrace, "w");
  102. if (fopen(fileTrace, "w") == NULL)
  103. {
  104. printf("n Nuk mund te shkruhet ne file! n");
  105. }
  106.  
  107. else
  108. {
  109. fprintf(file, "%sn", uneTrace.comment);
  110. fprintf(file, "%d", uneTrace.nbpts);
  111.  
  112. for (int i = 0; i <= NBPTS; i++)
  113. {
  114. fprintf(file, "n %.2f %.4f", uneTrace.time[i], uneTrace.value[i]);
  115. }
  116.  
  117. fclose(file);
  118. }
  119. }
  120.  
  121.  
  122. void readTrace(char *fileName, trace *uneTrace)
  123. {
  124.  
  125. FILE*file;
  126. file = fopen(fileName, "r");
  127. if (file != NULL)
  128. {
  129. fscanf(file, "%s", uneTrace->comment);
  130. fscanf(file, "%d", uneTrace->nbpts);
  131.  
  132. for (int i = 0; i <= NBPTS; i++)
  133. {
  134.  
  135. fscanf(file, "%f", &(uneTrace->time[i]));
  136. fscanf(file, "%f", &(uneTrace->value[i]));
  137. }
  138. printf("n File i matjeve '%s' u lexua! n", &uneTrace->comment);
  139. }
  140.  
  141. else
  142. {
  143. printf("n File i matjeve nuk gjendet! n");
  144. }
  145.  
  146. fclose(file);
  147. }
  148.  
  149.  
  150. float errorTrace(trace uneTrace1, trace uneTrace2)
  151. {
  152. float sum = 0;
  153. for (int i = 0; i <= NBPTS; i++)
  154. {
  155. sum += (uneTrace1.value[i] - uneTrace2.value[i]);
  156. }
  157. sum /= NBPTS;
  158. return sqrt(fabs(sum));
  159. }
  160.  
  161. typedef struct
  162. {
  163. char comment[40];
  164. int nbpts;
  165. float *time;
  166. float *value;
  167. } trace;
  168.  
  169. ....fscanf(file, "%d", uneTrace->nbpts);
  170.  
  171. uneTrace -> time = (float *) malloc (uneTrace -> NBPTS * sizeof (float));
  172. uneTrace -> value = (float *) malloc (uneTrace -> NBPTS * sizeof (float));
  173.  
  174. for (int i = 0; i <= NBPTS; i++).....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement