Bonsoir
J'ai 2 programmations à faire sur algobox qui ne fonctionnent pas chez moi :
un terrain de 1500 m² entièrement engazonné
tous les ans 20% remplacé par mousse
on arrache la mousse sur une surface de 50m² et la remplace par du gazon
pour tout nombre n, on note un surface en m² de terrain engazonné au bout de n années, en 2010+n
on a u0 = 1500
1/ algorithme qui permet de saisir en entrée en nombre n et de déterminer la surface engazonnée en l'an 2010 + n
VARIABLES
U EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
I EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER "Superficie en 2010 + N"
AFFICHER* U
LIRE N
U PREND_LA_VALEUR 1500
POUR I ALLANT_DE 0 A N
U PREND_LA_VALEUR 0,8*U+50
FIN_POUR
FIN_ALGORITHME
2/ algorithme qui permet de déterminer la 1ère année à partir de laquelle la surface engazonnée sera <300 m²
FONCTIONS_UTILISEES
VARIABLES
U EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
N PREND_LA_VALEUR 2010+N
AFFICHER* N
U PREND_LA_VALEUR 1500
N PREND_LA_VALEUR 0
TANT_QUE (U>300) FAIRE
N PREND_LA_VALEUR N+1
U PREND_LA_VALEUR 0.8*U+50
FIN_TANT_QUE
FIN_ALGORITHME
MERCI
Bonsoir, tu as une virgule dans le premier, algobox n'aime pas les virgules 0,8 mettre 0.8
dans le second, tu écris N PREND_LA_VALEUR 2010+N alors que N n'a jamais reçu de valeur.
(et puis pourquoi 2010+N )
le second n'affiche rien d'ailleurs. rajouter AFFICHER N à la fin
Bonjour et Merci
1/
Ne fonctionne toujours pas :
Aucune entrée pour N
et quand je teste j'ai :
1 FONCTIONS_UTILISEES
2 VARIABLES
3 U EST_DU_TYPE NOMBRE
4 N EST_DU_TYPE NOMBRE
5 I EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 AFFICHER "Superficie en 2010 + N"
8 AFFICHER U
9 LIRE N
10 U PREND_LA_VALEUR 1500
11 POUR I ALLANT_DE 0 A N
12 U PREND_LA_VALEUR 0.8*U+50
13 FIN_POUR
14 FIN_ALGORITHME
Les 2 dernières lignes passent en 7 et 8 ?
Je devrais trouver une superficie de 373 m² en 2020
2/ algorithme qui permet de déterminer la 1ère année à partir de laquelle la surface engazonnée sera <300 m²
FONCTIONS_UTILISEES
VARIABLES
U EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
N PREND_LA_VALEUR 2010+N
AFFICHER* N
U PREND_LA_VALEUR 1500
N PREND_LA_VALEUR 0
TANT_QUE (U>300) FAIRE
N PREND_LA_VALEUR N+1
U PREND_LA_VALEUR 0.8*U+50
FIN_TANT_QUE
FIN_ALGORITHME
Pareil .... Ne fonctionne pas ....
Afficher N est en ligne 7
Merci pour votre aide
1/
Oups
Je devrais trouver une superficie de 384 m² en 2020
U1 EST_DU_TYPE NOMBRE
U2 EST_DU_TYPE NOMBRE
U3 EST_DU_TYPE NOMBRE
U4 EST_DU_TYPE NOMBRE
U5 EST_DU_TYPE NOMBRE
U6 EST_DU_TYPE NOMBRE
U7 EST_DU_TYPE NOMBRE
U8 EST_DU_TYPE NOMBRE
U9 EST_DU_TYPE NOMBRE
U10 EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
U1 PREND_LA_VALEUR 0.8*1500+50
AFFICHER* U1
U2 PREND_LA_VALEUR 0.8*U1+50
AFFICHER* U2
U3 PREND_LA_VALEUR 0.8*U2+50
AFFICHER* U3
U4 PREND_LA_VALEUR 0.8*U3+50
AFFICHER* U4
U5 PREND_LA_VALEUR 0.8*U4+50
AFFICHER* U5
U6 PREND_LA_VALEUR 0.8*U5+50
AFFICHER* U6
U7 PREND_LA_VALEUR 0.8*U6+50
AFFICHER* U7
U8 PREND_LA_VALEUR 0.8*U7+50
AFFICHER* U8
U9 PREND_LA_VALEUR 0.8*U8+50
AFFICHER* U9
U10 PREND_LA_VALEUR 0.8*U9+50
AFFICHER* U10
1) 8 AFFICHER U alors que U n'a aucune valeur crée une erreur
AFFICHER U est à mettre à la fin
pour 2) toujours pareil N PREND_LA_VALEUR 2010+N alors que N n'a pas de valeur crée une erreur
et il manque un AFFICHER U à la fin
Bonjour,
en fait les deux sont la même erreur qui est bien plus du simple bons sens que de l'algorithmique :
on ne peut connaitre (et donc afficher) un résultat que une fois qu'on a terminé les calculs de ce résultat !!
Bonjour,
Il vaudrait mieux faire écrire l'algorithme en langage courant avant de passer sur Algobox car la compréhension de ce qui est en Algobox est une catastrophe !!!
Peut-on en Algobox commenter les variables que l'on déclaré ?
Dire ce à quoi on va Utiliser " U est un nombre " serait un énorme progrès.
VARIABLES
// U représente la somme courante année après année
U EST_DU_TYPE NOMBRE
// N est le nombre d'années depuis 2010
N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE N
// valeur de U en 2010
U PREND_LA_VALEUR 1500
// ...
FIN_ALGORITHME
certes il faut se mettre en mode "éditeur" pour ajouter des commentaires dans la partie "déclaration de variables" mais tout de même !
on peut.
et par contre dans le corps de l'algorithme on peut mettre tous les commentaires qu'on veut tout le temps : il y a un bouton "commentaire"
donc à défaut, la signification des variables peut se mettre à cet endroit (quand on les utilise)
Pour Abigail,
Pour te remonter le moral (si besoin ), je voudrais juste te dire que ta première mouture du premier programme n'était pas aussi calamiteuse qu'il pourrait paraître.
Le choix des 3 variables était pertinent, la formule donnant les valeurs successives de U était correcte et l'idée d'une boucle faisant défiler les valeurs successives de U tout a fait judicieuse.
Seules défaillances,
* l'oubli de faire afficher U quand on est sorti de la boucle (on s'en aperçoit vite et cela n'empêche pas le programme de tourner)
* et, plus "vicelard" et délicat à repérer, le choix de 0 comme valeur de i en entrée de boucle car cela n'empêche pas le programme de tourner, l'affichage d'un résultat de se faire mais hélas d'un résultat... FAUX.
Au passage, je me suis aperçu qu'Algobox m'interdisait de choisir N (majuscule) comme nom de variable.... (et grâce à Mathafou qu'il existait un bouton "Commentaires" )
pour la correction de la valeur en 2010, je n'avais effectivement pas vu cette correction car elle était incluse dans un message "un peu fouillis" (calcul linéaire des Uk)
pour le for du Python qui est un peu spécial, il faut le justifier par "for i in range(10)" tout court qui génère 10 valeurs (de 0 à 9)
les "complications de range() permettent de modifier la valeur de départ et le pas, mais pas le mécanisme qui s'arrête donc borne finale non comprise.
mais bon, une fois qu'on s'est fait piéger, on le sait et on prend vite l'habitude.
nota : en C et en plein d'autres langages plus ou moins dérivés du C (Java, JavaScript, PhP etc) on met explicitement la condition d'arrêt, donc on ne risque pas de se tromper entre
for (i=0; i<n; i++)
et for (i=1; i<=n; i++)
le problème vient essentiellement de ceux qui ont commencé avec Algobox dans lequel la condition d'arrêt est implicitement <=n non modifiable. (et le pas = 1 non modifiable sauf bidouilles infâmes)
il faut reconnaitre que le for de Python (et celui de Perl, même chose) permet infiniment plus de possibilités que le for "numérique" du C et autres ("pour chaque bidule d'une liste arbitraire" par exemple)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :