Ne parvient pas à corriger ses erreurs en c++
SahDa
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
SahDa -
SahDa -
Bonjour, je débute en c++ et j'ai des difficultés à comprendre et corriger mes erreurs. Merci à tous pour votre aide.
Voici mon code :
Voici mon code :
#include <stdexcept> /** @file **/ #include <fstream> #include <iostream> #include <vector> #include <string> using namespace std; /** Construction d'un tableau d'entiers lu depuis un fichier * On suppose que le fichier contient sur chaque ligne un numéro de mois * suivi d'une donnée correspondant au mois. * @param nom_fichier, le nom du fichier de données * @return un tableau d'entiers de taille 12 tel que dans chaque * case d'indice i, on trouve la donnée du mois i **/ vector<int> litTableauMois("donnees/volumes_d_eau_distribues.txt") { ifstream fichierMois("donnes/volumes_d_eau_distribues.txt") ; int volumeDeau ; int moisDeau ; vector <int> volumeDeauTab ; vector <int> moisDeauTab ; while (fichierMois >> moisDeau and fichierMois >> volumeDeau) { volumeDeauTab.push_back(volumeDeau) ; moisDeauTab.push_back(moisDeau) ; } vector <int> t ; t = vector <int> (12) ; for (int i = 0 ; i < t.size() ; i++) { t[moisDeauTab[i]-1] = volumeDeauTab[i] ; } return t ; } /** test de la fonction litTableauMois **/ void testLitTableauMois () { ASSERT(t[0] == 16231200); // Le volume pour janvier ASSERT(t[11] == 15530100); // Le volume pour décembre ASSERT(t[4] == 17711200); //Le volume pour mai } /** Renvoie la somme d'un tableau d'entiers * @param t, un tableau d'entier * @return la somme des valeurs **/ int somme(vector<int> t) { int sommeTab = 0 ; for (int i = 0 ; i < t.size () ; i ++) { sommeTab = sommeTab + t[i] ; } return sommeTab ; } /** Test de la fonction somme **/ void testSomme() { ASSERT(somme({1,2,3}) == 6); ASSERT(somme({}) == 0); ASSERT(somme({2,2,4,8}) == 16); } /** Renvoie la moyenne d'un tableau d'entier * @param t, un tableau d'entiers * @return la moyenne (entière) des valeurs **/ int moyenne(vector<int> t) { int moyenneTab = somme (t)/t.size() ; return moyenneTab ; } /** Test de la fonction moyenne **/ void testMoyenne() { ASSERT(moyenne({1,2,3}) == 2); ASSERT(moyenne({1}) == 1); ASSERT(moyenne({2,2,4,8}) == 4); } /** Renvoie l'indice de la valeur maximale du tableau * @param t, un tableau d'entier * @return l'indice de la valeur maximale ou -1 si le tableau est vide **/ int indiceMax(vector<int> t) { if (t.size() <= 0 { return -1 ; } int m = 0 ; int indiceM = 0 ; for (int i = 0 ; i < t.size() ; i++) { if (t[i] > m) ; m = t[i] ; indiceM = i ; return indiceM ; } /** Test de la fonction IndiceMax **/ void testIndiceMax() { ASSERT(indiceMax({}) == -1); ASSERT(indiceMax({1,2,3}) == 2); ASSERT(indiceMax({1,3,2}) == 1); ASSERT(indiceMax({1}) == 0); ASSERT(indiceMax({2,8,4,4}) == 1); } /** Lance les fonctions de test puis affiche : * - le volume d'eau total sur l'année * - la moyenne par mois * - le mois avec le plus gros volume d'eau et son volume **/ int main() { vector <int> t = litTableauMois("donnees/volumes_d_eau_distribues.txt") ; for (int i = 0 ; i < t.size() ; i++) { cout << t[i] << endl ; } testLitTableauMois() ; cout << somme(t) << endl ; testSomme() ; cout << moyenne(t) << endl ; testMoyenne() ; cout << t[indiceMax(t)] << endl ; testIndiceMax() ; vector <string> mois = {"janvier" , "février" , "mars" , "avril" , "mai" , "juin" , "juillet" , "août" , "septembre" , "octobre" , "novembre" , "décembre" } cout << "Le volume total d'eau distribué dans l'année est de :" << somme(t) << endl ; cout << "Le volume moyen par mois d'eau distribué dans l'année est de :" << moyenne() << endl ; cout << "Le mois où on a distribué le plus d'eau dans l'année est le mois de :" << mois[indiceM(t)] << "avec un volume de :" << "t[indiceM(t)]" << endl ; }
Configuration: Windows / Edge 17.17134
A voir également:
- Ne parvient pas à corriger ses erreurs en c++
- Corriger un message whatsapp - Guide
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Corriger photos gratuit - Guide
- Erreur de lecture sur iptv smarters - Forum TV & Vidéo
- Corriger yeux fermés photo - Forum Photoshop
1 réponse
Bonjour,
Ligne 17, ça n'est pas du le début d'une fonction, les lignes 17 et 18 doivent être:
Ligne 101, il manque une parenthèse.
Ligne 118, il manque une accolade.
Et d'autres erreurs dans les dernières lignes.
Ligne 17, ça n'est pas du le début d'une fonction, les lignes 17 et 18 doivent être:
std::vector<int> litTableauMois( std::string nom_fichier ) { std::ifstream fichierMois( nom_fichier.c_str() );Ligne 41, comment tester une fonction sans même l'appeler? Il faudrait ajouter
std::vector<int> t = litTableauMois( "donnees/volumes_d_eau_distribues.txt" );
Ligne 101, il manque une parenthèse.
Ligne 118, il manque une accolade.
Et d'autres erreurs dans les dernières lignes.
SahDa
Merci beaucoup