#include #include #include class vecteur{ private: double * tab; long taille; int indiceDeborde(long k); public: vecteur(void); vecteur(long nbVoulu); ~vecteur(void); long getTaille(void); int changerTaille(long nouvTaille); void setElem(long k, double valeur); double getElem(long k); void afficherTous(void); }; //--------------------------------------------- int main(){ vecteur t1(20); long i; clrscr(); for(i = 0; i < 20; i++) t1.setElem(i, 4.0 * i); t1.setElem(10, 4.5); t1.afficherTous(); getch(); for(i = 0; i < t1.getTaille(); i++) cout << "\n-Element " << i << " = " << t1.getElem(i); getch(); t1.changerTaille(15); t1.afficherTous(); getch(); return 0; } //--------------------------------------------- vecteur::vecteur(void){ taille = 0 ; tab = 0; } vecteur::vecteur(long nbVoulu){ taille = 0; tab = 0; if (nbVoulu > 0) { tab = new double[nbVoulu]; if (tab) taille = nbVoulu; } } vecteur::~vecteur(void) { if (tab) delete[] tab; } int vecteur::indiceDeborde(long k){ return (k < 0) || (k > taille-1); } long vecteur::getTaille(void) { return taille; } void vecteur::setElem(long k, double valeur){ if (indiceDeborde(k)) { cout << "\nprobleme dans Set"; return; } tab[k] = valeur; } double vecteur::getElem(long k) { if (indiceDeborde(k)) { cout << "\nprobleme dans Get"; return 0; } return tab[k]; } int vecteur::changerTaille(long nouvTaille){ if (nouvTaille < 1) { if (tab) delete [] tab; taille = 0; tab = 0; return 1 ; } double* nouveau = new double[nouvTaille]; if (! nouveau) return 0; if (! taille){ tab = nouveau; taille = nouvTaille; return 1; } long nb_objets = (taille < nouvTaille) ? taille : nouvTaille; memcpy(nouveau,tab,nb_objets * sizeof(double)); delete[] tab; tab = nouveau; taille = nouvTaille; return 1; } void vecteur::afficherTous(void){ for (long i = 0; i < taille; i++) cout << "\ntab[" << i << "] = " << tab[i]; }