0 / 0 / 0
Регистрация: 05.09.2017
Сообщений: 9
1

Как исправить программу "ОДЗ функции"?

14.10.2017, 14:43. Показов 1162. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как написать ОДЗ функции f= f =Sqrt(4 * x + 7) - 3 * Cos(x). Выводит ошибку в этой строке g.DrawLine(p, New Point(xc + Int(mx * x), yc - Int(my * f(x))), New Point(xc + Int(mx * (x + st)), yc - Int(my * f(x + st))))


VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Public Class Form1
Dim x, a, b, st As Double
Dim w, h, mx, my, xc, yc As Integer
Dim g As Graphics
 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PictureBox1.BackColor = Color.White 'Цвет фона
Oval.Parent = PictureBox1
'параметры холста
w = PictureBox1.Width : h = PictureBox1.Height
Dim bmp = New Bitmap(w, h)
g = Graphics.FromImage(bmp)
 
'Расположение системы координат в окне
Dim xb, xe, yb, ye As Double
xb = -12 : xe = 12 : yb = 10 : ye = -10 'границы системы координат по x,y
Dim xlen, ylen As Integer
xlen = Math.Abs(Int(xb)) + Math.Abs(Int(xe)) : ylen = Math.Abs(Int(yb)) + Math.Abs(Int(ye)) 'длина между границами по x,y
mx = Math.Min(w / xlen, h / ylen) : my = mx 'масштаб по x,y(сколько пикселей в одной единице)
 
'границы в пикселях
Dim xbp, xep, ybp, yep As Integer
xbp = (w - mx * xlen) / 2 : xep = (w + mx * xlen) / 2
ybp = (h - my * ylen) / 2 : yep = (h + my * ylen) / 2
xc = xbp + mx * Math.Abs(Int(xb)) : yc = ybp + my * Math.Abs(Int(yb)) 'координаты центра в пикселях
 
'оси
Draw()
drawGraph(New Pen(Color.Red), -12.5, 12.5, 0.05) ' нарисовать график
 
PictureBox1.Image = bmp
 
a = -12.5 : b = 12.5 : st = TrackBar1.Value / 30
x = a
Timer1.Enabled = True
End Sub
 
 
Private Sub Draw()
Dim p = New Pen(Color.Blue)
g.DrawLine(p, New Point(0, yc), New Point(w, yc))
g.DrawLine(p, New Point(xc, 0), New Point(xc, h))
 
'x
Dim i As Integer
i = xc - mx
Do While i > 0
g.DrawLine(p, New Point(i, yc - 2), New Point(i, yc + 2))
i -= mx
Loop
 
i = xc + mx
Do While i < w
g.DrawLine(p, New Point(i, yc - 2), New Point(i, yc + 2))
i += mx
Loop
 
'y
i = yc - my
Do While i > 0
g.DrawLine(p, New Point(xc - 2, i), New Point(xc + 2, i))
i -= my
Loop
 
i = yc + my
Do While i < h
g.DrawLine(p, New Point(xc - 2, i), New Point(xc + 2, i))
i += my
Loop
 
'подписываем оси
g.DrawString("Y", New Font("Arial", 16), Brushes.Blue, New PointF(xc + 10, 10))
g.DrawString("X", New Font("Arial", 16), Brushes.Blue, New PointF(w - 20, yc - 40))
 
'Стрелки на осях
'x
g.DrawLine(p, New Point(w - 10, yc + 5), New Point(w, yc))
g.DrawLine(p, New Point(w - 10, yc - 5), New Point(w, yc))
'y
g.DrawLine(p, New Point(xc, 0), New Point(xc + 5, 10))
g.DrawLine(p, New Point(xc, 0), New Point(xc - 5, 10))
End Sub 'нарисовать систему координат
 
Function f(ByVal x As Double) As Double
f = Math.Sqrt(4 * x + 7) - 3 * Math.Cos(x)
End Function 'задаём функцию графика
 
Private Sub drawGraph(ByVal p As Pen, ByVal a As Double, ByVal b As Double, ByVal st As Double)
For x As Double = a To b Step st
XMLВыделить код
1
  g.DrawLine(p, New Point(xc + Int(mx * x), yc - Int(my * f(x))), New Point(xc + Int(mx * (x + st)), yc - Int(my * f(x + st))))
Next
End Sub 'рисуем график
 
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If (x > b) Then x = a
Oval.Left = (xc + Int(mx * (x + st))) - Oval.Width / 2
Oval.Top = (yc - Int(my * f(x + st))) - Oval.Height / 2
x += st
End Sub 'передвигаем шарик
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2017, 14:43
Ответы с готовыми решениями:

Табуляция функции: добавить ОДЗ в программу
Нужно протабулировать функцию на интервале 1,5 &lt;= x &lt;= 12,5 с шагом h = 0,75. У меня уже...

Нужно составить программу на Turbo Pascal на нахождение ОДЗ функции
Нужно составить программу для проверки области допустимых значений и вычисления значения функции....

Исправить проверку одз
#define _CRT_SECURE_NO_DEPRECATE #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;conio.h&gt;...

Как исправить программу (сглаживание функции)
Доброго времени суток) В этой программе я хотел реализовать сглаживание функции и вывести его на...

4
11509 / 3795 / 681
Регистрация: 13.02.2009
Сообщений: 11,204
16.10.2017, 12:53 2
f= f =Sqrt
странная функция, однако...
ОДЗ функции
ну сформулируй без программирования просто словами область метода Sqrt
Или и в школе за тебя мама уроки делала?
Sqrt - Возвращает квадратный корень из указанного числа.
понял как определить ОДЗ функции? Сравнить выражение с 0. Больше или равно
А для начала пойми на каком языке кодишь
Если ваш бэйсик выдает конструкции типа Imports System, sender As Object, Public Class Form1, то вам СЮДА!
0
1530 / 1479 / 322
Регистрация: 03.10.2012
Сообщений: 1,519
16.10.2017, 15:23 3
Цитата Сообщение от oksana_07 Посмотреть сообщение
Выводит ошибку в этой строке g.DrawLine(p, New Point(xc...
В вызове функции drawGraph
Цитата Сообщение от oksana_07 Посмотреть сообщение
drawGraph(New Pen(Color.Red), -12.5, 12.5, 0.05) ' нарисовать график
вы передаете в параметр a отрицательное значение, в результате при вычислении функции f,
получается корень из отрицательного числа.
подставьте другое значение, например
VB.NET
1
drawGraph(New Pen(Color.Red), 6, 12.5, 0.05)
2. Что такое Oval
Миниатюры
Как исправить программу "ОДЗ функции"?  
0
1530 / 1479 / 322
Регистрация: 03.10.2012
Сообщений: 1,519
16.10.2017, 17:20 4
Извиняюсь, недопонял. ОДЗ - это область допустимых значений что-ли?
Ну, тогда так, например
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function f(ByVal x As Double) As Double
        If 4 * x + 7 = 0 OrElse 4 * x + 7 > 0 Then
            f = Math.Sqrt(4 * x + 7) - 3 * Math.Cos(x)
        Else
            Return 0
        End If
 
    End Function 'задаём функцию графика
 
    Private Sub drawGraph(ByVal p As Pen, ByVal a As Double, ByVal b As Double, ByVal st As Double)
        For x As Double = a To b Step st
            If 4 * x + 7 = 0 OrElse 4 * x + 7 > 0 Then
                p = New Pen(Color.Green)
            Else
                p = New Pen(Color.Red)
            End If
            g.DrawLine(p, New Point(xc + Int(mx * x), yc - Int(my * f(x))), New Point(xc + Int(mx * (x + st)), yc - Int(my * f(x + st))))
        Next
    End Sub 'рисуем график
Здесь зеленым цветом - ОДЗ в заданном диапазоне
Миниатюры
Как исправить программу "ОДЗ функции"?  
0
11509 / 3795 / 681
Регистрация: 13.02.2009
Сообщений: 11,204
16.10.2017, 18:41 5
VB.NET
1
  If 4 * x + 7 = 0 OrElse 4 * x + 7 > 0 Then
А что в NET нет оператора ">="
0
16.10.2017, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2017, 18:41
Помогаю со студенческими работами здесь

Как исправить программу (Постройте таблицу значений функции y=f(x) для x ∈[a,b] с шагом h)
Нужно исправить программу и доработать в соответствии с данной функцией (см.фото): Исходный...

Найти ОДЗ функции
Найти ОДЗ функции

ОДЗ и исследование функции
Помогите исследовать y = arcsin (tg x)

одз хеш-функции
добрый вечер! подскажите пожалуйста, какая область допустимых значений хеш-функции заранее очень...

Найти ОДЗ функции
Ребят, я понимаю что вопрос глупый, но как все таки правильно найти одз следующей функции в mathcad?

Найти ОДЗ аргумента, написать процедуру или функцию которая вычисляет одз аргумента х
помогите сделать пожалуйста


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru