Bonjour à tous,
j'ai une question concernant algobox...
En fait j'ai deux suites Un+1 = (2un + Vn)/3 et
Vn+1 = (Un + 2Vn)/3
Comment fait-on pour calculer et afficher les 20 premiers termes de chaque suite ?
merci de votre aide
Bonne journée
Océane
VARIABLES
U EST_DU_TYPE NOMBRE
V EST_DU_TYPE NOMBRE
USUIV EST_DU_TYPE NOMBRE
VSUIV EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
i EST_DU_TYPE NOMBRE
MSG EST_DU_TYPE CHAINE
DEBUT_ALGORITHME
U PREND_LA_VALEUR 8
V PREND_LA_VALEUR 2
LIRE N
POUR i ALLANT_DE 1 A N
DEBUT_POUR
USUIV PREND_LA_VALEUR (2*U + V)/3
VSUIV PREND_LA_VALEUR (U + 2*V)/3
U PREND_LA_VALEUR USUIV
V PREND_LA_VALEUR VSUIV
MSG PREND_LA_VALEUR "U" + i + "=" + U
MSG PREND_LA_VALEUR MSG + " V" + i + "=" + V
AFFICHER* MSG
FIN_POUR
FIN_ALGORITHME
Merci beaucoup
.
Mais je ne comprends pas le message de type chaine, nous n'avons jamais vu ça... Et de plus lorsque je le fais, il n'affiche pas les termes de chaque suite...
Pour afficher un message, tu peux utiliser l'instruction Afficher un Message d'ALGOBOX.
Mais elle est très pénible parce qu'elle ne permet pas de "mélanger" du texte et des nombres.
Donc l'astuce est d'utiliser une chaîne de caractère, que j'appelle MSG (pour qu'on comprenne à quoi elle sert).
Je peux alors "construire" le contenu de mon message comme je veux en le plaçant dans la variable MSG.
Pour ça c'est simple, j'utilise la concaténation avec le symbole +.
Si j'écris :
MSG PREND_LA_VALEUR "U" + i + "=" + U
AFFICHER* MSG
Alors si i vaut 1 et U(1) vaut 6 j'afficherai : U1=6
Pour afficher à la suite Ui et Vi :
MSG PREND_LA_VALEUR "U" + i + "=" + U
MSG PREND_LA_VALEUR MSG + " V" + i + "=" + V
AFFICHER* MSG
Voilà c'est tout bête.
Si ton programme n'affiche pas les deux suites, c'est que tu l'as mal écrit.
Vérifies le.
Les instructions sur le MSG doivent être à l'intérieur de la BOUCLE.
Ah oui il fonctionne mais je n'arrive pas à afficher les 20 premiers en même temps, sur la même page..
As-tu bien fait la différence entre
AFFICHER et AFFICHER*
Lorsqu'il y a une étoile après AFFICHER, il y a un saut de ligne après.
Sinon il n'y en a pas.
Bonjour,
juste une petite subtilité sur
AFFICHER U
AFFICHER* V
si U vaut 3 et V vaut 4 par exemple cela va afficher : 34
(puis la suite sur la ligne suivante à cause du "*")
pour les séparer il faut intercaller un message entre les deux "afficher", par exemple :
AFFICHER U
AFFICHER ", "
AFFICHER* V
et il affichera alors : 3, 4
l'utilisation de la variable chaine est simplement plus élégante pour "formatter" la sortie (un affichage propre disant ce qu'on affiche et séparant les valeurs) plutôt qu'une succession d'un tas de "AFFICHER"
Bonjour mathafou
,
Oui en effet. Le AFFICHER de "base" d'ALGOBOX est carrément "lourdingue", dans la programmation, et dans le formattage des sorties.
C'est étonnant que cette instruction ne permette pas la concaténation directement : ça éviterait de passer par une variable chaîne et ça troublerait moins les débutants...
Mais bon, l'utilisation des chaînes n'est pas bien méchante à comprendre et elle "ouvre" un champ intéressant pour quiconque veut s'initier à la "programmation"...
Merci beaucoup à vous deux pour vos réponses super utiles !!
Avez-vous des conseils pour s'améliorer en algorithme ? car j'ai un peu de mal...
!!!
Tu ne devrais pas en avoir peur :
- C'est plutôt amusant
- C'est très pratique pour résoudre plein de problèmes
- C'est pas bien compliqué, faut juste découvrir un peu comment ça fonctionne...
Si tu t'entraînes plus, seule, et sur des choses simples, tu te familiariseras et tu deviendras de plus en plus autonome.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :