Messages d'erreur

AlgoLab produit des messages d'erreur pédagogiques conçus pour aider les étudiants à comprendre et corriger leurs erreurs. Pas de stack traces, pas de jargon technique — juste des explications claires avec la localisation du problème.

Format des erreurs

Chaque erreur suit le même format :

Erreur [Catégorie] (Ligne X, Colonne Y) : [Message explicatif]

Exemple :

Erreur Syntaxique (Ligne 5, Colonne 3) : mot-cle ALORS manquant apres la condition.

Les 3 catégories d'erreurs

1. Erreur Syntaxique

Le code ne respecte pas la grammaire d'AlgoLab. Le parser ne peut pas comprendre ce que vous avez écrit.

SituationMessage
Mot-clé Alors oublié après SiSyntaxe invalide: mot-cle ALORS manquant apres la condition.
Mot-clé Faire oublié après TantQueSyntaxe invalide: mot-cle FAIRE manquant apres la condition.
Mot-clé Faire oublié après PourSyntaxe invalide: mot-cle FAIRE manquant apres l en-tete du POUR.
Valeur manquante après PasSyntaxe invalide: valeur manquante apres PAS. Exemple: PAS 1
Rien après LireSyntaxe invalide: variable attendue apres LIRE.
Rien après EcrireSyntaxe invalide: expression attendue apres ECRIRE.
Opérateur sans opérande à droiteSyntaxe invalide: operande manquante apres operateur.
Bloc non fermé (ex: Si sans FinSi)Bloc non ferme: FinSi attendu. (Bloc ouvert a la ligne 5)

AlgoLab utilise des heuristiques intelligentes pour deviner ce que vous avez oublié. Par exemple, si vous écrivez Si x > 0 sans Alors, il ne dit pas juste "erreur de syntaxe" — il identifie précisément le mot-clé manquant.

Comment corriger : Relisez la ligne indiquée et vérifiez que tous les mots-clés sont présents. Consultez la référence du langage pour la syntaxe correcte.

2. Erreur Sémantique

Le code est syntaxiquement correct mais logiquement incohérent. AlgoLab comprend ce que vous avez écrit mais ne peut pas l'exécuter car ça n'a pas de sens.

SituationMessage
Utiliser une variable non déclaréeVariable non declaree: x
Déclarer deux fois la même variableVariable deja declaree: x
Affecter un réel à un entierType attendu ENTIER
Affecter un entier à un booléenType attendu BOOLEEN
Affecter un nombre à un caractèreType attendu CARACTERE
Affecter directement un tableauAffectation directe sur un tableau interdite
Indexer une variable non-tableauIndexation sur une variable non tableau
Index ≤ 0Index de tableau commence a 1
Index > taille du tableauIndex de tableau hors limites
Index non entierIndex de tableau doit etre un entier
Saisie non numérique pour un entierEntree invalide: entier attendu
Saisie non numérique pour un réelEntree invalide: reel attendu
Saisie invalide pour un booléenValeur booleenne attendue (VRAI/FAUX)

Comment corriger : Vérifiez les types de vos variables. AlgoLab est strictement typé — un entier ne peut pas recevoir un réel, un tableau doit être indexé avec un entier entre 1 et sa taille.

3. Erreur d'exécution

Le code est correct syntaxiquement et sémantiquement, mais un problème survient pendant l'exécution.

SituationMessage
Division par zéroDivision par zero
Lire une variable non initialiséeVariable non initialisee: x
Lire un élément de tableau non initialiséVariable non initialisee: t[3]
Pas de boucle = 0Pas de boucle invalide: 0
Appel d'une fonction inconnueFonction inconnue: MaFonction
Mauvais nombre d'argumentsNombre d arguments invalide
Tentative de retourner un tableauRetour de tableau non supporte
Accéder à un tableau sans indexUn tableau doit etre indexe

Comment corriger : Vérifiez vos calculs (division par zéro), assurez-vous d'initialiser vos variables avant de les utiliser, et vérifiez que vos appels de fonctions ont le bon nombre d'arguments.

Détection intelligente des blocs non fermés

AlgoLab maintient une pile (stack) des blocs ouverts pendant l'analyse. Si le programme se termine sans fermer un bloc, l'erreur indique précisément quel bloc est resté ouvert et à quelle ligne il a été ouvert :

Bloc non ferme: FinPour attendu. (Bloc ouvert a la ligne 8)

Cela fonctionne pour Si/FinSi, TantQue/FinTantQue et Pour/FinPour, même quand les blocs sont imbriqués.

Conseils généraux

  1. Lisez le message en entier — il est en français et dit exactement ce qui ne va pas.
  2. Regardez la ligne et la colonne — elles pointent vers le problème (ou juste après).
  3. Vérifiez les mots-clésAlors, Faire, FinSi, FinPour, FinTantQue sont souvent oubliés.
  4. Vérifiez les types — une erreur de type signifie que vous mélangez entiers, réels, caractères ou booléens.
  5. Initialisez vos variables — une variable déclarée mais jamais affectée provoquera une erreur à la lecture.