Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/46: Рейтинг темы: голосов - 46, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190

Нарисовать синусоиду и косинусоиду по заданным пользователем значениям

14.03.2010, 02:02. Показов 8599. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна программа, которая бы рисовала синусоиду и косинусоиду по заданным пользователем значениям.
Заранее спс.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2010, 02:02
Ответы с готовыми решениями:

Нарисовать синусоиду
Нарисовать синусоиду (y=10sin(x/10)) в системе коордитат с осями ОХ и ОУ, и нача- лом координат, расположенным в точке (300,200) экрана.

Нарисовать синусоиду в делфи
Народ помогите нарисовать синусоиду в делфи в image, ооочень надо))) Заранее спасибо)))

Нарисовать синусоиду в консоле
Задача состоит в том, чтобы в консоли вывести на экран график синусоиды (точечками) . Буду благодарна за любую помощь ))

20
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
14.03.2010, 02:59
Вот мой вариант на VB 6.0 . Мне кажется не плохой вариант для 10-ти минутной работы
http://rghost.ru/1159834
Там и исходник, и скомпиленный .exe
1
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
14.03.2010, 13:49  [ТС]
Шикарно) Спасибо!) Осталось ее понять
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
14.03.2010, 14:38
Ну смотри. Есть четыре текстовых поля. По умолчанию значения "1" . Это множитель перед всей функцией (например, 5*SinX ) , далее множитель перед самим X (sin(5*x)) ,третье-под какой степенью находится sin ((sin(x))^5 ) ну и последнее степень X под синусом,то есть sin(x^5)
2
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
14.03.2010, 14:44  [ТС]
Ну это и так понятно) Я должен внутренность понять) А ты не мог бы добавть туда оси координат?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
14.03.2010, 14:58
Ща попробую
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
15.03.2010, 02:44  [ТС]
Line -(x, Example(x))
Что эта строка делает?
И почему график начинается откуда-то с верхней точки координаты х?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
15.03.2010, 15:07
Цитата Сообщение от bosscs Посмотреть сообщение
Line -(x, Example(x))
Вот эта функция и рисует =)
А почему от верхней координаты я сам и не знаю)
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
15.03.2010, 20:25  [ТС]
Ты понимаешь как она работает? Можно подробнее?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
15.03.2010, 23:55
Ну вот смотрите. в Line передаётся 2 координаты. То есть Line ставит точку в координате (x,y)
Роль X у нас играет счётчик,который просто идёт по оси абсцисс(OX) , а Y считается в функции. В этой функции (Example(x) )мы и просим посчитать значение нашей функции(тавтология)) ) f=y(x)
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
16.03.2010, 16:33  [ТС]
For x = -10 To 10 Step 0.01
График у нас начинается всегда с -10 и до 10?
Line -(x, Example(x))
Как работает Example(x)?
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
16.03.2010, 17:04
Да.х=[-10;10]
Example(x) это функция.
Счётчик от -10 до 10 передаёт этот x в функцию Example,где считается y . Например,x=0 ,example(x)=y(x)=sin(x)=sin(o)=0 . 0 возвращается в процедуру и ставится точка (0,0) на графике
Вот второй вариант,более простой и красивый

Visual Basic
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
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub Command1_Click()
Picture1.Cls
End Sub
Private Sub mnuDraw_Click()
Picture1.AutoRedraw = True
Form1.Cls
Form1.BackColor = &H80000009
DrawWidth = 2
Picture1.ForeColor = &H0&
Picture1.Scale (-10, 2)-(10, -2)
Picture1.Line (-10, 0)-(10, 0)
Picture1.Line (0, 2)-(0, -2)
If Option1.Value = True Then
For X = -10 To 10 Step Text5
Debug.Print y
Picture1.PSet (X, Text1 * (Sin(Text2 * (X ^ Text4)) ^ Text3))
Next X
End If
If Option2.Value = True Then
For X = -10 To 10 Step Text5
Debug.Print y
Picture1.PSet (X, Text1 * (Cos(Text2 * (X ^ Text4)) ^ Text3))
Next X
End If
End Sub
Как мы видим,тут нет процедуры и график рисуется с помощью PSet . Только на форму,естественно нужно добавить PictureBox с именем Picture1
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
17.03.2010, 16:37  [ТС]
Visual Basic
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
Private Sub mnuDraw_Click()
Form1.Cls
Form1.BackColor = &H80000009
DrawWidth = 2
Scale (-10, 10)-(10, -10)
Form1.ForeColor = &H0&
Line (-10, 0)-(10, 0)
Line (0, -10)-(0, 10)
DrawWidth = 1
Form1.ForeColor = &HFF&
For x = -10 To 10 Step 0.01
Line -(x, Example(x))
Next
End Sub
 
Function Example(ByVal x As Single)
If Option1.Value = True Then
Y = Text1 * (Sin(Text2 * (x ^ Text4)) ^ Text3)
Label5 = Text1 & " * (sin(" & Text2 & "(x^" & Text4 & " ))^" & Text3 & ")"
ElseIf Option2.Value = True Then
Y = Text1 * (Cos(Text2 * (x ^ Text4)) ^ Text3)
End If
Debug.Print Y
Example = Y
End Function
Как сделать что бы линия рисовалась не сверху, а с левого края?
Example (x). Почему нельзя написать Просто Line -(x, Y)
И что делают эти строки?
Debug.Print Y
Example = Y
Миниатюры
Нарисовать синусоиду и косинусоиду по заданным пользователем значениям  
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
17.03.2010, 17:23
Если ты напишешь Line -(x, Y) ,то возникнет ошибка. Как он тебе Y найдёт? для этого и вызывается функция Example(x) . Example-просто название. В функцию вводится x. Считается Y,и возвращается в процедуру.
Может так будет легче понять
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
LINE -(x, Y(x))
NEXT
END SUB
 
FUNCTION Y(BYVAL x AS SINGLE)
IF Option1.Value = True THEN
Y = Text1 * (SIN(Text2 * (x ^ Text4)) ^ Text3)
Label5 = Text1 & " * (sin(" & Text2 & "(x^" & Text4 & " ))^" & Text3 & ")"
ELSEIF Option2.Value = True THEN
Y = Text1 * (COS(Text2 * (x ^ Text4)) ^ Text3)
END IF
Debug.PRINT Y
END FUNCTION
Добавлено через 25 секунд
строка Debug.Print Y выводит в окно отладки значение y .
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
17.03.2010, 19:11  [ТС]
Debug.Print Y
Example = Y
Если убрать эти строки график не рисуется
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
17.03.2010, 19:15
Ну конечно же! Example передаёт в процедуру рисования координату точки (x,y) . Где y=sin...... при X=[-10,10]
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
17.03.2010, 19:37  [ТС]
Куда передает?
Debug.Print y
на сколько я знаю, это пишется что бы вывести значение в окно immediate
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
17.03.2010, 20:14
да! можешь его стереть нафиг ) я его писал для себя,что бы проверять правильность значений
последний раз показываю
Visual Basic
1
2
3
FOR x = -10 TO 10 STEP 0.01
LINE -(x, Example(x))
NEXT
Перебирает значения от -10 до 10 и вызывает функцию Example(x)
Допустим,x=0 . Вызывается функция Example(0)

Visual Basic
1
2
3
4
5
6
7
8
9
10
FUNCTION Example(BYVAL x AS SINGLE)
IF Option1.Value = True THEN
Y = Text1 * (SIN(Text2 * (x ^ Text4)) ^ Text3)
Label5 = Text1 & " * (sin(" & Text2 & "(x^" & Text4 & " ))^" & Text3 & ")"
ELSEIF Option2.Value = True THEN
Y = Text1 * (COS(Text2 * (x ^ Text4)) ^ Text3)
END IF
Debug.PRINT Y
Example = Y
END FUNCTION
Проверяется какой из OptionBox-ов включён.Например, первый
Считаем y=sin..... при x=0 . Значит y=0
DebugPrint y - в Имидейт виндоу написали эту точку
Example=0 - получили значение нашей функции и вернулись обратно в процедуру.

Line - (x,example(x)) то есть Line -(0,0) - Поставили на графике точку 0.0
Что тут не понятного?
0
1 / 1 / 0
Регистрация: 27.02.2010
Сообщений: 190
18.03.2010, 14:35  [ТС]
Все понял, сори за тупость, я начинающий Оо
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
18.03.2010, 16:16
можна и так
Вложения
Тип файла: rar hraf.rar (2.1 Кб, 67 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.03.2010, 16:16
Помогаю со студенческими работами здесь

Не получается нарисовать синусоиду
не понимаю, почему не получается отрисовка синуса. Я думаю, что для рисования синуса "вручную", нужно менять координаты...

Как нарисовать синусоиду?
Как нарисовать синусоиду?

Нарисовать синусоиду в chart
Добрый всем день! Подскажите пожалуйста, как можно нарисовать в charte синусоиду, а затем на ней поместить определенное количество точек???...

Нарисовать синусоиду в терминале
Как это сделать? Никакого представления вообще нету

Нарисовать синусоиду в виде бесконечности
Ребята помогите пожалуйста нарисовать синусоиду, рисунок должен быть похожим на бесконечность. 1 рис (на бел фоне) то, что дано. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru