Tutorial bahasa Python interaktif. Kelas Kalkulus dan Matematik

Semua fungsi matematik memerlukan pengepala . Program C menggunakan pengepala

1 acos Fungsi double acos(double arg arg
2 seperti dalam Fungsi double asin(double arg) mengembalikan kosinus arka hujah arg. Nilai hujah fungsi mestilah dalam julat dari -1 hingga 1, jika tidak ralat akan berlaku.
3 atan Fungsi double atan(double arg) mengembalikan arctangent bagi hujah arg.
4 atan2 Fungsi double atan2(double x, berganda y) mengembalikan arctangent bagi nilai tersebut y/x.
5 siling Fungsi siling dua kali (double bilangan) mengembalikan integer terdekat (diwakili sebagai nombor nyata titik terapung) yang tidak kurang daripada nilai hujah bilangan. Sebagai contoh, ceil(1.02) akan mengembalikan 2.0. Penukaran ini dipanggil pembundaran berlebihan.
6 cos Fungsi double cos(double arg) mengembalikan kosinus hujah arg
7 cosh Fungsi double cosh(double arg) mengembalikan kosinus hiperbolik hujah arg.
8 exp Fungsi double exp(double arg) mengembalikan asas logaritma asli e, diangkat menjadi kuasa arg.
9 fabs Fab berganda berfungsi (berganda bilangan) mengembalikan nilai mutlak (nilai modulo) argumen bilangan.
10 lantai Fungsi tingkat dua (double bilangan) mengembalikan integer terbesar (diwakili sebagai nombor nyata titik terapung) tidak lebih besar daripada nilai hujah bilangan. Sebagai contoh, floor(1.02) akan mengembalikan nombor 1.0. Penukaran ini dipanggil pembundaran ke bawah.
11 fmod Fungsi double fmod(double x, double y) mengembalikan baki bahagian x/y.
12 frexp Fungsi double frex(double bilangan, int * exp) mengembangkan nombor bilangan oleh mantissa antara 0.1 hingga 1, tidak termasuk 1, dan eksponen integer, jadi bilangan = mantissa. Fungsi mengembalikan mantissa dan nilai eksponen disimpan dalam pembolehubah yang ditunjuk oleh penunjuk exp.
13 log Fungsi log berganda (double bilangan) mengembalikan logaritma asli suatu nombor bilangan. Jika hujah bilangan
14 log10 Fungsi double log10(double bilangan) mengembalikan logaritma perpuluhan nombor bilangan. Jika hujah bilangan adalah negatif atau sifar, ralat berlaku.
15 pow Fungsi double pow(double asas, berganda exp) mengembalikan nombor asas, dinaikkan kepada kuasa exp. Jika asas ijazah asas adalah sama dengan sifar, dan eksponen exp adalah kurang daripada atau sama dengan sifar, ralat mungkin berlaku disebabkan hujah meninggalkan domain definisi fungsi (ralat domain). Ralat ini juga berlaku jika hujah asas adalah negatif dan hujah exp bukan integer.
16 dosa Fungsi double sin(double arg) mengembalikan sinus hujah arg. Nilai hujah mesti dinyatakan dalam radian.
17 sinh Fungsi double sinh(double arg) mengembalikan sinus hiperbolik hujah arg.
18 persegi Fungsi double sqrt(double bilangan) mengembalikan punca kuasa dua hujah bilangan. Jika hujah adalah negatif, ralat berlaku kerana fungsi keluar dari skop.
19 Tan Fungsi double tan(double arg) mengembalikan tangen hujah arg. Nilai hujah mesti dinyatakan dalam radian.
20 tanh Fungsi double tanh(double arg) mengembalikan tangen hiperbolik hujah arg.

Pengendali aritmetik berikut ditakrifkan dalam C++.

Penambahan;

– penolakan;

* pendaraban

/ pembahagian

% pembahagian modulo

– – penyusutan (penurunan sebanyak 1)

Kenaikan (kenaikan sebanyak 1).

Tindakan operator +, –, * dan / bertepatan dengan tindakan operator serupa dalam algebra. Ia boleh digunakan pada mana-mana jenis data berangka terbina dalam.

Selepas menggunakan operator bahagi (/) pada integer, bakinya akan dibuang. Sebagai contoh, hasil pembahagian integer 10/3 ialah 3. Baki pembahagian boleh diperoleh menggunakan operator modulo (%). Contohnya, 10%3 bersamaan dengan 1. Ini bermakna dalam C++ operator % tidak boleh digunakan pada jenis data bukan integer.

Pengendali kenaikan (++) dan penurunan (–) mempunyai sifat yang sangat menarik. Oleh itu, mereka harus diberi perhatian khusus.

Pengendali kenaikan menambah nombor 1 pada operannya, dan pengendali penyusutan menolak 1 daripada operannya. Ini bermakna bahawa arahan:

serupa dengan arahan ini:

Dan arahan:

serupa dengan arahan ini:

Pengendali kenaikan dan pengurangan boleh muncul sama ada sebelum operan mereka (bentuk awalan) atau selepasnya (bentuk postfix). Sebagai contoh, arahan

boleh ditulis semula sebagai awalan

X;//bentuk awalan pengendali kenaikan

atau borang postfix:

x++;//postfix bentuk pengendali kenaikan

Dalam contoh sebelumnya, tidak kira sama ada operator kenaikan digunakan dalam bentuk awalan atau postfix. Tetapi jika pengendali kenaikan atau pengurangan digunakan sebagai sebahagian daripada ungkapan yang lebih besar, maka bentuk di mana ia digunakan adalah sangat penting. Jika pengendali sedemikian digunakan dalam bentuk awalan, maka C++ akan melakukan operasi ini terlebih dahulu supaya operan menerima nilai baharu, yang kemudiannya akan digunakan oleh seluruh ungkapan. Jika operator digunakan dalam bentuk postfix, C++ menggunakan nilai lamanya dalam ungkapan dan kemudian melakukan operasi yang menyebabkan operan mengambil nilai baharu.

Fungsi matematik

Bahasa C++ mempunyai fungsi khas untuk mengira ungkapan algebra. Semua fungsi tersebut terkandung dalam fail pengepala berasingan, math.h. Oleh itu, untuk menggunakan fungsi dalam kod program, anda mesti memasukkan fail ini menggunakan arahan

#termasuk

Berikut ialah fungsi algebra asas C++.

abs(x) - modulus integer;

makmal(x) - modul integer "panjang";

fabs(x) - modulus nombor titik terapung;

sqrt(x) - pengekstrakan punca kuasa dua;

pow(x,y) - menaikkan x kepada kuasa y;

cos(x) - kosinus;

sin(x) - sinus;

tan(x) - tangen;

acos(x) - kosinus arka;

asin(x) - arcsine;

atan(x) - arctangent;

exp(x) - eksponen kepada kuasa x;

log(x) - logaritma asli;

log10(x) - logaritma perpuluhan

Apabila menaikkan nombor kepada kuasa pecahan, penyebut kuasa pecahan mesti ditulis dalam bentuk sebenar. Sebagai contoh: punca kuasa dua a ditulis seperti ini: pow(a,1/ 2.0 )

Mari kita tunjukkan penggunaan fungsi dengan contoh.

5. Pengendali I/O dalam C++

Untuk memaparkan mesej pada skrin, gunakan pernyataan C++ berikut:

cout<<”текст”;

#termasuk

Maklumat yang disertakan dalam petikan berganda ialah mesej yang sepatutnya dipaparkan pada skrin. Dalam C++, sebarang jujukan aksara yang disertakan dalam petikan berganda dipanggil rentetan kerana ia terdiri daripada beberapa aksara yang dicantumkan untuk membentuk blok (elemen) yang lebih besar.

Baris dalam pernyataan COUT mungkin mengandungi apa yang dipanggil aksara kad bebas - aksara yang tiada pada papan kekunci atau digunakan untuk aksara utama dalam teks program. Setiap aksara kad bebas tersebut didahului oleh aksara "\".

Berikut ialah senarai simbol tersebut:

\a – isyarat bunyi

\n – pergi ke baris baharu

\t – tab mendatar

\v – tab menegak

\\ - garis miring ke belakang

\’ – petikan tunggal

\” – petikan berganda

\? - tanda soal.

Sebagai contoh, pengendali seperti:

cout>>“contoh\nteks”;

Perkataan "contoh" akan muncul pada satu baris, dan perkataan "teks" pada baris yang lain.

Pengendali borang:

cout>>"kedai\""camar\"";

Perkataan "Seagull" akan dipaparkan dalam petikan berganda.

Sebagai tambahan kepada teks, pengendali boleh memaparkan nilai pembolehubah pada skrin, menggabungkannya dengan teks.

cout<<”a=”<

Output berformat

Untuk mengembalikan nilai panjang atau ketepatan tertentu, pengendali cout mempunyai beberapa tetapan:

    cout.width(nombor) – jumlah panjang nilai output

    cout.precision(nombor) – bilangan tempat perpuluhan

    cout.fill(‘simbol pengisi’) – simbol yang mengisi kedudukan tambahan pada skrin

Tetapan cout.width ditetapkan semula kepada nilai awalnya selepas melaksanakan satu pernyataan output. Oleh itu, ia mesti dinyatakan secara berasingan untuk setiap pembolehubah atau baris.

Tetapan untuk parameter ini mesti dibuat sebelum memanggil operator output.

Sebagai contoh:

//terangkan pembolehubah

apungan a=125.478, b=625.365;

//tetapkan bilangan aksara dalam medan koma

cout.precision(2);

//tetapkan pemegang tempat untuk jawatan tambahan

cout.fill('0');

//paparkan nilai pembolehubah pada skrin

cout<<”a=”;

cout<<” b=”;

//tetapkan jumlah panjang untuk nombor itu

Melaraskan lebar medan (lebar) dan pengisi (isi) masuk akal apabila mengeluarkan data ke jadual. Selalunya, anda hanya boleh bertahan dengan tetapan ketepatan.

Membersihkan skrin

Bahasa C++ mempunyai fungsi yang membolehkan anda mengosongkan skrin maklumat teks. Fungsi ini kelihatan seperti:

Fungsi ini terletak dalam fail pengepala conio.h. Oleh itu, untuk menggunakannya, fail ini mesti disertakan menggunakan arahan:

#termasuk

Mengatur jeda untuk melihat hasilnya

Selepas melaksanakan program, biasanya terdapat pemulangan automatik ke tetingkap dengan teks sumber. Ini tidak membenarkan anda melihat hasil yang dipaparkan oleh program pada skrin. Jalan keluar dari situasi ini boleh menggunakan kekunci Alt+F5, apabila ditekan, tetingkap dengan kod program disembunyikan. Menekan kekunci ini sekali lagi mengembalikan tetingkap kod ke skrin.

Walau bagaimanapun, jika anda mencipta fail EXE boleh laku, maka adalah mustahil untuk menggunakan kekunci ini dan hasilnya akan kekal tidak kelihatan kepada pengguna.

Untuk menyelesaikan masalah ini, anda boleh menambah fungsi pada penghujung program yang berhenti seketika sehingga sebarang kekunci ditekan. Fungsi ini kelihatan seperti:

getch();

Fungsi ini terletak dalam fail pengepala conio.h. Oleh itu, untuk menggunakannya, fail ini mesti disertakan menggunakan arahan:

#termasuk

Operator kemasukan data papan kekunci

Untuk memasukkan data dari papan kekunci dalam C++ terdapat operator:

cin>>pembolehubah;

Kenyataan ini menjeda atur cara dan menunggu sehingga pengguna memasukkan nilai pembolehubah dan menekan ENTER.

Menggunakan satu operator, anda boleh memasukkan nilai beberapa pembolehubah. Untuk melakukan ini, pengendali ditulis dalam bentuk:

cin>>pembolehubah1>>pembolehubah2>>. . .>>pembolehubah;

Apabila memulakan program, masukkan setiap nilai yang dipisahkan oleh ruang dan tekan ENTER pada penghujungnya.

Penyataan COUT terdapat dalam fail pengepala iostream.h. Oleh itu, untuk menggunakannya, fail ini mesti disertakan menggunakan arahan:

#termasuk (Mula)

6. Contoh atur cara dalam C++

Untuk menunjukkan, mari kita selesaikan satu masalah. Tulis program untuk mencari nilai fungsi:

Program ini mungkin kelihatan seperti:

//sambungkan fail untuk mengatur I/O

#termasuk

//masukkan fail untuk menggunakan fungsi algebra

#termasuk

//masukkan fail untuk memanggil fungsi pembersihan skrin

#termasuk

//tajuk program utama

//huraikan tiga pembolehubah jenis sebenar

//kosongkan skrin

//paparkan pembayang teks pada skrin

cout<<"Введите значения a и b:";

//meminta input papan kekunci dua pembolehubah: a dan b

//kira nilai fungsi

c=sin(a)+pow(cos(b),2);

//tetapkan ketepatan output hasil kepada 3 tempat perpuluhan

cout.precision(3);

//paparkan keputusan pada skrin

cout<<"Функция равна:"<

cout<<"Для продолжения нажмите любую клавишу. . .";

//jeda untuk melihat keputusan

//menamatkan program utama

Fungsi matematik bahasa C


Bahasa C dan C++ mentakrifkan pelbagai jenis fungsi matematik. Pada mulanya, kedua-dua bahasa menyokong set 22 fungsi matematik yang sama. Walau bagaimanapun, apabila bahasa C++ berkembang, senjata fungsi yang ditakrifkan di dalamnya berkembang. Kemudian, dalam versi C99, saiz perpustakaan matematik meningkat dengan ketara. Hasil daripada perubahan ini, perpustakaan fungsi matematik bahasa C dan C++ mula berbeza dengan ketara antara satu sama lain. Oleh itu, bab ini menerangkan fungsi matematik bahasa C (termasuk yang ditambahkan dalam versi C99), dan Bab 9 memfokuskan secara eksklusif pada fungsi bahasa C++. Walau bagaimanapun, perlu diingat bahawa set asal fungsi matematik masih disokong oleh semua versi C dan C++.

Untuk menggunakan semua fungsi matematik, program mesti memasukkan pengepala . Selain mengisytiharkan fungsi matematik, pengepala ini mentakrifkan satu atau lebih makro. Dalam versi C89 pengepala Hanya makro HUGE_VAL ditakrifkan, iaitu nilai berganda yang menandakan limpahan.

Makro berikut ditakrifkan dalam versi C99.

Versi C99 mentakrifkan makro berikut (seperti fungsi) yang mengelaskan nilai.

Dalam versi C99, makro perbandingan berikut ditakrifkan, hujah yang (a dan b) mestilah nilai titik terapung.

Makro ini mengendalikan nilai yang bukan nombor dengan baik tanpa membuang pengecualian jenis sebenar.

Makro EDOM dan ERANGE juga digunakan oleh fungsi matematik. Makro ini ditakrifkan dalam pengepala .

Ralat dalam versi C89 dan C99 dikendalikan secara berbeza. Oleh itu, dalam C89, jika hujah fungsi matematik tidak termasuk dalam domain yang ditakrifkan, beberapa nilai khusus pelaksanaan dikembalikan dan pembolehubah integer global terbina dalam errno ditetapkan kepada nilai EDOM. Dalam C99, ralat pelanggaran domain juga mengakibatkan nilai khusus pelaksanaan dikembalikan. Walau bagaimanapun, nilai math_errhandling boleh menunjukkan sama ada tindakan lain sedang dilakukan. Jika math_errhandling mengandungi nilai MATH_ERRNO, pembolehubah integer global terbina dalam errno ditetapkan kepada nilai EDOM. Jika math_errhandling mengandungi nilai MATH_ERREXCEPT, pengecualian sebenar akan dilemparkan.

Dalam C89, jika fungsi menjana hasil yang terlalu besar untuk dikendalikan oleh perwakilan, limpahan berlaku. Dalam kes ini, fungsi mengembalikan HUGE_VAL dan errno ditetapkan kepada nilai ERANGE yang menunjukkan ralat julat. Apabila aliran bawah dikesan, fungsi mengembalikan sifar dan menetapkan errno kepada ERANGE. Dalam C99, ralat limpahan juga menyebabkan fungsi mengembalikan nilai. HUGE_VAL, dan jika ia kehilangan kepentingan - sifar. Jika math_errhandling mengandungi nilai MATH_ERRNO, pembolehubah global errno ditetapkan kepada nilai ERANGE yang menunjukkan ralat julat. Jika math_errhandling mengandungi nilai MATH_ERREXCEPT, pengecualian sebenar akan dilemparkan.

Dalam versi C89, argumen kepada fungsi matematik mestilah nilai berganda dan nilai yang dikembalikan oleh fungsi mestilah nilai berganda. Dalam versi C99, varian terapung dan berganda panjang bagi fungsi ini telah ditambah, yang masing-masing menggunakan akhiran f dan l. Sebagai contoh, dalam versi C89, fungsi sin() ditakrifkan seperti berikut.

Dosa berganda(double arg);

Dalam versi C99, takrifan fungsi sin() di atas disokong dan dua lagi pengubahsuaian ditambah - sinf() dan sinl().

Float sinf(float arg); long double sinl(long double arg);

Operasi yang dilakukan oleh ketiga-tiga fungsi adalah sama; hanya data yang tertakluk kepada operasi ini berbeza. Menambah pengubahsuaian f- dan 1 pada fungsi matematik membolehkan anda menggunakan versi yang paling sesuai dengan data anda.

Memandangkan C99 menambahkan begitu banyak ciri baharu, adalah wajar menyenaraikan secara berasingan ciri yang disokong oleh C89 (ia juga digunakan dalam C++).

acos seperti dalam atan atan2 siling
cos cosh exp fabs lantai
fmod frexp ldexp log log10
modf pow dosa sinh persegi
Tan tanh

Dan satu perkara lagi: semua sudut dinyatakan dalam radian.


lihat juga


acos- Mengembalikan nilai kosinus arka
acosh- Mengembalikan nilai kosinus arka hiperbolik
seperti dalam- Mengembalikan nilai arcsine
asinh- Mengembalikan nilai arcsine hiperbolik
atan- Mengembalikan nilai arctangent
atan2- Mengembalikan arctangent a/b
atanh- Mengembalikan nilai arkatangen hiperbolik
cbrt- Mengembalikan nilai punca kubus
siling- Mengembalikan integer terkecil yang lebih besar daripada nilai hujah yang diberikan
copysign- Berikan hujah yang diberikan tanda yang ada pada hujah yang ditentukan
cos- Mengembalikan nilai kosinus
cosh- Mengembalikan nilai kosinus hiperbolik
erf- Mengembalikan nilai fungsi ralat
erfc- Mengembalikan nilai fungsi ralat tambahan
exp- Mengembalikan nilai eksponen
exp2- Mengembalikan nombor 2 yang dinaikkan kepada kuasa yang diberikan
expm1- Mengembalikan nilai logaritma asli yang dikurangkan dengan satu
fabs- Mengembalikan nilai mutlak
fdim- Mengembalikan sifar atau perbezaan dua hujah yang diberikan
lantai- Mengembalikan integer terbesar yang kurang daripada atau sama dengan nilai hujah yang diberikan
fma- Mengembalikan nilai a*b+c argumen yang diberikan
fmax- Mengembalikan nilai yang lebih besar daripada dua nilai
fmin- Mengembalikan nilai yang lebih kecil daripada dua nilai
fmod- Mengembalikan baki bahagian
frexp- Membahagi nombor yang diberikan kepada mantissa dan eksponennya
hipot- Mengembalikan panjang hipotenus diberi panjang dua kaki
ilogb- Menyerlahkan nilai eksponen
ldexp- Mengembalikan nilai ungkapan num*2^exp.

Operasi +, -, * dan ** ditakrifkan untuk integer. Pembahagian / operasi untuk integer mengembalikan nombor nyata (nilai apungan). Juga, fungsi eksponen mengembalikan nilai apungan jika eksponen ialah nombor negatif.

Tetapi terdapat juga operasi khas pembahagian integer, dilakukan dengan membuang bahagian pecahan, yang dilambangkan // (ia sepadan dengan operasi div dalam Pascal). Ia mengembalikan integer: bahagian integer bagi hasil bagi. Operasi lain yang berkaitan ialah operasi mengambil baki bahagian, dilambangkan dengan % (ia sepadan dengan operasi mod dalam Pascal). Sebagai contoh:

Cetak(17 / 3) # akan mencetak 5.66666666667 cetakan(17 // 3) # akan mencetak 5 cetakan(17 % 3) # akan mencetak 2

Beberapa fungsi yang disenaraikan (int, bulat, abs) adalah standard dan tidak memerlukan modul matematik untuk digunakan.

Fungsi Penerangan
Membundarkan
int(x) Membundarkan nombor ke arah sifar. Ini adalah fungsi standard; anda tidak perlu memasukkan modul matematik untuk menggunakannya.
bulat(x) Membundarkan nombor kepada integer terdekat. Jika bahagian pecahan suatu nombor ialah 0.5, maka nombor itu dibundarkan kepada nombor genap yang terdekat.
bulat(x, n) Membundarkan nombor x kepada n tempat perpuluhan. Ini adalah fungsi standard; anda tidak perlu memasukkan modul matematik untuk menggunakannya.
lantai(x) Membundarkan nombor ke bawah (“lantai”), dengan lantai(1.5) == 1 , lantai(-1.5) == -2
siling(x) Membundarkan nombor ke atas (“siling”), dengan ceil(1.5) == 2 , ceil(-1.5) == -1
abs(x) Modul (nilai mutlak). Ini adalah ciri standard.
Akar, logaritma
sqrt(x) Punca kuasa dua. Penggunaan: sqrt(x)
log(x) Logaritma semula jadi. Apabila dipanggil sebagai log(x, b), mengembalikan logaritma kepada asas b .
e Asas logaritma asli ialah e = 2.71828...
Trigonometri
dosa(x) Sinus sudut yang dinyatakan dalam radian
cos(x) Kosinus sudut yang dinyatakan dalam radian
tan(x) Tangen sudut, dinyatakan dalam radian
asin(x) Arcsine, mengembalikan nilai dalam radian
acos(x) Arka kosinus, mengembalikan nilai dalam radian
atan(x) Arctangent, mengembalikan nilai dalam radian
atan2(y, x) Sudut kutub (dalam radian) bagi suatu titik dengan koordinat (x, y).
darjah(x) Menukarkan sudut yang dinyatakan dalam radian kepada darjah.
radian(x) Menukarkan sudut yang dinyatakan dalam darjah kepada radian.
pi berterusan π = 3.1415...