Bonsoir si quelqu'un pourrait m'éclaircir sur cet exercice?
Merci d'avance !
-----
Bonsoir si quelqu'un pourrait m'éclaircir sur cet exercice?
Merci d'avance !
Il s'agit ici de construire un algorithme ou un programme pour résoudre le problème. Savez-vous ce qu'est un algorithme ? En avez-vous travaillés en cours ?
Oui je sais ce que c'est et je sais les faire.
Parfait.
Il faut calculer les images par f de plusieurs valeurs de x tant que ces images restent inférieures à A.
Vous pouvez alors écrire l'algorithme correspondant.
D'accord compris je fais sa ! Merci
Je comprends ce qu'il faut faire mais je n'arrive pas à faire l'algorithme :/
Il s'agit de calculer pour plusieurs valeurs de x, différentes valeurs de f(x). Donc il faut répéter plusieurs fois la même opération. Que dispose-t-on en algorithmique pour faire cela ?
Il y a la "boucle" mais c'est là que je ne comprends pas car on ne sait pas combien de fois il faut répéter pour trouver le x en question, il faudrait mettre un "tant que" mais je n'y arrive pas.
Bonjour.
Quand x augmente, f(x) augmente. Donc on peut tester tous les entiers jusqu'à en trouver un tel que f(x)>A; ce sera bien sûr le plus petit. Donc ta boucle a une condition d'arrêt évidente.
On attend que tu rédiges un début d'algorithme.
: Input"A=",A
: Prompt N
: For(I,1,N)
: Disp A
: Pause
: x*(x+8)->B
Après je ne sais pas :/
Essaie d'exécuter ton programme (je ne sais pas ce que fait "Prompt N", mais quelle est sa valeur ?)
"Prompt N" = Il demande un nombre de répétition
Mais comme je disais, on ne sait pas le nombre de répétition.
En algorithmique il y a deux type de boucles, les boucles "pour" et les boucles "tant que".Envoyé par Ogagal"Prompt N" = Il demande un nombre de répétition
Mais comme je disais, on ne sait pas le nombre de répétition.
Connais-tu leur différence ?
D'autre part, quand on écrit une boucle il faut distinguer 2 choses:
1) l'entête de la boucle, dans ton exemple c'est "For(I,1,N)"
2) le corps de boucle qui est l'ensemble des instructions que l'on va répéter dans la boucle. Dans
ton exemple ce n'est pas clair (je suppose que c'est du langage TI).
C'est pour la clarté de l'algorithme que l'on évite de les écrire en langage TI, Casio ou autre
mais que l'on préfère une écriture en langue naturelle du genre:
Pour i=1 à N faire
....
....
corps de boucle
....
....
Fin Pour
Au lieu de input et Prompt
on préfère par exemple :
Saisir un réel dans A
De plus il y a dans ton exemple 4 variables. Que représentent -elles ?
Bonjour.
1) le N ne sert à rien, puisqu'on ne va pas faire un très grand nombre de répétitions : f(x) est supérieur à x, donc on ne fera pas plus de A répétitions.
2) tu as parlé de "tant que" (boucle contrôlée par une condition) et tu écris un for (boucle qui se fait un nombre fixé de fois)
3) Pourquoi afficher A à chaque fois dans la boucle ?
4) "x*(x+8)->B" ??? C'est quoi ce x, dont tu n'as jamais parlé dans le programme ?
Bon, sérieusement, tu sembles toi-même ne pas savoir comment tu ferais à la main (*). Je te donne A=57, comment trouves-tu toi-même la réponse ? Je ne te demande pas simplement la réponse, mais comment tu as fait pour la trouver.
Cordialement.
(*) si tu ne sais pas toi-même ce que tu veux faire faire à la calculette ou à l'ordinateur, comment pourrais-tu lui indiquer ?
je n'ai certainement pas été clair. je suis parti du programme d'Ogagal, qui a écrit l'entête d'une boucle "pour" sans en fermer le corps par l'instruction "next" (je crois que c'est ainsi en langage TI). Avant de disserter sur le choix de la bonne boucle il faudrait que Ogagal comprenne bien ce qu'est une boucle. Vu son programme la chose semble floue. D'autre part, l'écriture d'un algorithme dans un langage donné, ici TI, est soumis aux difficultés de la syntaxe des langages particuliers qui en général complique la bonne compréhension des l'algorithmes, ici le manque des indentations spécifiant les instructions du corps de boucle.
Quand au fait de savoir si je peux écrire l'algorithme correspondant, je pense pouvoir écrire un algo de niveau seconde vu que cela fait 25 ans que j'enseigne la programmation en Lycée.
Désolé de répondre aussi tard mais avec une connexion qui flanche c'est dur ..
- ggO: A=57
Je calcul f(4) = 48 et f(5)= 65
Donc le combre x qui convient est 4.
- eudea-panjclinne: - Une boucle "pour" permet de répéter un nombre de fois choisit une ou plusieurs lignes.
- Une boucle "tant que" permet de répéter une ou plusieurs fois jusqu'à que le "tant que" soit vérifié.
Pour cet exercice, je pense qu'il faut prendre les 2 boucles mais je ne suis pas sur, et si j'ai raison alors je ne vois pas comment le faire.
Salut
La condition "tant que" est nécessaire et suffisante .
A quoi servirait le "pour" ?
En plus quelle valeur justifiable par autre chose que "je pense que" tu lui donnerais ?
J'ai essayé cela sur ma calculatrice mais il me dit que j'ai un problème sur le "sinon":
Saisir A
Saisir x
B prend la valeur x*(x+8)
Tant que B<A
Afficher "f(x)="
Sinon
Afficher "f(x)>A"
C'est à l'utilisateur de choisir la valeur ? L'ordinateur ne peut pas le faire ?
Et c'est quoi ce "sinon" qui n'est pas précédé d'un "si" ??
N'importe comment, c'est inadmissible que tu écrives un programme sans avoir essayé de simuler ce que fait l'ordinateur. Un ordinateur fait bêtement ce qui est indiqué, tu peux aussi le faire. Et tu verras bien ce que tu lui as demandé de faire.
Autre chose : Une boucle a un début et une fin. Tu peux utiliser le vocabulaire symbolique :
Pour ...
faire ..
...
fin faire
et
tant que ...
faire ..
...
fin faire
et
faire ..
...
tant que ...
les deux dernières boucles ne sont pas équivalentes, dans l'avant dernière on teste, si le test réussit, on ne fait pas l'intérieur de la boucle. Alors qu'avec le dernier, la boucle est exécutée au moins une fois, on ne fait le test qu'après la première exécution.
Dernière chose : à priori, il ne devrait y avoir qu'un seul affichage, "le plus petit entier tel que f(x) soit supérieur à A". Si on met un affichage dans une boucle, il se fait autant de fois que la boucle.
A ce propos, ta réponse au message #16 est fausse
Cordialement.
"N'importe comment, c'est inadmissible que tu écrives un programme sans avoir essayé de simuler ce que fait l'ordinateur. Un ordinateur fait bêtement ce qui est indiqué, tu peux aussi le faire. Et tu verras bien ce que tu lui as demandé de faire."
Désolé !! Je demande de l'aide, si je l'ai écrit c'est que pour moi je pensais que c'était sa sinon je n'aurait pas posté sur ce forum.
Je sais faire des algorithmes mais avant sa il faut comprendre et vu que je n'ai pas compris comment le construire, je ne peux y arriver.
Message #16: Erreur de ma part la valeur de x est de 5.
Cordialemment.
Alors maintenant que tu as trouvé 5, comment as-tu fait ? Et comment le ferais-tu faire à un ordinateur très bête, de façon qu'il y arrive dans tous les cas, même A=2 ou A=2000 ?
Sinon "si je l'ai écrit c'est que pour moi je pensais que c'était sa (*) ". A moins d'écrire tout à fait au hasard en espérant que ça tombe juste (activité inintelligente), on ne pense pas que c'est ça sans bonne raison et sans vérifier un minimum. Un minimum en programmation élémentaire, c'est faire le programme, suivre les instructions bêtement pour voir ce que ça va donner.
Cordialement (un seul m).
(*) en bon français, on écrirait ça. "sa" désigne la possession par une troisième personne, ni toi ni moi.
f(4)=4*(4+8)=48 et f(5)=5*(5+8)=65
Je ne sais pas comment faire pour que la calculatrice répète seule la boucle sans saisir le nombre moi-même ..
Le principe de ta boucle :
Tu fais un calcul avec une valeur x
Tu teste le résultat
Si le résultat ne convient pas , tu augmente x de 1 et tu recommence
Si le test est bon , tu quitte la boucle .
Tu n' entre qu' une valeur : A
La première valeur x à tester est : (à toi de le dire)
C'est bizarre, orgagal : Tu parles de comme ça ... comment l'as-tu trouvé ? Si c'est en regardant la courbe sur une calculette, que ferait un aveugle (un ordinateur, ça ne voit pas) ?
Pour l'instant, tu es quand même sérieusement passif !!!
Encore une fois désolé pour la réponse tardive, je n'ai plus internet depuis 1 semaine, bref ..
Merci pour vos aides, j'ai réussi l'algorithme:
Saisir A
x prend la valeur 0
B prend la valeur x*(x+8)
Tant que B<A
Faire
x prend la valeur x+1
B prend la valeur x*(x+8)
Fin faire
Afficher X
Voilà !
J'imagine que tu l'as testé ?
J'espère que tu vois mieux ce qu'il faut faire pour programmer.
Cordialement.
Oui je l'ai testé
Dynamix: Désolé, c'est un petit "x"