plz help me

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Nov 2008
Posts: 10
Reputation: laki234 is an unknown quantity at this point 
Solved Threads: 0
laki234 laki234 is offline Offline
Newbie Poster

plz help me

 
0
  #1
Nov 20th, 2008
i have created my code.But my division is not working for longer number.CAn anybody solve this.

#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <sstream>
#include <iomanip>

using std::setfill;
using std::setw;

using namespace std;

void subtract (struct head *oprnd1, struct head *oprnd2, struct head *result);
void add (struct head *oprnd1, struct head *oprnd2, struct head *result);

struct node
{
	long int data;
	struct node *llink;
	struct node *rlink;
	node ()
	{
		data = 0;
		llink = NULL;
		rlink = NULL;
	}
};

struct head
{
	int noofdigit;
	char sign;
	struct node *left;
	struct node *right;
	head ()
	{
		noofdigit = 0;
		sign=0;
		left = NULL;
		right = NULL;
	}
};

void makenull (struct head *temphead)
{
	struct node *ptr;
	ptr = temphead->right;

	free (temphead);
	while (ptr->rlink != NULL)
	{
		free (ptr);
		ptr = ptr->rlink;
	}
}

char sign (struct head *temphead)
{
	return (temphead->sign);
}

int digits (struct head *temphead)
{
	return (temphead->noofdigit);
}

node* firstright (struct head *temphead)
{
	return (temphead->left);
}

node* firstleft (struct head *temphead)
{
	return (temphead->right);
}

node* nextright (struct node *tempnode)
{
	return (tempnode->rlink);
}

node* nextleft (struct node *tempnode)
{
	return (tempnode->llink);
}

void insertright (struct head *temphead, struct node *tempnode)
{
	struct node *rightmost;
//	cout <<"insertright  "<<tempnode->data<<endl;
	if ((temphead->left == NULL) && (temphead->right == NULL))
	{
		temphead->right = tempnode;
		temphead->left = tempnode;
//		tempnode->llink = temphead;
//		tempnode->rlink = NULL;
	}
	else
	{
		rightmost = temphead->left;
//		cout<<"insertright:rightmost="<<rightmost->data<<endl;
		rightmost->rlink = tempnode;
		tempnode->llink = rightmost;
		tempnode->rlink = NULL;
		temphead->left = tempnode;
//		cout<<"insertright:tempnode created "<<endl;
	}
}

void insertleft (struct head *temphead, struct node *tempnode)
{
	struct node *leftmost;
//	cout <<"insertleft "<<tempnode->data<<endl;
	if ((temphead->left == NULL) && (temphead->right == NULL))
	{
		temphead->right = tempnode;
		temphead->left = tempnode;
//		tempnode->rlink = NULL;
	}
	else
	{
		leftmost = temphead->right;
//		cout<<"insertleft:leftmost="<<leftmost->data<<endl;
		leftmost->llink = tempnode;
		tempnode->rlink = leftmost;
		tempnode->llink = NULL;
		temphead->right = tempnode;
//		cout<<"insertleft:tempnode created"<<endl;
	}
}

int overflow (struct node *tempnode)
{
	long int ovrflwdgt = 0;

	ovrflwdgt = tempnode->data / 100000000;
	if (ovrflwdgt != 0)
	{
		tempnode->data = tempnode->data - (ovrflwdgt * 100000000);
	}

	return ovrflwdgt;
}

