Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <time.h>
  6. #include <math.h>
  7.  
  8. #define N 2048
  9. #define PI 3.14159265
  10.  
  11. //funcao para obter f(a)
  12. double f(double q);
  13.  
  14. void main()
  15. {
  16.     int i, j, n;
  17.     float r = 0;
  18.     double M[N][3], x, y, Z, inc, a, b;
  19.     FILE *fp;
  20.  
  21.     //definindo a primeira coluna da matriz
  22.     srand(time(NULL));
  23.     for (i = 0; i < N; i++)
  24.     {
  25.         M[i][0] = r;
  26.         r = r + 0.05;
  27.     }
  28.  
  29.     //obtendo segunda coluna da matriz
  30.     for (i = 0; i < N; i++)
  31.     {
  32.         x = M[i][0];
  33.         y = f(x); //executando funcao p/ obter f(a)
  34.         M[i][1] = y;
  35.     }
  36.  
  37.     //obtendo terceira coluna da matriz
  38.     for (i = 0; i < N; i++)
  39.     {
  40.         b = M[i][0]; //definindo a
  41.         a = -1 * b; //definindo -a
  42.         n = 1000;
  43.         inc = (b - a) / n;
  44.         Z = 0;
  45.         //obtendo I(a) pela regra dos retangulos
  46.         for (j = 0; j < n; j++)
  47.         {
  48.             b = a + inc;
  49.             Z = Z + (b - a)*(f(a) + f(b)) / 2;
  50.             a = b;
  51.         }
  52.         M[i][2] = Z;
  53.     }
  54.  
  55.     //printando matriz
  56.     for (i = 0; i < N; i++)
  57.     {
  58.         printf("%f\n%f\n%f\n\n\n", M[i][0], M[i][1], M[i][2]);
  59.     }
  60.  
  61.     //criando arquivo
  62.     fp = fopen("ra14194054.dat", "w");
  63.     for (i = 0; i<N; i++)
  64.     {
  65.         fprintf(fp, "%f ", M[i][0]);
  66.         fprintf(fp, "  %f ", M[i][1]);
  67.         fprintf(fp, "  %f ", M[i][2]);
  68.         fprintf(fp, "\n");
  69.     }
  70.     fclose(fp);
  71.     system("pause");
  72. }
  73.  
  74. double f(double q)
  75. {
  76.     //obtendo f(a)
  77.     double y;
  78.     y = sin((PI * q)* PI / 180);
  79.     y = y / (PI * q);
  80.     return y;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement