écrire une fonction
Fermé
lillou1994
Messages postés
4
Date d'inscription
samedi 25 janvier 2014
Statut
Membre
Dernière intervention
25 janvier 2014
-
25 janv. 2014 à 13:44
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 25 janv. 2014 à 16:43
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 25 janv. 2014 à 16:43
A voir également:
- écrire une fonction
- Fonction si et - Guide
- Ecrire en gras sur whatsapp - Guide
- Ecrire en miroir - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Écrire en majuscule - Guide
5 réponses
lillou1994
Messages postés
4
Date d'inscription
samedi 25 janvier 2014
Statut
Membre
Dernière intervention
25 janvier 2014
25 janv. 2014 à 13:44
25 janv. 2014 à 13:44
Merci de m'aider si vous le pouvez ..
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
25 janv. 2014 à 14:45
25 janv. 2014 à 14:45
Bonjour,
CCM n'a pas vocation de faire les devoirs ou exercices des étudiants(voir ici).
CCM n'a pas vocation de faire les devoirs ou exercices des étudiants(voir ici).
lillou1994
Messages postés
4
Date d'inscription
samedi 25 janvier 2014
Statut
Membre
Dernière intervention
25 janvier 2014
25 janv. 2014 à 15:20
25 janv. 2014 à 15:20
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 ?
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 25/01/2014 à 16:39
Modifié par ccm81 le 25/01/2014 à 16:39
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
lillou1994
Messages postés
4
Date d'inscription
samedi 25 janvier 2014
Statut
Membre
Dernière intervention
25 janvier 2014
25 janv. 2014 à 16:41
25 janv. 2014 à 16:41
Merci beaucoup !!
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
25 janv. 2014 à 16:43
25 janv. 2014 à 16:43
De rien
j'ai fait deux ou trois ajouts
Bonne fin de journée
j'ai fait deux ou trois ajouts
Bonne fin de journée