Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 22.07.2017
Сообщений: 2
1

Excel: увеличивать значение переменной в цикле

22.07.2017, 15:12. Показов 1819. Ответов 2
Метки нет (Все метки)

Добрый день всем!
Помогите нужна помощь по написании программы в basic.
Суть такая есть две переменные, допустим X и deltaX
Мне Нужно что бы в программе X запоминал своё текущие значение и в следующей итерации все время прибавлял deltaX и т д ,
Вот примерно так:
X 20 20,22 20,67
deltaX 0 0,22 0,45

Помогите пожалуйста!!!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2017, 15:12
Ответы с готовыми решениями:

Необходимо увеличивать значение h в цикле
Как решить задачу? Необходимо увеличивать значение h в цикле class Program { static...

Как в цикле увеличивать значение факториала?
Я уже третий день голову ломаю...Даны натуральное число n, действительные чиcла a1,a2..an....

Как цикле первым N одно значение, следующим увеличивать
Здравствуйте. Подскажите пожалуйста, нужно в цикле первым трем поставить 1, вторым трём 2, третьим...

Увеличивать значение переменной
Как при каждом выполнение скрипта, увеличивать значение переменной на 1? $i=1; echo $i;

2
5557 / 1363 / 150
Регистрация: 08.02.2009
Сообщений: 4,105
Записей в блоге: 30
22.07.2017, 17:07 2
Не ясна цель исследования, но для начала покрутите пока вот это:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub текущие_x()
Dim X, deltaX(), mаssivX()
Dim i As Long 'счётчик значений mаssivX
X = 20
deltaX = Array(0, 0.22, 0.45) 'здесь через запятую все deltaX
    
    While i <= UBound(deltaX) 'пока не прибавим все deltaX
        ReDim Preserve mаssivX(0 To i) 'это массив для X
        mаssivX(i) = X + deltaX(i)
        i = i + 1
    Wend
    
MsgBox Join(mаssivX) 'показ полученных значений
End Sub
0
0 / 0 / 0
Регистрация: 22.07.2017
Сообщений: 2
22.07.2017, 23:56  [ТС] 3
Поясню немного понятнее.
Цель: Есть численный массив большой в экселе . я меняю размер массива как удобно мне.
Предположим сейчас размер массива от 0 до 200 , то есть 200 значений
В экселе я с задачей справился , теперь забиваю всё в код бейсика и столкнулся с проблемой.
мне нужно что бы исходное значение T (т . е 20) возвращалась , затем deltaT(0,127) ссылаяюсь на T интерполируя её выдавало результат в следующей ячейке, а следующая T прошлое T + deltaT =20,127. дальше вычисления продолжаются вплоть до 200 элемента.
Вот код пробовал написать, только мне нужно что бы он в следующем вычислении прибавлял к T + deltaT, грубо говоря вот так T(1)=T(0) + DeltaT , затем DeltaT ссылается на T(1) вычисляется и получается T(2) и т д 200 раз:
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
Public Function GetIcyToxl(dx As Double, iNum As Long) As Variant
'Вычисляет истинную температуру охладителя в каждом сечении
If iNum = GetIcyIn() Then
GetIcyToxl = GetIcyTemp()
ElseIf iNum < GetIcyIn() Then
 GetIcyToxl = 24
End If
 
End Function
 
 
Public Function GetDeltaT(dx As Double, iNum As Long) As Variant
'Вычисляет перепад температуры жидкости между каждым расчётным сечением
If iNum = GetIcyIn() Then
GetDeltaT = 0
End If
b1 = (HeatIevlev_CoordinateAlpha(GetXBySec(GetICyChisloSech(), GetIcyNomerCritici(), iNum), GetAlphaKam(), GetIcyTempStenka()) + HeatIevlev_CoordinateAlpha(GetXBySec(GetICyChisloSech(), GetIcyNomerCritici(), iNum - 1), GetAlphaKam(), GetIcyTempStenka()))
b2 = 0.5 * b1 * GetSbok(dx, iNum)
b3 = b2 / (GetIcymassflow() * LinierGearMain(Range("TDH_CP"), GetIcyToxl(dx, iNum + 1), GetIcyP(dx)))
If iNum < GetIcyIn() Then
GetDeltaT = b3
End If
с1 = (HeatIevlev_CoordinateAlpha(GetXBySec(GetICyChisloSech(), GetIcyNomerCritici(), iNum), GetAlphaKam(), GetIcyTempStenka()) + HeatIevlev_CoordinateAlpha(GetXBySec(GetICyChisloSech(), GetIcyNomerCritici(), iNum + 1), GetAlphaKam(), GetIcyTempStenka()))
с2 = 0.5 * b1 * GetSbok(dx, iNum)
с3 = b2 / (GetIcymassflow() * LinierGearMain(Range("TDH_CP"), GetIcyToxl(dx, iNum - 1), GetIcyP(dx)))
If iNum > GetIcyIn() Then
GetDeltaT = с3
End If
End Function
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.07.2017, 23:56

Как увеличивать значение переменной в БД каждую минуту?
Всем привет. Как увеличивать значение переменной в БД каждую минуту на +1? Помогите простым...

Как присвоить значение переменной если значение позже устанавливается в цикле?
Кратко: if($_SESSION != &quot;&quot;){ $row = mysql_num_rows(mysql_query(&quot;...&quot;)); if($row &gt; 0) $panel...

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

Не присваивается значение переменной в цикле
Всем здравствуйте. Появилась проблема с присвоением переменной значения в цикле. Вот сам код ...

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

Вернуть значение переменной метода в цикле
Добрый день! подскажите как вернуть значение переменной SS в методе в цикле вот метод: public...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.