Math.h teegi kirjeldus cplusplus.com lehel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
/** * File: math.c * Author: Risto Heinsar * Created: 05.10.2015 * Modified: 22.02.2019 * * Description: some sample commands from math.h library. The math functions * are called in different ways, but they end up having the same result. * To use math.h library You must compile the program with the * linker flag "-lm" without quotes. In geany, you can add the -lm * to build path under build -> set build commands. */ #include <stdio.h> #include <math.h> int main(void) { float num1 = 9; float num2 = -5.4; float num3 = pow(num1, 2); float equation = num1 * pow(num2, 2) + sqrt(num1); // printing numbers with and without formating // more information in printf() function manual page and printf codesample. printf("Printing num2 without any format %f\n", num2); printf("Printing num2 with 2 places after decimal separator %.2f\n\n", num2); // integer division leads to integer answers with decimals cut, no rounding printf("5 / 10 is %d\n", 5 / 10); printf("9 / 10 is %d\n", 9 / 10); printf("10 / 10 is %d\n", 10 / 10); printf("19 / 10 is %d\n", 19 / 10); printf("20 / 10 is %d\n\n", 20 / 10); // to get a floating point answer, at least one operand has to be float/double printf("9.0 / 10 is %.2f\n", 9.0 / 10); printf("9 / 10.0 is %.2f\n", 9 / 10.0); printf("using typecasting: 9 / 10 is %.2f\n\n", 9 / (float)10); // using math.h functions printf("Num1 squared is %.2f\n", pow(num1, 2)); printf("Num1 squared can be also found like this: %.2f\n", num3); printf("Number 7 to the power of 3 is: %.2f\n", pow(7, 3)); printf("The square root of num1 is: %.2f\n", sqrt(num1)); printf("The square root can also be found like this: %.2f\n", pow(num1, 1.0/2.0)); printf("The solution for the equation %.3f\n", equation); return 0; } |
Tähelepanuks.
- Kompileerides tuleb gcc-le täiendava argumendina lisada “-lm” ilma jutumärkideta. Selle abil lisatakse linkuri poolt matemaatika teek.
- Allolevas tekstis on palju kasutatud sõna funktsioon. Funktsioone oleme me kasutanud seni nendele sügavamale olemusele tähelepanu pööramata. Senini oleme kasutanud printf() ja scanf() funktsioone. Oma olemuselt on funktsioon mingisugune kogumik käske, mis täidavad kindlat eesmärki – nt teksti kuvamine ekraanile on eesmärk omaette. Samuti on ka arvust ruutjuure võtmine.
- Kui harjumuspäraselt oleme kasutanud väljatrükis printf() funktsiooni kasutades muutujaid, et väärtusi kuvada, siis tegelikult on võimalik ka kasutada funktsioone, mis annavad mingi väärtuse.
Nt: Ruutjuure funktsioon tagastab töö käigus saadud arvu juutjuure ning me võime saadud tulemuse kas salvestad muutujasse, kasutada seda osana tehtest või otse välja trükkida ilma muutujasse salvestamata vahepeal.
Sama kehtib ka astmefunktsiooniga - N-indat juurt on lihtne võtta astme omadusi ära kasutades nagu seda on tehtud real 27. Arvudel on oluline kasutada murdarvu kirjapilti (st 1 -> 1.0). See tuleneb täisarvu ja murdarvu käsitlemise erinevusest arvutites.
- Kasutades arvutamiseks valemis täiendavaid funktsioone (astmed, juured, sin, cos, tan jne) leitakse (tagastatakse) nende tulemused ja asendatakse tehtesse. See on ka omadus, mispärast me saame nt otse väljatrükis neid kuvada.