void createlist (string num, struct head *temphead)
{
	struct node *tempnode;
	string tempnum,t1;
	int numnodes8,remnodes8,nodenum,i;
//	stringstream temps;

	temphead->noofdigit = num.length () - 1;
	temphead->sign = num[0];
//	cout << temphead->noofdigit <<endl;
//	cout << temphead->sign <<endl;

	tempnum = num.substr (1, temphead->noofdigit);
//	tempnum = tempnum.reverse();
//	cout <<"tempnum = "<<tempnum<<endl;
	numnodes8 = temphead->noofdigit / 8;
	remnodes8 = temphead->noofdigit % 8;
//	cout <<"numnodes8 = "<<numnodes8<<endl;
//	cout <<"remnodes8 = "<<remnodes8<<endl;

	if (remnodes8 > 0)
	{
	t1 = tempnum.substr(0,remnodes8);
        stringstream temps(t1);
        temps >> nodenum;
//        cout <<"nodenum="<<nodenum<<endl;

	tempnode = new struct node;
	tempnode->data = nodenum;
	insertright (temphead,tempnode);
	}
	for (i=remnodes8;i<tempnum.length();i=i+8)
	{
		t1 = tempnum.substr(i,8);
//		cout <<"t1="<<t1<<endl;
		stringstream temps(t1);
		temps >> nodenum;
//		cout <<"remnode nodenum="<<nodenum<<endl;
		tempnode = new struct node;
		tempnode->data = nodenum;
		insertright (temphead,tempnode);
	}

}

int bigger (struct head *head1, struct head *head2)
{
	struct node *ptr1, *ptr2;

//	cout << "oprnd1 numdigit "<<head1->noofdigit<<" oprnd2 "<<head2->noofdigit<<endl;
	if (head1->noofdigit > head2->noofdigit)
	{
//		cout <<"big: oprnd1 big"<<endl;
		return 1;
	}
	else if (head1->noofdigit < head2->noofdigit)
	{
//		cout <<"big: oprnd2 big"<<endl;
		return 0;
	}
	else
	{
//		cout <<"big same size"<<endl;
		ptr1 = head1->right;
		ptr2 = head2->right;

		while (ptr1 != NULL && ptr2 != NULL)
		{
//			cout <<"big="<<ptr1->data<<" "<<ptr2->data<<endl;
			if (ptr1->data > ptr2->data)
			{
				return 1;
			}
			else if (ptr1->data < ptr2->data)
			{
				return 0;
			}
			else
			{
				ptr1 = ptr1->rlink;
				ptr2 = ptr2->rlink;
			}
		}
	}
	return 1;
}

int finddigit (struct head *head1)
{
	int count1=0;
	long int num;
	struct node *ptr;

	ptr = new struct node;
	ptr = firstleft (head1);
//	cout <<"IN Find digit"<<endl;
	while (ptr != NULL)
	{
		num = ptr->data;
//		cout <<"num="<<num<<endl;
		while (num > 0)
		{
			count1++;
			num = num / 10;
		}
		ptr = ptr->rlink;
	}

//	cout<<"NUM digits="<<count1<<endl;
	return count1;
}

void display (struct head *head1)
{
	struct node *ptr;
//	cout <<"DISPLAY"<<endl;
	if (head1->right != NULL && head1->left != NULL)
	{
	ptr = head1->right;
//	cout <<"head1="<<head1->noofdigit<<endl;
//	cout <<"NUMBER"<<endl;
	cout << head1->sign;
	cout << ptr->data;
	ptr = ptr->rlink;
	cout << right;
	while (ptr != NULL)
	{
		cout.fill('0');
		cout << setw(8) << dec;
		cout << ptr->data;
		ptr = ptr->rlink;
	}
	cout << endl;
	}

}

