Bonjour,
Je viens de finir de taper sous Visual Studio 2005 l'exercice de programmation effectué en cours.
Le but de l'exercice était d'utiliser la classe modèle vector. Il faut créer un tableau de réels ainsi qu'une fonction Insérer qui permet d'ajouter un élément donné en paramètre de la fonction un nouvel élément donné lui aussi en paramètre
Mais j'ai plusieurs soucis :
- il faut que je rajoute std:: devant la classe vector de mon fichier .h sinon il met erreur de syntaxe C2061, je ne comprends pas pourquoi puisque j'ai bien ajouté la librairie #include<vector>
- lors de l'execution du programme, après avoir saisi la valeur de l'élément à ajouter, j'ai un message Microsoft Visual C++ Debug Library : Debug Assertion failed
Expression : Vector subscript out of range
Voici mon code :
Code Fichier.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void Inserer(int pos,double val,std::vector<double> &tab);
Code Fichier Def.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <vector> #include <iostream> #include "Proto.h" using namespace std; void Inserer(int pos,double val,vector<double> &tab) { if((pos>=0)&&(pos<tab.size())) { tab.resize(tab.size()+1); for(int i=tab.size()-1;i>pos;i++) { tab[i]=tab[i-1]; } tab[pos]=val; } }
merci d'avance à tous ceux qui accepteront de m'aider!!!!
Code Main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 #include <vector> #include <iostream> #include "Proto.h" using namespace std; void main() { //déclaration du tableau de réels : vector<double> tab; //Variable pour l'initialisation du tableau: double val; //Variable pour la position de l'élément à ajouter : int position; //Variable pour l'élément à ajouter : double element; //Initialisation du tableau : do { cout<<"Entrer une valeur reelle ou -1 pour terminer"; cin>>val; tab.push_back(val); } while(val>0); tab.pop_back(); //Saisie de la position par l'utilisateur : do { cout<<"Saisir la position de l element a ajouter"; cin>>position; } while(position<0 || position>tab.size()); //Saisie de la nouelle valeur à insérer par l'utilisateur : cout<<"Saisir la valeur de l element a ajouter"; cin>>element; //Appel de la fonction : Inserer(position,element,tab); //Affichage du nouveau tableau : for(int i=0;i<tab.size();i++) cout<<tab[i]; }
Partager