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

Построение на экране известных математических кривых, заданных уравнениями

28.11.2013, 01:53. Показов 2848. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программы построения на экране известных математических кривых, заданных уравнениями в параметрическом виде (a>0)
Миниатюры
Построение на экране известных математических кривых, заданных уравнениями  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2013, 01:53
Ответы с готовыми решениями:

Построение математических кривых, заданных уравнениями в полярных координатах
Построение математических кривых, заданных уравнениями в полярных координатах. помогите пожалуйста, не могу разобраться

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

Построение конических сечений, заданных уравнениями в полярной системе координат
Постройте на одних осях 3 конических сечения, заданных уравнением в полярной системе координат: ρ(1-ɛcosϕ) – a = 0. ɛ =...

35
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2013, 07:57
Лучший ответ Сообщение было отмечено как решение

Решение

Вложения
Тип файла: rar Graf.rar (4.9 Кб, 15 просмотров)
3
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2013, 11:40
Лучший ответ Сообщение было отмечено как решение

Решение

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
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
Option Explicit
Const PI As Double = 3.14152, Sk As Integer = 10
Dim X As Double, Y As Double, r As Double, f As Double, t As Double
Dim a As Single, i As Single, P As PictureBox, L As Double
 
Private Sub Command1_Click()
    Call Scal
    Call Graf
    Call Coord
End Sub
 
Private Sub Graf_1()
    For t = -Sk To Sk Step 0.001
            X = (a * (t ^ 2 - 1)) / (t ^ 2 + 1)
            Y = (a * t * (t ^ 2 - 1)) / (t ^ 2 + 1)
            P.Circle (X, Y), 0.03, RGB(255, 0, 0)
    Next t
End Sub
 
Private Sub Graf_2()
    For t = -Sk To Sk Step 0.001
            X = a * (t - Sin(t))
            Y = a * (1 - Cos(t))
            P.Circle (X, Y), 0.03, RGB(255, 0, 0)
    Next t
End Sub
 
Private Sub Graf_3()
    L = CSng(Replace(Text3.Text, ".", ","))
    For t = -Sk To Sk Step 0.001
            X = a * (t - L * Sin(t))
            Y = 1 - L * Cos(t)
            P.Circle (X, Y), 0.03, RGB(255, 0, 0)
    Next t
End Sub
 
Private Sub Graf_4()
    For X = -Sk To Sk Step 0.001
            Y = a ^ 3 / (X ^ 2 + a ^ 2)
            P.Circle (X, Y), 0.03, RGB(255, 0, 0)
    Next X
End Sub
 
Private Sub Graf()
    Select Case True
        Case Option1(0).Value: Call Graf_1
        Case Option1(1).Value: Call Graf_2
        Case Option1(2).Value: Call Graf_3
        Case Option1(3).Value: Call Graf_4
    End Select
End Sub
 
Private Sub Scal()
    Set P = Picture1
    P.Cls
    'a = InputBox(" Введите a = ", "Ввод данных", 2.2)
    a = CSng(Replace(Text1.Text, ".", ","))
    P.DrawStyle = 0: P.AutoRedraw = True
    P.Scale (-Sk, Sk)-(Sk, -Sk)
    P.Line (-Sk, 0)-(Sk, 0), RGB(0, 0, 255) 'ocb X
    P.Line (0, -Sk)-(0, Sk), RGB(0, 0, 255)   'ocb Y
End Sub
 
Private Sub Coord()
'Kоординатная сетка
      P.DrawStyle = 2   ' Пунктирная линия
      For i = -Sk To Sk 'Step 0.5
       P.CurrentX = 0    ' оцифровка
       P.CurrentY = i
       P.Print Format$(i, "0.0")
       P.Line (-0.05, i)-(0.05, i)   ' засечка
       P.Line (-Sk, i)-(Sk, i)
      Next i
      For i = -Sk To Sk 'Step 0.5
       P.CurrentX = i    ' оцифровка
       P.CurrentY = 0
       P.Print Format$(i, "0.0")
       P.Line (i, -0.05)-(i, 0.05) ' засечка
       P.Line (i, -Sk)-(i, Sk)
      Next i
      P.DrawStyle = 2   ' Пунктирная линия
End Sub
 
Private Sub Command2_Click()
    End
End Sub
Вложения
Тип файла: rar ГРАФИК.rar (15.3 Кб, 13 просмотров)
3
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
28.11.2013, 11:59
Цитата Сообщение от SoftIce Посмотреть сообщение
Const PI As Double = 3.14152
Цитата Сообщение от Калькулятор
3,1415926535897932384626433832795
1
28.11.2013, 12:00

Не по теме:

:senor: По памяти писал :D

0
Заблокирован
28.11.2013, 12:38
Надо очень постараться
и запомнить всё как есть
три, четырнадцать, пятнадцать
девяносто два и шесть )))

Вот моё пи...
Visual Basic
1
2
3
4
5
6
Option Explicit
'
'   © JoraVoenyjHaker
'
Private Sub Class_Initialize()
    PI = 4# * Atn(1#) 'Инициализация PI
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38170 / 21105 / 4307
Регистрация: 12.02.2012
Сообщений: 34,696
Записей в блоге: 14
28.11.2013, 14:40
Апострофф, вряд-ли имеет смысл задавать у ПИ столько цифр... Ведь значащих там не более шестнадцати: 3,1415926535897932384626433832795
1
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2013, 14:45

Не по теме:

Скажу вам всем по секрету, что эта константа в приведённом мной коде не используется.
Это артефакт. :D



Добавлено через 2 минуты

Не по теме:

Catstail, у Апострофф-а пи длиннее..:D

0
28.11.2013, 14:45

Не по теме:

Catstail, бэйсик сам разберется, сколько там значащих:)
Я обычно просто копирую это число из калькулятора, заменив запятую на точку...

0
Заблокирован
28.11.2013, 14:48
Цитата Сообщение от Апострофф Посмотреть сообщение
Я обычно просто копирую это число из калькулятора,
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
PI = 4 * Atn(1)
зачем получать это число неизвестно откуда ?
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
28.11.2013, 14:50
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
зачем получать это число неизвестно откуда
Константа работает быстрее
1
Заблокирован
28.11.2013, 14:55
Разьве вы не заметили что моя инструкция находиться в инициализации !
тоесть выполняется 1 раз в самом начале !
0
28.11.2013, 15:00

Не по теме:

JoraVoenyjHaker, попробуй записать

Visual Basic
1
const PI as double = 4 * Atn(1)
Получишь отлуп:D

0
Заблокирован
28.11.2013, 15:07
Ну конечно я знаю, что для константы нельзя задовать функции
я же читал книжку...
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
28.11.2013, 15:34
Цитата Сообщение от SoftIce Посмотреть сообщение
Константа работает быстрее
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub test()
Const pic As Double = 3.14159265358979
Dim pip As Double
Dim t As Double
Dim s As Double
Dim l As Long
pip = 4 * Atn(1)
 
t = Timer
For l = 0 To 99999999
  s = pip * l
Next l
Debug.Print Timer - t, "Переменная" '1,9071249999979            Переменная
 
t = Timer
For l = 0 To 99999999
  s = pic * l
Next l
Debug.Print Timer - t, "Константа" '1,92199999999866           Константа
 
End Sub
Не всегда, оказывается
2
Заблокирован
28.11.2013, 15:52
Ну вот... что и требовалось доказать
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
28.11.2013, 15:53
Однако, после компиляции и запуска Exeшника картинка в корне поменялась
Миниатюры
Построение на экране известных математических кривых, заданных уравнениями  
1
Заблокирован
28.11.2013, 15:56
Неожиданно...
значит надо было книжку от корки до корки читать
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
28.11.2013, 21:11
Цитата Сообщение от Апострофф Посмотреть сообщение
Однако, после компиляции и запуска Exeшника картинка в корне поменялась
Тест некорректен. Вы не учли что бейсик оптимизирует код, и если переменные не используются, то они отбрасываются и вычисления, в которых они участвуют, отбрасываются. Соответственно весь тест превращается в пустые циклы, без вычислений. Сделайте тест вот так:
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
Sub test()
Const pic As Double = 3.14159265358979
Dim pip As Double
Dim t As Double
Dim s As Double
Dim l As Long
pip = 4 * Atn(1)
 
MsgBox "Стабилизация"
 
t = Timer
For l = 0 To 999999999
  s = pic * l
Next l
Print Format(Timer - t, "0.000000"), "Переменная"   '1,05        Константа
 
t = Timer
For l = 0 To 999999999
  s = pip * l
Next l
Print Format(Timer - t, "0.000000"), "Константа"    '1,05        Переменная
 
End Sub
, увидите что время одинаково практически.
Корректный тест будет выглядеть следующим образом:
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
Sub test()
Const pic As Double = 3.14159265358979
Dim pip As Double
Dim t As Double
Dim s As Double
Dim l As Long
pip = 4 * Atn(1)
 
MsgBox "Стабилизация"
 
t = Timer
For l = 0 To 999999999
  s = pip * l
Next l
Print Format(Timer - t, "0.000000"), "Переменная", s  '       Переменная
 
t = Timer
For l = 0 To 999999999
  s = pic * l
Next l
Print Format(Timer - t, "0.000000"), "Константа", s   '      Константа
 
End Sub
В данном случае мы используем переменную s для вывода, соответственно все расчеты выполняются, циклы начинают выполняться дольше. Теперь они выполняются одинаково (может есть незначительные различия, но это уже зависит от процессора и кучи факторов)
Миниатюры
Построение на экране известных математических кривых, заданных уравнениями  
1
Заблокирован
28.11.2013, 21:36
Молодец The trick
А ведь вы уже демонстрировали свои примеры для измерения скоростей

Добавлено через 2 минуты
Цитата Сообщение от SoftIce Посмотреть сообщение
Константа работает быстрее
Рано было язык показывать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2013, 21:36
Помогаю со студенческими работами здесь

Построение кривых, заданных в параметрической форме
Составьте программу построения кривых,заданных в параметрической форме 1)x=a cos^3(t) y=a sin^3(t) 2)x=(t^2-1)/(t^2+1)...

Построение кривых, заданных в параметрической форме
Составьте программу построения кривых, заданных в параметрической форме 1. x=r*cos(t) y=r*sin(t) 2. x= a*(1-sin t) y= a*(1-cos t)

Построение математических зависимостей на графическом экране.
На экране построить график, заданный функцией: Y = K•x - F•sin(0.93x) + S•cos(W•x); Параметры K,F,S,W для построения графика...

Графика. Разработать орнамент на основе каких-либо математических кривых
Разработать орнамент на основе каких-либо математических кривых и заполнить ими экран, пожалуйста помогите

Разработать орнамент на основе каких-либо математических кривых и заполнить ими экран
Помогите пожалуйста. У меня тут задача "разработать орнамент на основе каких-либо математических кривых и заполнить ими экран". Буду...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru