Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algo Devoir

Posté par
PTApanage
15-01-16 à 20:14

Bonsoir ,
depuis toute à l'heure , je persiste dans un algorithme avec AlgoBox et je n'y arrive pas.

Alors voilà , je vous montre mon exercice :

Soit n un entier naturel non nul. On note S la somme S=1+21+22+23+....+2n-1+2n

Ils veulent que j'écrive un algorithme avec ceci et depuis toute à l'heure , je n'ai réussi qu'à trouver soit N=1 qui fait 3 ou soit N=2 qui fait 7 mais jusqu'à N=3 qui fait 15 , je n'y arrive pas du tout.

Merci d'avance de votre aide

Au revoir

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 20:27

Bonsoir,
Pour construire votre algorithme, je pense qu'il faut demander une variable k,c'est-à-dire jusqu'à quel terme il faut faire la somme.

Ensuite, il faut attribuer votre première valeur (ici 1) à U et affecter U à S (la somme de tous les termes U)

De plus, il va falloir faire varier k de 1 jusqu'au nombre que vous souhaitez.

Ensuite vous affectez 2 puissance n  à U (oui je considère la suite U(n)=2 puissance n)
Affecter la somme de S et votre nouveau U à S
Il ne reste plus qu'à afficher S.

Après je ne l'ai pas fait sur Algobox mais sur ma Casio

Bonne soirée
Pierre

Posté par
PTApanage
re : Algo Devoir 15-01-16 à 21:05

Merci de votre aide.
Mais je n ai pas tout a fait compris , pourrez-mieux vous mieux me détailler ?

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 21:33

Oui bien voici un screen de l'algorithme sur Algobox ( en espérant qu'il soit adapté aux exigences du site ) qui vous expliquera le principe .

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 21:38

Bonjour,

écrire un algorithme c'est "décortiquer" ce qu'on fait "à la main" pour résoudre le problème
dans le but de le décrire

et d'abord et avant tout avec des mots.
("algorithme en langage naturel")

comment fait-on pour calculer S5 par exemple :

on calcule successivement des termes u0 = 1, u1 = 2, u2 = 22, u3 = 23 ... jsuqu'à u5 = 25
et on fait la somme

ce qu'on peut faire "après coup" si on a écrit soigneusement tous ces termes et qu'on en fait "ensuite" la somme.
pas très pratique

ou on calcule au fur et à mesure

au départ la somme S vaut le seul premier terme u0 = 1
puis au fur et à mesure qu'on calule des termes suivants, on les ajoute à cette somme


d'où l'algorithme pour n = 5 :

