|
0 / 0 / 0
Регистрация: 02.05.2022
Сообщений: 4
|
|
Как создать список по нескольким условиям if в цикле for25.01.2023, 19:24. Показов 756. Ответов 3
Метки нет (Все метки)
Коллеги,
Я начинающий программист и у многих мой вопрос вызовет улыбку. В ниже приведенном фрагменте кода я считываю и обрабатываю в цикле for значения ранее полученных списков. Верхняя часть кода работает без проблем, но когда понадобилось в зависимости от значений одного из параметров производить расчеты и по их результатам формировать выходные списки значений, сразу возникла проблема - как создать список по нескольким условиям if в цикле for? Как только выносишь формирование списка выходных значений из конструкции if, сразу пропадает возможность его формирования , т.к. C# перестает видеть этот параметр. А если оставить формирования списка в конструкции if то списки формируются только по первым значениям. Как решить эту задачу? for (int i = 0; i <= (qif - 1); ++i) { var o_vlt = l_vlt[i].Trim(new char[] { 'V', 'v' }); int d_vlt = Int32.Parse(o_vlt); string t_vlt = Convert.ToString(d_vlt); VLT.Add(t_vlt); double d_pf = Math.Round(Double.Parse(l_pf[i]), 2); string t_pf = Convert.ToString(d_pf); PF.Add(t_pf); double d_acos = Math.Acos(d_pf); double d_sin = Math.Sin(d_acos); var Rc = Double.Parse(l_Rc[i]); var Xc = Double.Parse(l_Xc[i]); var o_pwr = l_pwr[i].Trim(new char[] { 'W', 'w' }); double d_pwr = Math.Round((Double.Parse(o_pwr) / 1000), 2); string t_pwr = Convert.ToString(d_pwr); PWR.Add(t_pwr); var o_lnth = l_lnth[i].Trim(new char[] { 'M', 'm' }); double d_lnth = Math.Round((Double.Parse(o_lnth) / 1000), 2); string t_lnth = Convert.ToString(d_lnth); LNTH.Add(t_lnth); if (d_vlt == 230) { double d_curt = Math.Round(((d_pwr * 1000) / (d_vlt * d_pf)), 1); string t_curt = Convert.ToString(d_curt); double d_du = Math.Round((2 * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); string t_du = Convert.ToString(d_du); CRT.Add(t_curt); l_dU.Add(t_du); } if (d_vlt == 400) { double d_curt = Math.Round(((d_pwr * 1000) / (Math.Sqrt(3) * d_vlt * d_pf)), 1); string t_curt = Convert.ToString(d_curt); double d_du = Math.Round((Math.Sqrt(3) * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); string t_du = Convert.ToString(d_du); CRT.Add(t_curt); l_dU.Add(t_du); } } С уважением, Андрей.
0
|
|
| 25.01.2023, 19:24 | |
|
Ответы с готовыми решениями:
3
Как создать фильтр по нескольким условиям в поле, где дублируются данные?
|
|
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
|
||||||
| 25.01.2023, 19:44 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 02.05.2022
Сообщений: 4
|
|
| 26.01.2023, 09:43 [ТС] | |
|
Попробовал и так
if (d_vlt == 230) { d_curt = Math.Round(((d_pwr * 1000) / (d_vlt * d_pf)), 1); d_du = Math.Round((2 * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); if (d_vlt == 400) { d_curt = Math.Round(d_pwr * 1000 / (Math.Sqrt(3) * d_vlt * d_pf), 1); d_du = Math.Round((Math.Sqrt(3) * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); string t_curt = Convert.ToString(d_curt); string t_du = Convert.ToString(d_du); CRT.Add(t_curt); l_dU.Add(t_du); } } И так if (d_vlt == 230) { d_curt = Math.Round(((d_pwr * 1000) / (d_vlt * d_pf)), 1); d_du = Math.Round((2 * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); if (d_vlt == 400) { d_curt = Math.Round(d_pwr * 1000 / (Math.Sqrt(3) * d_vlt * d_pf), 1); d_du = Math.Round((Math.Sqrt(3) * d_curt * d_lnth * (Rc * d_pf + d_sin * Xc) / (10 * d_vlt)), 2); } string t_curt = Convert.ToString(d_curt); string t_du = Convert.ToString(d_du); CRT.Add(t_curt); l_dU.Add(t_du); } Но все равно не могу правильно сформировать списки выходных значений CRT и l_dU.
0
|
|
|
7 / 8 / 1
Регистрация: 09.12.2017
Сообщений: 140
|
|
| 26.01.2023, 09:53 | |
|
Где } между if?
0
|
|
| 26.01.2023, 09:53 | |
|
Помогаю со студенческими работами здесь
4
Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка. Создать список студентов с оценками по нескольким дисциплинам. Отсортировать список по убыванию среднего балла. Имеющих двойки удалить из списка. Как найти нужные значения из ячеек, которые содержат разные данные, по нескольким условиям Как обратиться к нескольким CheckBox в цикле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|