Portail d'enseignement

E Suong
E Suong

Explorer les ressources

Accueil

Défis algorithmiques

Empilement de caisses

Programmez une pince en langage LN pour construire un escalier de caisses !

Défi de programmation · langage LN

Construire un escalier

Programmez la pince pour construire 4 marches : 1 caisse dans la première colonne, 2 dans la deuxième, jusqu’à 4 dans la dernière. Les autres colonnes de construction et la pince doivent être vides. Prenez les caisses sur le convoyeur de gauche ; celui de droite permet de les évacuer.

La variable N contient le nombre de marches choisi.

Exécuter repart d’un plateau vide. Pas à pas avance d’un appel, capteur compris ; jeter() effectue un aller-retour complet. Ctrl + Entrée : exécuter / arrêter. Le code reste enregistré sur cet appareil.

Syntaxe et exemple des commandes

Les mots-clés LN sont mis en majuscules au lancement. Les commandes de pince s’écrivent en minuscules, sans argument ni import.

lever()
droite()
poser()
lever()
droite()
poser()

Les boucles, conditions et fonctions de l’interpréteur LN sont disponibles. Par exemple, SI caisse_dessous(): permet de tester la présence d’une caisse avant une prise. jeter() évacue la caisse portée et revient au poste de départ. Exemple de boucle :

POUR i ALLANT DE 1 A 3:
  lever()
  droite()
  poser()
  gauche()
FIN POUR
Ouvrir l’interpréteur LN et sa documentation ↗

0 commandes terminées

Essayer à la main

Écrivez un programme ou essayez les commandes à la main.

Console LN
Les instructions AFFICHER apparaîtront ici.

Les commandes de la pince

droite() / gauche()
Déplace la pince d’une colonne, avec la caisse qu’elle porte éventuellement.
poser()
Dépose la caisse portée sur une pile, ou sur le convoyeur de droite qui l’évacue. La pince doit contenir une caisse.
lever()
Prend une caisse sur le convoyeur de gauche ou au sommet d’une pile. La pince doit être vide. Une nouvelle caisse avance sur le convoyeur d’entrée après chaque prise.
caisse_dessous()
Renvoie VRAI si une caisse se trouve sous la pince : sur la pile ou sur le convoyeur d’entrée. Renvoie FAUX sur une colonne vide ou le convoyeur de sortie. La caisse portée par la pince ne compte pas.
jeter()
Transporte la caisse portée jusqu’au convoyeur de sortie, la dépose et revient à la colonne de départ, pince vide. La pince doit contenir une caisse ; utilisez lever() auparavant pour retirer une caisse d’une pile.

La pince commence vide, au-dessus du convoyeur de gauche. Un pas à droite mène à la première colonne de construction. Les convoyeurs sont situés de part et d’autre des colonnes de construction. Une sortie du plateau, une prise à vide ou une pile trop haute arrête le programme avec un message. La scène conserve les commandes terminées. Réinitialiser conserve votre code.

Les déplacements et manipulations sont animés dans l’ordre du programme. Pause fige l’animation ; Pas à pas termine une commande, puis attend. L’arrêt annule uniquement la commande inachevée.