u prend la valeur 1
S prend la valeur u (c'est à dire 1)
pour k de 1 à 5 faire
calculer uk = 2k
l'ajouter à la somme S
quand la boucle est finie :
afficher la valeur de S

et un algorithpme "général" qui marchera quel que soit n :

lire la valeur de n (entrée)
u prend la valeur 1
S prend la valeur u (c'est à dire 1)
pour k de 1 à n faire
calculer uk = 2k dans la variable u
l'ajouter à la somme S
quand la boucle est finie :
afficher la valeur de S

il ne reste plus qu'à traduire tout ça selon la syntaxe de la machine utilisée (que ce soit une calculette ou Algobox)

toute écriture de quelque algorithme que ce soit doit toujours oasser par cette première étape d'analyse et de rédaction "en langage naturel".

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 21:42

* quelque erreurs de frappe (bouton poster prématuré) :

* jusqu'à u5 = 25

* et un algorithme "général"

* passer

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 21:43

Voici le programme (je n'ai pas réussi à diminuer la taille de l'image)
1   VARIABLES
2     K EST_DU_TYPE NOMBRE
3     U EST_DU_TYPE CHAINE
4     S EST_DU_TYPE CHAINE
5   DEBUT_ALGORITHME
6     LIRE K
7     U PREND_LA_VALEUR 1
8     S PREND_LA_VALEUR U
9     POUR K ALLANT_DE 1 A 10
10      DEBUT_POUR
11      U PREND_LA_VALEUR pow(2,K)
12      S PREND_LA_VALEUR U+S
13      FIN_POUR
14    AFFICHER S
15  FIN_ALGORITHME
Ici quand on vous demandera la valeur de k vous mettrez 10 car c'est celle qui est définie (mais vous pouvez changer 10 pour la valeur que vous voulez )

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 21:57

la confusion de K et de n dans cet algorithme le rend incorrect.

une instruction "lire K" ne sert rigoureusement à rien du tout quand elle est suivie d'un "pour K de 1 à ..." qui écrase la valeur saisie pour mettre 1 (puis d'autres valeurs ensuite) à la place.

c'est "lire n"

et "pour k de 1 à n"

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 21:58

de plus ce n'est pas du type chaine mais c'est tous du type nombre

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 22:03

Bonsoir mathafou ,

Justement j'ai pensé la même chose que vous mais quand je l'ai testé il s'est avéré incorrect et je n'ai pas pu faire les calculs.

Tandis qu'avec la formule que j'ai posté les calculs marchent et pour des valeurs de k (ou n si vous préférez ) avec k=100000 j'ai pu le faire marcher et le résultat était exact pour une autre suite plus complexe composée d'exponentielles (j'ai comparé mon résultat avec ce qui a été admis dans un de mes exercices...)

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 22:07

Après je pense que je vais le modifier car je dois avouer que niveau ergonomie je peux l'améliorer... Merci de votre conseil

Posté par
Serialpacmangoal
re : Algo Devoir 15-01-16 à 22:09

Voici la version 2.0. Vous approuvez? (j'ai inséré ma suite complexe en question)
1   VARIABLES
2     K EST_DU_TYPE NOMBRE
3     N EST_DU_TYPE NOMBRE
4     U EST_DU_TYPE NOMBRE
5     S EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE N
8     U PREND_LA_VALEUR 1
9     S PREND_LA_VALEUR U
10    POUR K ALLANT_DE 1 A N
11      DEBUT_POUR
12      U PREND_LA_VALEUR U*exp(-U)
13      S PREND_LA_VALEUR U+S
14      FIN_POUR
15    AFFICHER S
16  FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 22:20

ton erreur était sans doute due au type chaine incorrect

la version 2.0 est correcte
et pour l'exo demandé en remplaçant la ligne de calcul de U par

U PREND_LA_VALEUR pow(2,K)

ou bien :

U PREND_LA_VALEUR U*2

Posté par
PTApanage
re : Algo Devoir 15-01-16 à 22:20

Bonsoir , bah merci de vous débattre , je vais essayer de suite.

Posté par
mathafou Moderateur
re : Algo Devoir 15-01-16 à 22:23

noter que l'important dans tout ça est avant tout mon message de 21:38 :
apprendre à pêcher plutôt que de donner du poisson.

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 13:14

Ok merci pour l'algorithme , j'ai dû faire quelques modifications de vos algorithmes.
Mais avant tout , il me demande également Calculer 2S en fonction de n. Et aussi comment peut-on contrôler le programme ?
Pourriez-vous m'expliquer sans me donner la réponse pour que je puise un peu dans mon cerveau?

Algorithme par Algobox :

VARIABLES
    
I EST_DU_TYPE NOMBRE
    
N EST_DU_TYPE NOMBRE
    
S EST_DU_TYPE NOMBRE
    
K EST_DU_TYPE NOMBRE
  
DEBUT_ALGORITHME
    
LIRE N
    
I PREND_LA_VALEUR 1
    
S PREND_LA_VALEUR I
    
POUR K ALLANT_DE 1 A N
  
DEBUT_POUR
      
I PREND_LA_VALEUR pow(2,K)
    
S PREND_LA_VALEUR I+S
    
FIN_POUR
    
AFFICHER S
  
FIN_ALGORITHME

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 13:14

Sinon , je vous remercie vous 2

Posté par
mathafou Moderateur
re : Algo Devoir 16-01-16 à 13:36

ton algo est exactement le même mais avec d'autres noms de variables (I au lieu de U), ce qui n'a aucune espèce d'importance.

pour vérifier un algorithme, au plus simple on essaye "sur machine " avec quelques valeurs calculées à la main

tu as dit que tu avais calculé S1, S2, S3, S4 et S5 à la main

donc tu peux vérifier que ton algorithme te donne la même chose.

c'est comme en maths en général, ce n'est pas parce que "ça marche avec quelques valeurs" que c'est vrai toujours (que ça va marcher avec les valeurs de n quelconques)
ce sera d'ailleurs faux quand n est trop grand pour que la machine calcule exactement la valeur de 2n

une preuve formelle du fonctionnement d'un algorithme dépasse largement le niveau requis sur l'algorithmique en général en lycée
(notion d'invariant de boucle, fonction de transformation des variables par les différentes opérations élémentaires etc)

le test d'un algorithme à ce niveau c'est juste "vérifier avec quelques valeurs bien choisies"

en particulier vérifier que ça marche avec les petites valeurs de n (n = 0, 1, 2)
et une valeur "moyenne" (n = 5)

si on te demande de calculer 2S la modification de l'algorithme est instantanée :
tu multiplies par deux le résultat obtenu avant de l'afficher

si on te demande de calculer S+1 pareil (à mon avis c'est plus intéressant de calculer S+1 que 2S, mébon ...)

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 13:56

Pour 2S , c'est ceci :

1   VARIABLES
2     I EST_DU_TYPE NOMBRE
3     N EST_DU_TYPE NOMBRE
4     S EST_DU_TYPE NOMBRE
5     K EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE N
8     I PREND_LA_VALEUR 1
9     S PREND_LA_VALEUR I
10    POUR K ALLANT_DE 1 A N
11      DEBUT_POUR
12      I PREND_LA_VALEUR pow(2,K)
13      S PREND_LA_VALEUR I+S
14      S PREND_LA_VALEUR S*2
15      FIN_POUR
16    AFFICHER S
17  FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algo Devoir 16-01-16 à 14:05

non

c'est seulement une fois que tout est fini que tu dois calculer 2S

par exemple, pour n = 3 : S = 1 + 2 + 22 + 23 = 15 (déja fait) et donc 2S = 30

toi tu calcules successivement :
S = 1
k = 1 : S = (1+2)*2 = 6
k = 2 : S = (6+4)*2 = 20
k = 3 = n : S = (20+8)*2 = 56 !!

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 14:10

Pour 2S :

1   VARIABLES
2     I EST_DU_TYPE NOMBRE
3     N EST_DU_TYPE NOMBRE
4     S EST_DU_TYPE NOMBRE
5     K EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE N
8     I PREND_LA_VALEUR 1
9     S PREND_LA_VALEUR I
10    POUR K ALLANT_DE 1 A N
11      DEBUT_POUR
12      I PREND_LA_VALEUR pow(2,K)
13      S PREND_LA_VALEUR (I+S)
14      FIN_POUR
15    S PREND_LA_VALEUR S*2
16    AFFICHER S
17  FIN_ALGORITHME

Posté par
mathafou Moderateur
re : Algo Devoir 16-01-16 à 14:11

Oui.

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 14:30

Et à des moments , ils disent de contrôler le programme , ils veulent dire quoi par là ?

Posté par
mathafou Moderateur
re : Algo Devoir 16-01-16 à 14:37

de faire ce qui a déja été dit :
de vérifier que pour quelques valeurs "bien choisies" ça donne la même chose avec le programme et à la main.

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 19:50

Donc je dois refaire l'algorithme en faisant des calculs mais avec des nombres entiers ?

Posté par
PTApanage
re : Algo Devoir 16-01-16 à 19:55

Mais ils disent bien "Comment peut-on contrôler le programme ?"
Pour l'algorithme sans 2S , celui que je vous ai envoyé en premier.
4.Quelle est la valeur de S pour n=32
Et là , on me dit "Comment contrôler le résultat de la question 5 ?"

Posté par
mathafou Moderateur
re : Algo Devoir 16-01-16 à 20:10

tu ne "refais pas" l'algorithme

tu fais les calculs directement à la main
tu les as déja fait pour n = 1, 2 et 3 (à la main)

Citation :
je n'ai réussi qu'à trouver soit N=1 qui fait 3 ou soit N=2 qui fait 7 mais jusqu'à N=3 qui fait 15


"contrôler" l'algorithme c'est vérifier qu'en le faisant tourner sur machine (ici sur Algobox)
et tapant 1, ou 2 ou 3 etc à "l'invite" "valeur de n ?" (quand il demande ça)
on on obtient bien les mêmes résultats que ceux que tu as calculé à la main.

que ce soit avec l'algorithme qui calcule S ou celui qui calcule 2S (tu sais tout de même multiplier une valeur par 2 pour vérifier que le résultat est bon, non ???)


c'est tout.
et tu peux continuer un peu plus loin "à la main" parce que tout de même les puissances de 2 "ça se récite comme ça" (tu ne t'es jamais "amuser" à les réciter de tête ?? petit joueur)
et une addition ça se fait à la main
(ou au pire si on est paresseux à la calculette "ordinaire")

évidemment n = 32 "à la main" c'est un peu "ch.." et je doute qu'on t'exige de le faire !!!

4.Quelle est la valeur de S pour n=32
Et là , on me dit "Comment contrôler le résultat de la question 5 ?"
t'as vraiment pas l'impression de recopier quelque chose de travers dans cet "énoncé" ??
(de toute façon dans ce que tu avais donné ici il n'y a ni question 1 ni question 2 ni rien du tout de cet énoncé ...)

Posté par
PTApanage
re : Algo Devoir 17-01-16 à 00:46

Non , j'y arrive à faire les puissances de 2 de tête jusqu'à que ça se commence à vraiment se corser

Posté par
PTApanage
re : Algo Devoir 17-01-16 à 00:49

Ah mais si vous voulez toutes les consignes , je vous les donne , pas de problème

Posté par
PTApanage
re : Algo Devoir 17-01-16 à 00:51

Mais pour contrôler le programme , je les fais à la main pour les 4 premières valeurs , ça suffit ?

Posté par
PTApanage
re : Algo Devoir 17-01-16 à 00:55

Ce qui veut dire que je dois répéter les puissance de 2 à chaque fois pour n=32 si je dois le faire à la main ?

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 17:08

6.Calculer 2S en fonction de n.
Mais ils me disent " En déduire la valeur de S en fonction de n."

Je ne sais pas comment faire là , pourriez-vous m'aider ?

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 17:24

cette question est du calcul algébrique
aucun rapport avec l'algorithme précédent ni les calculs numériques précédents

c'est la méthode classique pour la démonstration de la formule de la somme des termes d'une suite géométrique

S = 1 + 2 + 22 + 23 + ... + 2n-1 + 2n
2S = 2 + 22 + 23 + 24 + ... + 2n + 2n+1

(2×2k = 2k+1 quel que soit k)

et si on "compare" terme à terme les deux sommes on voit que dans 2S il y a un 2n+1 en plus et un 1 en moins

d'où la formule demandée

2S = S - 1 + 2n+1

"en déduire" la valeur de S en fonction directe de n est alors instantané.

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 17:42

Mais donc c'est pas une équation qu'il faut résoudre entre S et 2S ?

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 17:47

il n'y a pas une inconnue S et une autre inconnue 2S
il n'y a qu'une seule inconnue S dans cette équation...
tua aurais eu à résoudre l'équation en l'inconnue x : 2x = x - 1 + 2n+1 que tu ne te serais même pas posé la question
sous prétexte que "les inconnues s'appellent toujours x n'est-ce pas" ...

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 20:48

Mais dans le premier S  , il y a bien  2n-1 en + par rapport à 2n+1

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 20:58

pffff dans les "..." il y a des tas de termes qui sont identiques entre l'expression de S et l'expression de 2S

en particulier ton 2n-1 il est dans 2S : c'est quand on a multiplié 2n-2 par 2
etc etc

je ne les pas tous écrits explicitement vu que je ne sais pas combien il y en a, puisque n n'est pas connu à priori
c'est ça les "..." : imaginer tous les termes qui sont planqués dedans


nota : le copier coller d'expressions avec des exposants ne marche pas,
- soit on copie le source du message (bouton du bandeau, pas celui de la barre d'outils, le demander dans son profil s'il n'y est pas)
- soit on corrige les exposants à la main après le copier-coller, chacun individuellement
- soit on fait une citation (par le bouton citer du bandeau) et on ne garde que ce qu'on veut garder de la citation

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 21:06

mathafou @ 21-01-2016 à 20:58

pffff dans les "..." il y a des tas de termes qui sont identiques entre l'expression de S et l'expression de 2S

en particulier ton 2n-1 il est dans 2S : c'est quand on a multiplié 2n-2 par 2
etc etc

je ne les pas tous écrits explicitement vu que je ne sais pas combien il y en a, puisque n n'est pas connu à priori
c'est ça les "..." : imaginer tous les termes qui sont planqués dedans


nota : le copier coller d'expressions avec des exposants ne marche pas,
- soit on copie le source du message (bouton </> du bandeau, pas celui de la barre d'outils, le demander dans son profil s'il n'y est pas)
- soit on corrige les exposants à la main après le copier-coller, chacun individuellement
- soit on fait une citation (par le bouton citer du bandeau) et on ne garde que ce qu'on veut garder de la citation


C'est quand on a multiplié 2n-1 ou 2n-2 ?

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 21:44

tu ne comprends absolument pas ce que veulent dire les "..." dans une formule

que dans S = 1 + 2 + 22 + 23 + ... + 2n-1 + 2n

les "...." représente des tas de termes
tous les termes entre 23 et 2n-1
selon la valeur de n ça peut en faire un sacré paquet !! il est impossible de les écrire tous
et que là dedans il y a le terme 24, et le terme 25 etc etc et le terme 2n-3 et le terme 2n-2 etc etc

quand j'ai calcule 2S j'ai simplement multiplié par 2 tous ces termes
non seulement tous ceux qui étaient explicitement écrits,
mais aussi tous les autres, tous ceux qui étaient "représentés" par ces "..."
que le 24 qui était dans ces "..." est devenu 25 en le multipliant par 2
que le terme 2n-2 est devenu 2n-1 en le multipliant par 2 :
2n-2×2 = 2n-2+1 = 2n-1 etc etc

TOUS les termes qui sont dans les "..." et qui ne sont pas écrits mais "suggérés par ces "..."

Citation :
c'est ça les "..." : imaginer tous les termes qui sont planqués dedans [et faire exactement comme si ils étaient tous explicitement écrits]

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 21:57

J'avais bien compris ce que voulait dire les points de suspension

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 22:10

apparemment non puisque tu te demandais quand on avait eu ce terme 2n-2 à multiplier et pourquoi je n'avais pas écrit explicitement de terme 2n-1 dans l'écriture de 2S ...

mais bon si tu as compris, c'est le principal. même si ça t'a donné l'impression que j'enfonçais des clous.

Posté par
PTApanage
re : Algo Devoir 21-01-16 à 22:18

Donc le terme 2n-2000 existe ?

Posté par
mathafou Moderateur
re : Algo Devoir 21-01-16 à 22:31

si n est > 2000 oui.
il y a "autant de termes qu'il faut" dans les "..."

et même pire : il peut y avoir des termes en trop qui sont "dévorés" par le "..."

si n est trop petit les termes explicitement déja écrits par exemple le 22 ou le 23 n'existent pas vraiment

bien que "par convention" on les ait effectivement écrits, leur existence n'est pas garantie quel que soit n
ce qu'il faut c'est faire travailler son imagination pour imaginer l'ensemble de tous les termes réels, et juste ceux qu'il faut pour écrire tous les termes de 1(=20) à 2n



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 !