Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- double compute(double x, double arr[], int size)
- {
- int i;
- double value = 0.0;
- for(i = 0; i < size; i++)
- {
- value += (arr[i]*pow(x, i));
- }
- return value;
- }
- int begin;
- int end;
- int increment;
- int low;
- int high;
- int size;
- double area;
- double width;
- double x1, x2, height;
- double rec2(int start, int end, double width, double arr[], int size)
- {
- if(start- end == 0)
- {
- return 0;
- }
- if(start - end == -1)
- {
- x1 = low+(start) * width;
- x2 = low + end * width;
- height = compute((x1 + x2)/2.0, arr, size);
- return height * width;
- }
- int mid = ((start+ end) / 2);
- area = rec2(start, mid, width, arr, size) + rec2(mid, end, width,arr, size);
- return area;
- }
- void rec1(double arr[], int size)
- {
- if(begin >= end)
- {
- return;
- }
- width = (double)(high-low) / begin * 1.0;
- area = 0.0;
- double v = rec2(0,begin, width, arr, size);
- printf("%d \t %lf\n", begin, v);
- begin += increment;
- return rec1(arr, size);
- }
- void print_polynomial(int argc, char **argv, int i)
- {
- if(i < argc - 2)
- {
- printf(" %lf x^%d + ", atof (argv[i]), argc - i - 1);
- print_polynomial(argc, argv, i + 1);
- }
- else if(i == argc - 1)
- {
- printf(" + %lf", atof (argv[i]));
- return;
- }
- else if(i == argc - 2)
- {
- printf(" %lfx ", atof (argv[i]));
- print_polynomial(argc, argv, i + 1 );
- }
- else
- {
- printf("Uhhhh something broke! Sorry :(");
- return;
- }
- }
- int main(int argc, char **argv)
- {
- //this part is to pass only the numbers needed for the polynomial
- int i = 6;
- printf("p(x) = ");
- print_polynomial(argc,argv, i);
- begin = atof(argv[1]);
- end = atof(argv[2]);
- increment = atof(argv[3]);
- low = atof(argv[4]);
- high = atof(argv[5]);
- int size = argc - 6;
- double arr[size];
- for(int i = 0; i < size; i++)
- {
- arr[size-i-1] = atof(argv[i+6]);
- }
- area = 0.0;
- width = 0.0;
- rec1(arr, size);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement