Консультация № 180262
10.10.2010, 14:37
0.00 руб.
0 11 3
Здравствуйте!
Подскажите как в MS Excel оформить это задание:
Составить программу вычисления Y:
Y=0.3*Sin(x^2)-1/x при |x|<=0.5
Y=x^2/(Sin(x)+5) при |x|>5
Напечатать:
при x=.... функция вычисляется по формуле.... Результат=...

Задание выполнить (с использованием операций логики ЕСЛИ...),значения x-задать самостоятельно в столбик (от -6 до 5)
Спасибо

Обсуждение

давно
Академик
320937
2216
10.10.2010, 14:42
общий
Миронычев Виталий:
Имеется в виду: написать программу (функцию) на VBA или формулу с использованием ЕСЛИ?? А что должна функция выдавать в диапазоне
0.5<|x|<5? Или у Вас опечатка в задании?
давно
Мастер-Эксперт
680
2811
10.10.2010, 15:30
общий
Миронычев Виталий:
Каков шаг? 1? 0.5?
давно
Академик
320937
2216
10.10.2010, 16:31
общий
это ответ
Еще раз здравствуйте, уважаемый Миронычев Виталий! :)
Файл с примером приведен здесь.180262.zip (11.2 кб)

Текст функции и тестирующей программы
Код:
Option Explicit

Sub main()
'Тестирующая программа
Dim s As String
Dim i As Double
s = ""
For i = -2 To 2 Step 0.5
s = s & y(CDbl(i)) & vbNewLine
Next
MsgBox (s)

End Sub

Function y(ByVal x As Double) As String
Dim t As Double
Dim Formula As String
If Abs(x) = 0 Then
y = "ошибка деления на ноль"
Else
If Abs(x) <= 0.5 Then
t = 0.3 * Sin(x ^ 2) - 1 / x
Formula = "0.3 * Sin(x ^ 2) - 1 / x"
Else
t = x ^ 2 / (Sin(x) + 5)
Formula = "t = x ^ 2 / (Sin(x) + 5)"
End If
y = "при x=" & x & " функция вычисляется по формуле " & Formula & " Результат= " & t
End If
End Function

Задавайте вопросы, если что-то требует уточнения.


давно
Модератор
137394
1850
10.10.2010, 17:34
общий
значения x-задать самостоятельно в столбик (от -6 до 5)
где это в столбик? На листе таблицы Excel? А результат куда выдавать - рядышком в столбик? Это надо сделать макросом (VBA) или формулой в таблице?
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
10.10.2010, 17:49
общий
lamed:
написать формулу с использованием ЕСЛИ
Неизвестный
10.10.2010, 17:49
общий
Сучкова Татьяна Михайловна:
шаг 1
Неизвестный
10.10.2010, 17:50
общий
Megaloman:
результат рядышком в столбик-сделать формулой в таблице
давно
Академик
320937
2216
10.10.2010, 17:58
общий
Миронычев Виталий:
Очевидно, вопрос еще не "дозрел". При шаге 1 просто не будет
Код:
Y=0.3*Sin(x^2)-1/x при |x|<=0.5
, так как единственное возможное значение x=0, при котором не определена функция y.
Что касается программы (формулы), Вы ясно указали: "программа с логикой ЕСЛИ". Сама формула с ЕСЛИ может и не получиться, размер ограничен. Или нужно сократить вывод, или использовать промежуточную ячейку (столбец)
давно
Модератор
137394
1850
10.10.2010, 18:24
общий
это ответ
Здравствуйте, Миронычев Виталий.
Если значение x содержится в клетке B4, то формула, например, в С4 имеет вид
Код:
="При x="&ТЕКСТ(B4;"#0,000")&" функция вычисляется по формуле: "&ЕСЛИ(ABS(ОКРУГЛ(B4;2))<=0,5;"Y=0.3*Sin(x^2)-1/x.  Результат="&ЕСЛИ(ABS(ОКРУГЛ(B4;12))<>0;ТЕКСТ(0,3*SIN(B4*B4)-1/B4;"#0,######");"Деление на нуль");ЕСЛИ(ABS(ОКРУГЛ(B4;2))>5;"Y=x^2/(Sin(x)+5).  Результат="&ТЕКСТ(B4*B4/(SIN(B4)+5);"#0,######");"Функция не определена!"))
Здесь учтено, что область определения функции |x|<=0.5 и |x|>5 , для остальных х функция не определена. Учтено, что при x=0 у нас возникает ошибочная ситуация - деление на нуль. Для более читаемого результата применил функцию ТЕКСТ, с помощью которой результат выдаю с 6 знаками после запятой (можно с любой другой значностью), а значение х - с тремя. Функцию ОКРУГЛ применяю потому, что при вачислении х с шагом получится не нуль в каком-то далёком знаке после запятой за счёт ограниченной значности при вычислениях, точно также и для остальных х.
Готовый файл прикрепил к ответу
Прикрепленные файлы:
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Академик
320937
2216
10.10.2010, 18:41
общий
Megaloman:
Браво!
Неизвестный
11.10.2010, 09:22
общий
это ответ
Здравствуйте, Миронычев Виталий!
x ответ
-6 6,818936682
-5 4,195388102
-4 0
-3 0
-2 0
-1 0
0 #ДЕЛ/0!
1 0
2 0
3 0
4 0
5 6,186471548
x в столбце С , формула в любом другом: =ЕСЛИ(ИЛИ(ABS(C12)<0,5;ABS(C12)=0,5);0,3*SIN(C12*C12)-(1/C12);ЕСЛИ(ИЛИ(ABS(C12)>5;ABS(C12)=5);(C12*C12)/(SIN(C12)+5);0))
Форма ответа