Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme

Posté par
Polux
02-01-16 à 14:21

Bonjour, je dois créer un algorithme (ce que j'ai fais mais il ne fonctionne pas) pour calculer un certain terme n d'une suite U

[u]Énoncé:[/u]
Pour tout entier n (supérieur ou égale à 0), on a :
- Si Un est pair : Un/2
- Sinon : 3*Un+1

Et je dois créer un algorithme sui demande U de départ, qui demande n et qui affichera Un.


Voici mon algorithme :
Input "U=", U
Input "N=", N
For (I,1,N)             (c'est un i majuscule)
If partEnt (U/2) = U/2
Then U/2->U
End
Else 3*U+1->U
Disp U
End

N'hésitez pas à me dire si vous voyez des erreurs de syntaxes ou des erreurs dans mon algorithme, merci beaucoup!

Posté par
pgeod
re : Algorithme 02-01-16 à 14:30

déjà, donne-nous un énoncé complet et exact car :

Pour tout entier n (supérieur ou égale à 0), on a :
- Si Un est pair : Un/2
- Sinon : 3*Un+1

ne veut rien dire !!!!!!!!!!!!!!!!

Posté par
Hydr0s
re : Algorithme 02-01-16 à 14:44

La syntaxe pour If, then, Else est :

If <condition>
Then
<Actions...>
Else
<Actions...>
End

Tu n'affiches U uniquement dans le cas où ton nombre est impaire et pas à la fin de ta boucle !
Voici donc l'algorithme corrigé :

Input "U=", U
Input "N=", N
For (I,1,N)   
If partEnt (U/2) = U/2
Then 
U/2->U
Else 
3*U+1->U
End fermeture du if
End fermeture du for
Disp U

Personnellement pour le test de multiple de 2, je préfère
partDec(U/2) = 0
mais ta formule fonctionne aussi.

Posté par
Hydr0s
re : Algorithme 02-01-16 à 14:49

Je pense qu'elle voulait dire u_{n+1} = \begin{cases} u_n/2, & \mbox{si } u_n\mbox{ est pair} \\ 3u_n+1, & \mbox{sinon } \end{cases},\mbox{et}u_0

Posté par
pgeod
re : Algorithme 02-01-16 à 14:51

Posté par
Polux
re : Algorithme 02-01-16 à 15:47

L'énconcé exact est celui de Hydr0s, je me suis mal exprimée..

Posté par
Polux
re : Algorithme 02-01-16 à 15:48

Hydr0s @ 02-01-2016 à 14:44

La syntaxe pour If, then, Else est :
If <condition>
Then
<Actions...>
Else
<Actions...>
End

Tu n'affiches U uniquement dans le cas où ton nombre est impaire et pas à la fin de ta boucle !
Voici donc l'algorithme corrigé :

Input "U=", U
Input "N=", N
For (I,1,N)   
If partEnt (U/2) = U/2
Then 
U/2->U
Else 
3*U+1->U
End fermeture du if
End fermeture du for
Disp U

Personnellement pour le test de multiple de 2, je préfère
partDec(U/2) = 0
mais ta formule fonctionne aussi.


Merci! je ne trouve pas le partDec dans ma calculette c'est pour ça que je ne l'ai pas mis :/

Posté par
Polux
re : Algorithme 02-01-16 à 15:51

Merci j'ai corrigé mon algorithme, j'ai compris pour les End je n'avais pas fermé mes boucles..
Mais malheureusement quand j'exécute le programme, j'ai toujours "erreur de syntaxe"

Posté par
Polux
re : Algorithme 02-01-16 à 15:56

Je n'ai rien dit! L'algorithme tourne merci beaucoup Hydr0s
J'avais mis des espaces en trop

Posté par
Hydr0s
re : Algorithme 02-01-16 à 18:23

Ravi d'avoir pu t'aider



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 1730 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 !