EduCode
EduCode est un environnement logiciel éducatif conçu pour faciliter l'apprentissage de la programmation, de l'algorithmique et de la logique informatique.
EduCode — Environnement pédagogique
EduCode est un environnement logiciel éducatif conçu pour faciliter l'apprentissage de la programmation, de l'algorithmique et de la logique informatique. Il fonctionne directement dans le navigateur, sans aucune installation, et propose un langage de programmation entièrement en français.
Il a été pensé dès l'origine comme un outil pédagogique, accessible, clair et progressif, destiné aussi bien aux débutants complets qu'aux apprenants plus avancés souhaitant consolider leur compréhension des concepts fondamentaux, aux enseignants cherchant un support de cours, et aux formateurs en reconversion professionnelle.
Contrairement aux environnements de développement classiques (VS Code, PyCharm, etc.), EduCode n'expose pas de complexité technique inutile. Pas de configuration, pas de dépendances, pas d'environnement virtuel à gérer : on ouvre, on écrit, on exécute.
Cette phrase résume toute la démarche d'EduCode. Quand on débute, les plus grandes difficultés ne sont pas de comprendre un algorithme — elles viennent des obstacles syntaxiques, des messages d'erreur cryptiques, des configurations à mettre en place. EduCode cherche à faire disparaître cette friction pour que l'apprenant puisse se concentrer sur l'essentiel : la logique.
Chaque choix de conception — la syntaxe en français, l'indentation automatique, les messages d'erreur clairs — vise à réduire la charge cognitive et à maintenir l'attention sur le raisonnement algorithmique plutôt que sur les détails d'implémentation.
si age >= 18 alors affiche 'Majeur' fin si — même quelqu'un qui n'a jamais programmé comprend ce que ça fait.Les langages de programmation comme Python ou JavaScript utilisent des mots-clés anglais (if, while, for…). Pour un apprenant francophone qui ne maîtrise pas encore l'anglais, ce double effort
— comprendre la logique et mémoriser des termes étrangers — peut décourager.
En EduCode, les mots-clés correspondent directement aux concepts : tant que signifie littéralement "tant que la condition est vraie, répète". Aucune traduction mentale n'est nécessaire
: on pense, et on code.
{} pour délimiter les blocs, pas de ; obligatoires en fin de ligne, pas de == vs = pour la comparaison. En EduCode, = compare toujours, et vaut affecte.si … alors … fin si, pour … fin pour. Il n'y a jamais de doute sur ce qui appartient
à quel bloc.
x est un nombre), ce qui aide à comprendre ce que contient chaque variable et prévient les conversions implicites surprenantes.si … alors ou un pour, l'indentation est ajoutée automatiquement. Cela renforce dès le départ les bonnes
habitudes de présentation du code — un code bien indenté est un code qu'on peut relire facilement.
affiche), les messages système, les erreurs d'exécution et le message de fin sont tous affichés dans la console. Les erreurs incluent la
ligne concernée pour faciliter le débogage.
- Le port 8080 est disponible sur votre machine (personnalisable via "EduCode.exe --port=XXXX")
- Un navigateur web moderne est installé (Chrome, Firefox, Edge)
1) Ouvrez le Bloc-notes (touche Win + R, tapez notepad, puis Entrée)
2) Copiez le contenu ci-dessous et collez-le dans le Bloc-notes
--start : Démarre automatiquement le serveur et ouvre le navigateur dès le lancement d'EduCode.
--port=8080 : Définit le port sur lequel le serveur HTTP local sera démarré.
--session=60 : Définit la durée d'inactivité (en minutes) au-delà de laquelle le serveur s'arrête automatiquement.
--stopping=3 : Définit la durée maximale d'exécution d'un programme interprété (en minutes).
3) Cliquez sur Fichier → Enregistrer sous...
4) Dans le champ "Type de fichier", sélectionnez Tous les fichiers
5) Nommez le fichier "Launcher EduCode.ps1"
6) Placez-le dans le même dossier que EduCode.exe
7) Cliquez sur Enregistrer
Pour l'exécuter, faites un clic droit sur le fichier "Launcher EduCode.ps1" et choisissez Exécuter avec PowerShell.
Si Windows bloque l'exécution du script, lance cette commande une seule fois dans PowerShell en administrateur :
# Serveur démarré sur http://localhost:8080# Session token généré--port=XXXXEduCode embarque plusieurs mécanismes de sécurité actifs en permanence :
Réseau local uniquementServeur lié à 127.0.0.1 — inaccessible depuis l'extérieurToken de session cryptographique256 bits, généré via BCryptGenRandom à chaque démarrageCookie HttpOnly + SameSite=StrictToken jamais exposé au JavaScript, protégé contre le CSRFAuthentification automatiqueLe token transite une seule fois dans l'URL, puis est remplacé par le cookieComparaison temps constantProtection contre les attaques par timing sur la vérification du tokenTaille des donnéesCorps des requêtes limité à 512 KoAuto-déconnexionArrêt automatique après 30 minutes d'inactivitéSession expirée après 1 heureLe cookie de session expire automatiquement après 60 minutesLe serveur s'arrête automatiquement après 30 minutes sans activité (aucune requête reçue).
Un message s'affiche dans la console :
# Inactivité détectée : Déconnexion automatique - Arrêt du serveur.
Pour reprendre, cliquez à nouveau sur « Démarrer le serveur ».
La console affiche en temps réel les événements du serveur.
Les préfixes indiquent la nature du message :
# Événement système (démarrage, sécurité, inactivité…)
$ Activité HTTP (requête, réponse, ressource servie…)
Je m'appelle Grégory.P, et j'ai créé EduCode.
J'étais convaincu que les outils existants posaient trop souvent plus de problèmes qu'ils n'en résolvaient : syntaxes intimidantes pour les débutants, interfaces surchargées de fonctionnalités inutiles pour l'apprentissage, messages d'erreur incompréhensibles, configurations à rallonge avant de pouvoir écrire la première ligne. Alors j'ai décidé de construire quelque chose de différent, depuis zéro, avec une seule obsession : la clarté au service de la compréhension.
EduCode est le fruit de cette conviction. Chaque fonctionnalité, chaque mot-clé, chaque message d'erreur a été pensé du point de vue de l'apprenant — pas du développeur expérimenté.
EduCode est un projet solo et indépendant. Il n'y a pas d'équipe support, pas de ticket system — juste un développeur attentif aux retours de la communauté. Si tu as trouvé un bug, une suggestion d'amélioration ou simplement envie d'échanger sur le projet, voici comment me joindre.
Les mises à jour sont vérifiées automatiquement au lancement d’EduCode. Si une nouvelle mise à jour est disponible, la console t’indiquera qu’une nouvelle version est proposée. Cette mise à jour n’est pas obligatoire, mais elle est recommandée, car elle peut inclure des corrections de bugs, des améliorations de performances et de nouvelles fonctionnalités.
L’interface d’EduCode a été conçue pour offrir un environnement de programmation simple, clair et intuitif, adapté aussi bien aux débutants qu’aux utilisateurs plus avancés.
Elle se compose principalement de deux zones distinctes : un éditeur de code à gauche et une console d’exécution à droite, permettant de coder et de visualiser immédiatement les résultats.
L’éditeur propose des fonctionnalités essentielles telles que la numérotation des lignes, le formatage automatique, l’ouverture et l’enregistrement de fichiers, ainsi qu’un bouton d’exécution rapide. Une barre d’informations affiche en temps réel la position du curseur et le nombre de caractères, facilitant l’écriture du code.
La console permet d’afficher les résultats du programme, de vider l’affichage et d’interagir avec l’utilisateur grâce à la saisie de données. Un système d’options personnalisables permet d’ajuster l’affichage (taille de police, retour à la ligne, animations) afin d’améliorer le confort d’utilisation.
Dans son ensemble, EduCode propose une interface moderne, ergonomique et pensée pour apprendre le code en toute simplicité.
couleur()
couleur permet de changer la couleur du texte qui suit dans la console. Il s'utilise comme une instruction, avant les affiche concernés. La couleur reste active jusqu'à ce qu'elle soit explicitement réinitialisée avec couleur(#0).
couleur(#RRGGBB)Définit la couleur du texte (format hexadécimal)couleur(#0)Réinitialise la couleur par défaut de la console#RRGGBB — six caractères hexadécimaux précédés du symbole #, comme en CSS. Exemple : #FF0000 pour le rouge, #00CC88 pour le vert. Toute autre valeur provoque une erreur d'exécution.
couleur(#0) pour revenir à la couleur normale. Sans cela, tous les affichages suivants hériteront de la couleur active.
affiche, une variable de type texte, un message d'invite demande, ou une valeur de tableau.
Déboguer sert à afficher des messages de diagnostic pendant l'exécution.
La particularité par rapport à affiche : les messages ne se mélangent pas à la sortie normale du programme.
Ils sont collectés et regroupés dans une card distincte affichée à la fin, ce qui garde le résultat principal lisible.
À quoi ça sert. Suivre l’évolution d’une variable à différents moments, vérifier qu’une boucle s’exécute bien le nombre de fois prévu, ou repérer l’endroit précis où un calcul commence à dévier, tout cela sans encombrer la sortie finale du programme.
C’est un excellent réflexe pédagogique : comme il s’agit d’une instrumentation provisoire, on supprime ou on désactive ces éléments de débogage une fois le problème résolu, contrairement aux affichages destinés à faire partie du résultat final.
Card de débogage - Active ou désactive l'affichage de la card regroupant les messages déboguer.
Quand l'option est activée, tous les messages produits par l'instruction déboguer sont collectés pendant l'exécution puis affichés dans une card distincte à la fin du programme, sans se mélanger au résultat principal.
Quand elle est désactivée, les instructions déboguer sont ignorées et aucune card n'apparaît, pratique pour exécuter le programme « proprement » sans avoir à retirer les déboguer du code.
Ces mots servent à créer des variables et leur assigner des valeurs. x est un nombre déclare la variable, x vaut 42 l'affecte. Les deux peuvent
être écrits séparément ou ensemble.
EduCode dispose de 7 types fondamentaux. Le type détermine la valeur par défaut et les opérations disponibles : on peut additionner des nombres, concaténer des textes, tester des booléens, et parcourir des tableaux.
EduCode propose trois structures de répétition pour couvrir tous les cas : pour quand on connaît le nombre d'itérations, tant que quand on répète
sous condition, et répète … fois pour les répétitions simples à nombre fixe.
Qu'est-ce qu'une variable ?
Une variable est une boîte nommée qui stocke une valeur en mémoire. On lui donne un nom, un type, et une valeur initiale. Plus tard dans le programme, on peut lire sa valeur, la modifier, ou l'utiliser dans des calculs.
En EduCode, on déclare une variable avec la syntaxe x est un type, et on lui assigne une valeur avec x vaut valeur.
nombre, texte, booléen, tableau) a deux avantages pédagogiques : cela force l'apprenant à réfléchir à
la nature de sa donnée, et cela permet à l'interpréteur de faire des conversions automatiques cohérentes (par exemple lors d'une saisie utilisateur).
x est un nombre0 par défautx est un texte'' par défautx est un booléenfaux par défautx est un tableau[] par défautx est un enregistrementVariable regrouperx est une datejj/mm/aaaax est une heurehh:mm:ssx, y est un nombreDéclarer plusieurs variablesQuand plusieurs variables ont le même type, il est plus simple et plus lisible de les déclarer sur une seule ligne.
x vaut 42Nombre entierx vaut 3.14Nombre décimal (le point comme séparateur)x vaut $FFNombre hexadécimal ($)x vaut 'Bonjour'Texte entre apostrophesx vaut vraiBooléen positifx vaut fauxBooléen négatifx vaut y + 1Résultat d'une expressionCes raccourcis permettent de modifier une variable numérique sans réécrire son nom des deux côtés.
x ajoute 10x = x + 10x soustrait 5x = x − 5x vaut x * 2x = x × 2x vaut x / 4x = x ÷ 4Un enregistrement est une variable qui peut regrouper plusieurs informations différentes sous un même nom.
Contrairement : à un nombre (une seule valeur), à un texte (une seule chaîne), à un tableau (plusieurs valeurs du même type),
un enregistrement permet de stocker plusieurs champs, chacun pouvant représenter une information différente.
On utilise un enregistrement pour représenter un objet du monde réel : un élève (nom, note, âge…), un point (x, y), un produit (prix, quantité, nom)
Qu'est-ce qu'une constante ?
Une constante est un nom associé à une valeur qui ne peut jamais changer.
nom est une constante vaut <expression>min est une constante vaut 3.14max est une constante vaut 100message est une constante vaut 'Bonjour'affiche minaffiche maxaffiche messageEduCode utilise des formats standards pour les dates et les heures :
jj/mm/aaaaFormat date : 25/12/2024hh:mm:ssFormat heure : 14:30:00jj/mm/aaaa est le format européen (jour/mois/année), cohérent avec l'usage scolaire français.affiche envoie une valeur vers la console, demande attend une saisie clavier, et choisir propose des options à sélectionner d'un simple clic.
Ces instructions permettent de créer des programmes qui posent des questions, calculent, et répondent — le cycle fondamental de tout logiciel interactif.
Affiche peut prendre n'importe quelle valeur ou expression. Texte, nombre, variable, calcul — tout est accepté. Pour afficher plusieurs éléments sur une ligne, on les concatène avec +.
affiche 'Bonjour monde'Texte littéralaffiche xValeur d'une variableaffiche 2 + 2Expression calculée → 4affiche 'x = ' + xConcaténation texte + variableaffiche t[0]Premier élément d'un tableaudemande. Son type détermine la conversion automatique de la saisie : si c'est un nombre, la chaîne tapée est convertie en nombre; si c'est un texte,
elle reste telle quelle.
x est un nombredemande xAttend un nombre (sans message)demande 'Entrez un nombre' dans xAvec message d'inviten est un textedemande 'Votre prénom ?' dans nSaisie de texte
demande, l'utilisateur sélectionne d'un simple clic. Les options s'affichent comme des liens cliquables dans la console, et le numéro de l'option choisie (1 pour la première, 2 pour la deuxième…) est stocké dans la variable. La variable doit être déclarée comme un nombre.
Un commentaire commence par // et s'étend jusqu'à la fin de la ligne.
Pour les commentaires sur plusieurs lignes, on utilise les accolades { } : tout ce qui se trouve entre elles est ignoré lors de l'exécution.
Les commentaires servent à expliquer le code — aux autres, mais surtout à soi-même quand on relit un programme plus tard. C'est une bonne habitude à prendre dès le début.
affiche x // peut aussi suivre une instruction{
Ceci est un commentaire
sur plusieurs lignes
}
terminer permet d'arrêter immédiatement le programme.
Quand l'instruction terminer est exécutée : le programme s'arrête, aucune autre instruction n'est exécutée, on sort définitivement du programme.
essayer / attraper permet de prévoir ces situations et de réagir proprement, sans faire planter tout le programme.
Le bloc essayer contient le code à risque. Si une erreur survient, l'exécution saute immédiatement dans le bloc attraper — les instructions suivantes du bloc essayer sont ignorées. Après le bloc attraper, le programme reprend normalement.
attraper, l'exécution reprend à la ligne suivant fin essayer.En nommant une variable après attraper, on peut lire le message d'erreur exact et l'afficher ou le traiter dans le programme.
Les blocs essayer peuvent être imbriqués. Chaque niveau gère ses propres erreurs indépendamment — une erreur dans le bloc interne ne remonte pas au bloc externe si elle est attrapée.
attraper, le bloc attraper externe ne s'exécute pas.t[10] sur un tableau de 3 éléments).convertir_nombre('abc') sur un texte qui ne peut pas être converti en nombre.essayer / attraper ne doit pas servir à masquer des erreurs de logique. Si une erreur survient souvent au même endroit, mieux vaut corriger la cause avec une condition (si) plutôt que de simplement l'ignorer avec attraper.Quand une expression contient plusieurs opérateurs, ils ne sont pas évalués de gauche à droite : certains ont une priorité plus élevée. Voici l'ordre, du plus prioritaire au moins prioritaire :
1. nonNégation unaire — évalué en premier2. * / modMultiplication, division, modulo3. + -Addition, soustraction (et concaténation de textes)4. = <> < > <= >=Comparaisons5. etET logique6. ouOU logique — le moins prioritaire// En cas de doute, utilisez des parenthèses : (a + b) * cExécute le bloc seulement si la condition est vraie. Si elle est fausse, rien ne se passe et l'exécution continue après fin si.
L'une des deux branches est toujours exécutée. Si la condition est vraie → bloc alors ; sinon → bloc sinon. Les deux branches s'excluent mutuellement.
On peut imbriquer des structures si pour traiter plus de deux cas. Chaque si doit avoir son propre fin si.
L'indentation aide à visualiser quelle fin si ferme quel si.
On peut combiner plusieurs conditions dans un même si avec et (les deux doivent être vraies), ou (au moins l'une doit être vraie), et non (inverse la condition). Les parenthèses aident à lever toute ambiguïté.
La structure selon permet de choisir une action parmi plusieurs possibilités, en fonction de la valeur d'une variable ou d'une expression.
Utilisez pour quand vous savez à l'avance combien de fois la boucle doit s'exécuter. La variable de contrôle (i) prend automatiquement les valeurs de départ à fin, de 1
en 1 par défaut. Le mot-clé pas permet de changer l'incrément — y compris en négatif pour parcourir à rebours.
pas ne peut pas être 0 — cela provoquerait une boucle infinie. Pour parcourir à rebours, utilisez un pas négatif : pas -1.Utilisez tant que quand le nombre d'itérations n'est pas connu à l'avance — par exemple, répéter jusqu'à ce que l'utilisateur saisisse une valeur correcte, ou jusqu'à ce qu'un compteur
atteigne un certain seuil.
La forme la plus simple : répéter exactement N fois, sans avoir besoin d'une variable de contrôle. Idéale pour les actions répétitives simples (afficher un message N fois, dessiner une figure, etc.).
On peut placer une boucle à l'intérieur d'une autre. Pour chaque itération de la boucle extérieure, la boucle intérieure s'exécute entièrement. C'est la base des algorithmes sur des structures à deux dimensions (tableaux 2D, tables de multiplication, matrices).
continue sert à ignorer le reste de la boucle pour l'itération en cours et à passer directement à l'itération suivante.
arrête sert à arrêter complètement la boucle en cours.
t[0], le deuxième t[1], etc.) — une convention universelle dans la quasi-totalité des langages de programmation.
t est un tableauCréer un tableau vide []t ajoute 42Ajouter 42 en fin de tableaut[0] vaut 99Modifier l'élément à l'index 0affiche t[0]Lire la valeur à l'index 0t supprime 2Supprimer l'élément à l'index 2vide tVider entièrement le tableauLe pattern classique pour accéder à chaque élément d'un tableau : une boucle pour allant de 0 à longueur(t) - 1. La fonction longueur retourne le nombre d'éléments, donc le dernier index valide est toujours longueur - 1.
Affecter directement une valeur à un index inexistant étend automatiquement le tableau. Les éléments intermédiaires sont initialisés à une chaîne vide. Cela peut être pratique, mais peut aussi provoquer des surprises si on n'y prend pas garde.
Un tableau à 2 dimensions (souvent appelé "grille" ou "matrice") est un tableau qui contient d’autres tableaux.
- Chaque élément du tableau principal représente une ligne
- Chaque ligne est un tableau qui contient plusieurs cases (colonnes)
Important :
- L’index commence à 0 (premier élément = t[0]).
- Pour parcourir un tableau, on utilise souvent une boucle de 0 à longueur(t) - 1.
Pour une grille 2D, on utilise généralement deux boucles imbriquées (lignes puis colonnes).
La fonction taille permet de définir ou modifier dynamiquement la taille d’un tableau.
si n est supérieur à la taille actuelle :
- le tableau est agrandi
- les nouvelles cases reçoivent une valeur par défaut
si n est inférieur :
- les éléments excédentaires en fin de tableau sont supprimés
- si le tableau est vide, il est automatiquement initialisé
Une fonction peut contenir n'importe quelle structure du langage. Ici, deux branches de retour : l'une si a > b, l'autre sinon. La première instruction retourne rencontrée arrête
l'exécution de la fonction.
Une fonction peut s'appeler elle-même — c'est la récursivité. C'est un concept avancé mais très élégant pour certains problèmes. La clé est toujours le cas de base : une condition qui arrête
la récursion (ici n <= 1), sans laquelle la fonction s'appellerait infiniment.
procédure et s'appellent avec appelle.
Le choix entre fonction et procédure dépend du besoin : si on veut un résultat réutilisable (dans un calcul, une condition, un affichage), on utilise une fonction. Si on veut effectuer une action sans s'attendre à un résultat (afficher, remplir un tableau, etc.), on utilise une procédure.
| Critère | Fonction | Procédure |
|---|---|---|
| Mot-clé début | fonction |
procédure |
| Mot-clé fin | fin fonction |
fin procédure |
| Retourne une valeur | Oui (retourne) |
Non |
| Utilisable dans expression | Oui : x vaut f(3) |
Non |
| Mode d'appel | Direct ou avec appelle |
Obligatoirement avec appelle |
racine(9) retourne 3, longueur('bonjour') retourne 7, etc.
racine(9) → 3, racine(2) → 1.414…absolue(-5) → 5, absolue(3) → 3. Utile pour calculer des distances.arrondi(3.7) → 4, arrondi(3.2) → 3hasard(1, 6) simule un lancer de dé à 6 faces.si a < b alors retourne a sinon retourne b.décimal(3.14159265358979, 2) → 3.14sinus(3.14159)cosinus(3.14159)tangente(45 * pi / 180)logarithme(2.71828) → ≈ 1pi() → 3.14159265358979pair(7) → fauximpair(3) → vrailongueur('abc') → 3, longueur('bonjour monde') → 13majuscule_initiale('bonjour') → 'Bonjour'.
de la casse.
majuscules('bonjour') → 'BONJOUR'. Utile pour comparer des chaînes sans tenir compte
de la casse.
minuscules('BONJOUR') → 'bonjour'.inverser('abc') → 'cba'. Utile pour détecter les palindromes.mot apparaît dans texte, sans tenir compte de la casse. Retourne vrai ou faux.ancien par nouveau dans le texte. Retourne le texte modifié (n'altère pas l'original).repeter_texte('*', 5) → '*****'. Idéal pour dessiner des formes dans la console.hasardtexte('Pierre', 'Feuille', 'Ciseaux') simule un choix aléatoire.commence_par('Bonjour', 'Bon') // vraitermine_par('Bonjour', 'Bon') // fauxcompter('banana', 'a') // 3copier('bonjour', 4, 4) // 'jour'caractère(65) // Acode('A') // 65position('jour', texte) // texte = bonjour → 4insertion('jour', 1, Bon) // Bonjourchiffres('23ABC10') // 2310lettres('23ABC10') // ABCaffiche normaliser('éàü') // eauexpression('\w+@\w+\.\w+', texte) taille(t, 2)t[0] mais plus lisible. Provoque une erreur si le tableau est vide — vérifiez avec longueur(t) > 0 avant.t[longueur(t) - 1] mais plus concis. Provoque une erreur si le tableau est vide.vrai ou faux. Plus simple qu'une boucle de recherche manuelle.[0] = val. Très pratique pour déboguer l'état d'un tableau sans écrire une boucle d'affichage.mots vaut découper('pomme,poire,banane', ',')affiche joindre(t, ', ')trier(t) // Ordre décroissant : trier(t, 'desc')unique(t)jj/mm/aaaa. Retourne une datehh:mm:ss. Retourne une heureimporter('C:\monfichier.csv') / importer('https://educode-academie.fr/')sauvegarder('C:\monfichier.txt', 'Bonjour monde !')fichier_existe('C:\monfichier.txt')ajouter_ligne('C:\log.txt', 'Démarrage du programme')télécharger('https://exemple.fr/img1.png', 'C:\Images')'42'). Utile pour valider les saisies utilisateur avant de faire des calculs.convertir_texte(42) → '42'. Nécessaire pour concaténer un nombre avec du texte dans certains contextes.convertir_nombre('3.14') → 3.14. Provoque une erreur si la conversion est impossible.convertir_date(x)convertir_heure(x)score vaut 120 → score vaut limiter(score, 0, 100)| Message d'erreur | Cause probable | Solution |
|---|---|---|
Variable inconnue : "x" |
Variable utilisée avant d'être déclarée | Ajouter x est un nombre (ou texte, booléen, tableau) avant la première utilisation |
Variable déjà déclarée : "x" |
La variable a déjà été déclarée auparavant | Supprimer la redéclaration. |
Division par zéro |
a / 0 ou a mod 0 — le diviseur vaut 0 |
Vérifier le diviseur avec un si avant de diviser : si b <> 0 alors … |
Index hors limites : t[5] |
Accès à un index qui n'existe pas dans le tableau | Vérifier avec longueur(t) que l'index est valide avant d'y accéder |
"x" n'est pas un tableau |
Utilisation de la notation t[i] sur une variable qui n'est pas un tableau |
Déclarer la variable avec x est un tableau |
fin si manquant |
Un si n'a pas de fin si correspondant |
Vérifier que chaque si imbriqué est bien fermé par son propre fin si |
pas ne peut pas être 0 |
Boucle pour avec un incrément (pas) égal à 0 |
Utiliser un pas non nul — positif pour aller en avant, négatif pour aller en arrière |
"f" : 2 paramètre(s) attendu(s) |
Nombre d'arguments incorrect lors de l'appel d'une fonction | Vérifier la signature de la fonction et passer le bon nombre d'arguments |
Soustraction de textes impossible |
'a' - 'b' n'est pas supporté |
Seul l'opérateur + est valable pour les textes (concaténation) |
premier/dernier : tableau vide |
Appel de premier() ou dernier() sur un tableau sans éléments |
Vérifier longueur(t) > 0 avant d'appeler ces fonctions |
la boucle "tant que" dépasse la limite d'itérations |
Boucle infinie détectée | Vérifier que la condition évolue à chaque itération |
Champ inconnu : "nom" |
Le champ demandé n’existe pas dans l’enregistrement | Créer le champ avant de le lire :
x.nom vaut …
|
"x" n'est pas un enregistrement |
Accès à un champ (x.nom) sur une variable non enregistrement |
Déclarer la variable comme enregistrement :
x est un enregistrement
|
"x" est une constante : modification interdite |
Tentative de modification d’une constante | Supprimer l’affectation ou utiliser une variable à la place |
L’interpréteur EduCode fonctionne de manière déterministe et contrôlée : à chaque interaction avec l’utilisateur (instruction demande), le programme est ré‑exécuté depuis le début avec les nouvelles entrées fournies.
Ce comportement est volontaire et permet : de garantir une exécution propre et cohérente, de simplifier la gestion des entrées utilisateur, d’assurer une pédagogie claire, étape par étape.
Attention à l’utilisation de la fonction hasard
- La fonction hasard (ou hasardTexte) génère une valeur aléatoire à chaque exécution du programme.
Conséquence importante :
- si hasard est utilisé avant ou au moment d’une instruction demande, sa valeur sera recalculée lorsque le programme redémarre après la saisie utilisateur.
- Cela peut donner l’impression que le résultat « change tout seul », une valeur aléatoire n’est pas conservée, ou que le programme se comporte de manière imprévisible.
En réalité, le comportement est logique : le programme repart du début, donc hasard est rappelé.
Le programme traditionnel de tout débutant. Montre comment utiliser affiche avec du texte littéral.
Utilisation de l'opérateur mod et d'une structure conditionnelle à deux branches.
Création, remplissage et parcours d'un tableau avec longueur.
Illustre l'utilisation d'une variable temporaire pour permuter deux valeurs — un pattern courant en algorithmique.
Combine saisie utilisateur, boucle pour et concaténation de texte pour produire un affichage formaté.
Programme interactif complet : boucle de saisie, accumulation dans une variable, calcul final. Montre comment utiliser convertir_texte pour construire un message d'invite dynamique.
Exemple de composition de procédures : encadre appelle ligne. Illustre comment découper un programme en sous-tâches réutilisables.
Programme interactif qui combine saisie de différents types (texte et nombre) et structure conditionnelle. Un bon exercice d'introduction pour les débutants.
L'un des algorithmes de tri les plus pédagogiques. Combine procédure, boucles imbriquées, accès aux tableaux par index, et échange de valeurs via variable temporaire.
Boucles, concaténation texte, hasard, copier, longueur.
Programme de quiz à 5 questions avec score final. Utilise une fonction utilitaire normalise pour comparer les réponses sans tenir compte des espaces ni de la casse — une bonne pratique pour la robustesse.
Bonne exploration — et surtout : amuse-toi à comprendre !
EduCode est un logiciel propriétaire à usage éducatif gratuit. Il n'est pas open source : le code source n'est pas distribué et ne peut pas être copié, modifié ou redistribué sous quelque forme que ce soit sans autorisation écrite de l'auteur.
Le fait qu'EduCode soit gratuit ne signifie pas qu'il est libre de droits. Gratuité et liberté d'exploitation sont deux choses distinctes.
// Ceci est un commentaire — ignoré à l'exécution