Below is the solution for Algorithm Problem 1
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define PI 3.14159265358979323846 float compute_comman_area(double r0,double r1,double x0,double y0,double x1,double y1){ double c,CBA,CAB,CBD,CAD,Area; //length c = sqrt(pow((x1-x0),2) + pow((y1-y0),2)); //IN RADIANS CBA = (acos((pow(r1,2) + pow(c,2) - pow(r0,2))/(2*r1*c))); CAB = (acos((pow(r0,2) + pow(c,2) - pow(r1,2))/(2*r0*c))); CBD = 2*CBA; CAD = 2*CAB; Area = (CBD*pow(r1,2) - pow(r1,2)*sin(CBD) + CAD*pow(r0,2) - pow(r0,2)*sin(CAD))/2; printf("%lf", CBA); return Area; } int main(){ double r1=10,r0=10,x0=0,y0=0,x1=0,y1=10, Area, Area0; //getting input /*printf("Enter the radius of the first circle\nand the centre point"); scanf("%lf%lf%lf",&r0,&x0,&y0); printf("Enter the radius of the first circle\nand the centre point"); scanf("%lf%lf%lf",&r1,&x1,&y1);*/ //calling function to compute area Area0 = PI * pow(r0, 2) + PI * pow(r1, 2); Area = Area0 - compute_comman_area(r0,r1,x0,y0,x1,y1); //printing the area printf("The area thus computed is:%lf",Area); return 0; }
You can download the source file here.