Avec BC++ vers 3.0 , j'ai construit une classe "setint" qui
travaille sur des ensembles d'entiers. tout se passe bien ,
sauf que si je remplace un ensemble A par un ensemble C[i]
issu d'un tableau tout dérape ;comme si l'allocation n'avait
pas été faite par *(new setint ) .
Merci ,par avance, pour votre aide à un débutant.
PS : Mon programme ci dessous fonctionne ,
mais ne fonctionne plus si on decommente les 5 lignes.
#ifndef __SETINTBO_H
#include <setintbo.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif
main()
{int i, j;
setint A,B[10],C[10], E[10][10];
clrscr();
for (i=1;i<10;i++)
{B[i]=*(new setint);
C[i]=*(new setint);
for (j=1;j<10;j++) E[i][j]= *(new setint);
}
for (i=1;i<10;i++)
for (j=1;j<10;j++)
{B[i].ajoute(i*j);
E[i][j].ajoute(i+j);
}
for (i=1;i<8;i++)
{for (j=1;j<8;j++)
A=reunion(E[i][j],B[i]);
affiche(A);
}
///////// A est remplace par C[i]
// for (i=1;i<8;i++)
// {for (j=1;j<8;j++)
// C[i]=reunion(E[i][j],B[i]);
// affiche(C[i]);
// }
getch();
return (0);
}
Avec BC++ vers 3.0 , j'ai construit une classe "setint" qui
travaille sur des ensembles d'entiers. tout se passe bien ,
sauf que si je remplace un ensemble A par un ensemble C[i]
issu d'un tableau tout dérape ;comme si l'allocation n'avait
pas été faite par *(new setint ) .
Merci ,par avance, pour votre aide à un débutant.
PS : Mon programme ci dessous fonctionne ,
mais ne fonctionne plus si on decommente les 5 lignes.
#ifndef __SETINTBO_H
#include <setintbo.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif
main()
{int i, j;
setint A,B[10],C[10], E[10][10];
clrscr();
for (i=1;i<10;i++)
{B[i]=*(new setint);
C[i]=*(new setint);
for (j=1;j<10;j++) E[i][j]= *(new setint);
}
for (i=1;i<10;i++)
for (j=1;j<10;j++)
{B[i].ajoute(i*j);
E[i][j].ajoute(i+j);
}
for (i=1;i<8;i++)
{for (j=1;j<8;j++)
A=reunion(E[i][j],B[i]);
affiche(A);
}
///////// A est remplace par C[i]
// for (i=1;i<8;i++)
// {for (j=1;j<8;j++)
// C[i]=reunion(E[i][j],B[i]);
// affiche(C[i]);
// }
getch();
return (0);
}
Avec BC++ vers 3.0 , j'ai construit une classe "setint" qui
travaille sur des ensembles d'entiers. tout se passe bien ,
sauf que si je remplace un ensemble A par un ensemble C[i]
issu d'un tableau tout dérape ;comme si l'allocation n'avait
pas été faite par *(new setint ) .
Merci ,par avance, pour votre aide à un débutant.
PS : Mon programme ci dessous fonctionne ,
mais ne fonctionne plus si on decommente les 5 lignes.
#ifndef __SETINTBO_H
#include <setintbo.h>
#endif
#ifndef __CONIO_H
#include <conio.h>
#endif
main()
{int i, j;
setint A,B[10],C[10], E[10][10];
clrscr();
for (i=1;i<10;i++)
{B[i]=*(new setint);
C[i]=*(new setint);
for (j=1;j<10;j++) E[i][j]= *(new setint);
}
for (i=1;i<10;i++)
for (j=1;j<10;j++)
{B[i].ajoute(i*j);
E[i][j].ajoute(i+j);
}
for (i=1;i<8;i++)
{for (j=1;j<8;j++)
A=reunion(E[i][j],B[i]);
affiche(A);
}
///////// A est remplace par C[i]
// for (i=1;i<8;i++)
// {for (j=1;j<8;j++)
// C[i]=reunion(E[i][j],B[i]);
// affiche(C[i]);
// }
getch();
return (0);
}
#ifndef __CONIO_H
#include <conio.h>
#endif
Même commentaire que ci-dessus. Sauf qu'ici, j'ai bien entendu
parler d'un conio.h dans certaines implémentations (mais pas
celles dont je me sers -- ce n'est pas standard).
main()
Au moins que conio.h soit réelement étrange, ça ne doit pas
passer à la compilation. Quel est le type de rétour de main ?
et de savoir les éviter quand la
portabilité est de mise.
#ifndef __CONIO_H
#include <conio.h>
#endif
Même commentaire que ci-dessus. Sauf qu'ici, j'ai bien entendu
parler d'un conio.h dans certaines implémentations (mais pas
celles dont je me sers -- ce n'est pas standard).
main()
Au moins que conio.h soit réelement étrange, ça ne doit pas
passer à la compilation. Quel est le type de rétour de main ?
et de savoir les éviter quand la
portabilité est de mise.
#ifndef __CONIO_H
#include <conio.h>
#endif
Même commentaire que ci-dessus. Sauf qu'ici, j'ai bien entendu
parler d'un conio.h dans certaines implémentations (mais pas
celles dont je me sers -- ce n'est pas standard).
main()
Au moins que conio.h soit réelement étrange, ça ne doit pas
passer à la compilation. Quel est le type de rétour de main ?
et de savoir les éviter quand la
portabilité est de mise.
De toutes façons, s'il utilise BC++ 3, très vieux compilateur (j'ai
acheté la version 4.5 en 1995 !), c'est que c'est un cas vraiment
spécial. De l'embarqué peut-être ? Ou des petites réparations sur un
logiciel qui tourne sous MS-DOS ?
De toutes façons, s'il utilise BC++ 3, très vieux compilateur (j'ai
acheté la version 4.5 en 1995 !), c'est que c'est un cas vraiment
spécial. De l'embarqué peut-être ? Ou des petites réparations sur un
logiciel qui tourne sous MS-DOS ?
De toutes façons, s'il utilise BC++ 3, très vieux compilateur (j'ai
acheté la version 4.5 en 1995 !), c'est que c'est un cas vraiment
spécial. De l'embarqué peut-être ? Ou des petites réparations sur un
logiciel qui tourne sous MS-DOS ?
et le
BC++3 est ce dont je dispose
et le
BC++3 est ce dont je dispose
et le
BC++3 est ce dont je dispose
On Fri, 21 Oct 2005 12:31:43 +0200, "Acetonik"
:et le
BC++3 est ce dont je dispose
Si jamais tu as un accès à Internet, je te conseille de télécharger un
compilateur gratuit plus récent (et donc plus conforme).
Sous Windows, Dev-C++ est la "solution évidente", mais il y en a
d'autres. Cf les discussions récentes à ce sujet ici même.
Tres intéressant ,
On Fri, 21 Oct 2005 12:31:43 +0200, "Acetonik"
<Acetonik@invalid.wanadoo.fr>:
et le
BC++3 est ce dont je dispose
Si jamais tu as un accès à Internet, je te conseille de télécharger un
compilateur gratuit plus récent (et donc plus conforme).
Sous Windows, Dev-C++ est la "solution évidente", mais il y en a
d'autres. Cf les discussions récentes à ce sujet ici même.
Tres intéressant ,
On Fri, 21 Oct 2005 12:31:43 +0200, "Acetonik"
:et le
BC++3 est ce dont je dispose
Si jamais tu as un accès à Internet, je te conseille de télécharger un
compilateur gratuit plus récent (et donc plus conforme).
Sous Windows, Dev-C++ est la "solution évidente", mais il y en a
d'autres. Cf les discussions récentes à ce sujet ici même.
Tres intéressant ,
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
:
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL,
J'avais pensé à utiliser Tclasss.lib fourni avec BC++3 mais cela ne
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
Oui , j'ai voulu réapprendre quelques bases que j'avais oubliées .
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
<Acetonik@invalid.wanadoo.fr>:
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL,
J'avais pensé à utiliser Tclasss.lib fourni avec BC++3 mais cela ne
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
Oui , j'ai voulu réapprendre quelques bases que j'avais oubliées .
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
:
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL,
J'avais pensé à utiliser Tclasss.lib fourni avec BC++3 mais cela ne
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
Oui , j'ai voulu réapprendre quelques bases que j'avais oubliées .
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL, c'est une mauvaise
raison : apprendre les bases de l'utilisation de std::vector<> ou
std::list<> te prendra nettement moins longtemps qu'implémenter une
classe "liste chaînée" un tant soit peu fiable.
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL, c'est une mauvaise
raison : apprendre les bases de l'utilisation de std::vector<> ou
std::list<> te prendra nettement moins longtemps qu'implémenter une
classe "liste chaînée" un tant soit peu fiable.
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu programmes
toi-même une liste chaînée au lieu d'utiliser les conteneurs de la
STL ?
Si la raison est une méconnaissance de la STL, c'est une mauvaise
raison : apprendre les bases de l'utilisation de std::vector<> ou
std::list<> te prendra nettement moins longtemps qu'implémenter une
classe "liste chaînée" un tant soit peu fiable.
Si la raison est une volonté d'apprendre à faire une liste chaînée,
fais-le au moins proprement, avec une encapsulation décente.
Je te conseillerais même de faire une classe ayant la même interface
que std::list<>.
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
:
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu
programmes toi-même une liste chaînée au lieu d'utiliser les
conteneurs de la STL ?
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
<Acetonik@invalid.wanadoo.fr>:
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu
programmes toi-même une liste chaînée au lieu d'utiliser les
conteneurs de la STL ?
On Sat, 22 Oct 2005 11:03:11 +0200, "Acetonik"
:
class setint
{ noeud * debut; //pointeur sur le début de la liste
int nelem; //nombre courant d'éléments
Y a-t-il une raison particulière expliquant pourquoi tu
programmes toi-même une liste chaînée au lieu d'utiliser les
conteneurs de la STL ?