Algo & Prog Impérative - LifAPI
Cette UE introduit au développement en langae C++. Sur cette page, tu trouvera des resume de cours, des explication et des applications. Plus d'excuses pour avoir de mauvaise notes!
Les syntaxes
En C++, la syntaxe est stricte : chaque instruction doit être terminée par un point-virgule (;), et les blocs de code sont délimités par des accolades ({ }).
1. Structure d’un programme minimal
#include <iostream>
using namespace std;
int main() {
cout << "Bonjour !" << endl;
return 0;
}
- #include <iostream> : permet d’utiliser cout
- using namespace std; : évite d’écrire std:: devant chaque fonction
- main() : fonction principale exécutée au démarrage
- return 0; : indique que le programme s’est bien terminé
2. Point-virgule obligatoire
Chaque ligne d’instruction doit se terminer par ;, sinon tu auras une erreur de compilation.
3. Blocs de code
Les blocs sont ouverts avec { et fermés avec }, par exemple :
if (a > 0) {
cout << "positif";
}
4. Sensibilité à la casse
C++ fait la différence entre Age et age. Les noms de variables sont sensibles à la casse.
5. Commentaires
// Ceci est un commentaire sur une ligne/* Ceci est un commentaire sur plusieurs lignes */
Les variables et les types
Une variable est un espace nommé en mémoire dans lequel on peut stocker une valeur. En C++, il est nécessaire de déclarer le type de la variable avant de l’utiliser. Cela permet au compilateur de savoir quelle quantité de mémoire réserver et comment interpréter les données.
1. Déclaration d'une variable
La syntaxe est la suivante :
type nom_de_variable = valeur;
Exemple :
int age = 20;
float note = 14.5;
char lettre = 'A';
bool admis = true;
2. Les principaux types de variables
int: nombres entiers (ex : 0, -5, 42)float: nombres décimaux simples précision (ex : 3.14)double: nombres décimaux double précisionchar: un seul caractère (entre apostrophes, ex :'a')bool: valeur logique vraie ou fausse (trueoufalse)
3. Modification d'une variable
Une fois déclarée, on peut changer la valeur d’une variable :
int age = 20;
age = 21; // l'âge est maintenant 21
4. Initialisation vs déclaration seule
int x; // déclaration seule (x contient une valeur indéterminée)
x = 5; // initialisation plus tard
5. Attention aux erreurs fréquentes
- Ne pas oublier le point-virgule
;à la fin d’une ligne - Ne pas réutiliser le nom d’une variable déjà déclarée dans le même bloc
- Utiliser le bon type pour éviter les erreurs de conversion
6. Afficher une variable avec cout
#include <iostream>
using namespace std;
int main() {
int age = 20;
cout << "J'ai " << age << " ans." << endl;
return 0;
}
Les fonctions
Une fonction est un bloc de code nommé qui exécute une tâche précise. Elle peut prendre des paramètres et retourner un résultat. Les fonctions permettent de découper un programme en parties plus simples, plus lisibles, et réutilisables.
1. Syntaxe d’une fonction en C++
type nom_de_fonction(paramètres) {
// instructions
return valeur;
}
2. Exemple simple : fonction qui renvoie le carré d’un nombre
int carre(int x) {
return x * x;
}
Ici, carre est une fonction qui prend un entier x et retourne son carré.
3. Appeler une fonction
int resultat = carre(5); // resultat vaut 25
4. Fonction sans retour (procédure)
Si une fonction ne renvoie rien, on utilise le mot-clé void :
void direBonjour() {
cout << "Bonjour !" << endl;
}
5. Fonction avec plusieurs paramètres
int addition(int a, int b) {
return a + b;
}
6. Astuces
- Déclare les fonctions avant le
main(), ou écris leurs prototypes en haut. - Choisis des noms clairs et explicites.
- Indente bien tes blocs pour plus de lisibilité.
7. Exemple complet avec le main()
#include <iostream>
using namespace std;
int carre(int x) {
return x * x;
}
int main() {
int n = 4;
cout << "Le carré de " << n << " est " << carre(n) << endl;
return 0;
}
Les procédures
En C++, une procédure est une fonction qui n’a pas de valeur de retour.
On utilise pour cela le type spécial void, qui signifie "rien".
1. Syntaxe d’une procédure
void nom_de_procedure(paramètres) {
// instructions
}
2. Exemple : afficher un message
void afficherMessage() {
cout << "Bienvenue sur LIL1 !" << endl;
}
Cette procédure n’a pas de paramètre et affiche simplement un message. On peut l’appeler comme ceci :
int main() {
afficherMessage();
return 0;
}
3. Exemple avec paramètres
Une procédure peut aussi prendre des paramètres, même si elle ne renvoie rien :
void direBonjour(string nom) {
cout << "Bonjour, " << nom << " !" << endl;
}
4. À quoi ça sert ?
- Organiser son code en actions réutilisables
- Éviter de répéter du code
- Améliorer la lisibilité d’un programme
5. Astuce
Utilise les procédures pour les actions qui modifient ou affichent, et les fonctions (avec retour) pour les calculs ou traitements.
La condition if
L’instruction if permet d’exécuter un bloc de code seulement si une condition est vraie.
Elle est souvent utilisée pour faire des choix, tester des valeurs ou contrôler le flux d’exécution.
1. Syntaxe de base
if (condition) {
// instructions à exécuter si la condition est vraie
}
2. Exemple simple
int age = 20;
if (age >= 18) {
cout << "Tu es majeur." << endl;
}
Si la condition age >= 18 est vraie, le message sera affiché.
3. Ajout d’un else
if (age >= 18) {
cout << "Majeur" << endl;
} else {
cout << "Mineur" << endl;
}
4. Plusieurs conditions avec else if
if (note >= 16) {
cout << "Très bien" << endl;
} else if (note >= 10) {
cout << "Moyen" << endl;
} else {
cout << "Insuffisant" << endl;
}
5. Opérateurs logiques utiles
==: égal!=: différent>,<,>=,<=: comparateurs&&: ET logique||: OU logique!: NON logique (inversion)
6. Exemple avec plusieurs conditions
int age = 25;
bool étudiant = true;
if (age < 26 && étudiant) {
cout << "Tarif étudiant appliqué." << endl;
}
Ici, le message s’affiche uniquement si la personne a moins de 26 ans et est étudiante.
7. Attention aux erreurs courantes
- Ne pas oublier les parenthèses autour de la condition :
if ( ... ) - Ne pas confondre
=(affectation) et==(comparaison) - Bien utiliser les accolades
{}même pour une seule ligne (par sécurité)
La boucle while
La boucle while permet de répéter un bloc d’instructions tant qu’une condition est vraie.
Contrairement à for, on l’utilise quand le nombre d’itérations n’est pas connu à l’avance.
1. Syntaxe générale
while (condition) {
// instructions à répéter
}
2. Exemple : afficher les nombres de 1 à 5
int i = 1;
while (i <= 5) {
cout << i << endl;
i++;
}
Ce code affiche les nombres de 1 à 5.
3. Boucle infinie (⚠️ à éviter)
while (true) {
// boucle qui ne s'arrête jamais à moins d'utiliser break
}
Tu peux utiliser une condition toujours vraie si tu veux interrompre manuellement :
while (true) {
int x;
cout << "Entrer un nombre (>= 0 pour continuer, -1 pour quitter): ";
cin >> x;
if (x == -1) break;
}
4. Exemple avec une condition d'entrée utilisateur
string nom;
while (nom != "admin") {
cout << "Nom d'utilisateur : ";
cin >> nom;
}
Cette boucle tourne tant que l’utilisateur n’a pas tapé "admin".
5. Erreurs fréquentes
- Oublier d’initialiser la variable de contrôle (
int i = 0;) - Oublier de modifier la variable dans la boucle → boucle infinie
- Confondre
=et==
6. Différences avec do...while
while vérifie la condition avant la première exécution.
do...while exécute au moins une fois avant de vérifier la condition :
int i = 1;
do {
cout << i << endl;
i++;
} while (i <= 5);
La boucle for
La boucle for est utilisée lorsque l’on connaît à l’avance le nombre d’itérations à effectuer.
Elle est idéale pour répéter une action un certain nombre de fois, ou pour parcourir les éléments d’un tableau.
1. Syntaxe générale
for (initialisation; condition; incrémentation) {
// instructions à répéter
}
- Initialisation : exécute une seule fois au début
- Condition : testée avant chaque itération
- Incrémentation : exécutée à la fin de chaque tour
2. Exemple simple : afficher les nombres de 1 à 5
for (int i = 1; i <= 5; i++) {
cout << i << endl;
}
Ce code affiche :
1
2
3
4
5
3. Boucle décroissante
for (int i = 5; i >= 1; i--) {
cout << i << endl;
}
4. Parcourir un tableau
int notes[3] = {14, 16, 12};
for (int i = 0; i < 3; i++) {
cout << "Note " << i+1 << ": " << notes[i] << endl;
}
5. Astuces et bonnes pratiques
- Commence toujours à zéro si tu parcours un tableau C++
- Attention aux erreurs de dépassement (
i < taille) - Utilise des noms de variables explicites quand possible
6. Erreurs fréquentes
- Utiliser
i <= tailleau lieu dei < taille→ débordement - Oublier d’incrémenter
i++→ boucle infinie - Confondre
=(affectation) avec==(comparaison)
Les tableaux
Un tableau (ou array) est une structure de données qui permet de stocker plusieurs valeurs du même type dans une seule variable. Chaque valeur est accessible par un indice, qui commence toujours à 0.
1. Déclaration et initialisation
Voici deux façons de déclarer un tableau :
// Déclaration + affectation manuelle
int notes[3];
notes[0] = 15;
notes[1] = 12;
notes[2] = 18;
// Déclaration + initialisation directe
int notes[] = {15, 12, 18};
2. Accès aux éléments
On accède à chaque élément via son indice :
cout << notes[1]; // Affiche 12
⚠️ Attention : notes[3] dans ce cas provoque une erreur, car l'indice 3 est hors du tableau.
3. Parcourir un tableau avec une boucle for
int notes[] = {15, 12, 18};
int taille = 3;
for (int i = 0; i < taille; i++) {
cout << "Note " << (i+1) << ": " << notes[i] << endl;
}
4. Tableaux à deux dimensions
Un tableau à deux dimensions peut être vu comme un tableau de tableaux (matrice).
int matrice[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
cout << matrice[1][2]; // Affiche 6
5. Astuces et erreurs fréquentes
- 💡 Toujours faire attention à la taille du tableau
- 💡 Le dernier indice d’un tableau de taille n est
n - 1 - ⚠️ Pas de vérification automatique en C++ : un indice invalide peut provoquer un comportement imprévisible
- 💡 Utilise une constante pour la taille si elle est fixe :
const int N = 5; int tab[N];
6. À noter
En C++, les tableaux sont assez "bruts". Si tu veux quelque chose de plus sécurisé ou dynamique, tu peux plus tard utiliser des std::vector.
Exercices
Ici, tu peux tester ton code C++ pour plusieurs petits exercices. Ton code sera compilé et exécuté automatiquement. Si la sortie est correcte, tu obtiendras une validation instantanée.
💻 Exercice 0 : Calculer l'aire d’un carré
Écris une fonction en C++ nommée aireCarre qui prend en paramètre un float cote et retourne l’aire du carré.
Exercice 1 : Aire d'un carré
Écris une fonction float aireCarre(float cote) qui retourne l'aire du carré dont la longueur du côté est passée en paramètre.
Le programme doit afficher le résultat de aireCarre(4).
Exercice 2 : Doubler un entier
Écris une fonction int doubler(int n) qui retourne 2 * n.
Le programme doit afficher le résultat de doubler(5).