Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 5. Масиви і стандартні класи С.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
134 Кб
Скачать
☆

5.3. Клас Math і його методи

Клас Math містить методи для роботи з математичними функціями.

Клас Math – статичний, тобто всі його поля і методи статичні. Це означає, що для використання функцій класу не потрібно створювати об’єкт класу (оператором new).

Таблиця 4.1. Основні функції класу Math

Функції

Призначення

Sin, Cos, Tan

Тригонометричні функції

ASin, ACos, ATan, ATan2 (sinx, cosx);

Обернені тригонометричні функції

Tanh, Sinh, Cosh;

Гіперболічні

Exp, Log, Log10

Експоненціальні і логарифмічні

Abs, Sqrt, Sign

Модуль, корінь, знак

Min, Max, Pow, IEEERemainder.

Мінімум, максимум, ступінь, залишок

Примітка

Для того, щоб при написанні програми подивитися повний перелік методів класу, достатньо ввести в редакторі Visual Studio ім’я класу і крапку (Math.).

Приклад 5.9. Використання математичних функцій

/// <summary>

/// робота з функціями класу Math

/// </summary>

public void MathFunctions()

{

double a, b,t,t0,dt,y;

string NameFunction;

Console.WriteLine("Введіть ім'я F(t) досліджуваної функції

a*F(b*t)" + " (sin, cos, tan, cotan)");

NameFunction = Console.ReadLine();

Console.WriteLine("Введіть параметр a (double)");

a= double.Parse(Console.ReadLine());

Console.WriteLine("Введіть параметр b (double)");

b= double.Parse(Console.ReadLine());

Console.WriteLine("Введіть початковий час t0(double)");

t0= double.Parse(Console.ReadLine());

const int points = 10;

dt = 0.2;

for(int i = 1; i<=points; i++)

{

t = t0 + (i-1)* dt;

switch (NameFunction)

{

case ("sin"):

y = a*Math.Sin(b*t);

break;

case ("cos"):

y = a*Math.Cos(b*t);

break;

case ("tan"):

y = a*Math.Tan(b*t);

break;

case ("cotan"):

y = a*Math.Tan(b*t);

break;

case ("ln"):

y = a*Math.Log(b*t);

break;

case ("tanh"):

y = a*Math.Tanh(b*t);

break;

default:

y=1;

break;

}//switch

Console.WriteLine ("t = " + t + "; " + a +"*" +

NameFunction +"(" + b + "*t)= " + y + ";");

}//for

double u = 2.5, v = 1.5, p,w;

p= Math.Pow(u,v);

w = Math.IEEERemainder(u,v);

Console.WriteLine ("u = " + u + "; v= " + v +

"; power(u,v)= " + p + "; reminder(u,v)= " + w);

}//MathFunctions

Висновки

З цій лекції ми ознайомилися з деякими стандартними класами С#, зокрема Array, Random і Math.

В C# як і в С++ є одновимірні і прямокутні масиви. Крім того, є новий тип масиву - "зубчасті" (ступінчасті, jagged). У ступінчастих масивах кількість елементів в різних рядках може розрізнятися. Масиви є посилковими типами даних, унаслідуються від базового класу System.Array, а отже мають всі властивості і методи цього класу. Для роботи з елементами масиву зручно використовувати цикл foreach.

Клас Random призначений для генерації випадкових чисел, потреба в яких виникає в різних задачах програмування і тестування.

Клас Math містить методи для роботи з математичними функціями. Це статичний клас, тому для нього не потрібно створювати об'єкти.

Контрольні запитання та завдання для самостійного виконання

1. Перелічіть способи опису масивів.

2. Чим відрізняється зберігання в пам'яті масивів з величин значимого і посилкового типів?

3. Чи є розмірність частиною опису масиву?

4. Чи може розмірність масиву бути описана змінною (а не константою)?

5. Чи можна змінити розмірність масиву після виділення пам'яті під нього?

6. Які види масивів використовуються в С#?

7. Що відбувається, якщо кількість ініціалізаторів масиву не відповідає заявленій розмірності?

8. Що відбувається при призначенні масивів?

9. Опишіть два-три методи сортування масивів.

10. Опишіть основні методи і властивості класу System.Array

11. Які обмеження має оператор foreach в порівнянні з оператором for?