A voir également:
- écrire une fonction
- Fonction si et - Guide
- Ecrire en gras sur whatsapp - Guide
- Comment écrire # sur pc - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
5 réponses
c'est bien pour ça que j'ai écrit "m'aider".
J'ai la solution de l'exercice, je ne la comprends juste pas. J'espèrais avoir un peu d'aide ici.
Mon problème est qu'a l'intérieur de la fonction on a :
If n < 0 Then
Do While n <> 0
reste = Abs(n) Mod 10
caractere = caractere + Chr(48 + reste)
n = n \ 10
Loop
resultat = Chr(45) + StrReverse(caractere)
Else
Do While n <> 0
reste = n Mod 10
caractere = caractere + Chr(48 + reste)
n = n \ 10
Loop
resultat = StrReverse(caractere)
End If
entier_chaine = resultat
Pourquoi effectuer ces divisions et la chaine Chr ?
J'ai la solution de l'exercice, je ne la comprends juste pas. J'espèrais avoir un peu d'aide ici.
Mon problème est qu'a l'intérieur de la fonction on a :
If n < 0 Then
Do While n <> 0
reste = Abs(n) Mod 10
caractere = caractere + Chr(48 + reste)
n = n \ 10
Loop
resultat = Chr(45) + StrReverse(caractere)
Else
Do While n <> 0
reste = n Mod 10
caractere = caractere + Chr(48 + reste)
n = n \ 10
Loop
resultat = StrReverse(caractere)
End If
entier_chaine = resultat
Pourquoi effectuer ces divisions et la chaine Chr ?
Bonjour
Ta fonction un peu simplifiée et expliquée
RQ1.
caractere = caractere + Chr(48 + reste)
remplacé par
resultat = Chr(48 + reste) + resultat
va construire resultat dans le bon ordre (donc plus besoin de strreverse)
RQ2. et pour le fun
Bon courage pour tes études
Ta fonction un peu simplifiée et expliquée
Public Function EntierEnChaine(n As Long) As String Dim reste As Long, resultat As String, an As Long ' on va travailler sur la valeur absolue de n ' le signe sera traité à la fin an = Abs(n) ' initialisation de resultat resultat = "" Do ' reste = reste de la division de an par 10 ' reste = dernier chiffre de an (de 0 à 9) reste = an Mod 10 ' chr(48) est le caractère de code ASCII 48 soit le caractère "0" ' ensuite 49 est le code de 1 etc ... resultat = Chr(48 + reste) + resultat ' an = quotient de an par 10 ' an = la suite des chiffres de an sauf celui des unités an = an \ 10 Loop Until an = 0 ' renvoi du resultat avec traitement des négatifs If n < 0 Then EntierEnChaine = -resultat Else EntierEnChaine = resultat End If End Function
RQ1.
caractere = caractere + Chr(48 + reste)
remplacé par
resultat = Chr(48 + reste) + resultat
va construire resultat dans le bon ordre (donc plus besoin de strreverse)
RQ2. et pour le fun
Public Function IntToStr(n As Long) As String If Abs(n) < 10 Then If n >= 0 Then IntToStr = Chr(48 + n) Else IntToStr = "-" & Chr(48 - n) End If Else IntToStr = IntToStr(n \ 10) & (Abs(n) Mod 10) End If End Function
Bon courage pour tes études
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question