Modf () działa
Funkcja modf () działa w taki sposób, że oddziela/przełamuje dany argument na dwie części. Jedna wartość byłaby wartością całkowitą, podczas gdy druga to wartość ułamkowa. Podczas wykonywania tej funkcji przechowuje część liczb całkowitą w adresie pamięci, która jest skierowana przez wskaźnik, czyli występuje jako drugi argument funkcji. W ten sposób ułamkowa część wartości jest zwracana.
Składnia modf ()
Double Modf (A, & B)Parametry
A: jest to wartość, na której musimy zastosować funkcję. Jest podzielony na dwie części.
B: Jest to wartość typu wskaźnika, która wskazuje na część całkowitą A, po procesie zerwania.
Wartość zwracająca
Wartość zwracająca w wartości ułamkowej a.
Prototyp modf ()
Implementacja funkcji modf ()
Przykład 1
W pierwszym kroku, podobnie jak we wszystkich programach C ++, uwzględniamy biblioteki wsparcia C ++, które są niezbędne do osiągnięcia niektórych funkcji i operacji. Podobnie w tym programie dołączone są dwa pliki nagłówka. Jak wiemy o strumieniowaniu wejściowym i wyjściowym, odbywa się to przez iostream. Po drugie, każda operacja matematyczna, którą chcesz dodać do programu, wymaga zaangażowania biblioteki CMATH.
#włączaćNastępnie w programie głównym podwójna zmienna zostanie zainicjowana przez wartość dziesiętną. I dwie zmienne podwójne, a fractpart również przedstawiono tutaj. Oba będą przechowywać odpowiednie wartości po separacji.
Zastosowana funkcja, której wartość zwracania będzie przechowywana w zmiennej fractpart.
Modf (x i intpart)
Ta funkcja weźmie w niej dwa parametry. Ta funkcja podzieli liczbę dziesiętną na części całkowskie i ułamkowe. Tutaj weźmiemy kolejną liczbę dziesiętną, ale liczbę ujemną. To ponownie zastosuje tę samą metodę MODF w ten sam sposób.
Podczas kompilacji kodu potrzebujemy kompilatora. To jest G ++, plik wejściowy, w którym kod jest obecny, plik wyjściowy, na którym wyświetli się wynik. Potrzebuje to słowa kluczowego „-O”, aby zapisać dane wyjściowe w pliku.
$ g ++ -o modf modf.CPodczas wykonania zobaczysz, że dodatnia wartość dziesiętna jest podzielona na część integralną i w części ułamkowej. Podczas gdy dla drugiej wartości, wynikowe wartości są takie same, ale oba będą ujemne, ponieważ wartość wejściowa jest ujemna.
Przykład nr 2
W tym przykładzie zamiast mieć wartość podwójną lub dziesiętną, weźmiemy wartość liczb całkowitą. W przypadku wartości dziesiętnych, widząc wartość, stało się jasne co do całki i części ułamkowej. Ponieważ część integralna jest tą, która leży przed dziesiętnym ”.'. podczas gdy część ułamkowa leży po punkcie. Ale dokładna odpowiedź uzyskuje się za pomocą funkcji modf (). Tak więc w przypadku liczby całkowitej dziesiętna nie jest obecna. Jak możemy zastosować funkcję MODF w tej sytuacji? Zobaczymy to za pomocą przykładu. Zarówno intpart, jak i fractpart są traktowane jako podwójny typ danych. Funkcja modf jest stosowana w taki sam sposób, jak zastosowaliśmy w pierwszym przykładzie.
Fractpart = modf (x, & intpart);Zapisz kod, a następnie wykonamy go z kompilatorem.
Po wykonaniu zobaczysz, że liczba całkowita jako całość jest zapisana w miejscu części integralnej, a następnie dodaje się znak plus, a następnie „0” jest pisany, ponieważ wartość liczby całkowitej nie miała żadnego ułamka dziesiętnego i żadnego ułamkowego część. Dlatego funkcja automatycznie obliczy ją jako 0.
Przykład nr 3
Teraz poprosimy użytkownika o wprowadzenie dowolnego numeru, a następnie użyjemy funkcji modf () w tej wartości, aby funkcja mogła oddzielić obie wartości od zmiennej. Zaczynając od dwóch podstawowych bibliotek, jak poprzednie przykłady. Po wykonaniu komunikat zobaczył na terminalu, aby użytkownik wprowadził numer.
Funkcja zostanie zastosowana do wartości. Całka i część ułamkowa zostaną odpowiednio wyświetlane, w zależności od wartości, którą użytkownik wprowadzi. Teraz wykonamy kod, a następnie wprowadzimy różne wartości, aby zbiorowo zobaczyć wynikową wartość.
Po pierwsze, wprowadzimy wartość ujemną, ale nie będzie to wartość dziesiętna. Gdy funkcja zostanie zastosowana do wartości, oddzieli każdą całkę i część ułamkową. Ponieważ nie ma cyfry ułamkowej, więc odpowiedź wyniesie zero. Ale znak ujemny będzie nadal z częścią zerową.
Ale funkcja oddziela tylko liczby niezależnie od znaku, który zastosowaliśmy z liczbami całkowitych. Teraz wprowadzimy „0” jako numer wejściowy. Tym razem, zarówno dla wartości całki, jak i ułamkowych, odpowiedź będzie taka sama.
Przykład nr 4
Do tej pory wzięliśmy wartości całkowitej i podwójnych jako dane wejściowe dla programu, ale tutaj weźmiemy ciąg zamiast dowolnego typu danych pływakowych lub liczb całkowitych. Niezależnie od liczby, która jest liczbą dziesiętną „5.06 '. Najpierw weź dwie zmienne podwójnego typu, które będą używane w funkcji MODF. A dla wartości wejściowej weź wartość typu danych ciągów, która jest zamknięta w podwójnych cytatach.
String k = "5.06 ";Teraz zastosuj na nim funkcję, aby rozbić ciąg na dwie części. Zamknij program, zapisz go, a następnie przejdź do terminala w celu wykonania.
Kiedy wykonasz program, zobaczysz, że podczas kompilacji wystąpił błąd, a program zostanie zakończony bez wykonania. Wskazuje to, że „brak dopasowania funkcji wywołania do modf ()…”. Oznacza to, że błąd leży w wywołaniu funkcji.
Z tego stwierdzono, że funkcja modf () przyjmuje tylko wartości podwójne, liczb całkowitą i pływakowych jako parametr. Nie akceptuje strun postaci. Dlatego pojawił się błąd. Chociaż wartość zawiera liczby z ułamkiem dziesiętnym jako zmienną danych jako ciąg, oznacza to, że wartość nie była liczbą całkowitą, ale ciąg. Modf () sprawdza wartość, a następnie wykonuje ją, oddzielając numer wejściowy.
Wniosek
„C ++ modf ()” to opis funkcji działania modf () w kodzie źródłowym C ++, który zaimplementowaliśmy na edytorze tekstu Ubuntu i terminalu Linux. Każdy przykład jest wdrażany przez podążanie innym podejściem. Modf () w rezultacie łamie dwie wartości. Jeden jest integralny, a druga to część ułamkowa. Wbudowana funkcja przyjmuje tylko dwa parametry, a na wykonaniu zwraca tylko część ułamkową.