В выражениях часто используются математические функции, например синус или возведение в степень. Они реализованы в классе Math, определенном в пространстве имен System.
Таблица 4 Основные поля и методы класса Math
Функция
| Описание
| Пример вызова
|
Abs()
| Абсолютное значение
| int a=Math.Abs(-10);
|
Acos()
| Арккосинус
| double x; . . . double y=Math.Acos(x);
|
Asin()
| Арксинус
| double x; . . . double y=Math.Asin(x);
|
Atan()
| Арктангенс
| double x; . . . double y=Math.Atan(x);
|
Atan2()
| Арктангенс - угол, тангенс которого это результат деления второго аргумента на первый
| double x,y; . . . double z=Math.Atan(x,y);
|
BigMul()
| Произведение
| long x,y;. . . .long z=Math.BigMul(x,y);
|
Celling()
| Округление до большего целого
| double a=Math.Celling(3.4567);
|
Cos()
| Косинус
| double x; . . . double y=Math.Cos(x);
|
Cosh()
| Гиперболический косинус
| double x; . . . double y=Math.Cosh(x);
|
DivRem()
| Деление и остаток
| int b, c; c = Math.DivRem(15, 5, out b);
|
E
| База натурального логарифма
| 2.71828
|
Exp()
| Экспонента
| double x; … double y=Math.Exp(x);
|
Floor()
| Округление до меньшего целого
| double a=Math.Floor(3.4567);
|
IEEERemainder()
| Остаток от деления
| double a=Math. IEEERemainder (12, 5);
|
Log()
| Натуральный логарифм
| double x;….. double y=Math.Log(x);
|
Log10()
| Десятичный логарифм
| double x;….. double y=Math.Log10(x);
|
Max()
| Максимум из двух чисел
| int x= Math.Max(3,6);
|
Min()
| Минимум из двух чисел
| int x= Math.Min(3,6);
|
Pi
| Значение числа пи
| 3.14159
|
Pow()
| Возведение в степень
| double x=Math.Pow(2,3);
|
Round()
| Округление
| double a=Math.Round (3.4567);
|
Sign()
| Знак числа
| int x=Math.Sign(-1);
|
Sin()
| Синус
| double x; . . . double y=Math.Sin(x);
|
Sinh()
| Гиперболический синус
| double x; . . . double y=Math.Sinh(x);
|
Sqrt()
| Квадратный корень
| double x; . . . double y=Math.Sqrt(x);
|
Tan()
| Тангенс
| double x; . . . double y=Math.Tan(x);
|
Tanh()
| Гиперболический тангенс
| double x; . . . double y=Math.Tanh(x);
|
Постановка задачи
1. Для задачи 1 определить тип заданных выражений и найти их значения.
2. Составить систему тестов и вычислить полученное выражение для нескольких значений Х, определить при каких Х выражение не может быть вычислено.
3. Для задачи 2 записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит.
4. Составить систему тестов и вычислить полученное выражение для нескольких точек, принадлежащих и не принадлежащих заштрихованной области.
5. Для задачи 3 вычислить значение выражения, используя различные вещественные типы данных (float и double).
6. Результаты всех вычислений вывести на печать.
7. Объяснить полученные результаты.
Варианты
№
| Задача 1
| Задача 2
| Задача 3
|
1
| 1) n+++m
2) m-- >n
3) n-- >m
4)
|
|
а=1000, b=0.0001
|
2
| 1) ++n*++m
2) m++<n
3) n++>m
4)
|
|
а=1000, b=0.0001
|
3
| 1) m--n
2) m++<n
3) n++>m
4)
|
| а=100, b=0.001
|
4
| 1) n++*m
2) n++<m
3) --m>n
4)
|
|
а=100, b=0.001
|
5
| 1) --m-n++
2) m*m<n++
3) n-->++m
4)
|
| а=100, b=0.001
|
6
| 1) m-++n
2) m++>--n
3) m--<++n
4)
|
|
а=100, b=0.001
|
7
| 1) m+--n
2) m++<--n
3) --m>n—
4)
|
|
а=100, b=0.001
a) Y= + ctg(arctg (x ))
|
8
| 1) n/m++
2)m++<--n
3) (m/n)++<n/m
4)
|
|
а=100, b=0.001
|
9
| 1) m++/n—
2) ++m<n--
3) n-->m
4)
|
| а=100, b=0.001
|
10
| 1) m/--n++
2) m/n<n—
3)m+n++>n+m
4)
|
| а=100, b=0.001
|
11
| 1) n+++m--
2) n*m<n++
3) n-->++m
4)
|
| а=10, b=0.01
|
12
| 1) n++*m
2) m--<n
3)++m>n
4)
|
| а=10, b=0.01
|
13
| 1) (n++/--m)++
2) ++m<n—
3)--m>++n
4)
|
| а=10, b=0.01
|
14
| 1) n++*--m
2) n--<m++
3) --n>--m
4)
|
| а=10, b=0.01
|
15
| 1) n++/--m
2)n-->n/m++
3)m<n++
4)
|
| а=10, b=0.01
|
16
| 1) m/--n++
2) m/n<n—
3)m+n++>n+m
4)
|
| а=10, b=0.01
|
17
| 1) n+++m--
2) n*m<n++
3) n-->++m
4)
|
| а=10, b=0.01
|
18
| 1) n++*m
2) m--<n
3)++m>n
4)
|
| а=10, b=0.01
|
19
| 1) (n++/--m)++
2) ++m<n—
3)--m>++n
4)
|
|
а=1000, b=0.0001
|
20
| 1) n++*--m
2) n--<m++
3) --n>--m
4)
|
|
а=1000, b=0.0001
|
21
| 1) n++/--m
2) n-->n/m++
3) m<n++
4)
|
| а=100, b=0.001
|
22
| 1) n++*m
2) n++<m
3) --m>n
4)
|
|
а=100, b=0.001
|
23
| 1) --m-n++
2) m*m<n++
3) n-->++m
4)
|
| а=100, b=0.001
|
24
| 1) m-++n
2) m++>--n
3) m--<++n
4)
|
|
а=100, b=0.001
|
25
| 1) m+--n
2) m++<--n
3) --m>n—
4)
|
|
а=100, b=0.001
|
Методические указания
- Ввод данных для заданий А и Б организовать с клавиатуры.
- Вывод результатов для задания А организовать в виде:
3. Для проверки возможности вычислений использовать условный оператор if:
if(n==1) Console.WriteLine (“Нельзя вычислить”);
else {
k=m/--n;
Console.WriteLine("m++ +n={0}, m={1},n={2}", k, m, n);
}
- При выполнении задачи 2 использовать переменную логического типа, а не условный оператор.
- При выполнении задачи 3 использовать вспомогательные переменные для хранения промежуточных значений.
- При работе с данными типа float использовать операцию приведения типа:
float c = (float)Math.Pow(a + b, 2);
Содержание отчета
1) Постановка задачи (общая и конкретного варианта).
2) Формулы, используемые при решении задачи (математическая модель).
3) Программы для решения задач на языке C#.
4) Описание используемых в программе методов класса Math.
5) Система тестов для проверки правильности работы программы и результаты выполнения тестов.
6) Объяснение результатов работы программы.