begin process at 2012 05 29 17:06:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Autre

 > 

probleme à l'execution


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme à l'execution

samedi 15 octobre 2011 à 14:29:30 | probleme à l'execution

jimdano

Bonjour,

Je cherche a "jouer" avec des points, paramètres : abscisses (getX(), setX()) et ordonnées(getY(),setY()).

J'ai une classe "nuage de points qui crée un tableau de points.
Je suis en train d'essayer de surcharger l'opérateur "+" en ajoutant un point à mon nuage de points.

j'ai un problème à l’exécution d'un programme et je ne trouve pas de solution...

Voici un bout de code de NuageDePoints.cpp

Code C/C++ :
#include "NuageDePoints.h"
// on cree un certain nombre de points ayant des valeurs sans importances
NuageDePoints :: NuageDePoints(int nbre){
	m_nbre = nbre;
	int i = 0;
	bool identique = false;
        // un nuage de point étant un tableau de points
	m_tab = new Point[nbre];
	if ( nbre > 0){
// pour prendre des nombres au hasard...
		m_tab[0] =  Point((int)getRand(),(int)getRand());
	} else {
		cout << "le nombre est < 1" << endl;
	}
	if (nbre > 1){
		while (i!=nbre-1){
			m_tab[i] = Point((int)getRand(),(int)getRand());
			i++;
			while(!identique){
				m_tab = pointIdentique(nbre, m_tab);
				identique = 1;
			}
		}
	}
}

NuageDePoints :: NuageDePoints(Point* tab,int nbre){
	m_tab = tab;
	m_nbre = nbre;
}

Point* NuageDePoints :: pointIdentique(int nbre, Point* tab){
	m_tab = tab;
	m_nbre = nbre;
	int i; int j;
	for(i=0;i<nbre-1;i++){
		for(j=0;j<nbre-1;j++){
			if(j!=i){
				while(tab[i].getX() == tab[j].getX() && tab[i].getY() == tab[j].getY()){
					m_tab[i].setX(getRand());
					cout << getRand()<<endl;
					m_tab[i].setY(getRand());
				}
			}
		}
	}
	return m_tab;
}

// la ca bug ....
NuageDePoints NuageDePoints :: operator+(Point a){
	
	int x = getNbre();
	Point* tab = new Point[x+1];
	for(int i =0; i<x; i ++){
		tab[i].setX(getTab()[i].getX());
		tab[i].setY(getTab()[i].getY());
	}
	tab[x].setX(a.getX());
	tab[x].setY(a.getY());
	NuageDePoints np = NuageDePoints(tab,m_nbre+1);
	return np;
}

// et le main ...
#include "Point.h"
#include "NuageDePoints.h"

int main(){
	
	Point p = Point();
	Point p2 = Point(3,5);
	Point p3 = Point(&p2);
	NuageDePoints n = NuageDePoints(2);

	Point* tab = new Point[10];
	NuageDePoints n2 = NuageDePoints(tab,2);
        //je test mon operator+
        n = n2 + p2
	n2.affiche();
	system("pause");
	return 0;
}


Merci d'avance !
Jimmy


samedi 15 octobre 2011 à 18:29:59 | Re : probleme à l'execution

pop70

Salut,

En remplaçant :
Code C/C++ :
NuageDePoints NuageDePoints :: operator+(Point a){

Par :
Code C/C++ :
NuageDePoints NuageDePoints :: operator+(const Point &a){

et idem dans le header, est-ce que ça marche ?

Sinon essaye d'executer cette fonction ligne après ligne (en mettant les suivantes en commentaires) pour voir précisément celle qui pose problème.


C++dialement,

Pop70
dimanche 16 octobre 2011 à 13:06:53 | Re : probleme à l'execution

LA_Tupac

Membre Club
Réponse acceptée !
Salut, en faisant
Code C/C++ :
int x = getNbre();
	Point* tab = new Point[x+1];

n'oublie pas que tu recrée un tableau vide !
En plus, l'ancien point[] reste en mémoire et ce n'est pas propre car la quantité de mémoire augmentera à chaque appel de l'op +
lundi 17 octobre 2011 à 15:54:42 | Re : probleme à l'execution

jimdano

Code C/C++ :
int x = np2.getNbre();
	Point* tab = np2.getTab();
	NuageDePoints np = NuageDePoints(tab,x+1);
	tab[x] = p1;
	np.setTab(tab);
	return np;


merci, j'ai fait ca et ca marche désormais =)


Cette discussion est classée dans : int, tab, nbre, nuagedepoints, getrand


Répondre à ce message

Sujets en rapport avec ce message

anagrammes récursifs [ par sumakotra ] /* Bonjour a tous ... voila j'voulais faire un programme sortant tout les anagrammes d'un mot en permutant les différentes lettres et en affichant a c Exercice sur Pointeurs, classes, héritage... [ par snoozriton ] Bonjour à tous, étant en train d'étudier le C++, j'ai quelques soucis avec un exercice. C'est un classique dont je vous donne l'énoncé : [b]1. Défini jeux mode console en c [ par fifiprog ] Bonsoir a tous je dois creer un jeux sur un damier 10x10 ou tout d'abord deux joueurs pourrons s'affronter c'est le jeux des loups et agneau le but es projet d'un debutant (classement) [ par emilienheude ] bonjour à tous, je suis debutant dans la programmation en c et mes enseignents on eu la bonne idée de nous faire travailler sur un projet de sondage. Allocation dynamique de tableu 2D [ par potitmarron ] Bonjour, J'aimerais savoir comment en C je peux créer un tableau et au fur et à mesure de mes besoins, ajouter des lignes ? Ici j'ai un tableau de x l convertir du cpp en VB.net ou VB [ par Taur33 ] bonsoir à tous, j'aurais besoin de convertir le code suivant en vb je précise que j'ai déjà essayé des logiciels qui soit disant le faisait mais cela Programme en c++ [ par noussa44 ] Bonjour tout le monde, j'ai besoin svp de vore aide sur un programme que j'ai fait qui permet de trier des réels dans un tableau.Mais j'ai un problèm declaration d'un tableau [ par badsha ] bonjour j'arrive à comprendre pourquoi je ne peux pas mettre ça" int tab[t] = {1,2}; " au lieu de " int tab[2] = {1,2}; " ça marche avec " #define t 3 Probleme passage tab** de fonctions a fonction. [ par Nitrakz ] Bonjour tous le monde ! Comme l'explique le titre j'ai un petit soucis pour passer un tableaux a 2 dimensions tab[i][j] d'une fonction a une autre. pile dynamique [ par korin221 ] Bonjour! Voila j'ai un problème. Je voudrais mélanger ma pile dynamique de façon aléatoire. Peut on directement mélanger la pile ou alors passer la pi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,732 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales