Outils pour utilisateurs

Outils du site


code_language:c

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
code_language:c [2025/10/31 10:26]
74.7.227.242 ancienne révision (2025/09/11 14:29) restaurée
code_language:c [2025/10/31 20:39] (Version actuelle)
74.7.227.242 ancienne révision (2025/09/11 14:27) restaurée
Ligne 22: Ligne 22:
    * TYPE NOM(VALEUR);    * TYPE NOM(VALEUR);
      * <code c++> int ageUtilisateur(16); </code>      * <code c++> int ageUtilisateur(16); </code>
-  * Pour déclarer une variable non modifiable: 
-    * TYPE const NOM(VALEUR); 
-    * <code c++> int const nombreNiveaux(10); </code> 
   * Afficher une variable ( en console )   * Afficher une variable ( en console )
     * <code c++>int main()     * <code c++>int main()
Ligne 140: Ligne 137:
 unNombre = 5; //Je mets 5 dans la case mémoire 'unNombre' </code> unNombre = 5; //Je mets 5 dans la case mémoire 'unNombre' </code>
 * OPERATION DE VALEUR DE VARIABLE: * OPERATION DE VALEUR DE VARIABLE:
-^Operation ^Symbole ^Exemple ^+  * ^Operation ^Symbole ^Exemple ^
 | Additon| +| <code c++> resultat = a + b; </code> | | Additon| +| <code c++> resultat = a + b; </code> |
 | Soustraction| -| <code c++> resultat = a - b; </code> | | Soustraction| -| <code c++> resultat = a - b; </code> |
Ligne 146: Ligne 143:
 | Division| /| <code c++> resultat = a / b; </code> | | Division| /| <code c++> resultat = a / b; </code> |
 | Modulo| %| <code c++> resultat = a % b; </code> | | Modulo| %| <code c++> resultat = a % b; </code> |
-| incrément| ++Variable;| <code c++> int nombreJoueur(4); //Il y a 4 joueurs dans la partie 
-++nombreJoueur; 
-//À partir d'ici, il y a 5 joueurs </code> | 
-| decrément| --Variable;| <code c++> int nombreJoueur(4); //Il y a 4 joueurs dans la partie 
---nombreJoueur; 
-//À partir d'ici, il y a 3 joueurs </code> | 
-  * Les Racourcie d'operation sur une variable elle meme: 
-    * nomVariable += valeur; 
-    * nomVariable -= valeur; 
-    * nomVariable *= valeur; 
-    * nomVariable /= valeur; 
-    * nomVariable %= valeur; 
  
  
Ligne 217: Ligne 202:
  
 == Méthode == == Méthode ==
-^Nom de la fonction ^Symbole ^Fonction ^Mini-Exemple ^ 
-| Racine carree | sqrtx | <code c++> sqrt() </code> | <code c++> resultat = sqrt(valeur); </code> | 
-| Sinus | sin(x) | <code c++> sin() </code> | <code c++> resultat = sin(valeur); </code> | 
-| Cosinus | cos(x) | <code c++> cos() </code> | <code c++> resultat = cos(valeur); </code> | 
-| Tangente | tan(x) | <code c++> tan() </code> | <code c++> resultat = tan(valeur); </code> | 
-| Exponentielle | ex | <code c++> exp() </code> | <code c++> resultat = exp(valeur); </code> | 
-| Logarithme neperien | lnx | <code c++> log() </code> | <code c++> resultat = log(valeur); </code> | 
-| Logarithme en base 10 | log10x | <code c++> log10() </code> | <code c++> resultat = log10(valeur); </code> | 
-| Valeur absolue |  | <code c++> fabs() </code> | <code c++> resultat = fabs(valeur); </code> | 
-| Arrondi vers le bas | floor() | <code c++> floor() </code> | <code c++> resultat = floor(valeur); </code> | 
-| Arrondi vers le haut | ceil() | <code c++> ceil() </code> | <code c++> resultat = ceil(valeur); </code> | 
-| Puissance | pow(a,b) | <code c++> pow() </code> | <code c++> resultat = pow(valeur1, valeur2); </code> | 
  
  
Ligne 242: Ligne 215:
  
 ===== Structure de contrôle ===== ===== Structure de contrôle =====
-=== if === +=== Return ===
-==les operateurs logique == +
-^Symbole ^ signification ^ +
-| == | Est égal à | +
-| > | Est superieur a | +
-| < | Est inferieur a | +
-| >= | Est superieur ou égale a | +
-| <= | Est inferieur ou égal a | +
-| != | Est different de|+
  
-Combinaisons: and , or , not. +=== else ===
-^Syntaxe^symbole^signification^ +
-| and | && | ET | +
-| or | double pipe | OU | +
-| not | ! | NON | +
- +
-== exemple de boucle if else =+
- +
-<code c++> #include <iostream> +
- +
-using namespace std; +
- +
-int main() +
-+
-    int nbAnimaux(0); +
- +
-    if (nbAnimaux > 0) +
-    { +
-        cout << "Super ! Les animaux de compagnie ca change la vie !" << endl; +
-    } +
-    else +
-    { +
-        cout << "Vous n'avez pas d'animaux de compagnie" << endl; +
-    } +
- +
-    cout << "Fin du programme" << endl; +
-    return 0; +
-} </code> +
- +
-== exemple de boucle if elseif == +
- +
-<code c++> #include <iostream> +
- +
-using namespace std; +
- +
-int main() +
-+
-    int nbAnimaux(2); +
- +
-    if (nbAnimaux == 0) +
-    { +
-        cout << "Vous n'avez pas d'animaux de compagnie" << endl; +
-    } +
-    else if (nbAnimaux == 1) +
-    { +
-        cout << "C'est super d'avoir un fidele compagnon !" << endl; +
-    } +
-    else if (nbAnimaux == 2) +
-    { +
-        cout << "Ca doit en faire du monde a la maison !" << endl; +
-    } +
-    else +
-    { +
-        cout << "Votre budget croquettes doit etre important" << endl; +
-    } +
- +
-    cout << "Fin du programme" << endl; +
-    return 0; +
-}</code> +
- +
- +
- +
-=== switch === +
- +
-exemple de code avec switch +
- +
-<code c++> #include <iostream> +
- +
-using namespace std; +
- +
-int main() +
-+
-    int nbAnimaux(2); +
- +
-    switch (nbAnimaux) +
-    { +
-        case 0: +
-            cout << "Vous n'avez pas d'animaux de compagnie" << endl; +
-            break; +
- +
-        case 1: +
-            cout << "C'est super d'avoir un fidele compagnon !" << endl; +
-            break; +
- +
-        case 2: +
-            cout << "Ca doit en faire du monde a la maison !" << endl; +
-            break; +
- +
-        default: +
-            cout << "Votre budget croquettes doit etre important" << endl; +
-            break; +
-    } +
- +
-    return 0; +
-} </code> +
-  * Attention switch ne fonctionne pas sur des double.+
  
 +=== case ===
  
 === break=== === break===
Ligne 355: Ligne 226:
  
 === for === === for ===
-Exemple de boucle for: 
-<code c++> int main() 
-{ 
-    int compteur(0); 
- 
-    for (compteur = 0 ; compteur < 10 ; compteur++) 
-    { 
-        cout << compteur << endl; 
-    } 
- 
-    return 0; 
-} </code> 
  
 === do === === do ===
- 
-Exemple de boucle do ...while 
-<code c++> do 
-{ 
-    /* Instructions */ 
-} while (condition); </code> 
- 
-=== return === 
  
  
 === while === === while ===
