Programmer avec le langage Linotte
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Programmer avec le langage LinotteConnexion

Besoin d'un conseil sur la programmation en Linotte ?

-33%
Le deal à ne pas rater :
Nettoyeur haute pression 120 bars avec brosse lavage auto
39.90 € 59.90 €
Voir le deal

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Sans utiliser le verbe "inverser", créer un livre qui inverse un casier quelconque

Par exemple, j'ai en entrée :

Code:

nombres est un casier 1, 45, 65, 5, 78, 2

A la fin, du livre, je veux :

Code:

Affiche nombres

Et ça doit afficher :

Code:

2, 78, 5, 65, 45, 1

ça devrait pas être dur ?

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Un tableau comme un tableau d'atelier ou un tableau comme celui ci ?

___|___|___|___|___|___|___
___|___|___|___|___|___|___
___|___|___|___|___|___|___

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Un casier je voulais dire !!

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Ok. Ta contrainte est très contraignante (c'est un peu le principe, il faut dire...), et je ne trouve pas de solution pour l'instant. Je pense à utiliser je joker, mais comment ?...

Il serait possible que tu ne donne pas une correction trop tôt ?

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Je te laisse réfléchir... Pas de problème, je vais attendre !

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
J'ai bien une solution. J'attends un peu avant de la poster ?

Par contre je n'arrive pas à afficher le casier sur une seule ligne. Comment on peut faire ça ?

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
On se donne encore quelques jours avant de donner ça réponse ?

Pour afficher sur une ligne :
- soit tu boucles sur ton tableau et tu concatènes les éléments dans un texte sinon;

- "affice casier", ça fonctionne très bien !

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
"affiche nombre" fait une boucle infini et affiche nombre{i} me donne le résulatat sur plusieurs lignes ?

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Vous proposez vos solutions ? et après la mienne.

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Bah, moi, j'abandonne ! Une prochaine fois !

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Je propose cette solution mais je n'arrive pas à afficher

Affiche nombres

2, 78, 5, 65, 45, 1

Le résultat est sur plusieurs lignes

Livre: Inversion
Paragraphe: inversion de casier
Les rôles:
Nombre est un casier de nombre valant 1, 45, 65, 5, 78, 2
n est un nombre
Les actions:
Pour n de 5 à 0 , tu affiches Nombre{n}
Termine

Peux tu m'aider à afficher le résultat sur une ligne ?

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
un début de solution, vite fait :

Livre: Inversion
Paragraphe: inversion de casier
Les rôles:
Nombre est un casier de nombre valant 1, 45, 65, 5, 78, 2
txt est un texte vide
n est un nombre
Les actions:
Pour n de 5 à 0 , lis
Concatène txt,Nombre{n},"," dans txt
tu affiches Nombre{n}
ferme
affiche txt
Termine

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
ça fonctionne bien sauf qu'il y a une dernière virgule à la fin du résultat qui fait un peu tâche

2,78,5,65,45,1,

Mais on doit sans doute pouvoir l'enlever

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
"une dernière virgule à la fin du résultat qui fait un peu tâche"

c'est bien pour cela que je parle de début de solution... :;
):
c'était juste un petit coup de pouce en passant.

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
En mixant vos deux solutions, on arrive à un truc sympa :

En l'affinant, on arrive à ça :

Code:

Livre:
Inversion

Paragraphe:
inversion de casier
Les rôles:

Nombre est un casier de nombre valant 1, 45, 65, 5, 78, 2
txt est un texte vide
n est un nombre
Les actions:

Pour n de 5 à 0 , lis
Concatène txt,Nombre{n} dans txt
si n est différent de 0 alors concatène txt,"," dans txt
ferme
affiche txt
Termine

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Désolé d'y ajouter mon grain de sel (et de chipoter), mais l'exercice de départ était :

[quote=cpc]Sans utiliser le verbe "inverser", créer un livre qui inverse un casier quelconque[/quote]
Du coup, si on oublie le problème d'affichage, il me semble qu'il faudrait plutôt écrire un programme comme celui-là (qui d'ailleurs ne répond qu'imparfaitement à la question puisqu'il ne marche que pour des casiers de taille 6) :

Code:

Livre :
Inversion

Paragraphe :
Inversion
Les rôles :

Nombres est un casier de nombre valant 1, 45, 65, 5, 78, 2
Nombres2 est un casier de nombre valant 0, 0, 0, 0, 0, 0
n est un nombre
Les actions :

pour n de 0 à 5, Nombres2{n} vaut Nombres{5-n}
pour n de 0 à 5, Nombres{n} vaut Nombres2{n}
termine

D'un point de vue pédagogique, l'utilisation du second casier, bien pratique pour éviter la perte de certaines valeurs, me paraît intéressante (même si en fait on pourrait quand même s'en passer, mais ça fait un programme plus long).

description[simple] [résolu] Inverser un casier Empty[simple] [résolu] Inverser un casier

more_horiz
Bonsoir,

Oui, c'est vrai que j'avais demandé d'inverser un tableau...

Voici une autre solution, mais peut-être moins pédagogique ?

Code:

Livre :
inversion avec deux tableaux
Paragraphe :
principal
Rôles :

ca est un casier de nombre valant 1, 2, 3, 4
cb est un casier de nombre vide
b est un nombre
taille est un nombre
Actions :

mesure ca dans taille
pour b de taille-1 à 0, lis
ajoute ca{b} dans cb
ferme
affiche cb
termine

description[simple] [résolu] Inverser un casier EmptyRe: [simple] [résolu] Inverser un casier

more_horiz
privacy_tip Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum