Video: TIMELAPSE OF THE FUTURE: A Journey to the End of Time (4K) 2025
Med en matematisk mal trenger du vanligvis tilgang til et vell av beregninger, men kan bare bruke en eller to av disse beregningene om gangen. For eksempel, hvis noen beregner boliglånet ditt, trenger han eller hun ikke å kjenne amortiseringsberegningen. Imidlertid kan personen trenge avskrivningsberegningen når han arbeider med neste kunde.
Kort sagt, beregningene har alle en hensikt, og du trenger dem alle, men du trenger ikke dem alle samtidig. På grunn av måten du bruker matte maler, fungerer de best som en serie funksjonsmaler. MathTemplate-eksemplet viser hvordan du lager rekkefunksjoner.
#include # include using namespace std; mal T-område (T høyde, T lengde) {returhøyde * lengde;} const dobbelt PI = 4. 0 * atan (1, 0); mal T CircleArea (T radius) {dobbelt resultat; resultat = PI * radius * radius; // Denne versjonen avkorter verdien. retur (T) resultat;} mal T TriangleArea (T base, T høyde) {dobbelt resultat; resultat = base * høyde * 0. 5; returnere (T) resultat;} int main () {cout << "4 x 4 Områder:" << endl; cout << "firkant:" << område (4, 4) << endl; cout << "sirkel:" << circleArea (2) << endl; cout << "trekant:" << triangleArea (4, 4) << endl; cout << "ved å bruke en verdi av pi av:" << pI << endl; returnerer 0;}
Beregningene kan bestå av hvilken som helst matematisk beregning - poenget med eksemplet er at bruk av funksjoner gjør hver av beregningene diskrete, enkle å bruke og enkel å administrere. Når du kjører dette eksempelet, ser du følgende utdata:
4 X 4 Områder: Kvadrat: 16 Sirkel: 12 Trekant: 8 Bruk en verdi på pi av: 3. 14159
Merk at CircleArea (2) bruker halvparten av verdien av de andre beregningene som input. Det er fordi du beregner sirkelområdet ved hjelp av ligningen pi x r 2 .
For konsistens kan du endre sirkelligningen til å lese slik:
radius = radius / 2; resultat = PI * radius * radius;
Deling av inngangen med 2, vesentlig endring av diameteren til en radius, betyr at du kan kalle ligningen med samme nummer som alle andre områdeskalkulasjoner: CircleArea (4). Uansett hvilken tilnærming du velger, må du dokumentere hvordan malen fungerer, slik at andre utviklere vet hvordan de skal brukes.
Du bør også være oppmerksom på at sirkel- og trekantberegningene utfører litt type tvang for å sikre at brukeren får de forventede resultatene tilbake ved å endre returinformasjonen for å lese returresultatet (T);. Typekonverteringene er nødvendig for å holde maler fra å generere advarselsmeldinger.Det er viktig å merke seg at tilnærmingen som brukes i eksemplet, avkorter resultatet når malen returnerer en int.