void subtract (struct head *oprnd1, struct head *oprnd2, struct head *result)
{
	struct node *n1, *n2, *rslt;
	struct head *tempswap;
	long int diff, carryover = 0;

//	cout<<"IN SUBTRACT"<<endl;

	if (sign (oprnd1) == sign (oprnd2))
	{
		if (bigger (oprnd2,oprnd1) == 1)
		{
//			cout <<"oprnd2 is bigger"<<endl;
			tempswap = oprnd2;
			oprnd2 = oprnd1;
			oprnd1 = tempswap;
			if (result->sign == '-' || result->sign == '+')
			{
//				cout <<"same sign"<<endl;
			}
			else
			{
//				cout <<"diff sign"<<endl;
				result->sign = sign (oprnd2);
			}
//			cout << "bigger oprnd2"<<endl;
		}
		else
		{
			if (result->sign == '-' || result->sign == '+')
			{
			}
			else
			{
				result->sign = sign (oprnd1);
			}
		}
		n1 = firstright (oprnd1);
		n2 = firstright (oprnd2);

//		cout<<"n1="<<n1->data<<" n2="<<n2->data<<endl;

		while (n1 != NULL && n2 != NULL)
		{
			if ((n1->data - carryover) >= n2->data)
			{
				diff = (n1->data - carryover) - n2->data;
//				cout << "diff="<<diff<<endl;
				rslt = new struct node;
				rslt->data = diff;
				insertleft (result, rslt);
			}
			else
			{
				diff = (100000000 + n1->data - carryover) - n2->data;
//				cout <<"less diff="<<diff<<endl;
				rslt = new struct node;
				rslt->data = diff;
				insertleft (result, rslt);
				carryover = 1;
			}
			n1 = nextleft (n1);
			n2 = nextleft (n2);

		}
	}
	else
	{
		if (bigger (oprnd1, oprnd2) == 1)
		{
			if (sign (oprnd1) == '+')
			{
				result->sign = sign (oprnd1);
				oprnd2->sign = '+';
				add (oprnd1, oprnd2, result);
			}
			else
			{
				result->sign = sign (oprnd1);
				oprnd1->sign = '+';
				add (oprnd1, oprnd2, result);
			}
		}
		else
		{
			if (sign (oprnd2) == '+')
			{
				result->sign = sign (oprnd2);
				oprnd1->sign = '+';
				subtract (oprnd1, oprnd2, result);
			}
			else
			{
				result->sign = sign (oprnd2);
				oprnd2->sign = '+';
				add (oprnd1, oprnd2, result);
			}

		}
	}
	display (result);
}


void add (struct head *oprnd1, struct head *oprnd2, struct head *result)
{
	struct node *n1, *n2, *rslt;
	struct head *tempswap;
	long int sum, ovrflwdgt = 0;

//	cout<<"IN ADD"<<endl;

	if (sign (oprnd1) == sign (oprnd2))
	{
		cout <<"add in1"<<endl;
		n1 = firstright (oprnd1);
//		cout <<"in1:n1="<<n1->data<<endl;
		n2 = firstright (oprnd2);
//		cout <<"in1:n2="<<n2->data<<endl;

		cout<<"n1="<<n1->data<<" n2="<<n2->data<<endl;

		while (n1 != NULL && n2 != NULL)
		{
			sum = n1->data + n2->data + ovrflwdgt;
//			cout<<"sum="<<sum<<endl;
			rslt = new struct node;
			rslt->data = sum;
//			cout<<"result="<<rslt->data<<endl;
			insertleft (result,rslt);
//			cout<<"after insertleft"<<endl;
			ovrflwdgt = overflow(rslt);
//			cout<<"overflow="<<ovrflwdgt<<endl;
			n1 = nextleft (n1);
			n2 = nextleft (n2);
		}

		while (n1 != NULL)
		{
			sum = n1->data + ovrflwdgt;
			rslt = new struct node;
			rslt->data = sum;
			insertleft (result, rslt);
			ovrflwdgt = overflow (rslt);
			n1 = nextleft (n1);
		}

		while (n2 != NULL)
		{
			sum = n2->data + ovrflwdgt;
			rslt = new struct node;
			rslt->data = sum;
			insertleft (result, rslt);
			ovrflwdgt = overflow (rslt);
			n2 = nextleft (n2);
		}

		if (ovrflwdgt > 0)
		{
			rslt = new struct node;
			rslt->data = ovrflwdgt;
//			cout<<"overflow present"<<endl;
			insertleft (result, rslt);
		}

		if (result->sign == '-' || result->sign == '+')
		{
		}
		else
		{
			result->sign = sign (oprnd1);
		}

	}
	else
	{
		if (bigger (oprnd2,oprnd1) == 1)
		{
			tempswap = oprnd2;
			oprnd2 = oprnd1;
			oprnd1 = tempswap;
			result->sign = sign (oprnd2);
			oprnd1->sign = '+';
			oprnd2->sign = '+';
//			cout <<"add bigger oprnd2"<<endl;
		}
		else
		{
			result->sign = sign (oprnd1);
			oprnd1->sign = '+';
			oprnd2->sign = '+';
//			cout <<"add bigger oprnd1"<<endl;
		}
		subtract (oprnd1,oprnd2,result);
	}
	display (result);
}

