کتابخانه های math.h و algorithm
در ++C، برای انجام محاسبات ریاضی، از توابعی که در فايل کتابخانه ای math.h قرار دارند، استفاده میشود. از این توابع میتوان برای گرد کردن اعداد، گرفتن جذر یا نتیجه توان یک عدد استفاده کرد. در جدول زیر لیست برخی از توابع پر کاربرد این کتابخانه آمده است :
متد | توضیح | |
abs() | قدر مطلق یک عدد را بر میگرداند. | |
ceil() | کوچکترین مقدار صحیحی که بزرگتر یا مساوی با عدد مورد نظر ما باشد را بر میگرداند. | |
cos() | کوسینوس یک زاویه مشخص را بر میگرداند. | |
floor() | بزرگترین مقدار صحیحی که کوچکتر یا مساوی با عدد مورد نظر ما باشد را بر میگرداند. | |
log10() | لگاریتم یک عدد در مبنای 10 را بر میگرداند. | |
pow() | برای به توان رساندن یک عدد به کار میرود. | |
round() | گرد کردن یک عدد اعشار به نزدیکترین مقدار صحیح. | |
sin() | سینوس یک زاویه مشخص را بر میگرداند. | |
sqrt() | جذر یک عدد را بر میگرداند. | |
tan() | تانژانت یک زاویه را بر میگرداند. |
گرد کردن اعداد با استفاده از کلاس Math
میتوان با استفاده از ceil() و floor() یک عدد با قسمت اعشار را گرد کرد. متد ceil() یک عدد از نوع double را گرفته و یک مقدار از نوع double گرد شده را بر میگرداند. نتیجه این متد بزرگتر یا مساوی آرگومان دریافت شده است. floor یک عدد double را گرد کرده و نتیجه کوچکتر یا مساوی آرگومان گرفته شده است. برای روشن شدن مطلب به مثال زیر توجه کنید :
#include <iostream> #include <math.h> using namespace std; int main() { double number = 34.567; cout << "Ceiling(34.567) = " << ceil(number) << endl; cout << "Floor(34.567) = " << floor(number) << endl; }
Ceiling(34.567) = 35 Floor(34.567) = 34
اگر بخواهید یک عدد را گرد کنید، میتوانید از متد round() استفاده کنید :
double number = 3.31674; cout << "round(3.31674) = " << round(number);
3
به توان رساندن یک عدد با استفاده از کلاس Math
برای به توان رساندن یک عدد از متد pow() استفاده میشود. این متد دو آرگومان از نوع double قبول کرده که اولین آرگومان پایه و دومی توان میباشد. مقدار برگشتی از این متد double است. به کد زیر توجه کنید :
for (int i = 0; i < 10; i++) { cout << "2^" << i << " = " << pow(2, i) << endl; }
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512
گرفتن ریشه یک عدد
برای محاسبه ریشه یک عدد از متد sqrt() استفاده میشود. این متد یک عدد به عنوان آرگومان قبول میکند که همان عددی است که میخواهیم ریشه آن را محاسبه کنیم. مقدار برگشتی از این متد هم double میباشد.
cout << sqrt(25);
5
M_PI
کتابخانه math.h دارای ثابت هایی است که برای استفاده از آنها باید قبل از وارد کردن این کتابخانه، عبارت زیر را وارد نمایید :
#define _USE_MATH_DEFINES #include <math.h>
یکی از این ثابت ها، M_PI بوده، که مقدار 3.14159265358979323846 را در خود ذخیره دارد و زمانی که بخواهید محیط یا مساحت یک دایره را پیدا کنید، می توانید از آن استفاده کنید. برای یافتن محیط یک دایره به صورت زیر عمل میشود که در آن radius شعاع میباشد :
double area; area = M_PI * pow(radius, 2);
کتابخانه math.h دارای متدهای بیشتری است که ما به توضیح همین چند متد بسنده کردیم.
یافتن بزرگترین و کوچکترین عدد با استفاده از توابع کتابخانه algorithm
کتابخانه algorithm دارای متدهای min() و max() برای یافتن بزرگترین و کوچکترین عدد از بین چندین عدد میباشد. هر دو متد دو آرگومان از نوع عددی قبول میکنند. در حالت پیشفرض دو عدد را میتوانید با هم مقایسه نمایید.
cout << min(1, 2) << endl; cout << max(1, 2) << endl;
1 2
برای جلوگیری از محدودیت این متدها میتوان به صورت تو در تو از آنها به صورت زیر استفاده کرد:
cout << min(min(1, 2), 3) << endl; cout << max(max(1, 2), 3) << endl;
Max = 3 Min = 1
همچنین میتوانید یک تابع تعریف کنید که کوچکترین و بزرگترین هر تعداد عدد را به شما معرفی کند :
#include <iostream> #include <algorithm> using namespace std; int GetMax(int numbers[]) { int maximum = numbers[0]; for (int i = 1; i <= sizeof(numbers); i++) { maximum = max(maximum, numbers[i]); } return maximum; } int GetMin(int numbers[]) { int minimum = numbers[0]; for (int i = 1; i <= sizeof(numbers); i++) { minimum = min(minimum, numbers[i]); } return minimum; } int main() { int numbers[] = { 32, 17, 45, 10, 5 }; int max = GetMax(numbers); int min = GetMin(numbers); cout << max << endl; cout << min; }
45 5
توابع GetMax() و GetMin() آرایهای از اعداد صحیح قبول میکنند (هر تعداد عدد را قبول میکنند). در داخل توابع ما فرض را بر این گذاشتهایم که اولین مقدار بزرگترین و آخرین مقدار کوچکترین عدد است. سپس یک حلقه for ایجاد کرده که با اندیس 1 شروع میشود. با استفاده از متدهای min() و max() تعیین میکنیم که آیا عنصر جاری حلقه از مقدار جاری اعداد بزرگتر است یا کوچکتر. که در این صورت مقدار جاری را جایگزین متغیرهای بزرگ یا کوچک میکنیم. سپس مقادیر نتیجه را برگشت میدهیم.
سلام اگه برای یه متغیر ۱۰تا مقدار تعریف کنیم . چطوری میتونیم همه این مقادیر رو باهم جمع کنیم
مسئله جمع افزایش حقوق کارمنداست
باید مقدار افزایش حقوق همه کارمندارو اول بدست آورد بعد باهم جمع کرد.
یک معادله مثلثاتی یا درجه ۳ حل کنید .
2.معادله مشتق گیری .
3.یک معادله دیفرانسیل به روش رونگ کوتای مرتبه ۲ یا مرتبه ۴.
(همه ی معادلات با دقت چهار رقم اعشار)
سلام ببخشید میشه این ها رو برام بنویسید .خیلی ممنون میشم
سلام
محاسبه لگاریتم توسط ارایه دو بعدی را چگونه میتوان نوشت؟
سلام، اصلا متوجه نشدم، یعنی چی، میشه بیشتر توضیح بدین؟
سلام، اصلا متوجه نشدم، یعنی چی، میشه بیشتر توضیح بدین؟