Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
Excel

можете обьяснить что делает этот код(каждый элемент)или напишите свою, метод хорд

07.06.2020, 16:35. Показов 1259. Ответов 19

Студворк — интернет-сервис помощи студентам
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
Private Sub CommandButton1_Click()
Dim min As Double
Dim max As Double
Dim rootmin As Double
Dim rootmax As Double
Dim step As Double
Dim eps As Double
Dim i As Integer
 
If IsNumeric(TextBox1) And IsNumeric(TextBox2) And IsNumeric(TextBox3) And IsNumeric(TextBox4) Then
Sheets("Лист1").Cells.Clear
min = CDbl(TextBox1)
max = CDbl(TextBox2)
step = CDbl(TextBox3)
eps = CDbl(TextBox4)
rootmin = 1
rootmax = 3.5
i = 1
For k = min To max Step step
Cells(i, "a") = min + step * (i - 1)
If True Then
Cells(i, "b") = hord(rootmin, rootmax, eps, k)
End If
i = i + 1
Next k
график
Else
MsgBox "Проверьте введенные данные"
End If
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function hord(a, b, eps, s)
Dim x As Double
Dim ii As Integer
ii = 0
While Abs(b - a) > eps
x = a - ((b - a) * func(a, s)) / (func(b, s) - func(a, s))
If func(a, s) * func(x, s) < 0 Then b = x Else a = x
ii = ii + 1
If ii > 1000 Then
GoTo label
End If
Wend
label:
hord = x
End Function
Visual Basic
1
2
3
Function func(x, s)
func = 0.3 * x ^ 3 - 2 * x * s + 4.75 * s ^ 3
End Function
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2020, 16:35
Ответы с готовыми решениями:

Можете объяснить что делает этот код?
#include &lt;iostream&gt; using namespace std; int main() { char s; cin&gt;&gt;s; for(int i=0;i&lt;5;i++) s=s...

Что делает этот код?
помогите разобраться в коде , и объяснить что в нем происходит &lt;assembly xmlns=&quot;urn:schemas-microsoft-com:asm.v1&quot;...

Что делает этот код?
В паре предложений объясните что тут делается : public static function get($login, $password, $adapter) { $result =...

19
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 17:37
domovenokkuzy, этот код рассчитывает данные методом хорд

Добавлено через 6 минут
domovenokkuzy, этот код рассчитывает данные методом хорд.
В нём есть несколько циклов, которые позволяют уменьшить код в неколько раз ))))
Данные берутся из табл. Эксель
и т.д.
Конечно, есть тут немного устаревшие команды, кторые затрудняют чтение кода, но и в то же время используется применение функций пользователя....
Ух, как закручен мой комментарий!
Но сама задачка простая. Попробуйте немножко сами прокомментировать, и ИИ "КФ" с радостью поможет Вам.

И, возможно, в нем есть парочка ошибок, типа зарезервированных слов и многократное вложение функций. Хотя уверенности нет - это надо проверять...
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 17:46  [ТС]
вы можете обьяснить как она это делает?
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 17:56
что конкретно вам не ясно? все таки комментировать каждую строчку - это нудно...
Неужели совсем ничего не ясно?
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 18:05  [ТС]
не все
именно вот это
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function hord(a, b, eps, s)
Dim x As Double
Dim ii As Integer
ii = 0
While Abs(b - a) > eps
x = a - ((b - a) * func(a, s)) / (func(b, s) - func(a, s))
If func(a, s) * func(x, s) < 0 Then b = x Else a = x
ii = ii + 1
If ii > 1000 Then
GoTo label
End If
Wend
label:
hord = x
End Function
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
07.06.2020, 18:06
domovenokkuzy, vedunasv, метод хорд не рассчитывает данные, он находит корни уравнения F(X)=0, т.е. находит Х (может и не одно), при котором уравнение выполняется. Если набрать в поисковике Метод хорд, то там всё написано и нарисовано по этому методу.
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 18:19
ага, ну ладно, а то уже почти прокомментировано... но сначала.
Вот что значит не правильно спросить нас

PureBasic
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 Sub CommandButton1_Click()
  rem при нажатии на кнопку CommandButton1 идёт объявление переменных различного формата
  Dim min As Double         
  Dim max As Double
  Dim rootmin As Double
  Dim rootmax As Double
  Dim step As Double         'здесь может быть ошибка, так как есть команда STEP
  Dim eps As Double
  Dim i As Integer
 
  rem  если введенные значения в TextBox1, TextBox1, TextBox1, TextBox1 одноременно числовые, то делать ниже
  rem  а если хотя бы один из  TextBox не числовое значение, то делать после команды ELSE (28 строка в оригинале)=после слове график
  If IsNumeric(TextBox1) And IsNumeric(TextBox2) And IsNumeric(TextBox3) And IsNumeric(TextBox4) Then
    Sheets("Лист1").Cells.Clear    'очистка ячейки
    min = CDbl(TextBox1)    'присвоение переменной значения из TextBox1 с одновременным преобразованием в двойное число
    max = CDbl(TextBox2)    'присвоение переменной значения из TextBox2 с одновременным преобразованием в двойное число
    step = CDbl(TextBox3)    'присвоение переменной значения из TextBox3 с одновременным преобразованием в двойное число
    eps = CDbl(TextBox4)    'присвоение переменной значения из TextBox4 с одновременным преобразованием в двойное число
    rootmin = 1
    rootmax = 3.5
    i = 1
    rem цикл от какого-то числа до какого-то с приращением step   
    For k = min To max Step step     'здесь может быть ошибка
      Cells(i, "a") = min + step * (i - 1)  'занести в ячейку с адресом (i, "a") сумму
      If True Then
        Cells(i, "b") = hord(rootmin, rootmax, eps, k)
сколько времени потеряно ((((((

Добавлено через 34 секунды
Burk, я же в математике не разбираюсь )))))))))))
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 18:22  [ТС]
как сложно... как буду это защищать , незнаю
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 18:32
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
Function hord(a, b, eps, s)
  Dim x As Double
  Dim ii As Integer
  ii = 0
 
  rem цикл, и находить в нём до тех пор, пока Abs(b - a) > eps
  While Abs(b - a) > eps
 
     rem сначала идёт обращение к функции Function func(x, s), а потом расчет х
     x = a - ((b - a) * func(a, s)) / (func(b, s) - func(a, s))
 
     rem сначала идёт обращение к функции Function func(x, s), а потом проверка по условию
     If func(a, s) * func(x, s) < 0 Then b = x Else a = x
 
     ii = ii + 1   'к предідущему значению ii прибавляем 1  - это счётчик какой-то
     
     If ii > 1000 Then   'при выполнении условия идти на строку label  (ниже по коду где-то)
       GoTo label
     End If
  Wend
  rem конец цикл, и находить в нём до тех пор, пока Abs(b - a) > eps
 
label:
  hord = x
End Function   'конец функции Function hord(a, b, eps, s)
 
 
 
вот и всё.
Добавлено через 57 секунд
domovenokkuzy, бывает и такое, но это ваш путь к светлому будущему...

Добавлено через 2 минуты
Burk, теперь Ваша очередь - написать свой вариант )))))
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 18:33  [ТС]
уф... попробую блок схему нарисовать
спасибо за пояснения))
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 18:35
это свершилось Чудо!!!
пожалуйста...
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 18:36  [ТС]
чудо приблизилось, мне не дано это понять
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
07.06.2020, 18:42
domovenokkuzy, если бы всё-таки посмотрели рисуночки в методе хорд, то вам бы, наверняка, всё стало бы ясно и проще было разбираться в комментариях и поди и сами бы их написали.
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 18:44  [ТС]
я пробовал разобраться в нем, но я посмотрел на функцию что мне дана и не могу понять как ее можно решить методом хорд
0
Наивное Существо
 Аватар для vedunasv
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
07.06.2020, 18:48
domovenokkuzy, можно строку While Abs(b - a) > eps заменить на

While Abs(b - a) > eps OR ii <= 1000

и выбросить две строки
If ii > 1000 Then 'при выполнении условия идти на строку label (ниже по коду где-то)
GoTo label
End If


в этом случае код уменьшится и не надо путаться в метках строк

Добавлено через 2 минуты
Burk, люблю слово
Цитата Сообщение от Burk Посмотреть сообщение
...ели рисуночки в м....
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
07.06.2020, 18:55
https://ru.wikipedia.org/wiki/Метод_хорд

Добавлено через 6 минут
domovenokkuzy, сначала надо найти интервал А-В, на котором ваша функция меняет знак, т.е. идем с неким шагом по Х и смотрим смену знака. Нашли - это как раз и есть начальные значения А В для метода хорд и посмотрели ссылку, чтобы стало понятнее, а приведенный макрос должен сработать.
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 19:24  [ТС]
у меня функция задана уравнением и в этом уравнении откуда то "y"
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
07.06.2020, 21:15
domovenokkuzy, да причем здесь имя буквы, хоть U! Где ваша функция? Пока я видел только это, пришлите вашу.
Visual Basic
1
2
3
4
5
Function func(x, s)
func = 0.3 * x ^ 3 - 2 * x * s + 4.75 * s ^ 3
End Function
'Если это не ваша функция, то поставьте вашу во вторую строку, например
func = Sin(x)-x^2+10
0
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 11
07.06.2020, 22:18  [ТС]
0.3y3+4.75x3-2xy=0
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
08.06.2020, 06:01
domovenokkuzy, существует такие понятия как формальный и фактический параметр процедуры. То, что написано в заголовке функции x, s [Function func(x, s)] это формальные параметры, т.е. забронированные места, в которые бубут подставляться фактические параметры при обращении к функции. Ваш параметр Х соответствует У из вашей формулы, а параметр s соответствует У из формулы. Можете в функции сделать такие же обозначения как в формуле, не имеет никакого значения, это просто формальные параметры, можете их назвать Vasya Petya.
Visual Basic
1
2
3
Function func(y, x)
func = 0.3 * y ^ 3 - 2 * y * x + 4.75 * x ^ 3
End Function
А на место параметра s (а в таком варианте функции параметр Х) в итоге будет подставляться значение К (смотрите основную программу - строка 22 и заголовок функции hord) И не употребляйте вы в качестве переменных (как вам уже писали) служебные слова и функции step, min, max и т.д. Что букв мало?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2020, 06:01
Помогаю со студенческими работами здесь

что делает этот код?
uses Windows, Messages, Classes, SysUtils, Forms, ShellAPI, FileCtrl; type TForm = class(Forms.TForm) protected ...

Что делает этот код?
Опишите, что он делает и что обозначают помеченные строки function mulmod(x,y,m:longint):longint; assembler; begin // **********...

Что делает этот код?
Здравствуйте. Объясните, пожалуйста, как работает этот код? Если можно, прокомментируйте, пожалуйста, каждую функцию. Заранее, спасибо...

что делает этот код?
Что это? ...

Что делает этот код?
Доброго времени суток! Увидел &quot;необычный&quot; для меня конструктор в классе. Подскажите, пожалуйста, зачем это нужно. my_class(short a...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru