Affichage du résultat + problème pair et impair
Bonjour à tous,
Voilà mon problème je dois écrire un programme sur la conjecture de Syracuse qui me donne :
le vol, l'altitude maximale du vol, la durée du vol en altitude et la durée du vol.
Or je suis un peu bloquée, pour le moment j'ai ça et je pense que ce n'est pas totalement juste :
Et également je ne sais pas comment afficher mes données sur une feuille une fois le programme terminé.
Pouvez vous m'aider ? Merci beaucoup beaucoup
Rebonjour, j'ai modifié quelque peu mon programme, mais il ne fonctionne toujours pas. Lorsque je le lance j'ai bien la Inputbox qui s'affiche. Je rentre ma valeur, la cellule sélectionnée se déplace mais rien ne s'affiche.
Pouvez vous m'aidez SVP ??
Sub Collatz()
Dim nombre As Long 'entier positif choisi qui va servir au calcul de la suite
Dim alt_max As Long 'nombre le plus grand (fonction max)à faire à la fin surement
Dim durée_vol_alt As Long 'nombre d'étapes avec nombre > 1 (worksheet.application)
Dim durée_vol As Long[ 'nombre d'étape avec nombre <> 1(worksheet.application)
durée_vol = 0 'initialement 0 car aucune étape
durée_vol_alt = 0
alt_max = 0
nombre = 0
nombre = Application.InputBox("nombre = ", "Algorithme de Collatz, saisissez un nombre entre 1 et 1000", "1") 'ouvre une boite de dialogue pour choisir n
If nombre < 1 Or nombre > 1000 Then MsgBox ("saisie incorrecte"):
Exit Sub [color=#008000]'si saisie incorrecte arrete le programme et préviens l'utilisateur
Worksheets("Feuil2").Cells(1, 2).Value = "nombre choisi"
Worksheets("Feuil2").Cells(2, 2).Value = nombre
Do While nombre <> 1
If nombre Mod 2 = 0 Then
nombre = (nombre / 2) 'nouvelle valeur du nombre quand le nombre est pair
Else: nombre = (nombre * 3 + 1)
End If
If nombre > 1 Then
durée_vol = durée_vol + 1 '1 étape supplémentaire à chaque nouveau nombre différent de 1
Worksheets("Feuil2").Cells(durée_vol, 1).Value = nombre 'Affecter à chaque ligne de la colonne le nombre de chaque étape ie les étapes du vol
End If
'Je veux le max alt_max, c'est à dire le plus grand nombre se trouvant en colonne 1
Max = Application.Max(nombre)
Worksheets("Feuil2").Cells(2, 3).Value = Max
Worksheets("Feuille").Cells(1, 3).Value = "Altitude maximale"
Loop
End Sub