- 
-Exemple de boucle while: 
-<code c++> while (condition) 
-{ 
-    /* Instructions à répéter */ 
-} </code> 
  
  
Ligne 425: Ligne 270:
  
  
-===== Fonctions ===== +===== Fonctions prédéfinies =====
-=== Declaration === +
-  * Fonction avec paramètre: +
-    * <code c++> int addition(int a, int b) +
-+
-    return a+b; +
-+
- +
-double multiplication(double a, double b, double c) +
-+
-    return a*b*c; +
-} </code> +
-  * Fonction avec paramètre dont certain ont une valeur par défaut c'est a dire ne sont pas obligatoire: +
-    * <code c++> #include <iostream> +
- +
-using namespace std; +
- +
-// Prototype avec les valeurs par défaut +
-int nombreDeSecondes(int heures, int minutes = 0, int secondes = 0); +
- +
-// Main +
-int main() +
-+
-    cout << nombreDeSecondes(1, 10, 25) << endl; +
- +
-    return 0; +
-+
- +
-// Définition de la fonction, SANS les valeurs par défaut +
-int nombreDeSecondes(int heures, int minutes, int secondes) +
-+
-    int total = 0; +
- +
-    total = heures * 60 * 60; +
-    total += minutes * 60; +
-    total += secondes; +
- +
-    return total; +
-} </code> +
-  * Ici on voit que l'on met les valeur par défaut uniquement dans la déclaration de la fonction dans le fichier .hpp. Attention si on fait appelle une fonction avec 3 paramètre, on ne peut pas renseigner le premier et le dernier ( INTERDIT), si on veut renseigné le dernier paramètre sans celui du milieu on est obligé de déclarer le paramètre du milieu avec notamment une valeur par défaut. +
-  * Fonction sans paramètre: +
-    * <code c++> string demanderNom() +
-{     +
-     cout << "Entrez votre nom : "; +
-     string nom; +
-     cin >> nom; +
-     return nom; +
-} </code> +
- +
-  * Fonction qui ne renvoie rien: +
-    * <code c++> void direBonjour() +
-+
-    cout << "Bonjour !" << endl; +
-    //Comme rien ne ressort, il n'y a pas de return ! +
-+
- +
-int main() +
-+
-    direBonjour(); +
-    //Comme la fonction ne renvoie rien +
-    //On l'appelle sans mettre la valeur de retour dans une variable +
-     +
-    return 0; +
-} </code> +
-====== Utilisez Plusieurs fichiers ====== +
-=== Fichier source et fichier d'en-tête === +
-  * Un fichier source dont l'extension est .cpp contient le code source de la fonction. +
-    * Le fichier math.cpp doit contenir un include "math.hpp" pour que les deux fichier soit lié: +
-      * <code c++> #include "math.hpp" +
- +
-int ajouteDeux(int nombreRecu) +
-+
-    int valeur(nombreRecu + 2); +
- +
-    return valeur; +
-} </code> +
-  * Un fichier d'en-tête dont l'extension est .hpp contient uniquement la description de la fonction, ce qu'on appelle le prototype de la fonction. +
-    * Le fichier doit contenir ses trois lignes pour empêcher d'inclure plusieurs fois le même .cpp +
-      * <code c++>#ifndef MATH_HPP_INCLUDED +
-#define MATH_HPP_INCLUDED +
- +
-#endif // MATH_HPP_INCLUDED</code> +
-  * voici un exemple de déclaration de fonciton: +
-    * <code c++>#ifndef MATH_HPP_INCLUDED +
-#define MATH_HPP_INCLUDED +
- +
-int ajouteDeux(int nombreRecu); +
- +
-#endif // MATH_HPP_INCLUDED </code> +
-  * Si le paramètre de notre fonction est de type string il faut ajouté en include les string et faire précedé le type par son nom de domaine, ici std: +
-    * <code c++>#ifndef MATH_HPP_INCLUDED +
-#define MATH_HPP_INCLUDED +
- +
-#include <string> +
- +
-void afficherMessage(std::string message); +
- +
-#endif // MATH_HPP_INCLUDED </code> +
-  * L'autre élément important est l'ajout de std::  devant le mot string  . Il s'agit de la marque d'un espace de nom. +
-  * std apparaît dans tous nos fichiers source via la ligne using namespace std  . Comme il n'y a pas de telle ligne ici (et qu'il est très vivement déconseillé de la mettre dans un fichier d'en-tête), il nous faut utiliser le nom complet du type string   , qui est std::string +
-  * Inclure tout cela dans la fichier main.cpp +
-    * <code c++> #include <iostream> +
-#include "math.hpp" +
-using namespace std; +
- +
-int main() +
-+
-    int a(2),b(2); +
-    cout << "Valeur de a : " << a << endl; +
-    cout << "Valeur de b : " << b << endl; +
-    b = ajouteDeux(a);                     //Appel de la fonction +
-    cout << "Valeur de a : " << a << endl; +
-    cout << "Valeur de b : " << b << endl; +
- +
-    return 0; +
-} </code> +
-  * Dans le fichier .hpp il est recommander de mettre en commantaire ce que fait la fonction, la liste des arguments, les caracteristique de la valeur retournée. +
  
 ===== Programmation avancée ===== ===== Programmation avancée =====
