С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 21.05.2018
Сообщений: 2

Вывод значения из промежуточной итерации для дальнейшего использования в цикле

21.05.2018, 17:51. Показов 1062. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый день!

В цикле Do ... Loop Until мне необходимо определить номер итерации, в которой выполняется определенное условие, а затем использовать это значение (номер итерации) в последующих итерациях.

ЗЫ Сам не программист, пишу в бэйсике прогу для диплома
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.05.2018, 17:51
Ответы с готовыми решениями:

Передача значения из одного окна в другое для дальнейшего использования
Ребята, всем привет! Работаю сейчас над проектом, который требует регистрации по ключу (до ввода ключа типа демо версия). Это самый...

Вывод последней итерации в цикле
Не соображу как вывести последние значение в цикле, подскажите на примере моего цикла? D = d=0 while d < min(D): print...

Вывод номера итерации в цикле for
Можно как-то в Qt сделать подобное? for (int i = 0; i < 10; i++) { cout << i; } А именно необходимо записать в label...

2
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.05.2018, 19:19
alexzorro,
Visual Basic
1
2
3
4
5
6
n=0
Do
  ...
  n=n+1
Loop Until ...
'n - номер итерации
0
0 / 0 / 0
Регистрация: 21.05.2018
Сообщений: 2
21.05.2018, 19:51  [ТС]
Спасибо за быстрый ответ!
Но вопрос не в этом.
Сейчас постараюсь поподробнее.

схема итерации:
0) у нас есть 7 аппаратов воздушного охлаждения природного газа (АВО) с 2мя вентиляторами по результатам основного расчета.
1) выключаем у одного АВО один вентилятор. следовательно, 6 АВО с 2мя вент., 1 АВО с 1 вент. Если "Copt - C < 0 Or T1 > 313 Or y > 100" не срабатывают, выключаем дальше.
2)выключили все вторые вентиляторы: т.е. 7 АВО работают только с одним вентилятором каждый.
3) выключаем по одному вентилятору, при этом такой АВО начинает работать в режиме свободной конвекции. если снова "Copt - C < 0 Or T1 > 313 Or y > 100" не срабатывают, выключаем дальше.
4)доходим до того момента, когда все вент выключены. т.е. все АВО работают в режиме свободной конвекции.
*Здесь основной расчет, который оканчивается поиском суммарных затрат:
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
'4 Суммарные затраты 
C = Ck + Cohl 
 
'Оптимизационный расчет 
'Исходные данные для итерации 
 
's- колво АВО с 2мя включенными вентиляторами
'm- колво АВО с 1м включенными вентиляторами
'i - колво АВО с выключенными вентиляторами
 
y = 0  'номер итерации
 
If s > 0 Then 'если по результатам основного расчета есть АВО с 2мя включенными вентиляторами
sopt = s - 1 
mopt = m + 1 
End If 
 
If s = 0 Then 'если по результатам основного расчета нет АВО с 2мя включенными вентиляторами
mopt = m - 1 
iopt = i + 1 
End If 
 
Do 
Copt = C 
 
'1 Расчет системы охлаждения 
'2 Расчет параметров линейной части 
'3 Расчет параметров системы компримирования 
'4 Суммарные затраты 
C = Ck + Cohl 
 
'Переход к следующей итерации 
 
If s > 0 Then 
sopt = sopt - 1 
mopt = mopt + 1 
If sopt < 0 Then 
sopt = 0 
mopt = navo 
iopt = 0 
mopt = mopt - 1 
iopt = iopt + 1 
End If 
End If 
 
If s = 0 Then 
mopt = mopt - 1 
iopt = iopt + 1 
End If 
 
y = y + 1 
 
Debug.Print y, sopt, mopt, iopt, Copt, C, Ck, Cohl, T1, T2 
Loop Until Copt - C < 0 Or T1 > 313 Or y > 100


в чем вопрос
я смог выполнить шаги:0,1,2. Но вот дальше - не могу. как-то нужно записать условие так, чтобы вот здесь:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
If s > 0 Then 
sopt = sopt - 1 
mopt = mopt + 1 
If sopt < 0 Then 
sopt = 0 
mopt = navo 
iopt = 0 
mopt = mopt - 1 
iopt = iopt + 1 
End If 
End If
программа понимала,что я дальше хочу выключать еще вентилятор.

а пока программа работает по такой схеме:
y___s___m___i
01___7___0___0
02___6___1___0
03___5___2___0
04___4___3___0
05___3___4___0
06___2___5___0
07___1___6___0
08___0___7___0
09___0___6___1
10___0___6___1
11___0___6___1
Т.к. на каждом новом цикле sopt , mopt , iopt - переприсваются к 0.
а как сделать так, чтобы программа сохраняла предыдущие значения - не знаю

Добавлено через 17 минут
Вдогонку
Как я хотел бы реализовать этот процесс:

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
y=0
...
Do
...
If s > 0 Then 
   sopt = sopt - 1 
   mopt = mopt + 1 
   If sopt < 0 Then 
      mark=1
      R=y 'отправить это значение в какое-то хранилище данных, в котором бы не происходили изменения с последующими циклами
      sopt = 0 
      mopt = navo 
      iopt = 0 
   End If 
End If
 
y=y+1
 
If mark=1 Then 
   mopt = mopt - (y-R) 
   iopt = iopt + (y -R)
End If
 
Loop Until...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.05.2018, 19:51
Помогаю со студенческими работами здесь

Очистить значение переменной для дальнейшего использования
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Rus&quot;); int a(1); a = a +...

Передача пераметров объекта для дальнейшего использования
Здравствуйте! Пытаюсь написать простенький код на С++ с использованием классов. Не получается передать уже рассчитанный параметр в главной...

Вытащить значение переменной для дальнейшего использования
Всем привет, хочу вытянуть значение переменной Вот как это место(где я ее хочу получить) выглядит namespace WindowsFormsApp4 ...

Временное хранилище для дальнейшего использования данных
Здравствуйте! Я только начинаю изучать C#.Net. У меня есть маленькая программка, для нее нужно создать временное хранилище, типа dll. Можно...

Как считать число из stdin для дальнейшего использования
Использую NASM под OCUNIX


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru