Мазмунга өтүү

C++ тилинде математика: cmath китепканасы жана сандардын тузактары

Программалоо C++ Татаалдыгы 1/5

Сабактын башталышы

C++ тилинде математика: cmath китепканасы жана сандардын тузактары

Тынч жаңылыш эмес, туура жоопту ал

Негизги идея: C++ математиканы жакшы көрөт, бирок сандардын катуу эрежелери бар. <cmath> китепканасы сага sqrt жана pow сыяктуу даяр куралдарды берет. Ошол эле учурда бир нече тузак — бүтүн сандарды бөлүү жана майда тегеректөө каталары — программаңды тынчтык менен жаңылыш жооп чыгарууга мажбурлашы мүмкүн. Бул сабак сага куралдарды да, тузактарды да көрсөтөт, ошондо математикаң дайыма туура болот.
Сабактын аягында сен:
  • <cmath> функцияларын, мисалы sqrt, pow, round, abs, ceil жана floor, колдоно аласың,
  • 7 / 2 эмне үчүн 3.5 эмес, 3 берерин түшүндүрө аласың,
  • калдык операторун % туура колдоно аласың,
  • калкыма чекиттүү сандардын тегеректөө катасын жана бүтүн сандын ашып кетишин байкай аласың,
  • жооптор туура болуш үчүн туура сандык типти тандай аласың.

1. <cmath> курал жыйнагы

Сен Операторлор жана туюнтмалар сабагынан +, -, * жана / операторлорун билесиң. Бирок квадрат тамырды кантип табасың же санды даражага кантип көтөрөсүң? C++ мындай аракеттерди <cmath> деген курал жыйнагында сактайт. Сен бул жыйнакты файлдын башына бир сап кошуп ачасың:

#include <cmath>

Ал кошулгандан кийин сен бул ыңгайлуу функцияларды чакыра аласың. Ар бирин кичинекей машина катары элестет: сен ага сан бересиң, ал башка санды кайтарат.

ФункцияЭмне кылатМисалНатыйжа
sqrt(x)квадрат тамырsqrt(9.0)3.0
pow(x, y)x санынын y даражасыpow(2.0, 3.0)8.0
abs(x)модуль (минус белгисин алып салат)abs(-4)4
round(x)эң жакын бүтүн санга тегеректейтround(2.7)3.0
ceil(x)бүтүн санга ЖОГОРУ тегеректейтceil(2.1)3.0
floor(x)бүтүн санга ТӨМӨН тегеректейтfloor(2.9)2.0

Мына алар чыныгы программада чогуу иштеп жатышат:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    cout << sqrt(16.0) << endl;   // 4
    cout << pow(3.0, 2.0) << endl; // 9
    cout << abs(-7) << endl;       // 7
    cout << round(4.6) << endl;    // 5
    return 0;
}
<cmath> функцияларынын көбү double (ондук) сандар менен иштеп, double кайтарат. Ошондуктан биз жөн эле 16 эмес, 16.0 деп жаздык.

Бул сабакты YourAIZone платформасында улантыңыз

Толук сабакта — толук түшүндүрмө, чыгарылган мисалдар, көп кездешкен каталар, заматта текшерилүүчү тесттер жана ЖИ-репетитор. Конок катары дароо баштаңыз же прогрессти сактоо үчүн аккаунт түзүңүз.

Толук сабакта

  • Толук түшүндүрмө
  • Чыгарылган мисалдар
  • Көп кездешкен каталар жана алардан кантип качуу керек
  • Тест суроолору: 15
  • Тема боюнча суроолорго жооп берген ЖИ-репетитор
  • Окуучу, ата-эне жана мугалим үчүн прогрессти көзөмөлдөө