-=== Argument de fonction passé par Valeur ==== 
-  * Lorsqu'on passe dans le paramètre d'une fonction une variable classique contenant une valeur: 
-    * <code c++> #include <iostream> 
-using namespace std; 
- 
-int ajouteDeux(int a) 
-{ 
-    a+=2; 
-    return a; 
-} 
- 
-int main() 
-{ 
-    int nombre(4), resultat; 
-    resultat = ajouteDeux(nombre); 
-     
-    cout << "Le nombre original vaut : " << nombre << endl; 
-    cout << "Le resultat vaut : " << resultat << endl; 
-    return 0; 
-} </code> 
-  * Dans ce cas la la variable nombre est copiée ans une nouvelle case mémoire et sa valeur n'est pas changé. 
- 
-=== Argument de fonction passé par Reference ==== 
-  * Lorsqu'on passe dans le paramètre d'une fonction une reference à une variable classique contenant une valeur: 
-    * <code c++> int ajouteDeux(int& a) //Notez le petit & !!! 
-{ 
-    a+=2; 
-    return a; 
-} </code> 
-  * Dans ce cas la , la variable nombre a une reference "a" qui point vers elle, ainsi nombre et a sont confondue, de cette façon la fonction modifie directement la variable nombre. 
- 
-=== Argument de fonction passé par Reference constante ==== 
-  * Lorsqu'on passe dans le paramètre d'une fonction une reference à une variable classique contenant une valeur mais qu'on ne souhaite pas que la fonction puisse modifier la valeur de la variable classique. Cela est nécessaire lorsqu'on ne veut pas copie en paramètre une valeur a gros volume pour faire fonctionner la fonction (passage par valeur proscris pour cause de dégradation de performance): 
-    * <code c++> void f1(string const& texte) //Pas de copie et pas de modification possible 
-{ 
-}</code> 
-  * Dans ce cas la , la variable passé en paramètre n'est pas copié, on y fait reference mais la variable n'est pas modifiable. 
- 
- 
-====== Tableaux statiques ====== 
- 
-=== Declarer un tableau statique d'un type === 
- 
-<code c++> 
-#include <iostream> 
-using namespace std; 
- 
-int main() 
-{ 
-   int meilleurScore[5];       //Déclare un tableau de 5 int  
- 
-   double anglesTriangle[3];   //Déclare un tableau de 3 double 
- 
-   return 0; 
-} 
-</code> 
- 
-=== Declarer un tableau statique a travers une variable constante === 
-<code c++> 
-int const tailleTableau(20);   //La taille du tableau 
-double anglesIcosagone[tailleTableau]; 
-</code> 
- 
-=== Acces aux elements du tableau statique === 
- 
-<code c++> 
-int const nombreMeilleursScores(5);           //La taille du tableau 
- 
-int meilleursScores[nombreMeilleursScores];   //Déclaration du tableau 
- 
-meilleursScores[0] = 118218;  //Remplissage de la première case 
-meilleursScores[1] = 100432;  //Remplissage de la deuxième case 
-meilleursScores[2] = 87347;   //Remplissage de la troisième case 
-meilleursScores[3] = 64523;   //Remplissage de la quatrième case 
-meilleursScores[4] = 31415;   //Remplissage de la cinquième case 
-</code> 
- 
-=== Parcourir un tableau statique === 
- 
-<code c++> 
-int const nombreMeilleursScores(5);           //La taille du tableau 
-int meilleursScores[nombreMeilleursScores];   //Déclaration du tableau 
- 
-meilleursScores[0] = 118218;  //Remplissage de la première case 
-meilleursScores[1] = 100432;  //Remplissage de la deuxième case 
-meilleursScores[2] = 87347;   //Remplissage de la troisième case 
-meilleursScores[3] = 64523;   //Remplissage de la quatrième case 
-meilleursScores[4] = 31415;   //Remplissage de la cinquième case 
- 
-for(int i(0); i<nombreMeilleursScores; ++i) 
- 
-    cout << meilleursScores[i] << endl; 
-} 
-</code> 
- 
-=== Tableaux statiques et les fonctions === 
-  * On ne peut pas ecrirde une fonction qui renvoie un tableau statique c'est impossible. 
-  * Un statique est toujours passé par référence, pas besoin de l'eperluette cela se fait automatiquement. 
-  * Exemple: 
-<code c++> 
-/* 
-  Fonction qui calcule la moyenne des éléments d'un tableau 
-  - tableau : Le tableau dont on veut la moyenne 
-  - tailleTableau : La taille du tableau 
- */ 
-double moyenne(double tableau[], int tailleTableau) 
-{ 
-   double moyenne(0); 
-   for(int i(0); i<tailleTableau; ++i) 
-   { 
-      moyenne += tableau[i];   //On additionne toutes les valeurs 
-   } 
-   moyenne /= tailleTableau; 
- 
-   return moyenne; 
-} 
-</code> 
-====== Tableaux dynamiques ====== 
-=== Declarer un tableau dynamique === 
-<code c++> 
-#include <iostream> 
-#include <vector> //Ne pas oublier ! 
-using namespace std; 
- 
-int main() 
-{ 
-   vector<int> tableau(5); 
- 
-   return 0; 
-} 
-</code> 
-  * On peut directement remplir toutes les cases du tableau en ajoutant un deuxieme argument entre les parentheses: 
-  * <code c++> vector<int> tableau(5, 3);  //Crée un tableau de 5 entiers valant tous 3 
-vector<string> listeNoms(12, "Sans nom"); 
-//Crée un tableau de 12 strings valant toutes « Sans nom » </code> 
-  * On peut déclarer un tableau sans case, en ne mettant pas de parentheses du tout: 
-  * <code c++> vector<double> tableau; //Crée un tableau de 0 nombre à virgule </code> 
-=== Acces au tableau dynamique === 
-<code c++> 
-int const nombreMeilleursScores(5);  //La taille du tableau 
- 
-vector<int> meilleursScores(nombreMeilleursScores);  //Déclaration du tableau 
- 
-meilleursScores[0] = 118218;  //Remplissage de la première case 
-meilleursScores[1] = 100432;  //Remplissage de la deuxième case 
-meilleursScores[2] = 87347;   //Remplissage de la troisième case 
-meilleursScores[3] = 64523;   //Remplissage de la quatrième case 
-meilleursScores[4] = 31415;   //Remplissage de la cinquième case 
-</code> 
-=== Changer la taille d un tableau dynamique === 
-  * Ajouter des cases a la suite: 
-<code c++> 
-vector<int> tableau(3,2);  //Un tableau de 3 entiers valant tous 2 
-tableau.push_back(8); 
-//On ajoute une 4ème case au tableau qui contient la valeur 8 
-</code> 
-  * Enlever les cases par la fin 
-<code c++> 
-vector<int> tableau(3,2); //Un tableau de 3 entiers valant tous 2 
-tableau.pop_back(); //Et hop ! Plus que 2 cases 
-tableau.pop_back(); //Et hop ! Plus que 1 case 
-</code> 
-  * La fonction <code c++> size() </code> 
-<code c++> 
-vector<int> tableau(5,4); //Un tableau de 5 entiers valant tous 4 
-int const taille(tableau.size()); 
-//Une variable qui contient la taille du tableau 
-//La taille peut varier mais la valeur de cette variable ne changera pas 
-//On utilise donc une constante 
-//À partir d'ici, la constante 'taille' vaut donc 5 
-</code> 
-=== Les vector (tableau dynamique) et les fonctions === 
-  * Passer un tableau dynamique en argument à une fonction est beaucoup plus simple que pour les tableaux statiques. Comme pour n'importe quel autre type, il suffit de mettre <code> vector<type> </code> en argument. 
-<code c++> 
-//Une fonction recevant un tableau d'entiers en argument 
-void fonction(vector<int> a) 
-{ 
-    //… 
-} 
-</code> 
-  * Souvenez-vous du passage par référence constante pour optimiser la copie. En effet, si le tableau contient beaucoup d'éléments, le copier prendra du temps. Il vaut donc mieux utiliser cette astuce. 
-<code c++> 
-//Une fonction recevant un tableau d'entiers en argument 
-void fonction(vector<int> const& a) 
-{ 
-    //… 
-} 
-</code> 
-  * Pour appeler une fonction recevant un vector en argument, il suffit de mettre le nom du tableau dynamique comme parametre entre les parentheses lors de l appel: 
-<code c++> 
-vector<int> tableau(3,2);   //On crée un tableau de 3 entiers valant 2 
-fonction(tableau);          //On passe le tableau à la fonction déclarée au-dessus 
-</code> 
-   * Lors du decoupage du programme en plusieurs fichier : 
-     * Ajouter #include <vector> au debut du fichier. 
-     * Ajouter std:: devant les vector , comme pour les string 
-   * <code c++> #ifndef TABLEAU_H_INCLUDED 
-#define TABLEAU_H_INCLUDED 
- 
-#include <vector> 
- 
-void fonctionAvecTableau(std::vector<int>& tableau); 
- 
-#endif // TABLEAU_H_INCLUDED </code> 
-  * Fonction Renvoyant un vector : 
-    * <code c++> vector<double> encoreUneFonction(int a) 
-{ 
-    //... 
-} </code> 
-====== Lire et modifier des fichiers ====== 
- 
-====== Declaration de pointeurs ====== 
  
 === Paradigme de programmation classe/objet === === Paradigme de programmation classe/objet ===
Ligne 772: Ligne 288:
  
 === Methode de classe === === Methode de classe ===
- 
  
  
code_language/c.1761906417.txt.gz · Dernière modification: 2025/10/31 10:26 de 74.7.227.242