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

Интерполяция в VB, двумерный массив

17.06.2009, 01:17. Показов 4746. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день(утро, ночь, вечер).
Я в VB честно говоря чайничег с небольшим и многого не знаю, но есть желание разобраться.
Итак: имеется некая таблица, например указанная ниже (она может быть как в xls формате, так и в txt, главное что имеется X и Y и значения к ним). Необходимо в VB вычислить Z (т.е. само значение) для задаваемых X и Y по формуле интерполяции.
Изрядно погуглив как это реализовать наткнулся на
следующее


Двойная интерполяция в электронных таблицах ...
... OOo Calc проще всего осуществляется с использованием функции на OOo Basic.
Текст функции приведен ниже.

Если вы никогда не сталкивались с пользовательскими функциями поступайте так:

1) Разрешите использование макросов в настройках безопасности Calc: Меню Сервис => Параметры ...;

2) Нажмите Alt+F11, В окне управления макросами в поле "Макрос из..." найдите свой файл, нажмите "+", в дереве и выделите Standard, далее - Создать => Module1.

3) Вставьте текст функции и сохраните файл в формате .ods (при сохранении в .xls макросы теряются).

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

ТУТ ИДЕТ КАРТИНКА С ТАБЛИЦЕЙ КОТОРАЯ НАХОДИТСЯ В ПРИКРЕПЛЕННЫХ

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
Function dvint(InArray, arg_vertic, arg_goris) 
' Двойная интерполяция таблицы, занесенной в Рабочую Книгу
' (первые строка и столбец выделенного массива данных содержат аргументы 
' табулированной функции в возрастающем свержу вниз и слева направо порядке; 
' верхний левый элемент - нуль 
num_of_rows = UBound(InArray, 1) 
num_of_cols = UBound(InArray, 2) 
dvint ="none" 
If arg_vertic<=InArray(num_of_rows,1) And arg_goris<=InArray(1,num_of_cols) Then 
i=1 
j=1 
Do 
x1 =InArray(i, 1)
x2 =InArray(i + 1, 1)
i = i + 1 
Loop Until arg_vertic >= x1 And arg_vertic <= x2 
Do 
y1 =InArray(1, j)
y2 =InArray(1, j + 1)
j = j + 1 
Loop Until arg_goris >= y1 And arg_goris <= y2 
i = i - 1 
j = j - 1 
a1 =InArray(i, j) 
a2 =InArray(i, j + 1) 
a3 =InArray(i + 1, j) 
a4 =InArray(i + 1, j + 1) 
res1 = a1 + (a3 - a1) * (arg_vertic - x1) / (x2 - x1) 
res2 = a2 + (a4 - a2) * (arg_vertic - x1) / (x2 - x1) 
dvint = res1 + (res2 - res1) * (arg_goris - y1) / (y2 - y1)
End If 
End Function


Но как это перенести в VB не доганяю. Подскажите как, или хотя бы направте в нужное русло. Заранее спс.
Миниатюры
Интерполяция в VB, двумерный массив  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2009, 01:17
Ответы с готовыми решениями:

Двумерный массив. Ввести двумерный массив, найти сумму элементов каждого столбца
Ввести двумерный массив, найти сумму элементов каждого столбца.

Двумерный массив. Заполнить и вывести двумерный массив БЕЗ использования цикла FOR
Заполнить ивывести двумерный массив БЕЗ использования цикла FOR очень срочно!!!

Создать двумерный массив, опираясь на другой двумерный массив
У меня есть такой массив 0 0 0 0 0 0 0 6 3 2 2 8 9 3 7 6 8 3 4 5 1 0 ...

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

0
17.06.2009, 01:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2009, 01:17
Помогаю со студенческими работами здесь

Интерполяция заданной функции второй формулой Ньютона (обратная интерполяция)
Программа накапливает ошибку, да и первые значения совсем уже &quot;приближённые&quot;. Явно что-то упустил....

Дан двумерный массив A N*N). Сформировать двумерный упорядоченныймассив (А 11<=A 12<= .<=A 23<=.<=A nn)
Дан двумерный массив A(N*N). Сформировать двумерный упорядоченный массив (А11&lt;=A12&lt;=...

Как можно вложить двумерный массив в двумерный?
Нужно написать программу перемножения двух матриц размерностью МxМ, элементы которых, матрицы...

Двумерный массив преобразовать в двумерный List<T>
имеется матрица Single matr; Не важно как и откуда я ее заполняю, но на выходе выходит матрица из...


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

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