struct head* multiply (struct head *oprnd1, struct head *oprnd2, struct head *result)
{
	struct node *n1, *n2, *rslt;
	struct head *temp1,*temp2, *result1, *temp11, *temp12;;
	long int ovrflwdgt = 0, digitsnode = -1,i,digits=1, num1, num2, num, first=0, rem, firstnode = 0,nodenum=0;
	long long int mult;


//	cout <<"IN MULTIPLY"<<endl;

	n1 = firstright (oprnd1);
	n2 = firstright (oprnd2);

	cout <<"right "<<n1->data<<" "<<n2->data<<endl;
//	digitsnode = 0;
	while (n1 != NULL)
	{
		cout<<"in1"<<endl;
//		n2 = firstright (oprnd2);
		digitsnode=nodenum;
		nodenum++;
//		cout<<"in1:digitsnodes="<<digitsnode<<endl;
		while (n2 != NULL)
		{
//			cout<<"in2 n2="<<n2->data<<"n1="<<n1->data<<endl;
/*			temp1 = new struct head;
			temp1->sign = '+';
			temp2 = new struct head;
			temp2->sign = '+';
			for (i=0;i<digitsnode;i++)
			{
				rslt = new struct node;
				rslt->data = 0;
				insertleft (temp1,rslt);
			}
*/
//			cout <<"MULTIPLY: calling multiplynodes"<<endl;

//			multiplynodes (n1,n2,result1);

//			result1 = new struct head;
//			result1->sign = '+';

			result1 = new struct head;
			result1->sign = '+';
			result1->left = NULL;
			result1->right = NULL;

			num1 = n1->data;
			num2 = n2->data;

//			cout<<"num1="<<num1<<" num2="<<num2<<endl;


			digits = 1;

			first = 0;
			while (num1 > 0)
			{
//		cout<<"multiplynode:first result1 "<<endl;
//		display (result1);

				temp11 = new struct head;
				temp12 = new struct head;
				temp11->sign = '+';
				temp12->sign = '+';

				num = num1 % 10;
				mult = num2 * num;
//				if (digits > 100)
//				{
					rem = (mult % (100000000 / digits));
					rslt = new struct node;
					cout<<"rem="<<rem<<" digits="<<digits<<endl;
					rslt->data = rem * digits;
//					cout<<"calling insertleft"<<endl;
					insertleft (temp11, rslt);
					ovrflwdgt = mult / (100000000 / digits);
//					cout<<"overflow="<<ovrflwdgt<<endl;
					if (ovrflwdgt > 0)
					{
						rem = ovrflwdgt;
						rslt = new struct node;
						rslt->data = rem;
//						cout<<"Calling insertleft overflow"<<endl;
						insertleft (temp11, rslt);
					}
//				}

				if (first == 0)
				{
					temp12 = temp11;
					first = 1;
				}
				else
				{
//					cout<<"calling add in multiplynodes"<<endl;
					display (temp11);
					display (result);
					add (temp11, result1, temp12);
				}

				num1 = num1 / 10;
				digits = digits * 10;
				result1 = temp12;


			}

//			cout<<"MULTIPLY: result1 n1 n2 "<<n1->data<<" "<<n2->data<<endl;
			display (result1);

			if (firstnode == 0)
			{
//		here		temp1 = result1;
				result = result1;
				firstnode = 1;
			}
			else
			{

//				cout <<"MULTIPLY: call add temp1 result digitsnode="<<digitsnode<<endl;

				for (i=0;i<digitsnode;i++)
				{
					rslt = new struct node;
					rslt->data = 0;
					insertright (result1,rslt);
				}

//		here		display (temp1);
				display (result1);
				temp2 = new struct head;
				temp2->sign = '+';
				add (result,result1,temp2);
// here				temp1 = temp2;
				result = temp2;
//				cout<<"check this result"<<endl;display (result);
			}
//			makenull (temp1);
//			makenull (temp2);
			digitsnode++;
			n2 = nextleft (n2);
		}
//		cout <<"outside n2 loop"<<endl;
		n1 = nextleft (n1);
		n2 = firstright (oprnd2);
//		cout<<"checking n2="<<n2->data<<endl;
//		nodenum++;
//		digitsnode = 0;
	}

//	digitsnode=0;
//	result = temp1;
//	cout <<"IN MULTIPLY FINAL="<<endl;
//	display (result1);
//	display (result);
	return result;
}

long int divide (struct head *oprnd1, struct head *oprnd2, struct head *result)
{
	struct node *n1, *n2, *rslt;
	struct head *temp1, *temp2, *result1, *zerolist;
	long int num1, num2, quotient=0;

//	cout <<"IN DIVIDE"<<endl;

//	n1 = firstright (oprnd1);
//	n2 = firstright (oprnd2);

	temp1 = new struct head;
	temp2 = new struct head;
	temp1 = oprnd1;
	temp2 = oprnd2;

//	cout <<"temp1"<<endl;
	display (temp1);
//	cout <<"temp2"<<endl;
	display (temp2);

	zerolist = new struct head;
	rslt = new struct node;
	rslt->data = 0;
	insertleft (zerolist, rslt);

	do
	{
		result1 = new struct head;
		result1->sign = '+';
//		cout<<"calling subtract temp1 temp2"<<endl;
		display (temp1);
		display (temp2);
		subtract (temp1, temp2, result1);

		result1->noofdigit = finddigit (result1);
		result1->sign = '+';
//		cout <<"divide result1="<<endl;display (result1);
		temp1 = result1;
		temp2 = oprnd2;
		quotient++;
	}while (bigger (result1, oprnd2) == 1);

//	cout <<"Quotient="<<quotient<<endl;
	return quotient;
}

struct head* power (struct head *oprnd1, int i)
{
	struct head *n1, *n2, *result1;
	int j,x=1,num;


//	cout <<"IN POWER"<<endl;
	num = i;
	n1 = new struct head;
	n2 = new struct head;
	result1 = new struct head;

	n1 = oprnd1;
	n2 = oprnd1;
	while (num > 1)
	{
//		cout<<"POWER num="<<num<<endl;
		display (n1);
		result1 = new struct head;
		result1 = multiply (n1,n1,result1);
//		cout<<"POWER result1"<<endl;
		display (result1);
		n1 = result1;
		num = num / 2;
		x = x * 2;
	}

//	cout<<"POWER x="<<x<<endl;

//	result1 = new struct head;
	for (j=0;j<(i-x);j++)
	{
//		cout<<"POWER in"<<endl;
		display (n1);
		display (n2);
		result1 = new struct head;
		result1 = multiply (n1,n2,result1);
//		cout<<"result1"<<endl;display (result1);
		n1 = result1;
		n2 = oprnd1;
	}

//	cout<<"POWER is"<<endl;
	display (result1);
	return result1;
}

int main ()
{
	char *in;
	int ch = 0, powernum;
	string num1,num2;
	long int quot;
	struct node *rslt;
	struct head *oprnd1,*oprnd2,*result,*temp;
	struct head *listA,*listB,*listC,*listD,*listE,*listF,*listG,*listH,*listI,*listJ,*listK,*listL,*listM,*listN,*listO,*listP,*listQ,*listR,*listS,*listT,*listU,*listV,*listW,*listX,*listY,*listZ;
//	cout <<"hello"<<endl;
	while (ch != 7)
	{
		cout <<"1 Add"<<endl;
		cout <<"2 Subtract"<<endl;
		cout <<"3 Multiply"<<endl;
		cout <<"4 Divide"<<endl;
		cout <<"5 Pow"<<endl;
		cout <<"6 Using given data"<<endl;
		cout <<"7 Exit"<<endl;
		cout <<"Enter your choice: ";
		cin >>ch;
		cout <<ch<<endl;

		switch (ch)
		{
			case 1:
				cout <<"Addition!"<<endl;
//				getline (cin, num1);
				cout <<"Enter operand1: ";
				cin >> num1;
				cout <<num1<<endl;
				oprnd1 = new struct head;
				createlist (num1,oprnd1);
//				cout<<"oprnd1"<<oprnd1->noofdigit<<endl;
				display (oprnd1);
				cout <<"Enter operand2: ";
				cin >> num2;
				oprnd2 = new struct head;
				createlist (num2,oprnd2);
				display (oprnd2);
				result = new struct head;
				add (oprnd1,oprnd2,result);
				cout<<"ADD FINAL"<<endl;display (result);
				break;
        	case 2:
            	cout <<"Subtraction!"<<endl;
            	cout <<"Enter operand1: ";
				cin >> num1;
				cout <<num1<<endl;
				oprnd1 = new struct head;
				createlist (num1,oprnd1);
//				cout<<"oprnd1"<<oprnd1->noofdigit<<endl;
				display (oprnd1);
				cout <<"Enter operand2: ";
				cin >> num2;
				oprnd2 = new struct head;
				createlist (num2,oprnd2);
				display (oprnd2);
				result = new struct head;
				subtract (oprnd1,oprnd2,result);
				cout<<"SUBTRACT FINAL"<<endl;display (result);
            	break;
	        case 3:
        		cout <<"Multiplication!"<<endl;
            	cout <<"Enter operand1: ";
				cin >> num1;
				cout <<num1<<endl;
				oprnd1 = new struct head;
				createlist (num1,oprnd1);
//				cout<<"oprnd1"<<oprnd1->noofdigit<<endl;
				display (oprnd1);
				cout <<"Enter operand2: ";
				cin >> num2;
				oprnd2 = new struct head;
				createlist (num2,oprnd2);
				display (oprnd2);
				result = new struct head;
				result->sign = '+';
				temp = new struct head;
				temp=multiply (oprnd1,oprnd2,result);
				cout<<"MULTIPLY FINAL"<<endl;display (result);cout<<"temp"<<endl;display (temp);
            	break;
	        case 4:
        		cout <<"Division!"<<endl;
            	cout <<"Enter operand1: ";
				cin >> num1;
				cout <<num1<<endl;
				oprnd1 = new struct head;
				createlist (num1,oprnd1);
//				cout<<"oprnd1"<<oprnd1->noofdigit<<endl;
				display (oprnd1);
				cout <<"Enter operand2: ";
				cin >> num2;
				oprnd2 = new struct head;
				createlist (num2,oprnd2);
				display (oprnd2);
				result = new struct head;
				result->sign = '+';
				quot = divide (oprnd1,oprnd2,result);
				cout<<"DIVISION FINAL="<<quot<<endl;
            	break;
	        case 5:
        		cout <<"Power!"<<endl;
        		cout <<"Enter the number: ";
        		cin >> num1;
        		cout <<num1<<endl;
        		oprnd1 = new struct head;
        		createlist (num1, oprnd1);
//        		cout <<"oprnd1"<<oprnd1->noofdigit<<endl;
        		display (oprnd1);
        		cout <<"Enter the power: ";
        		cin >> powernum;
        		result = new struct head;
				result->sign = '+';
        		result = power (oprnd1, powernum);
        		cout<<"POWER OUT"<<endl;display(result);
            	break;
	        case 6:
        		cout <<"Given!"<<endl;

        		listA = new struct head;
        		listB = new struct head;
        		listC = new struct head;
        		listD = new struct head;
        		listE = new struct head;
        		listF = new struct head;
        		listG = new struct head;
        		listH = new struct head;
        		listI = new struct head;
        		listJ = new struct head;
        		listK = new struct head;
        		listL = new struct head;
        		listM = new struct head;
        		listN = new struct head;
        		listO = new struct head;
        		listP = new struct head;
        		listQ = new struct head;
        		listR = new struct head;
        		listS = new struct head;
        		listT = new struct head;
        		listU = new struct head;
        		listV = new struct head;
        		listW = new struct head;
        		listX = new struct head;
        		listY = new struct head;
        		listZ = new struct head;

        		rslt = new struct node;
        		rslt->data = 22222222;
        		insertleft (listA, rslt);
        		rslt = new struct node;
				rslt->data = 55555555;
        		insertleft (listB, rslt);
        		rslt = new struct node;
				rslt->data = 24681357;
        		insertleft (listC, rslt);
        		rslt = new struct node;
				rslt->data = 18027036;
        		insertleft (listD, rslt);

        		listE->sign = '+';
        		cout<<"Given E = A * D"<<endl;
        		listE = multiply (listA,listD,listE);
        		cout<<"listE"<<endl;
        		display (listE);

        		listF->sign = '+';
        		cout<<"F = A ^ 2"<<endl;
        		listF = power (listA,2);
        		cout<<"listF"<<endl;
				display (listF);

				listG->sign = '+';
				cout<<"G = D ^ 2"<<endl;
				listG = power (listD,2);
				cout<<"listG"<<endl;
				display (listG);

				listH->sign = '+';
				cout<<"H = B * C"<<endl;
				listH = multiply (listB,listC,listH);
				cout<<"listH"<<endl;
				display (listH);

				listI->sign = '+';
				cout<<"I = A + D"<<endl;
				add (listA,listD,listI);
				cout<<"listI"<<endl;
				display (listI);

				listJ->sign = '+';
				cout<<"J = I ^ 2"<<endl;
				listJ = power (listI,2);
				cout<<"listJ"<<endl;
				display (listJ);

				listK->sign = '+';
				cout<<"K = J - F"<<endl;
				display (listJ);display(listF);
				subtract (listJ,listF,listK);
				cout<<"listK"<<endl;
				display (listK);

				listL->sign = '+';
				cout<<"Given L = K - G"<<endl;
				subtract (listK, listG, listL);
				cout<<"listL"<<endl;
				display (listL);

				listM->sign = '+';
				cout<<"M = L / E"<<endl;
				quot = divide (listL,listE,listM);
				rslt = new struct node;
				rslt->data = quot;
				insertleft (listM,rslt);
				cout<<"listM"<<endl;
				display(listM);

				cout<<"Delete"<<endl;
				makenull (listF);
				makenull (listG);
				makenull (listI);
				makenull (listJ);
				makenull (listK);
				makenull (listL);
				makenull (listM);

				listN->sign = '+';
				cout<<"N = E ^ 2"<<endl;
				listN = power (listE,5);
				cout<<"listN"<<endl;
				display (listN);

				listO->sign = '+';
				cout<<"O = H ^ 3"<<endl;
				listO = power (listH, 3);
				cout<<"listO"<<endl;
				display (listO);

				listP->sign = '+';
				cout<<"P = N - O"<<endl;
				subtract(listN,listO,listP);
				cout<<"listP"<<endl;
				display (listP);


				listQ->sign = '+';
				cout<<"Q = N ^ 2"<<endl;
				listQ = power (listN,2);
				cout<<"listQ"<<endl;
				display (listQ);

				listR->sign = '+';
				cout<<"R = O ^ 2"<<endl;
				listR = power (listO,2);
				cout<<"listR"<<endl;
				display (listR);

				listS->sign = '+';
				cout<<"S = Q - R"<<endl;
				subtract(listQ,listR,listS);
				cout<<"lists"<<endl;
				display (listS);

				listT->sign = '+';
				cout<<"T = S / P"<<endl;
				quot = divide (listS,listP,listT);
				rslt = new struct node;
				rslt->data = quot;
				insertleft (listT,rslt);
				cout<<"listT"<<endl;
				display (listT);

				listU->sign = '+';
				cout<<"U = T - O"<<endl;
				subtract(listT,listO,listU);
				cout<<"listU"<<endl;
				display (listU);

				listV->sign = '+';
				cout<<"V = U - N"<<endl;
				subtract(listU,listN,listV);
				cout<<"listV"<<endl;
				display (listV);

				listW->sign = '+';
				cout<<"W = C ^ 2"<<endl;
				listW = power (listC,2);
				cout<<"listW"<<endl;
				display (listW);

				listX->sign = '+';
				cout<<"X = B ^ 2"<<endl;
				listX = power (listB,2);
				cout<<"listX"<<endl;
				display (listX);

				listY->sign = '+';
				cout<<"Y = W - X"<<endl;
				subtract(listW,listX,listY);
				cout<<"listY"<<endl;
				display (listY);

				listZ->sign = '+';
				cout<<"Z = C + B"<<endl;
				add(listC,listB,listZ);
				cout<<"listZ"<<endl;
				display (listZ);

				listH = new struct head;
				listH->sign = '+';
				cout<<"H = Y / Z"<<endl;
				quot = divide (listY,listZ,listH);
				rslt = new struct node;
				rslt->data = quot;
				insertleft(listH,rslt);
				cout<<"listH"<<endl;
				display (listH);

				listF = new struct head;
				listF->sign = '+';
				cout<<"F = N ^ 5"<<endl;
				listF = power (listN,5);
				cout<<"listF"<<endl;
				display (listF);

				listG = new struct head;
				listG->sign = '+';
				cout<<"G = E ^ 25"<<endl;
				listG = power (listE,25);
				cout<<"listG"<<endl;
				display (listG);

				listI = new struct head;
				listI->sign = '+';
				cout<<"I = F / N"<<endl;
				quot = divide (listF,listN,listI);
				rslt = new struct node;
				rslt->data = quot;
				insertleft(listI,rslt);
				cout<<"listI"<<endl;
				display (listI);

				listJ = new struct head;
				listJ->sign = '+';
				cout<<"J = G / I"<<endl;
				quot = divide (listG,listI,listJ);
				rslt = new struct node;
				rslt->data = quot;
				insertleft(listJ,rslt);
				cout<<"listJ"<<endl;
				display (listJ);

				listM = new struct head;
				listM->sign = '+';
				cout<<"M = N ^ 10"<<endl;
				listM = power (listN,10);
				cout<<"listM"<<endl;
				display (listM);

				makenull (listP);
				listP = new struct head;
				listP->sign = '+';
				cout<<"P = G ^ 2"<<endl;
				listP = power (listG,2);
				cout<<"listP"<<endl;
				display (listP);

				makenull (listQ);
				makenull (listR);

				listQ = new struct head;
				listQ->sign = '+';
				cout<<"Q = P - M"<<endl;
				subtract(listP,listM,listQ);
				cout<<"listQ"<<endl;
				display (listQ);

				listR = new struct head;
				listR->sign = '+';
				cout<<"R = J - M"<<endl;
				subtract(listJ,listM,listR);
				cout<<"listR"<<endl;
				display (listR);


            	break;
		}
	}
}
Reply With Quote Quick reply to this message  
Join Date: Jul 2008
Posts: 2,001
Reputation: ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of ArkM has much to be proud of 
Solved Threads: 343
ArkM's Avatar
ArkM ArkM is offline Offline
Postaholic

Re: plz help me

 
0
  #2
Nov 20th, 2008
Alas, probably not only division is not working for ALL numbers in this code...
Can you explain what are you doing?
Reply With Quote Quick reply to this message  
Join Date: Mar 2008
Posts: 1,399
Reputation: William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of William Hemsworth has much to be proud of 
Solved Threads: 113
Sponsor
William Hemsworth William Hemsworth is online now Online
Nearly a Posting Virtuoso

Re: plz help me

 
0
  #3
Nov 20th, 2008
Was it really necessary to post 1126 lines of code, especially with a very vague question..
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:



Similar Threads
Other Threads in the C++ Forum
Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC