Interaktivna lekcija jezika Python. Sat računanja i matematike

Za sve matematičke funkcije potrebno zaglavlje . C programi koriste zaglavlje

1 akos Funkcija dupli acos(dvostruki arg arg
2 asin Funkcija dvostruko asin(double arg) vraća ark kosinus argumenta arg. Vrijednost argumenta funkcije mora biti u rasponu od -1 do 1, inače će doći do pogreške.
3 atan Funkcija dvostruko atan(double arg) vraća arktangens argumenta arg.
4 atan2 Funkcija dvostruko atan2(double x, dvostruko g) vraća arktangens vrijednosti g/x.
5 staviti strop Funkcija dvostruki strop (dvostruki br) vraća najbliži cijeli broj (predstavljen kao realni broj s pomičnim zarezom) koji nije manje od vrijednosti argument br. Na primjer, ceil(1.02) će vratiti 2.0. Ova konverzija se naziva prekomjerno zaokruživanje.
6 cos Funkcija double cos(double arg) vraća kosinus argumenta arg
7 cosh Funkcija double cosh(double arg) vraća hiperbolički kosinus argumenta arg.
8 eksp Funkcija double exp(double arg) vraća bazu prirodnog logaritma e, podignut na moć arg.
9 fabs Funkcija dvostrukih fabs(double br) vraća apsolutna vrijednost(modulo vrijednost) argumenta br.
10 kat Funkcija dvostruki pod (dvostruki br) vraća najveći cijeli broj (predstavljen kao realni broj s pomičnim zarezom) koji nije veći od vrijednosti argumenta br. Na primjer, floor(1.02) će vratiti broj 1.0. Ova konverzija se zove zaokruživanje prema dolje.
11 fmod Funkcija double fmod(double x, double y) vraća ostatak dijeljenja x/y.
12 freksp Funkcija double freexp(double br, int * eksp) proširuje broj br mantisom u rasponu od 0,1 do 1, ne uključujući 1, i cjelobrojnim eksponentom, pa br = kazaljka. Funkcija vraća mantisu, a vrijednost eksponenta pohranjuje se u varijablu na koju pokazuje pokazivač eksp.
13 log Funkcija double log(double br) vraća prirodni logaritam brojevima br. Ako argument br
14 zapisnik10 Funkcija double log10(double br) vraća decimalni logaritam broja br. Ako argument br negativan ili jednaka nuli, dolazi do pogreške.
15 pow Funkcija double pow(double baza, dvostruko eksp) vraća broj baza, podignut na vlast eksp. Ako je osnova diplome baza jednaka je nuli, a eksponent eksp manji ili jednak nuli, može doći do pogreške zbog argumenta koji napušta domenu definicije funkcije (pogreška domene). Ova se pogreška također pojavljuje ako argument baza je negativan i argument eksp nije cijeli broj.
16 grijeh Funkcija double sin(double arg) vraća sinus argumenta arg. Vrijednost argumenta mora biti izražena u radijanima.
17 sinh Funkcija double sinh(double arg) vraća hiperbolički sinus argumenta arg.
18 sqrt Funkcija double sqrt(double br) vraća kvadratni korijen argument br. Ako je argument negativan, dolazi do pogreške jer funkcija izlazi iz opsega.
19 preplanuli ten Funkcija dvostrukog preplanulosti (duplo arg) vraća tangens argumenta arg. Vrijednost argumenta mora biti izražena u radijanima.
20 tanh Funkcija double tanh(double arg) vraća hiperbolički tangens argumenta arg.

Sljedeći aritmetički operatori definirani su u C++.

Dodatak;

– oduzimanje;

* množenje

/ podjela

% modulo dijeljenje

– – smanjenje (smanjenje za 1)

Povećanje (povećanje za 1).

Djelovanje operatora +, –, * i / podudara se s djelovanjem sličnih operatora u algebri. Mogu se primijeniti na bilo koji ugrađeni numerički tip podataka.

Nakon primjene operatora dijeljenja (/) na cijeli broj, ostatak će biti odbačen. Na primjer, rezultat cjelobrojnog dijeljenja 10/3 je 3. Ostatak dijeljenja može se dobiti pomoću modulo operatora (%). Na primjer, 10%3 je jednako 1. To znači da se u C++ operator % ne može koristiti na tipovima podataka koji nisu cijeli brojevi.

Operatori inkrementa (++) i dekrementa (– –) imaju vrlo zanimljiva svojstva. Stoga im treba posvetiti posebnu pozornost.

Operator inkrementiranja dodaje broj 1 svom operandu, a operator dekrementiranja oduzima 1 od svog operanda. To znači da upute:

slično ovoj uputi:

I upute:

slično ovoj uputi:

Operatori inkrementiranja i dekrementiranja mogu se pojaviti ili prije svog operanda (prefiksni oblik) ili iza njega (postfiksni oblik). Na primjer, upute

može se prepisati kao prefiks

X;//prefiksni oblik operatora povećanja

ili postfiksni oblik:

x++;//postfiksni oblik operatora povećanja

U prethodnom primjeru nije bilo važno je li operator inkrementa korišten u obliku prefiksa ili postfiksa. Ali ako se operator inkrementiranja ili dekrementiranja koristi kao dio većeg izraza, tada je vrlo važan oblik u kojem se koristi. Ako se takav operator koristi u oblik prefiksa, onda će C++ prvo izvesti ovu operaciju tako da operand dobije novu vrijednost, koju će zatim koristiti ostatak izraza. Ako se operator koristi u postfiksnom obliku, C++ koristi svoju staru vrijednost u izrazu i zatim izvodi operaciju koja uzrokuje da operand preuzme novu vrijednost.

Matematičke funkcije

Jezik C++ ima posebne funkcije za izračunavanje algebarskih izraza. Sve takve funkcije sadržane su u posebnoj datoteci zaglavlja, math.h. Stoga, da biste koristili funkcije u programskom kodu, morate se povezati ovu datoteku koristeći direktivu

#uključi

Ovdje su osnovne algebarske funkcije C++.

abs(x) - modul cijelog broja;

labs(x) - modul “dugog” cijelog broja;

fabs(x) - modul broja s pomičnim zarezom;

sqrt(x) - vađenje kvadratnog korijena;

pow(x,y) - dizanje x na stepen y;

cos(x) - kosinus;

sin(x) - sinus;

tan(x) - tangenta;

acos(x) - ark kosinus;

asin(x) - arcsinus;

atan(x) - arktangens;

exp(x) - eksponent na x potenciju;

log(x) - prirodni logaritam;

log10(x) - decimalni logaritam

Kada se broj diže na razlomačku potenciju, nazivnik razlomka se mora napisati u realnom obliku. Na primjer: kvadratni korijen od a zapisan je ovako: pow(a,1/ 2.0 )

Pokažimo korištenje funkcija na primjerima.

5. I/O operatori u C++

Za prikaz poruke na ekranu koristite sljedeću C++ naredbu:

cout<<”текст”;

#uključi

Podaci u dvostrukim navodnicima su poruka koja bi trebala biti prikazana na ekranu. U C++-u svaki niz znakova u dvostrukim navodnicima naziva se niz jer se sastoji od nekoliko znakova spojenih zajedno u veći blok (element).

Redak u naredbi COUT može sadržavati takozvane zamjenske znakove - znakove koji se ne nalaze na tipkovnici ili se koriste za ključne znakove u tekstu programa. Svakom takvom zamjenskom znaku prethodi znak "\".

Evo popisa takvih simbola:

\a – zvučni signal

\n – idi u novi red

\t – horizontalni jezičak

\v – okomiti jezičak

\\ - obrnuta kosa crta

\’ – jednostruki navodnici

\” – dvostruki navodnik

\? – upitnik.

Na primjer, operator poput:

cout>>“example\ntext”;

Riječ "primjer" pojavit će se u jednom retku, a riječ "tekst" u drugom.

Operator obrasca:

cout>>“trgovina\””galeb\””;

Riječ "Galeb" bit će prikazana u dvostrukim navodnicima.

Osim teksta, operater može prikazati vrijednosti varijabli na ekranu, kombinirajući ih s tekstom.

cout<<”a=”<

Formatirani izlaz

Za vraćanje vrijednosti zadane duljine ili preciznosti, cout operator ima nekoliko postavki:

    cout.width(number) – ukupna duljina izlazne vrijednosti

    cout.precision(number) – broj decimalnih mjesta

    cout.fill(‘filler symbol’) – simbol koji ispunjava dodatna mjesta na ekranu

Postavka cout.width vraća se na početnu vrijednost nakon izvođenja jedne izlazne naredbe. Stoga se mora navesti zasebno za svaku varijablu ili redak.

Postavke ovih parametara moraju se izvršiti prije pozivanja izlaznog operatera.

Na primjer:

//opisati varijable

float a=125,478, b=625,365;

//postavite broj znakova u polju zareza

cout.preciznost(2);

//postavite rezervirano mjesto za dodatne pozicije

cout.fill('0');

//prikaz vrijednosti varijabli na ekranu

cout<<”a=”;

cout<<” b=”;

//postavite ukupnu duljinu broja

Podešavanje širine polja (širine) i punila (ispune) ima smisla prilikom ispisivanja podataka u tablicu. Najčešće možete proći samo s postavkom preciznosti.

Čišćenje ekrana

Jezik C++ ima funkciju koja vam omogućuje da očistite ekran od tekstualnih informacija. Ova funkcija izgleda ovako:

Ova se funkcija nalazi u datoteci zaglavlja conio.h. Stoga, da biste je koristili, ova datoteka mora biti uključena pomoću direktive:

#uključi

Organiziranje pauze za pregled rezultata

Nakon izvođenja programa obično dolazi do automatskog povratka na prozor s izvornim tekstom. To vam ne dopušta pregled rezultata koje program prikazuje na zaslonu. Izlaz iz ove situacije može biti korištenje tipki Alt+F5, kada se pritisne, prozor s programskim kodom je skriven. Ponovni pritisak na ove tipke vraća prozor koda na zaslon.

Međutim, ako stvorite izvršnu EXE datoteku, tada će biti nemoguće koristiti te ključeve i rezultat će ostati nevidljiv korisniku.

Kako biste riješili ovaj problem, možete dodati funkciju na kraju programa koja pauzira dok se ne pritisne bilo koja tipka. Ova funkcija izgleda ovako:

dobiti();

Ova se funkcija nalazi u datoteci zaglavlja conio.h. Stoga, da biste je koristili, ova datoteka mora biti uključena pomoću direktive:

#uključi

Operator za unos podataka s tipkovnice

Za unos podataka s tipkovnice u C++ postoji operator:

cin>>varijabla;

Ova izjava pauzira program i čeka dok korisnik ne unese vrijednost varijable i pritisne ENTER.

Koristeći jedan operator, možete unijeti vrijednosti nekoliko varijabli. Da biste to učinili, operator je napisan u obliku:

cin>>varijabla1>>varijabla2>>. . .>>varijabla;

Prilikom pokretanja programa unesite svaku vrijednost odvojenu razmakom i na kraju pritisnite ENTER.

Izjava COUT nalazi se u datoteci zaglavlja iostream.h. Stoga, da biste je koristili, ova datoteka mora biti uključena pomoću direktive:

#uključi (start)

6. Primjer programa u C++

Za demonstraciju, riješimo jedan problem. Napišite program za pronalaženje vrijednosti funkcije:

Program bi mogao izgledati ovako:

//povežite datoteku za organiziranje I/O

#uključi

//uključi datoteku za korištenje algebarskih funkcija

#uključi

//uključuje datoteku za pozivanje funkcije čišćenja zaslona

#uključi

//naslov glavnog programa

//opisati tri varijable realnog tipa

//očisti ekran

//prikaži tekstualni savjet na ekranu

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

//zatraži unos dvije varijable s tipkovnice: a i b

//izračunaj vrijednost funkcije

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

//postavi točnost izlaza rezultata na 3 decimalna mjesta

cout.preciznost(3);

//prikaži rezultat na ekranu

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

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

//pauza za pregled rezultata

//završi glavni program

Matematičke funkcije jezika C


Jezici C i C++ definiraju široku paletu matematičkih funkcija. Isprva su oba jezika podržavala isti skup od 22 matematičke funkcije. Međutim, kako se jezik C++ razvijao, arsenal funkcija definiranih u njemu se širio. Zatim, u verziji C99, veličina matematičke knjižnice značajno se povećala. Kao rezultat ovih promjena, biblioteke matematičkih funkcija jezika C i C++ počele su se značajno razlikovati jedna od druge. Stoga ovo poglavlje opisuje matematičke funkcije jezika C (uključujući one dodane u verziji C99), a poglavlje 9 fokusira se isključivo na funkcije jezika C++. Međutim, imajte na umu da izvorni skup matematičkih funkcija još uvijek podržavaju sve verzije C i C++.

Za korištenje svih matematičkih funkcija, program mora sadržavati zaglavlje . Osim deklariranja matematičkih funkcija, ovo zaglavlje definira jednu ili više makronaredbi. U verziji C89 zaglavlje Definirana je samo makronaredba HUGE_VAL, što je dvostruka vrijednost koja signalizira prekoračenje.

Sljedeće makronaredbe definirane su u verziji C99.

Verzija C99 definira sljedeće makronaredbe (nalik funkciji) koje klasificiraju vrijednost.

U verziji C99 definirane su sljedeće makronaredbe za usporedbu, čiji argumenti (a i b) moraju biti vrijednosti s pomičnim zarezom.

Ove makronaredbe dobro obrađuju vrijednosti koje nisu brojevi bez bacanja iznimki stvarnog tipa.

Makronaredbe EDOM i ERANGE također koriste matematičke funkcije. Ove su makronaredbe definirane u zaglavlju .

Pogreške u verzijama C89 i C99 obrađuju se drugačije. Stoga, u C89, ako argument matematičke funkcije ne spada unutar domene za koju je definiran, neka vrijednost specifična za implementaciju se vraća i ugrađena globalna varijabla cijelog broja errno se postavlja na vrijednost EDOM. U C99, pogreška kršenja domene također rezultira vraćanjem vrijednosti specifične za implementaciju. Međutim, vrijednost math_errhandling može naznačiti izvode li se druge radnje. Ako math_errhandling sadrži vrijednost MATH_ERRNO, ugrađena globalna varijabla cijelog broja errno postavljena je na vrijednost EDOM. Ako math_errhandling sadrži vrijednost MATH_ERREXCEPT, izbacuje se pravi izuzetak.

U C89, ako funkcija generira rezultat koji je prevelik za reprezentaciju, dolazi do preljeva. U ovom slučaju, funkcija vraća HUGE_VAL, a errno je postavljen na vrijednost ERANGE što ukazuje na pogrešku raspona. Ako se otkrije manjak protoka, funkcija vraća nulu i postavlja errno na ERANGE. U C99, pogreška prekoračenja također uzrokuje da funkcija vrati vrijednost. HUGE_VAL, a ako izgubi na značaju - nula. Ako math_errhandling sadrži vrijednost MATH_ERRNO, globalna varijabla errno postavljena je na vrijednost ERANGE što ukazuje na pogrešku raspona. Ako math_errhandling sadrži vrijednost MATH_ERREXCEPT, izbacuje se pravi izuzetak.

U verziji C89, argumenti matematičkih funkcija moraju biti tipa double, a vrijednosti koje vraćaju funkcije su tipa double. U verziji C99 dodane su float i long double varijante ovih funkcija koje koriste nastavke f odnosno l. Na primjer, u verziji C89, funkcija sin() definirana je na sljedeći način.

Dvostruki grijeh (dvostruki arg);

U verziji C99, gornja definicija funkcije sin() je podržana i dodane su još dvije izmjene - sinf() i sinl().

Float sinf(float arg); dugi dvostruki sinl(dugi dvostruki arg);

Operacije koje izvode sve tri funkcije su iste; samo se podaci podvrgnuti ovim operacijama razlikuju. Dodavanje f- i 1-modifikacija matematičkim funkcijama omogućuje vam upotrebu verzije koja najbolje odgovara vašim podacima.

Budući da je C99 dodao toliko novih značajki, vrijedi posebno navesti značajke koje podržava C89 (također se koriste u C++).

akos asin atan atan2 staviti strop
cos cosh eksp fabs kat
fmod freksp ldexp log zapisnik10
modf pow grijeh sinh sqrt
preplanuli ten tanh

I još nešto: svi kutovi su navedeni u radijanima.


Vidi također


akos- Vraća vrijednost ark kosinusa
acosh- Vraća vrijednost hiperboličkog ark kosinusa
asin- Vraća vrijednost arkusina
asinh- Vraća vrijednost hiperboličkog arkusina
atan- Vraća vrijednost arktangensa
atan2- Vraća arktangens od a/b
atanh- Vraća vrijednost hiperboličkog arktangensa
cbrt- Vraća vrijednost kubnog korijena
staviti strop- Vraća najmanji cijeli broj koji je veći od vrijednosti zadanog argumenta
copysign- Zadanom argumentu dodjeljuje predznak koji ima navedeni argument
cos- Vraća vrijednost kosinusa
cosh- Vraća vrijednost hiperboličkog kosinusa
erf- Vraća vrijednost funkcije pogreške
erfc- Vraća dodatnu vrijednost funkcije pogreške
eksp- Vraća vrijednost eksponenta
exp2- Vraća broj 2 podignut na zadanu potenciju
expm1- Vraća vrijednost prirodnog logaritma umanjenu za jedan
fabs- Vraća apsolutnu vrijednost
fdim- Vraća nulu ili razliku dva zadana argumenta
kat- Vraća najveći cijeli broj koji je manji ili jednak vrijednosti zadanog argumenta
fma- Vraća vrijednost a*b+c danih argumenata
fmax- Vraća veću od dvije vrijednosti
fmin- Vraća manju od dvije vrijednosti
fmod- Vraća ostatak dijeljenja
freksp- Rastavlja zadani broj na mantisu i eksponent
hipopot- Vraća duljinu hipotenuze s obzirom na duljine dviju kateta
ilogb- Ističe eksponencijalnu vrijednost
ldexp- Vraća vrijednost izraza num*2^exp.

Operacije +, -, * i ** definirane su za cijele brojeve. Dijeljenje/operacija za cijele brojeve vraća realni broj (vrijednost s pomičnim zarezom). Također, funkcija potenciranja vraća vrijednost s pomičnim pomakom ako je eksponent negativan broj.

Ali postoji i posebna operacija cjelobrojnog dijeljenja, koja se izvodi odbacivanjem razlomaka, a koja se označava // (odgovara operaciji div u Pascalu). Vraća cijeli broj: cijeli broj kvocijenta. Druga srodna operacija je operacija uzimanja ostatka dijeljenja, označena sa % (odgovara mod operaciji u Pascalu). Na primjer:

Print(17 / 3) # će ispisati 5.66666666667 print(17 // 3) # će ispisati 5 print(17 % 3) # će ispisati 2

Neke od navedenih funkcija (int, round, abs) su standardne i ne zahtijevaju korištenje matematičkog modula.

Funkcija Opis
Zaokruživanje
int(x) Zaokružuje broj prema nuli. Ovo je standardna funkcija; ne morate uključiti matematički modul da biste je koristili.
krug(x) Zaokružuje broj na najbliži cijeli broj. Ako je razlomački dio broja 0,5, tada se broj zaokružuje na najbliži paran broj.
krug(x, n) Zaokružuje broj x na n decimalnih mjesta. Ovo je standardna funkcija; ne morate uključiti matematički modul da biste je koristili.
kat(x) Zaokružuje broj prema dolje ("kat"), s katom(1,5) == 1, katom(-1,5) == -2
strop (x) Zaokružuje broj prema gore ("ceiling"), s ceil(1,5) == 2, ceil(-1,5) == -1
trbušnjaci (x) Modul (apsolutna vrijednost). Ovo je standardna značajka.
Korijeni, logaritmi
sqrt(x) Kvadratni korijen. Upotreba: sqrt(x)
log(x) Prirodni logaritam. Kada se pozove kao log(x, b), vraća logaritam na bazu b.
e Baza prirodnih logaritama je e = 2,71828...
Trigonometrija
grijeh(x) Sinus kuta navedenog u radijanima
cos(x) Kosinus kuta navedenog u radijanima
tan (x) Tangens kuta, naveden u radijanima
asin(x) Arkusinus, vraća vrijednost u radijanima
akos(x) Arkus kosinus, vraća vrijednost u radijanima
atan(x) Arktangens, vraća vrijednost u radijanima
atan2(y, x) Polarni kut (u radijanima) točke s koordinatama (x, y).
stupnjevi (x) Pretvara kut naveden u radijanima u stupnjeve.
radijani(x) Pretvara kut naveden u stupnjevima u radijane.
pi Konstanta π = 3.1415...