Bonjour , j'ai un exercice à faire sur les algorithmes et j'ai vraiment du mal . Voila l'énonce :
Ecrire en langage naturel un algorithme permettant de calculer les N premiers termes des suites suivantes :
u(n)= 1 + 1/2 + 1/3 ... + 1/n avec u0= 0
v(n)= 1 + 1/2² + 1/3² + 1/4² ... + 1/n² u0= 0
Puis programmer ces algorithmes sur la calculatrice .
Quelqu'un pourrait m'expliquer comment on fait? Merci beaucoup
Bonjour, pour ton programme, en langage naturel donnerait quelque chose ressemblant à ceci:
Soit un entier N différent de 0
Soit U=1
Afficher 0
Pour I allant de 1 à N
U devient U + 1/I (U + 1/I² pour la deuxième suite (vn))
Afficher U
Ensuite, il suffirait de retranscrire ce programme dans ton langage de programmation, notamment celle de ta calculatrice dans ton cas.
Après celà, je ne pense pas pouvoir t'aider plus mais il serait bien de préciser quelle est ta calculatrice dans le cas ou d'autres membres souhaiteraient t'aider.
Bonne chance à toi
hawkuru a fait une légère erreur, qu'il aurait découverte en faisant "tourner" son algorithme
les trois premiers termes exacts de sont
u_0=0
u_1=1
u_2=1+1/2=1.5
avec son algorithme, il affiche
0
2
2.5
En effet, merci à toi d'avoir vu cette erreur on nous indique bien que u0=0
Mais il en vas ensuite de soit que u1 = 1 puisque 1/1 = 1
La commande "Afficher 0" est en quelque sorte un système "D" (pour débrouillard :p) pour afficher u0 en quelques sortes.
Ensuite dans la boucle For, I va de 1 à N, donc 1 est inclut, on a donc U + 1/I = 1+1 = 2, voilà donc la première erreur.
On peut donc rajouter une ligne de code "Afficher 1" ou "Afficher U" Puisqu'il est défini que U=1 (Même si c'est très officieux et pas très rangé, mais comme je ne suis pas un pro de la programmation on va faire avec :p)
Ce qui donne donc quelque chose comme ceci:
Soit un entier N différent de 0
Soit U=1
Afficher 0
Afficher U (ou Afficher 1)
Pour I allant de 1 à N
U devient U + 1/I (U + 1/I² pour la deuxième suite (vn))
Afficher U
Si on pouvait m'expliquer à quoi ça sert de mettre I allant de 1 à N . Si par exemple N=5 I=4? Je ne capte pas grand chose ^^ . Merci
Enfaite I allant de 1 à N est la boucle "For" qui permet de définir sur quoi va porter la boucle.
Par exemple:
Si tu prends N=5
Un programme qui ajoute I allant de 1 à N au nombre 1.
On a la première étape 1: 1
La boucle s'active :
1 + 1 = 2
2 + 2 = 4
4 + 3 = 7
7 + 4 = 11
11 + 5 = 16
On ajoute 1, puis 2, puis 3... jusqu'à que tu atteignes la valeur N choisie.
Je ne te définis pas la totalité du programme, car ce n'est qu'un exemple afin de t'expliquer comment la boucle For marche.
à hawkuru : tu fais la même erreur, car ton deuxième exploit :
Soit un entier N différent de 0
Soit U=1
Afficher 0
Afficher U (ou Afficher 1)
Pour I allant de 1 à N
U devient U + 1/I
Afficher U
nous donne les affichages suivants :
0
1
2
un algorithme plus simple qui fonctionne :
u prend la valeur 0 <-- c'est la valeur de
n prend la valeur 5 <-- c'est le nombre de termes qu'on veut afficher, donc on affichera les valeurs de
pour i allant de 0 à n-1
__afficher u <-- on affiche la valeur actuelle, donc dans la première boucle , dans la suivante , etc.
__u prend la valeur u+1/(i+1) <-- on calcule la valeur suivante, qui sera affichée à la boucle suivante
<-- remarque : le dernier calcul, quand i vaudra 4, est inutile, il calcule qui ne sera pas affiché
fin pour
codage en langage "Algobox"
1 VARIABLES
2 u EST_DU_TYPE NOMBRE
3 n EST_DU_TYPE NOMBRE
4 i EST_DU_TYPE NOMBRE
5 msg EST_DU_TYPE CHAINE
6 DEBUT_ALGORITHME
7 LIRE n
8 msg PREND_LA_VALEUR "On va afficher les " + n + " premières valeurs de la suite"
9 AFFICHER msg
10 // Initialisation de U qui prend la valeur de u_0
11 u PREND_LA_VALEUR 0
12 POUR i ALLANT_DE 0 A n-1
13 DEBUT_POUR
14 msg PREND_LA_VALEUR "u_"+i+"="+u
15 AFFICHER msg
16 u PREND_LA_VALEUR u+1/(i+1)
17 FIN_POUR
18 FIN_ALGORITHME
Résultats :
***Algorithme lancé***
On va afficher les 10 premières valeurs de la suite
u_0=0
u_1=1
u_2=1.5
u_3=1.83333333333
u_4=2.08333333333
u_5=2.28333333333
u_6=2.45
u_7=2.59285714286
u_8=2.71785714286
u_9=2.82896825397
***Algorithme terminé***
Pour ceux qui voudraient découvrir le logiciel de calcul formel Xcas, voici un petit code qui renvoie un tableau de 3 colonnes,
l'indice n, le terme de rang n et une valeur approchée de ce terme.
Tableau(N):={
local S,T,j,k;
T:=[["n","u(n)","approx"]];
pour j de 1 jusque N faire
S:=0;
pour k de 1 jusque j faire
S:=S+1/k;
fpour
T:=append(T,[j,S,evalf(S,5)])
fpour
retourne T
}
C'est bon j'ai rectifié le problème, celà venait de U=1. Puisqu'en faite U=0
Soit N un réel différent de 0
U=0
Afficher U
Pour I allant de 1 à N
U = U + 1/I
Afficher U
End
mouais, Xcas est puissant, mais pour démarrer l'écriture d'algorithmes, il n'est pas très parlant, voire rebutant.
je préfère qu'un élève écrive FIN_POUR à la fin d'un bloc POUR, plutôt que fpour
Merci beaucoup !! Vous pouvez encore m'aider avec un petit truc? On nous donne un Algo2:
Soit un réel A, un réel U
Soit un entier N
I vaut 1
Tant que U<A et I<N
U devient U+1
I devient I+1
Fin tant que
Afficher U et I-1 .
La question c'est : à la manière de l'algo 2 , écrire en langage naturel : un algorithme permettant de calculer ) partir de quel rang la suite (un) depasse telle valeur puis idem pour la suite (vn) . Pour les algorithmes d'avant je trouve :
Prompt N
0 -> U
Disp U
For(I,1,N)
U+(1/I) -> U
Disp U
End
Pour vn c'est la même chose sauf qu'au lieu de U+(1/I) c'est U+(1/I²) . Maintenant j'essaye depuis 1 heure mais je n'arrive toujours pas à faire cette question . Merci beaucoup encore une fois ^^
Il est possible que le niveau moyen dans les classes soit nettement supérieur à celui qu'on peut relever dans les forums.
en tout état de cause, depuis l'introduction aux forceps de la programmation dans les programmes, j'entends pis que pendre de cette partie de la matière, et ajouter une syntaxe ésotérique à un déroulement intellectuel peu apprécié de ce que je peux en percevoir ne me paraît pas la meilleure démarche.
peut-être me trompé-je
sûrement aussi XCas a-t-il toute sa place dans des clubs d'informatique en Lycée.
je ne suis pas contre, utilisant dans mon quotidien professionnel des langages encore plus abscons.
mais pour aborder avec des élèves paumés de petits exercices comme celui-ci, je leur conseillerai longtemps encore le pauvre Algobox.
Essayez de demander à des élèves qui ne connaissent pas Xcas les réponses que le logiciel fournit si l'on tape:
f(x):=exp(2x)
f'(x)
equation(tangente(graphe(f(x)),0)))
T:=taux_accroissement(f(x),x,0,h)
limite(T,h,0)
Les difficultés à mon avis ne devraient pas venir du langage
Et il n'est pas impossible qu'au bac on puisse demander ce genre de choses (voir par exemple le sujet de ES de l'an dernier)
les élèves doivent-ils impérativement savoir manipuler un engin comme XCas pour le laisser répondre à leur place à ces questions ?
as-tu un lien me permettant de consulter le sujet de ES de l'an dernier que je comprenne mieux comment XCas va s'imposer dans les classes de Terminale ?
le sujet de ES est sur le site de l'APMEP Voir l'exercice 4 (je reconnais que ce n'est pas très intéressant mais on voit les idées que peuvent avoir certains concepteurs de sujets).
Un fil sur le forum de Xcas qui montre combien le développeur de Xcas tient compte des remarques pédagogiques pour améliorer le logiciel
Pour ma part j'utilise en seconde dès le début de l'année les commandes élémentaires telles que resoudre, factoriser, developper, fMin, fMax, etc.
En séance de TD les élèves confirment leurs résultats avec le logiciel ce qui me permet de consacrer plus de temps à ceux qui ont des difficultés.
Au bout d'un trimestre je passe à la programmation (le langage fonctionnel passe très bien)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :