User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 456,504 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,665 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser: Programming Forums
Views: 399 | Replies: 2
Reply
Join Date: Sep 2007
Posts: 2
Reputation: scsi_016 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
scsi_016 scsi_016 is offline Offline
Newbie Poster

Question Urgent solution needed

  #1  
Sep 25th, 2007
Hi!

Would you anybody please do check my code given below and say why I am getting Debug Assertion Failed.

I have used visual studio 6. But I think I have problems in my code. Please I do need urgent solution. Please help me.

#include <iostream.h>

int INITIAL = 6;//allocation size
int INCREMENT = 4;//if more allocation needed
int initialSize;//initial number of array elements

class Point
{
	int x;
	int y;

public:
	
	Point();
	Point ( int x, int y );
	~Point()
	{
		cout << "";
	}
	
	
	int get_x();
	int get_y();

	void set_x(int x);
	void set_y(int y);

	void print();
	
};

Point::Point()
{

}
Point::Point(int x, int y)
{
	this->x = x;
	this->y = y;
}

void Point::set_x(int x)
{
	this->x = x;
}

void Point::set_y(int y)
{
	this->y = y;
}

int Point::get_x()
{
	return x;
}

int Point::get_y()
{
	return y;
}

void Point::print()
{
	cout << " (" << get_x() << ", " << get_y() << ") " << endl;	
}


class Vector_
{
	Point *pArray;
	int size;

public:
	Vector_();
	Vector_(Point p[]);
	~Vector_()
	{
		cout << "";
	};
	
	int get_size();

	int insert(Point p);
	int insert(Point p[], int size);
	int insert(Point p[], int start, int size );

	int del (Point p);
	int delat (int Pos);
	int delat (int start, int length);

	int iselement (Point p);

	void displayVector_ ();//Defined
};


Vector_::Vector_()
{

}

Vector_::Vector_(Point p[])
{
	if ( initialSize > INITIAL )
	{	
		while (initialSize>INITIAL)
		{
			INITIAL += INCREMENT;
		}
	}
	pArray = new Point[INITIAL];
	pArray = p;
	size = initialSize;
}

int Vector_::insert( Point p)
{
		

	if (size+1 >= INITIAL)
	{
		while (size+1>=INITIAL)
		{
			INITIAL += INCREMENT;
		}
		Point *tempPArray;	
		
		tempPArray = new Point[INITIAL];
		tempPArray = pArray;
		tempPArray[size]=p;
		size++;
		
		//delete [] pArray;
		pArray = new Point[INITIAL];
		pArray = tempPArray;
		
	}
	else
	{
		pArray[size] = p;
		size++;
	}
	
	return size-1;//Return value: in which index the entry is inserted.
}

int Vector_::insert(Point p[], int size)
{
	int i, j;
	Point *tempPArray;
	
	if ((this->size+size) >= INITIAL)
	{
		while ((this->size+size) >= INITIAL)
		{
			INITIAL += INCREMENT;
		}
		
		tempPArray = new Point[INITIAL];
		tempPArray = pArray;
		
		for (i=0,j=this->size; i<size; i++, j++)
		{
			tempPArray[j] = p[i];
		}

		this->size += size;

		pArray = new Point[INITIAL];
		pArray = tempPArray;

	}
	else
	{
		for (i=0,j=this->size; i<size; i++, j++)
		{
			pArray[j] = p[i];
		}
		this->size += size;
	}

	return this->size-size;//index in which the first new entry is inserted.
}

int Vector_::insert(Point p[], int start, int size )
{
	//assuming start is a index. start+1 is the nth element
	int i, j;
	Point *tempPArray;


	if (start > this->size) 
	{
		cout << "Error: Start location must be <= " << this->size << endl <<endl;
	}
	
	else if ((start+size) >= this->size || (start+size) >= INITIAL)
	{
		while ((start+size) >= INITIAL)
		{
			INITIAL += INCREMENT;
		}
		
		tempPArray = new Point[INITIAL];
		tempPArray = pArray;
		
				
		for (i=0,j=start; i<size; i++, j++)
		{
			tempPArray[j] = p[i];
			//cout << p[i].get_x() << " " << p[i].get_y();
		}
	
		if ( start +size > this->size)
		{
			this->size = start +size;
		}
		//pArray = new Point[INITIAL];
		pArray = tempPArray;
	
	}
	else
	{
		for (i=0,j=start; i<size; i++, j++)
		{
			pArray[j] = p[i];

		}
	}

	
	return start;
}




int Vector_::del (Point p)
{
	//delete first occurrence of p
	
	int i, j;
	
	Point *tempPArray;
	tempPArray = new Point [size];
	int firstOccFound = 0;
	int deletedIndex = -1;

	if ( iselement(p))
	{
	
		for (i=0, j=0; i<size; i++)
		{
			if (!firstOccFound &&pArray[i].get_x()==p.get_x() && pArray[i].get_y()==p.get_y())
			{
				firstOccFound = 1;
				deletedIndex = i;
				continue;
			}
			tempPArray[j] = pArray[i];
			j++;
		}

		size = j;
		pArray = tempPArray;

		cout << "Point : (" << p.get_x()<<", "<<p.get_y()<<")" << " is deleted." << endl <<endl;
	}

	else
	{
		cout << "No entry deleted."<<endl;
		cout << "Error: Point : (" << p.get_x()<<", "<<p.get_y()<<")" << " is not in the vector."<<endl<<endl;
	}

	return deletedIndex;
}

int Vector_::delat (int Pos)
{
	int i, j;
	Point *tempPArray;
	tempPArray = new Point [size];
	
	if (Pos > size-1)
	{
		cout << "No entry deleted."<<endl;
		cout <<"Error: Position must be less than " << size << endl << endl;
	}
	
	else
	{
		for (i=0, j=0; i<size; i++)
		{
			if ( i!= Pos)
			{		
				tempPArray[j] = pArray[i];
				j++;
			}
		}
	
		cout << "Point : (" << pArray[Pos].get_x()<<", "<<pArray[Pos].get_y()<<")" << " at Postion "<< Pos << " is deleted." << endl <<endl;
		size = j;
		pArray = new Point[INITIAL];
		pArray = tempPArray;		
	}	
	
	return 1;
}

int Vector_::delat (int start, int length)
{
	int i, j;
	Point *tempPArray;
	tempPArray = new Point [size];

	if (start >= size )
	{
		cout << "No entry deleted."<<endl;
		cout << "Error: start: "<<start<<" must be less than Vector Size. Vector size is " << size <<endl<<endl;

	}
	else if (start+length >= size)
	{
		cout << "No entry deleted."<<endl;
		cout << "Error: ( start: " <<start<< " + length: "<< length << " ) = "<< start+length << " which must be less than the Vector size. Vector size = " << size <<endl<<endl;
	}

	else
	{
		cout << "Deleted Point(s) : "<<endl ;

		for (i=0, j=0; i<size; i++)
		{
			if ( i<start || i>start+length-1)
			{		
				tempPArray[j] = pArray[i];
				j++;
			}
			else
			{
				cout << "\t"<<"("<<pArray[i].get_x()<<", "<<pArray[i].get_y()<<")"<<endl;
			}
		}
		size = j;
		pArray = new Point[INITIAL];
		pArray = tempPArray;		

	}
	return 1;
}

int Vector_::iselement (Point p)
{
	int i;
	int found = 0;

	for (i=0; i<size; i++)
	{
		if ( pArray[i].get_x()==p.get_x() && pArray[i].get_y()==p.get_y())
		{
			found = 1;
			break;
		}
	}
	return found;
}

int Vector_::get_size()
{
	return size;
}

void Vector_::displayVector_ ()
{
	int i;
	
	cout << "The Vector is: "<<endl<<endl;
	for (i=0; i<size; i++)
	{
		cout << "\t";
		pArray[i].print();
	}
	cout <<endl<<endl;
}




void main ()
{
	int numPoints;

	Point *p;
	int i, x, y;
	cout << "Enter number of points : ";
	cin >>numPoints;
	initialSize = numPoints;

	p = new Point[initialSize];

	for (i=0; i<initialSize;i++)
	{
		cout << "Point "<<i+1<<endl;
		cout << "\t x: ";
		cin  >> x;
		cout << endl<<"\t y: ";
		cin >> y;
		cout << endl<<endl;
		p[i].set_x(x);
		p[i].set_y(y);
	}

	
	Vector_ v1 (p);
	v1.displayVector_();

	cout << v1.get_size();
		
	cout << endl << endl << endl;	


	Point p1[5]=
	{
		Point(1,2),
		Point(3,4),
		Point(5,6),
		Point(7,8),
		Point(9,10),
		
	};


	v1.insert(p1, 5);
	v1.displayVector_();
	

	Point p2 (11, 11);
	v1.insert(p2);
	cout << endl << endl << endl;	
	v1.displayVector_();


	

	
	
	cout << endl << endl << endl;	
	v1.insert(p1, 4, 5);
	v1.displayVector_();


	Point p3(9,10);
	cout << endl << endl << endl;	
	cout << v1.iselement(p3);
	

	
	v1.del(p3);
	cout << endl << endl << endl;	
	v1.displayVector_();



	v1.delat(3, 1);
	cout << endl << endl << endl;	
	v1.displayVector_();




}
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 11,541
Reputation: Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of Ancient Dragon has much to be proud of 
Rep Power: 40
Solved Threads: 972
Moderator
Featured Poster
Ancient Dragon's Avatar
Ancient Dragon Ancient Dragon is offline Offline
Most Valuable Poster

Re: Urgent solution needed

  #2  
Sep 25th, 2007
use your compiler's debugger and step through the code. At the line where you get the assert error check variable values.
<<Freelance Programmer>> << Hobby Site>>
Signature links for sale. PM me for details
Reply With Quote  
Join Date: Sep 2007
Posts: 2
Reputation: scsi_016 is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
scsi_016 scsi_016 is offline Offline
Newbie Poster

Re: Urgent solution needed

  #3  
Sep 28th, 2007
Dear friend!

I found my error. Thanks for your reply.

asfak
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb C++ Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the C++ Forum

All times are GMT -4. The time now is 3:35 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC