SNI-Algo-29
Extension VS Code pour écrire le pseudo-code en français du cours d'algorithmique, avant de le traduire en VBA. Elle colore le code, vérifie la syntaxe, complète les mots-clés, ferme les blocs toute seule et remet l'indentation au propre.
Les fichiers doivent avoir l'extension .algo.
Vérification de la syntaxe
Les erreurs sont soulignées pendant la frappe. Cmd+. (ou l'ampoule) propose une correction quand elle existe.
| Problème détecté |
Correction proposée |
Bloc jamais fermé (Si sans FinSi, Pour sans FinPour…) ou mal fermé |
Ajouter la fermeture |
alors ou Faire manquant |
L'ajouter |
Variable non déclarée (sauf le compteur d'une boucle Pour, créé automatiquement comme en Python) |
Déclarer (Entier, Reel, Chaine, Booleen), ou remplacer par un nom proche (totl → total) |
| Variable utilisée avant d'avoir reçu une valeur |
Ajouter x <-- 0 après Debut |
| Variable déclarée mais jamais utilisée |
Supprimer la déclaration |
Constante modifiée, compteur de Pour modifié dans la boucle |
— |
= au lieu de <-- pour affecter, = au lieu de == pour comparer |
Remplacer |
Type inconnu, valeur du mauvais type (nom <-- 12 pour une Chaine) |
Type le plus proche |
| Tableaux : mauvais nombre d'indices, indice hors bornes, tableau sans indice, borne inconnue |
— |
Parenthèse ou guillemet non fermé, Lire/Ecrire sans parenthèses |
Fermer |
20 000 ou 1,2 dans une constante |
20000, 1.2 |
Mot-clé écrit autrement que dans le cours (Fin TantQue, Sinon Si), accents dans les noms. Les majuscules et minuscules sont libres : faire, ALORS, finsi sont acceptés |
Écriture du cours (indice discret) |
Procédure ou fonction mal fermée, paramètre invalide, appel avec un mauvais nombre d'arguments ou Retourner hors fonction |
Signaler l'erreur |
Fonctions et procédures
Chaque procédure ou fonction forme un bloc indépendant. Ses paramètres, constantes et variables lui sont locaux et ne sont pas visibles dans les autres blocs. Les appels peuvent précéder la déclaration du sous-programme.
Procedure Afficher(nom : Chaine, age : Entier)
Variables
message : Chaine
Debut
message <-- nom
Ecrire(message, age)
FinProcedure
Fonction Doubler(valeur : Reel) : Reel
Debut
Retourner valeur * 2
FinFonction
Une procédure se ferme avec FinProcedure et ne retourne pas de valeur. Une fonction précise son type après : et renvoie sa valeur avec Retourner. Les fonctions peuvent être utilisées dans une expression (resultat <-- Doubler(x)) ; les procédures s'appellent comme une instruction (Afficher(nom, age)).
Tester en Python
Dans la palette de commandes (Cmd+Maj+P), lance SNI-Algo-29 : Tester un algorithme en Python. Choisis l'algorithme, la fonction ou la procédure à tester ; le bloc où se trouve le curseur est proposé en premier. Les fonctions et procédures appelées par le bloc choisi sont ajoutées automatiquement. Le code est converti dans un script temporaire et exécuté dans un terminal intégré, où tu peux saisir les réponses aux Lire.
Python 3 doit être installé. L'extension utilise python.defaultInterpreterPath s'il est défini, sinon python3. Les tableaux simples et multidimensionnels sont convertis avec des indices pseudo-code conservant leurs bornes. Une construction non prise en charge affiche une erreur de conversion plutôt que de produire un résultat approximatif.
Écriture
- Fermeture automatique : après
Si … alors, Pour … Faire, TantQue … Faire, Répéter, Debut ou Algorithme nom, la touche Entrée ajoute la ligne de fermeture et place le curseur dans le bloc. S'il manque alors ou Faire, elle l'ajoute.
- Indentation automatique : la ligne suivante s'indente après une ouverture, et
Sinon, FinSi, FinPour, Fin… se recalent tout seuls.
- Formatage (
Maj+Option+F) : réindente tous les algorithmes proprement.
- Autocomplétion selon l'endroit :
- hors algorithme : squelette
Algorithme, exercice exo, region ;
- après
: dans Variables : les types et Tableau[1..N] de Type ;
- en début d'instruction :
Si, Pour, TantQue, Répéter, Lire, Ecrire, les fermetures du bloc en cours, les variables (avec <--) et « Parcourir notes », une boucle Pour toute prête sur chaque tableau déclaré ;
- dans une expression : les variables et constantes avec leur type,
ET, OU, NON, DIV, MOD, Vrai, Faux, puis alors ou Faire.
Navigation
- Survol d'une variable : son type, sa ligne de déclaration et ses bornes. Survol d'un mot-clé : l'aide du cours.
- F12 : aller à la déclaration. Maj+F12 : toutes les utilisations. F2 : renommer partout.
- Plan (vue « Structure »,
Cmd+Maj+O) : régions, algorithmes, variables, tableaux et constantes.
- Régions repliables :
// #region Titre … // #endregion. // MARK: Titre s'affiche dans la minimap.
Syntaxe reconnue
// #region Exercice — Notes de la classe
Algorithme notes_classe
Constantes
NB = 5
Variables
notes : Tableau[1..NB] de Reel
grille : Tableau[1..3, 1..4] de Reel
i, j : Entier
total : Reel
Debut
total <-- 0
Pour i allant de 1 à NB Faire
Ecrire("Saisir la note ", i)
Lire(notes[i])
total <-- total + notes[i]
FinPour
Si total / NB >= 10 alors
Ecrire("Moyenne : ", total / NB)
SinonSi total == 0 alors
Ecrire("Aucune note")
Sinon
Ecrire("Insuffisant")
FinSi
Fin
// #endregion
Autres écritures acceptées : Variable, Constante, Début, Réel, Booléen, Chaîne, SinonSI, Pour i de 1 à N faire, Repeter, pas dans une boucle Pour, commentaires // et /* … */.
Réglages
| Réglage |
Par défaut |
Effet |
sniAlgo.verification.activer |
oui |
Vérifier la syntaxe |
sniAlgo.verification.ecriture |
oui |
Signaler les mots-clés écrits autrement que dans le cours |
sniAlgo.verification.accents |
oui |
Signaler les accents dans les noms |
sniAlgo.verification.compteurImplicite |
oui |
Déclarer automatiquement le compteur d'une boucle Pour (Entier) |
sniAlgo.finAuto |
oui |
Fermer les blocs avec la touche Entrée |
sniAlgo.completerAlorsFaire |
oui |
Ajouter alors / Faire manquants avec la touche Entrée |
Licence
MIT
| |