Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Serie Harmonique + Programme

Posté par
Braker
29-04-12 à 14:10

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

Posté par
hawkuru
Série Harmonique + Programme rep. 29-04-12 à 14:15

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

Posté par
dhalte
re : Serie Harmonique + Programme 29-04-12 à 14:22

hawkuru a fait une légère erreur, qu'il aurait découverte en faisant "tourner" son algorithme

les trois premiers termes exacts de u_n sont
u_0=0
u_1=1
u_2=1+1/2=1.5

avec son algorithme, il affiche
0
2
2.5

Posté par
hawkuru
re : Serie Harmonique + Programme 29-04-12 à 14:29

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

Posté par
Braker
re : Serie Harmonique + Programme 29-04-12 à 14:35

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

Posté par
hawkuru
re : Serie Harmonique + Programme 29-04-12 à 14:47

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.

Posté par
dhalte
re : Serie Harmonique + Programme 29-04-12 à 15:42

à 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 u_0
n prend la valeur 5   <-- c'est le nombre de termes qu'on veut afficher, donc on affichera les valeurs de u_0,u_1,u_2,u_3,u_4
pour i allant de 0 à n-1
__afficher u <-- on affiche la valeur actuelle, donc dans la première boucle u_0, dans la suivante u_1, 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 u_5 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é***

Posté par
alb12
re : Serie Harmonique + Programme 29-04-12 à 16:35

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
}

Posté par
hawkuru
re : Serie Harmonique + Programme 29-04-12 à 16:41

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

Posté par
dhalte
re : Serie Harmonique + Programme 29-04-12 à 18:12

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

Posté par
Braker
re : Serie Harmonique + Programme 29-04-12 à 18:28

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 ^^

Posté par
alb12
re : Serie Harmonique + Programme 29-04-12 à 20:55


Citation :

dhalte a écrit:
Xcas est puissant, mais pour démarrer l'écriture d'algorithmes, il n'est pas très parlant, voire rebutant.

Pour un élève de seconde je n'ai rien contre Algobox bien que je commence tout de suite avec Xcas. Mais franchement je trouve qu'un élève de Première S doit utiliser un logiciel de calcul formel (avec des commandes francisées) et je ne crois pas que les problèmes soient liés à la façon dont on ferme un bloc !

Posté par
dhalte
re : Serie Harmonique + Programme 29-04-12 à 21:08

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.

Posté par
alb12
re : Serie Harmonique + Programme 29-04-12 à 22:10

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)

Posté par
dhalte
re : Serie Harmonique + Programme 30-04-12 à 00:15

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 ?

Posté par
alb12
re : Serie Harmonique + Programme 30-04-12 à 08:20

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 :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !