0% found this document useful (0 votes)
22 views4 pages

Fuzzy Operations

The document contains C code to perform operations on fuzzy sets including union, intersection, complement, algebraic sum, algebraic product and cartesian product. It defines a fuzzy struct to store the numerator and denominator of fuzzy set elements and functions to get user input for sets, print sets, and perform the various operations.

Uploaded by

Yasin Pathan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views4 pages

Fuzzy Operations

The document contains C code to perform operations on fuzzy sets including union, intersection, complement, algebraic sum, algebraic product and cartesian product. It defines a fuzzy struct to store the numerator and denominator of fuzzy set elements and functions to get user input for sets, print sets, and perform the various operations.

Uploaded by

Yasin Pathan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

#include<stdio.

h>
#include<stdlib.h>
typedef struct SET
{
float nr[10];
float dr[10];
int n;
}fuzzy;

fuzzy *getval(fuzzy *m,int ch,char *x)


{
int i;
float f,g;
m=(fuzzy*)malloc(sizeof(fuzzy*));
m->n=ch;
printf("\n enter the set %s",x);
for(i=0;i<m->n;i++)
{
printf("numerator element %d",i+1);
scanf("%f",&f);
m->nr[i]=f;
printf("denominator element %d",i+1);
scanf("%f",&g);
m->dr[i]=g;
}
return(m);
}

void printval(fuzzy *m,char *x)


{
int i;
float f;
printf("\n The set %s=(",x);
for(i=0;i<m->n;i++)
{
printf("%6.1f / %6.1f",m->nr[i],m->dr[i]);
if(i!=m->n-1)
printf(",");
}
printf(")");
}

fuzzy *unionset(fuzzy *a,fuzzy *b)


{
fuzzy *temp;
temp=(fuzzy*)malloc(sizeof(fuzzy*));
char ch;
int i;
temp->n=a->n;
for(i=0;i<a->n;i++)
{
if(a->dr[i]==b->dr[i])
{
if(a->nr[i]>=b->nr[i])
temp->nr[i]=a->nr[i];
else
temp->nr[i]=b->nr[i];
temp->dr[i]=a->dr[i];
}

}
return temp;
}

fuzzy *intersectionset(fuzzy *a,fuzzy *b)


{
fuzzy *temp;
temp=(fuzzy*)malloc(sizeof(fuzzy*));
char ch;
int i;
temp->n=a->n;
for(i=0;i<a->n;i++)
{
if(a->dr[i]==b->dr[i])
{
if(a->nr[i]<=b->nr[i])
temp->nr[i]=a->nr[i];
else
temp->nr[i]=b->nr[i];
temp->dr[i]=a->dr[i];
}

}
return temp;
}

fuzzy *complement(fuzzy *a)


{
fuzzy *temp;
temp=(fuzzy*)malloc(sizeof(fuzzy*));
int i;
temp->n=a->n;
for(i=0;i<a->n;i++)
{
temp->nr[i]=1-(a->nr[i]);
temp->dr[i]=a->dr[i];
}
return temp;
}
fuzzy *algebraic_product(fuzzy *a,fuzzy *b)
{
fuzzy *temp;
temp=(fuzzy*)malloc(sizeof(fuzzy*));
int i;
temp->n=a->n;
for(i=0;i<a->n;i++)
{
temp->nr[i]=a->nr[i]*b->nr[i];
temp->dr[i]=a->dr[i];
}
return temp;
}

fuzzy *algebraic_sum(fuzzy *a,fuzzy *b)


{
fuzzy *temp;
int i;
temp->n=a->n;
for(i=0;i<a->n;i++)
{
temp->nr[i]=(a->nr[i]+b->nr[i])-(a->nr[i]*b->nr[i]);
temp->dr[i]=a->dr[i];
}
return temp;
}

void cartesian_product(fuzzy *a,fuzzy *b)


{
float prod[10][10];
int j;
for(i=0;i<a->n;i++)
{
for(j=0;j<b->n;j++)
{
if(a->nr[i]<b->nr[j])
prod[i][j]=a->nr[i];
else
prod[i][j]=b->nr[i];
printf("%d\t",prod[i][j]);
}
printf("\n");
}

}
void main()
{
fuzzy *a=NULL;
fuzzy *b=NULL;
fuzzy *result1,*result2,*result3;
int c,ch;
printf("\n enter the no.of components");
scanf("%d",&c);

a=getval(a,c,"A");
b=getval(b,c,"B");
printval(a,"A");
printval(b,"B");
do
{
printf("\n 1.Union \n 2.Intersection \n 3.Complement \n 4.Algebraic sum
\n 5.Algebraic Product \n 6.Cartesian Product");
printf("\n enter your choice");
scanf("%d",&ch);
switch(ch)
{
case 1: result=unionset(a,b);
printval(result,"C");
break;
case 2: result=intersectionset(a,b);
printval(result,"D");
break;
case 3: result=complement(a);
printval(result3,"E");
break;
case 4: result=algebraic_sum(a,b);
printval(result,"F");
break;
case 5: result=algebraic_product(a,b);
printval(result,"G");
break;
case 6: result=cartesian_product(a,b);
break;
default:break;
}
}while(ch!=7)
}

You might also like