Calculs simples avec variables | Algorithmique Seconde
Introduction
Découvrez comment effectuer des opérations mathématiques avec des variables
Opérations de base avec variables
Les opérations arithmétiques
En algorithmique, on peut effectuer des opérations arithmétiques avec des variables :
- Addition : +
- Soustraction : -
- Multiplication : *
- Division : /
Soit a = 10 et b = 5 :
d ← a - b → d = 5
e ← a * b → e = 50
f ← a / b → f = 2
Priorités opératoires
Ordre des opérations
Comme en mathématiques, certaines opérations sont prioritaires :
- Parenthèses : ( )
- Multiplication et division : * /
- Addition et soustraction : + -
- a ← 5 + 3 * 2 → a = 5 + 6 = 11 (multiplication prioritaire)
- b ← (5 + 3) * 2 → b = 8 * 2 = 16 (parenthèses prioritaires)
- c ← 10 - 4 / 2 → c = 10 - 2 = 8 (division prioritaire)
Affectation et calculs
Combinaison affectation-calcul
On peut affecter à une variable le résultat d'un calcul impliquant cette même variable :
a ← a + 3 → a = 8
a ← a * 2 → a = 16
À chaque ligne, la variable a est mise à jour avec le nouveau résultat.
On peut combiner plusieurs variables et opérations :
y ← 3
z ← (x + y) * 2 - x / y
Calcul : z = (10 + 3) * 2 - 10/3 = 13 * 2 - 3.33... ≈ 22.67
Types de données
Classification des variables
- Entier : nombres sans décimales (..., -2, -1, 0, 1, 2, ...)
- Réel : nombres avec décimales (3.14, -2.5, 0.001, ...)
- Chaîne de caractères : texte ("Bonjour", "123abc", ...)
- Booléen : vrai/faux (True/False)
- Numérique : +, -, *, / fonctionnent entre entiers et réels
- Chaînes : + concatène les chaînes ("Hello" + "World" = "HelloWorld")
- Conversion : parfois nécessaire entre types (entier → réel)
Opérations composées
Raccourcis d'écriture
Pour ajouter à une variable, on peut utiliser des opérateurs composés :
b ← b - 3 ≡ b -= 3
c ← c * 2 ≡ c *= 2
d ← d / 4 ≡ d /= 4
- Clarté : écriture plus concise
- Performance : parfois plus efficace
- Standard : syntaxe commune dans de nombreux langages
- Moins d'erreurs : réduction des fautes de frappe
Exemple complet d'algorithme
Calcul de périmètre et aire
Algorithme RectangleCalculs
Variables longueur, largeur, perimetre, aire : Réel
Début
Afficher("Entrez la longueur du rectangle : ")
Lire(longueur)
Afficher("Entrez la largeur du rectangle : ")
Lire(largeur)
perimetre ← 2 * (longueur + largeur)
aire ← longueur * largeur
Afficher("Périmètre : ", perimetre)
Afficher("Aire : ", aire)
Fin
| Instruction | longueur | largeur | perimetre | aire |
|---|---|---|---|---|
| Lire(longueur) | 5 | ? | ? | ? |
| Lire(largeur) | 5 | 3 | ? | ? |
| perimetre ← 2 * (longueur + largeur) | 5 | 3 | 16 | ? |
| aire ← longueur * largeur | 5 | 3 | 16 | 15 |
Opérations avancées
Opérations spéciales
- Division entière (quotient) : //
- Modulo (reste) : %
17 % 5 = 2 (reste)
Car 17 = 5 × 3 + 2
- Puissance : ** ou ^
5 ** 2 = 25 (5 au carré)
x ← 4
y ← x ** 2 → y = 16
Applications concrètes
Où utiliser les calculs avec variables ?
- 1 Calculs financiers : intérêts, taxes, remises
- 2 Conversions : unités, monnaies, températures
- 3 Jeux : scores, déplacements, collisions
- 4 Statistiques : moyennes, pourcentages, indices
Formule : F = C × 9/5 + 32
Variables celsius, fahrenheit : Réel
celsius ← 25
fahrenheit ← celsius * 9 / 5 + 32
Afficher(celsius, "°C =", fahrenheit, "°F")
Résultat : 25°C = 77°F
Exercice d'application
Problème à résoudre
On considère les variables suivantes :
- a ← 12
- b ← 5
- c ← 2
Calculer les valeurs des expressions suivantes :
- result1 ← a + b * c
- result2 ← (a + b) * c
- result3 ← a // b + c
- result4 ← a % b ** c
Solution de l'exercice
Correction détaillée
- 1 result1 ← a + b * c = 12 + 5 * 2 = 12 + 10 = 22 (multiplication prioritaire)
- 2 result2 ← (a + b) * c = (12 + 5) * 2 = 17 * 2 = 34 (parenthèses prioritaires)
- 3 result3 ← a // b + c = 12 // 5 + 2 = 2 + 2 = 4 (division entière puis addition)
- 4 result4 ← a % b ** c = 12 % 5 ** 2 = 12 % 25 = 12 (puissance prioritaire, puis modulo)
- Parenthèses
- Puissances (**)
- Multiplication, division, modulo (*, /, //, %)
- Addition, soustraction (+, -)
Exercice supplémentaire
Suite de calculs
Soit les variables initiales :
- x ← 8
- y ← 3
Effectuer successivement les opérations suivantes et donner la valeur finale de chaque variable :
- x ← x + y
- y ← x - y
- x ← x - y
- z ← x * y + 1
Solution de l'exercice supplémentaire
Correction détaillée
- Initialisation : x=8, y=3
- 1 x ← x + y = 8 + 3 = 11 → x=11, y=3
- 2 y ← x - y = 11 - 3 = 8 → x=11, y=8
- 3 x ← x - y = 11 - 8 = 3 → x=3, y=8
- 4 z ← x * y + 1 = 3 * 8 + 1 = 24 + 1 = 25 → x=3, y=8, z=25
- x = 3
- y = 8
- z = 25
Note : Cet algorithme a permis d'échanger les valeurs de x et y sans variable temporaire !
Erreurs courantes à éviter
Pièges à éviter
b ← 0
c ← a / b → ERREUR !
Division par zéro est mathématiquement impossible et provoque une erreur dans l'algorithme.
result ← 10 + 5 * 2 → result = 30 (FAUX SI ON FAIT 10+5 EN PREMIER)
Respectez toujours les règles de priorité des opérations.
b ← 3
c ← a + b → Résultat dépend du langage
Attention aux conversions implicites entre chaînes et nombres.
Complexité des calculs
Analyse de performance
| Opération | Complexité | Temps relatif | Exemple |
|---|---|---|---|
| Addition/Soustraction | O(1) | Très rapide | a + b |
| Multiplication | O(1) | Rapide | a * b |
| Division | O(1) | Modérément rapide | a / b |
| Puissance | O(log n) | Plus lent | a ** b |
- Prioriser les opérations simples (addition, soustraction)
- Minimiser les opérations coûteuses (puissance, division)
- Regrouper les calculs similaires
- Éviter les calculs inutiles dans les boucles
Résumé
Points clés
- Addition (+), soustraction (-), multiplication (*), division (/)
- Division entière (//) et modulo (%) pour les divisions entières
- Puissance (**) pour les exposants
- Parenthèses d'abord
- Puissances ensuite
- Multiplications et divisions
- Additions et soustractions
- Entiers, réels, chaînes de caractères, booléens
- Compatibilité entre types pour les opérations
- Conversion explicite ou implicite
Conclusion
Félicitations !
Continuez à pratiquer pour renforcer vos compétences en algorithmique