Module de calcul mathématiques/string divers

Description

C'est un module simple pour effectuer tout vos calculs mathématiques sans avoir à recréer à chaque fois vos fonctions
Permet aussi d'effectuer des opérations sur les strings (4 ou 5 dispo car en cours de création :-) )

Ce sont donc des calculs simples, je n'invente rien, mais je regrouppe tout dans un module, çà peux faciliter le vie.
A noter que la variable MathState prend les valeurs 0,1,2 en fonction de l'état des calculs (impossible, done, working)
De même pour StringState

Au point de vue mathématique, rien de bien nouveau (à vous de voir)
Point de vue prog, rien de bien nouveau non plus (permet aux débutants de comprendre enum, des algos et des fonctions sur les strings, c'est à peu près tout) Code commenté.
Je vais finir de mettre les fonctions sur les strings quand j'aurais le temps !

Source / Exemple :


J'ai viré tout le code de cette zone, y en avait trop !
A la place, je met l'aide du module (dispo dans le module). Vous pourrez voir comme çà quelle fonctions sont/seront traitées

'___________String

'   Sans_Espaces
'enlève les espaces d'une chaîne de carcatères. Arguments : 1 string
'Exemple: sans_espaces("azerty ui  p ")="azertyuip"
'   ParentFolder
'cette fonction doit être utilisée avec 1 chaîne comportant le path d'un folder/fichier
'Arguments : 2 string et 1 booléenne, la 1ere string comporte le path, la 2eme
'comporte le string de séparation . Cette string est facultatif ("\" par défaut).
'cette string ne doit comporter qu'un caractère. La première string doit
'comporter au moins 2 fois la 2eme. La booléenne détermine si oui ou non
'on doit afficher la deuxième string à la fin du résultat, si celle ci n'y est pas.
'La booléenne est facultative (false par défaut)
'Exemple: ParentFolder("c:\aze\ert\tyui\","\",true)="c:\aze\ert\"
'ParentFolder("c:\aze\")="c:\"
'   ExtensionFichier
'donne l'extension d'un fichier. Arguments : 1 string. La string doit comporter le
'path d'un fichier ayant une extension.
'Exemple: ExtensionFichier("c:\aze.tXt")="tXt"
'   NomFichier_avec_extension
'Extrait le nom d'un fichier + son extension dans un path. Arguments : 1 string
'Exemple: NomFichier_avec_extension("c:\aze.tXT")="aze.tXT"
'   NomFichier_sans_extension
'donne le nom d'un fichier à parit d'un path, en enlevant l'extension. Arguments : 1 string
'Exemple: NomFichier_sans_extension("c:\az.txt")="az"
'   Inverser_string
'inverse la string. Argument : 1 string
'Exemple: Inverser_string("azerty")="ytreza"
'   Reduire_racine_nombre
'donne la racine carrée d'un nombre, de façon réduite. Arguments : 2 string
'Exemple: Reduire_racine_nombre("405","*sqr ")="9*sqr 5"
'       Convertions diverses entre hexa/decimal/binaire Arguments : 1 string 1 long
'       La string contient la valeur à convertir, et la long le nombre de bits
'   Decimal_to_binaire
'   Hexa_to_binaire
'   Hexa_to_decimal
'   Decimal_to_hexa
'   Binaire_to_hexa
'   Binaire_to_decimal
'Exemple:
'Decimal_to_binaire("45", ,6)="101101"
'   Path_only
'donne juste le chemin dans le path d'un fichier. Arguments : 1 string
'Exemple: Path_only("c:\az\ze.txt")="c:\az\"
'   Verifier_string
'Verifie que la string est compatible avec les conditions. Arguments : 2 string
'et une booléenne.
'si la boolean est vraie, alors TOUTES les lettres de la string 2 doivent etre
'dans string 1 pour que l'opération soit vraie.
'Si la booléenne est fausse, si une lettre de la string 2 apparait dans la string 1
'alors l'opération est fausse.
'Exemples: 1) StringOp(Verifier_string, "cceccii est unn exemmplee", "ceci", , True)
'renvoie Vrai car toutes les lettres de "ceci" sont dans "cceccii est unn exemmplee"
'2) StringOp(Verifier_string, "cceccii est unn exemmplee", "ceci a", , True)
'renvoie Faux car "a" n'apprait pas dans "cceccii est unn exemmplee"
'3) StringOp(Verifier_string, "cceccii est unn exemmplee", "azry", , False)
'renvoie Vrai car aucune lettre de "azry" n'apparait dans "cceccii est unn exemmplee"
'4) StringOp(Verifier_string, "cceccii est unn exemmplee", " ", , False)
'renvoie Faux car le " " apprait au moins une fois dans "cceccii est unn exemmplee"
'   Convertir_minuscule
'convertis les lettres sélectionnées en minuscule. Arguments : 2 string 1 booléenne
'La première string donne la string à convertir, la deuxième les lettres qui
'doivent être convertis (booléenne vraie) ou ne pas etre converties (booléenne fausse)
'Exemple: Convertir_minuscule("ESSAI,"e", ,True)="ESSAI"
'Convertir_minuscule("ESSAI", "E", ,True) = "eSSAI"
'Convertir_minuscule("EsSai","S", ,False)="esSai"
'   Convertir_majuscule
'Idem que la fonction Convertir_minuscule, mais pour les majuscules
'   Rechercher_dans_string
'recherche dans une string le nombre de fois qu'apparait la string désirée.
'Arguments : 2 string et 1 booléenne. La première string donne la chaîne dans laquelle
'on doit chercher, la deuxième la chaîne à chercher, et la booléenne si la casse
'est ou non respectée (false par défaut)
'Exemple: Rechercher_dans_string("Essai de recherche","he", ,false)="2"
'Rechercher_dans_string("Essai de recHErcHe","HE", ,true)="1"
'   Evaluer_string
'évalue une expression mathématique, et donne une expression numérique. Arguments :
'1 string et 1 long. Attention ! Le résultat est donnée sous forme de string !
'La long défini l'arrondi (après la virgule) (5 par défaut)
'Exemple: Evaluer_string("1+2*(9*cos(4))", ,4)="-10.7655"
'   Sans_accents
'enlève les accents désirés d'une string. Arguments : 2 string. La premiere donne
'la string à modifier, et la deuxième les accents à enlever.
'Exemple: Sans_accents("Îôömple","ö")="Îôomple"
'   Give_folder
'donne le folde désigné par le nom du path. Arguments : 1 string
'Exemple: Give_folder("C:\az\ae.txt")="C:\az\"
'   Selection_mot_X
'donne le Xieme mot d'une chaîne. Arguments : 2 string et 1 long. La premiere string
'donne la string qui possède les mots séparés, la deuxième demande par quel
'caractère sont espacés les mots, et la long le rang du mot.
'Exemple: Selection_mot_X("za      az un deux trois quatre"," ",3)="un"

'___________Mathématiques

'enum qui recense toutes ls fonctions dispo
'   Pi
'donne la valeur de Pi. Arguments : 1 long (qui détermine l'arrondi; 10 par défaut)
'   Racine_N_ieme_de_X
'calcule la racine Nième de X Arguments : 2 double
'Exemple: Calcul(Racine_N_ieme_de_X ,6561,4)=9
'   Factorielle
'calcul de factorielle de X Arguments : 1 long
'Exemple: Factorielle(5)=120
'   Sommielle
'calcule de la "somielle" de X (somme de 1+2+3+...+x) Arguments : 1 long
'Exemple: Sommielle(4)=10
'       Maintenant, diverses fonctions de trigo circulaire et hyperbolique
'       ne nécessite qu'1 argument (double). Si le double est hors domaine
'       de définition, le programme renvoie 0.
'       Secante 'calcul de la sécante de X
'Cosecante 'calcul de la cosécante de X
'Cotangente 'calcul de la contangente de X
'Arcsinus    'calcul de l'arcsinus de X
'Arccosinus  'calcul de l'arccosinus de X
'Arcsecante  'calcul de l'arcsécante de X
'Arccosecante    'calcul de l'arccosécante de X
'Arccotangente   'calcul de l'arccotangente de X
'Sinus_hyperbolique  'calcul du sinus hyperbolique de X
'Cosinus_hyperbolique    'calcul du cosinus hyperbolique de X
'Tangente_hyperbolique   'calcul de la tangente hyperbolique de X
'Secante_hyperbolique    'calcul de la sécante hyperbolique de X
'Cosecante_hyperbolique 'calcul de la cosécante hyperbolique de X
'Cotangente_hyperbolique 'calcul de la cotangente hyperbolique de X
'Arcsinus_hyperbolique   'calcul de l'arcsinus hyperbolique de X
'Arccosinus_hyperbolique 'calcul de l'arccosinus hyperbolique de X
'Arctangente_hyperbolique    'calcul de l'arctangente hyperbolique de X
'Arcsecante_hyperbolique 'calcul de l'arcsécante hyperbolique de X
'Arccosecante_hyperbolique   'calcul de l'arccosécante hyperbolique de X
'Arccotangente_hyperbolique  'calcul de l'arccotangent hyperbolique de X
'   Logarithme_base_N
'calcule le log de X à base N. Arguments : 2 long
'Exemple: calcul(Logarithme_base_N,100,10)=2
'   Est_premier
'renvoie si X est premier ou non. Arguments : 1 long. Renvoie 0 ou 1
'Exemple: Est_premier(17)=1
'   Exposant
'calcule X^N Arguments : 2 double
'Exemple: calcul(exposant,2,3)=8
'   PGCD
'calcule le pgcd de X et N   Arguments : 2 long
'Exemple: calcul(PGCD,4,8)=4
'   PPCM
'calcule le ppcm de X et N   Arguments : 2 long
'Exemple: calcul(PPCM,4,8)=8
'   Liste_nombres_premiers_jusqu_à_X
'donne tous les nombres premiers jusqu'au nombre X. Arguments : 1 long
'les résultats sont renvoyés dans la liste CalculR, et Calcul prend la valeur de X
'Par exemple, pour X=25, calcul=25, CalculR(1)=2, CalculR(2)=3, CalculR(3)=5 ....
'   Liste_des_X_premiers_nombres_premiers
'donne la liste des X premiers nombres premiers Arguments : 1 long
'calcul prend la valeur de X, et les résultats sont renvoés dans CalculR
'Par exemple, pour X=5, Calcul=5, CalculR(1)=2, CalculR(2)=3,CalculR(3)=5,CalculR(4)=7,CalculR(5)=11
'   Division_euclidienne
'effectue la division euclidienne de X par N  Arguments : 2 long
'Exemple: calcul(Division_euclidienne,17,4) nre renvoie rien. Les résultats sont
'stockés dans CalculR (le quotient dans calculr(1) et le reste dans calculr(2))
'   Liste_diviseurs
'donne la liste des diviseurs de X  Arguments : 1 long
'calcul prend la valeur de 0 ou 1 et les résultats sont données dans calculR
'   Decomposition_facteurs_premiers
'décompose X en facteurs premiers  Calcul prend la valeur 0 ou 1. Arguments : 1 long
'les résultats sont donnés dans calculR
'   Combinaison_X_parmi_N
'donne X parmis N. Arguments : 2 long
'Exemple: calcul(Combinaison_X_parmi_N,0,7)=1
'   Arrangement_X_parmi_N
'donne le nombre d'arrangement de X dans N. Arguments : 2 long
'Exemple: calcul(Arrangement_X_parmi_N,0,7)=1
'       Diverses convertion d'unités d'angles
'       Ne nécessite qu'1 argument (double)
'Convertion_Rad_vers_Degre
'Convertion_Degre_vers_Rad
'Convertion_Grade_vers_Degre
'Convertion_Grade_vers_Rad
'Convertion_Rad_vers_Grade
'Convertion_Degre_vers_Grade
'   Gamma
'calcul APPROCHE de la fonction Gamma. Plus X est grand, plus la valeur est proche
'du résultat    Arguments : 1 double. Calcul exact pour les valeurs entières.
'Exemple: Gamma(0.5)=1.772453  (racine de Pi)

Conclusion :


Alors si vous trouvez des bugs, si vous avez des questions, si vous voulez que j'ajoute des fonctions, je suis preneur !
Ne notez pas tout de suite SVP, le code n'est pas finit. Le code n'est pas optimisé au point de vue des algos, c'est pour plus tard ! (bientôt quand même)

Par contre, postez vos critiques/remarques/suggestions !!!

Merci, @+

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.