C ++ Modf

C ++ Modf
Modf () est une fonction prédéfinie intégrée dans le langage de programmation C ++. Cette fonction est utilisée pour les calculs mathématiques. Toutes ces fonctions sont présentes dans le fichier d'en-tête de C ++ Math. h '. Principalement la variable «double» est utilisée pour toutes les fonctions disponibles dans cette bibliothèque et renvoie également la double valeur.

MODF () Fonctionnement

La fonction modf () fonctionne de telle manière qu'elle sépare / divise l'argument donné en deux parties. Une valeur serait une valeur entière, tandis que la seconde est la valeur fractionnaire. Lors de l'exécution de cette fonction, il stocke la partie entière de l'adresse de mémoire qui est pointée à travers le pointeur, qui se produit comme un deuxième argument de la fonction. De cette façon, la partie fractionnaire de la valeur est renvoyée.

Syntaxe de modf ()

Double modf (a, & b)

Paramètres

UN: c'est la valeur sur laquelle nous devons appliquer la fonction. Il est décomposé en deux parties.

B: C'est une valeur de type pointeur qui pointe vers la partie entière de A, après le processus de rupture.

Valeur de retour

La valeur de retour dans la valeur fractionnaire d'un.

Prototype de modf ()

  • Double Modf (DBLE A, DBLE * INTPART);
  • float modf (flt a, flt * intpart);
  • long double modf (lng dble a, lng dble * intpart);

Implémentation de la fonction modf ()

Exemple 1

Dans la première étape, comme dans tous les programmes C ++, nous incluons des bibliothèques de support C ++ qui sont essentielles pour l'accomplissement de certaines fonctionnalités et opérations. De même dans ce programme, deux fichiers d'en-tête sont inclus. Comme nous le savons sur le streaming d'entrée et de sortie, cela se fait par iOStream. Deuxièmement, toute opération mathématique que vous souhaitez ajouter au programme a besoin de l'implication de la bibliothèque CMATH.

#inclure
#inclure

Ensuite, dans le programme principal, une double variable sera initialisée par une valeur décimale. Et deux variables de type double intpartie, et le fractPart est également introduit ici. Ceux-ci stockeront les valeurs respectives après la séparation.

La fonction est appliquée, dont la valeur de retour sera stockée dans la variable fractPart.

Modf (x et intpart)

Cette fonction y prendra deux paramètres. Cette fonction divisera le nombre décimal en parties intégrales et fractionnaires. Ici, nous prendrons une autre décimale mais un nombre négatif. Cela utilisera à nouveau la même méthode de modf de la même manière.

Lors de la compilation du code, nous avons besoin d'un compilateur. C'est G ++, un fichier d'entrée dans lequel le code est présent, un fichier de sortie sur lequel le résultat sera affiché. Cela a besoin d'un mot-clé '-o' pour enregistrer la sortie dans le fichier.

$ g ++ -o modf modf.c
$ ./ modf

À l'exécution, vous verrez qu'une valeur décimale positive est divisée en une partie intégrante et dans la partie fractionnaire. Tandis que pour la deuxième valeur, les valeurs résultantes sont les mêmes, mais les deux seront négatives car la valeur d'entrée est négative.

Exemple n ° 2

Dans cet exemple, au lieu d'avoir une valeur double ou décimale, nous prendrons une valeur entière. Dans le cas de valeurs décimales, en voyant la valeur, il est devenu clair sur l'intégrale et la partie fractionnaire. Parce que l'intégrale est celle qui se trouve devant la décimale '.'. tandis que la partie fractionnaire réside après le point. Mais la réponse précise est obtenue en utilisant la fonction modf (). Ainsi, dans le cas d'un entier, la décimale n'est pas présente. Comment pouvons-nous appliquer la fonction MODF dans cette situation? Nous le verrons à travers un exemple. L'intpart et le fractPart sont tous deux considérés comme un type de données double. La fonction du modf est appliquée de la même manière que nous l'avons appliqué dans le premier exemple.

FractPart = modf (x, & intPart);

Enregistrez le code, puis nous l'exécuterons avec le compilateur.

En exécution, vous verrez que l'entier dans son ensemble est écrit à la place d'une partie intégrante, puis le signe plus est ajouté et après cela, «0» est écrit parce que la valeur entière n'avait pas de fraction décimale et de tout fraction partie. C'est pourquoi la fonction le calculera automatiquement comme 0.

Exemple n ° 3

Maintenant, nous demanderons à l'utilisateur d'entrer n'importe quel nombre, puis nous utiliserons la fonction modf () sur cette valeur afin que la fonction puisse séparer les deux valeurs de la variable. À partir des deux bibliothèques de base comme les exemples précédents avaient. En exécution, un message sera vu sur le terminal, afin que l'utilisateur entre le numéro.

La fonction sera appliquée aux valeurs. L'intégrale et la partie fractionnaire seront affichées en conséquence, en fonction de la valeur que l'utilisateur entrera. Maintenant, nous allons exécuter le code, puis nous entrons dans différentes valeurs pour voir collectivement la valeur résultante.

Tout d'abord, nous entrerons une valeur négative, mais ce ne sera pas une valeur décimale. Lorsque la fonction sera appliquée à la valeur, elle séparera chaque partie intégrante et la partie fractionnaire. Comme il n'y a pas de chiffre fractionné, donc la réponse sera nulle. Mais le signe négatif sera toujours avec la partie zéro.

Mais la fonction sépare uniquement les nombres quel que soit le signe que nous avons appliqué avec les entiers. Maintenant, nous allons entrer «0» comme numéro d'entrée. Cette fois, pour l'intégrale et les valeurs fractionnaires, la réponse sera la même.

Exemple n ° 4

Jusqu'à présent, nous avons pris des valeurs entières et doubles en entrée pour le programme, mais ici, nous prendrons une chaîne au lieu de n'importe quel flotteur ou type de données entier. Quel que soit le nombre qui est un numéro décimal '5.06 '. Tout d'abord, prenez deux variables de type double qui seront utilisées dans la fonction MODF. Et pour la valeur d'entrée, prenez une valeur de type de données de chaîne qui est enfermée dans les doubles-quotes.

Chaîne k = "5.06 ";

Maintenant, appliquez la fonction dessus pour diviser la chaîne en deux parties. Fermez le programme, enregistrez-le, puis accédez au terminal pour exécuter.

Lorsque vous exécutez le programme, vous verrez que pendant la compilation, une erreur s'est produite et le programme est terminé sans exécution. Cela indique que «aucune fonction de correspondance pour l'appel à modf ()…». Cela signifie que l'erreur réside dans l'appel de la fonction.

À partir de cela, il est indiqué que la fonction modf () ne prend que les valeurs doubles, entières et flottantes comme paramètre. Il n'accepte pas les chaînes des personnages. C'est pourquoi l'erreur est apparue. Bien que la valeur contient des nombres avec une fraction décimale comme type de données de variable en tant que chaîne, cela signifie que la valeur n'était pas un entier, mais une chaîne. Le modf () vérifie la valeur puis l'exécute en séparant le numéro d'entrée.

Conclusion

'C ++ modf ()' est la description du fonctionnement de la fonction modf () dans le code source C ++ que nous avons implémenté sur l'éditeur de texte Ubuntu et le terminal Linux. Chaque exemple est implémenté en suivant une approche différente. Modf () rompt deux valeurs en conséquence. L'un fait partie intégrante et le second est la partie fractionnaire. Une fonction intégrée ne prend que deux paramètres et lors de l'exécution ne renvoie qu'une partie fractionnaire.