Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_DEPRECATE
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- #include<conio.h>
- #define TMAX 1000
- #define DT 0.5
- #define NBPTS 2000
- typedef struct
- {
- char comment[40];
- int nbpts;
- float time[4096];
- float value[4096];
- } trace;
- void simuTrace(int tmax, float dt, float params[], trace *uneTrace);
- void printTrace(trace uneTrace);
- void saveTraceBin(char *fileTrace, trace uneTrace);
- void readTrace(char *fileName, trace *uneTrace);
- float errorTrace(trace uneTrace1, trace uneTrace2);
- int main()
- {
- float Pa[] = { 0.5, 0.01, 0.05 };
- float Pb[] = { 0.75, 0.3, 0.1 };
- float e1, e2;
- trace tracePa, tracePb, traceCell;
- simuTrace(TMAX, DT, Pa, &tracePa);
- printTrace(tracePa);
- saveTraceBin("llogaritja1.txt", tracePa);
- simuTrace(TMAX, DT, Pb, &tracePb);
- printTrace(tracePb);
- saveTraceBin("llogaritja2.txt", tracePb);
- readTrace("cell.txt", &traceCell);
- e1 = errorTrace(traceCell, tracePa);
- e2 = errorTrace(traceCell, tracePb);
- printf("n Gabimi nga llogaritja me Pa : %.2f ", e1);
- printf("n Gabimi nga llogaritja me Pb : %.2f ", e2);
- if (e1 < e2)
- printf("nn Rasti Pa eshte me i mire se rasti Pb n");
- else
- printf("nn Rasti Pb eshte me i mire se rasti Pa n");
- _getch();
- }
- void simuTrace(int tmax, float dt, float params[], trace *uneTrace)
- {
- printf("nn Emertoni llogaritjen (pa hapesire ne mes!) : n");
- scanf("%s", &uneTrace->comment);
- int i = 0;
- float v = 0, w = 0, dv = 0, dw = 0, t = 0;
- float a = params[0], d = params[1], e = params[2];
- while (t <= tmax)
- {
- dv = (a - v) * (v - 1) * v - w;
- dw = e * (0.5 * v - w - d);
- v += dv * dt;
- w += dw * dt;
- uneTrace->time[i] = t;
- uneTrace->value[i] = v;
- i++;
- t += dt;
- }
- uneTrace->nbpts = i;
- }
- void printTrace(trace uneTrace)
- {
- printf("%sn", uneTrace.comment);
- printf("t%dn", uneTrace.nbpts);
- for (int i = 0; i <= NBPTS; i++)
- {
- printf(" n t= %.1f tv= %.4f n ", uneTrace.time[i], uneTrace.value[i]);
- }
- }
- void saveTraceBin(char *fileTrace, trace uneTrace)
- {
- FILE *file;
- file = fopen(fileTrace, "w");
- if (fopen(fileTrace, "w") == NULL)
- {
- printf("n Nuk mund te shkruhet ne file! n");
- }
- else
- {
- fprintf(file, "%sn", uneTrace.comment);
- fprintf(file, "%d", uneTrace.nbpts);
- for (int i = 0; i <= NBPTS; i++)
- {
- fprintf(file, "n %.2f %.4f", uneTrace.time[i], uneTrace.value[i]);
- }
- fclose(file);
- }
- }
- void readTrace(char *fileName, trace *uneTrace)
- {
- FILE*file;
- file = fopen(fileName, "r");
- if (file != NULL)
- {
- fscanf(file, "%s", uneTrace->comment);
- fscanf(file, "%d", uneTrace->nbpts);
- for (int i = 0; i <= NBPTS; i++)
- {
- fscanf(file, "%f", &(uneTrace->time[i]));
- fscanf(file, "%f", &(uneTrace->value[i]));
- }
- printf("n File i matjeve '%s' u lexua! n", &uneTrace->comment);
- }
- else
- {
- printf("n File i matjeve nuk gjendet! n");
- }
- fclose(file);
- }
- float errorTrace(trace uneTrace1, trace uneTrace2)
- {
- float sum = 0;
- for (int i = 0; i <= NBPTS; i++)
- {
- sum += (uneTrace1.value[i] - uneTrace2.value[i]);
- }
- sum /= NBPTS;
- return sqrt(fabs(sum));
- }
- typedef struct
- {
- char comment[40];
- int nbpts;
- float *time;
- float *value;
- } trace;
- ....fscanf(file, "%d", uneTrace->nbpts);
- uneTrace -> time = (float *) malloc (uneTrace -> NBPTS * sizeof (float));
- uneTrace -> value = (float *) malloc (uneTrace -> NBPTS * sizeof (float));
- for (int i = 0; i <= NBPTS; i++).....
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement