powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Упрощение кода
25 сообщений из 26, страница 1 из 2
Упрощение кода
    #38818392
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите упростить код. Есть переменная Rashod меняющаяся от 100-2000 с интервалом в 10 и переменная NB меняющаяся от 10,7 до 17,2, изменяющаяся с интервалом в 0,5 в зависимости от переменной Rashod. Пример кода ниже и так нужно писать до 2000. Можно с ума сойти, подскажите как упростить.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Select Case Rashod
    Case 100
      NB = 10.7
    Case 110
      NB = 10.75
    Case 120
      NB = 10.8
    Case 130
      NB = 10.85
    Case 140
      NB = 10.9
    Case 150
      NB = 10.95
    Case 160
      NB = 11
    Case 170
      NB = 10.75

Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
Упрощение кода
    #38818404
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напишите ф-юю
...
Рейтинг: 0 / 0
Упрощение кода
    #38818413
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Математика, 6-й класс
Код: vbnet
1.
NB=Rashod/200+10.2



vdekameronPA, спасибо, что-то я логику забыл включить когда создавал тему
...
Рейтинг: 0 / 0
Упрощение кода
    #38818423
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, смущают две вещи:
1)
vdekameron
Код: vbnet
1.
2.
    Case 170
      NB = 10.75

списал бы на опечатку, но:
2)
vdekameronот 100-2000vdekameronот 10,7 до 17,2видимо, зависимость нелинейная. Так что выражайте имеющуюся зависимость в виде формулы y=f(x)
...
Рейтинг: 0 / 0
Упрощение кода
    #38818425
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в описании ошибка, там интервал по коду не 0.5 , а 0.05
...
Рейтинг: 0 / 0
Упрощение кода
    #38818433
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneв описании ошибка, там интервал по коду не 0.5 , а 0.05да это фиг с ним. Просто, если бы зависимость была линейная, мы бы получили 2000/200+10.2=20.2, а не 17.2
...
Рейтинг: 0 / 0
Упрощение кода
    #38818439
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneв описании ошибка, там интервал по коду не 0.5 , а 0.05да это фиг с ним. Просто, если бы зависимость была линейная, мы бы получили 2000/200+10.2=20.2, а не 17.2

мне кажется ТС сам не знает , что ему нужно или неправильные условия задачи озвучил
...
Рейтинг: 0 / 0
Упрощение кода
    #38818497
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте коллекцию, где key - значение Rashod, а value - значение NB. И выбирайте нужное значение непосредственно по ключу.
...
Рейтинг: 0 / 0
Упрощение кода
    #38818556
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы правы там график не линейный((( И как использовать y=f(x) я не могу понять. Школа была давно. Эта функция возрастающая. Но как мне правильно задать убывание вот этого коэффициента 0,05((( Не судите строго я в программировании новичок а с математикой не каждый день сталкиваюсь
...
Рейтинг: 0 / 0
Упрощение кода
    #38818562
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я сначала решил задачу так, а потом сам понял что фигню спорол. Т.к. функция не линейная

K = ((Rashod - 100) / 10) * 0.05
NB = 10.7 + K
...
Рейтинг: 0 / 0
Упрощение кода
    #38818566
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас два варианта:

1) Создать справочник величин (например, по совету Akina), способов хранения исходных данных множество
откуда берутся реальные данные - вы скрываете, поэтому конкретных советов не будет

2) Описать функцию формулами (в т.ч. можно описать формулы на диапазонах, если это приемлемо)
как конкретно кореллирует y от x вы скрываете, поэтому конкретных советов не будет
...
Рейтинг: 0 / 0
Упрощение кода
    #38818571
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте интерполяцию (см. численные методы решения вашей формулы)

http://www.pmtf.msiu.ru/chair31/students/berkov/chisl_met.pdf
...
Рейтинг: 0 / 0
Упрощение кода
    #38818599
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, Мне нечего скрывать, я просто думал тут получится просто выкрутиться, но понимаю что не так все просто. Куда можно вам эту зависимость скинуть? Она у меня в pdf и весит 2мб. Если есть желание и время помогите разобраться.
...
Рейтинг: 0 / 0
Упрощение кода
    #38818624
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronОна у меня в pdf и весит 2мбКонвертируйте в CSV - и задача станет почти тривиальной. Если PDF запаролен - можно даже через OCR прогнать, всё равно только один раз...
...
Рейтинг: 0 / 0
Упрощение кода
    #38818628
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS. А хардкодить справочники - это даже не моветон, это гораздо хуже...
...
Рейтинг: 0 / 0
Упрощение кода
    #38818635
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, я же сказал я новичок)) что такое CSV
...
Рейтинг: 0 / 0
Упрощение кода
    #38818640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronShocker.Pro, Мне нечего скрывать, я просто думал тут получится просто выкрутитьсявот, буквально сегодня на башорге:
xxx: помогите мне пожалуйста с пояснением кода, код есть, а что конкретно в нем значит не знаю
yyy: То чувство, когда человек вроде задал вопрос, но вопроса - нет. И вроде ответить хочешь, и отвечать не на что...
xxx: ну просто есть код, мне нужно расписать(пояснить) что каждая строка (функция, алгоритм) значит, у меня есть то что я знаю, а чего не знаю прошу помочь мне с этим,
если нужно я скину код
zzz: Та не, не нужно. Мы и так расскажем.у вас получилось примерно из той же серии


vdekameronОна у меня в pdf и весит 2мб.простите, файл из 382 чисел весить столько никак не может. А картинки (или что там у вас) оставьте себе - они не нужны для решения задачи.
...
Рейтинг: 0 / 0
Упрощение кода
    #38818643
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronя же сказал я новичок)) что такое CSVто, что вы новичок, никак не прощает нежелание сделать элементарное действие
...
Рейтинг: 0 / 0
Упрощение кода
    #38818990
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, В общем спасибо за помощь и потраченное время. Для меня это все сложно, видимо вам не понять. И дело тут не в лени, если бы я ленился то вообще этим бы не занимался. Буду делать наверное по 8 точкам а остальные приближенно.
...
Рейтинг: 0 / 0
Упрощение кода
    #38819000
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronДля меня это все сложноЭто - элементарно. Сложно только тому, кто холит и лелеет своё незнание, не желая освоить.
...
Рейтинг: 0 / 0
Упрощение кода
    #38819016
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, ткните носом я освою, просто даже не знаю за что браться. У меня есть PDF могу сделать фото этого графика(формат А3)
...
Рейтинг: 0 / 0
Упрощение кода
    #38819049
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы никак не можем понять, во что вы уперлись.
То ли у вас есть цифры для функции.
То ли у вас их нет.
Что именно вызывает проблему: "Можно с ума сойти, подскажите как упростить.". Что упрощать-то?!!!!
Если цифры есть - что мешает их выложить, скажем, в экселе, чтобы мы на них взглянули?
Если цифр нет, то что тогда есть? растровая картинка с графиком? текстовый перечень условий для диапазонов? Прежде чем писать программу, надо понять, что является исходными данными для работы программы.
Пока что вы выложили лишь 8 пар значений и хотите, чтобы мы угадали остальные.
...
Рейтинг: 0 / 0
Упрощение кода
    #38819064
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из первого сообщения можно сделать вывод - у вас есть 191 пара значений, вы готовы были их описать в виде Case, но (справедливо) решили, что это муторно и обратились за советом, как упростить код.

Из дальнейшей переписки напрашивается вывод, что у вас нет списка остальных значений и вы не можете его составить. Но тогда этот вопрос уже перестает лежать в плоскости vb и речь не об упрощении, а, для начала, о том, как получить тот самый набор чисел.
...
Рейтинг: 0 / 0
Упрощение кода
    #38819074
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronУ меня есть PDF могу сделать фото этого графика(формат А3)Именно ГРАФИКА? не таблица? тогда распечатывайте покрупнее, вооружайтесь линейкой и переводите его в табличный вид.
Если же это таблица - то либо суйте в распознавание, либо руками перебивайте.

В итоге необходимо получить текстовый файл. В каждой строке должна быть одна пара Rashod-NB. В качестве десятичного разделителя - точка, между значениями - запятая. Типа:

100,10.7
110,10.75
...


Получив это, необходимо написать процедуру загрузки этих значений в коллекцию. Т.е. определить коллекцию, открыть файл на чтение, прочитать пару значений, добавить в коллекцию. Когда файл кончится, весь масссив будет в данных программы, и можно будет быстро обращаться к ним по индексу.

Это один из вариантов решения проблемы. Но он не очень хорош, если входящие параметры (т.е. значение Rashod) не точно реперные, а произвольные, и ты будешь вынужден интерполировать.
...
Рейтинг: 0 / 0
Упрощение кода
    #38819095
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, У меня документ на бумаге. Я его снял-сделал рисунок. Я так понял что мне нужно в excel сделать таблицу чисел по этому графику, как вы объяснили. Я выкручусь по-другому. Разобью кривую на 10 отрезков и буду задавть условие до опр. точки умножать на опр. К. Потом до след. точки на другой К. Вроде получается довольно точно. Грубо говоря интерполяция , только кустарная
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Упрощение кода
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]