Алгоритм получения значения из таблицы - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Есть таблица значений, сверху расположена температура, слева плотность, то есть нужно выбрать значение в зависимости от температуры и плотности (см. рисунок приложенный). То есть, допустим у меня температура 12 °С и плотность 800, я должен получить значение 0,958. Можно конечно все на if'ах написать, но это говнокод какой то будет. Подскажите, в каком направлении думать?

Решение задачи: «Алгоритм получения значения из таблицы»

textual
Листинг программы
double T = 6.0;//исходная температура - откуда-то вводится
            int P = 760;//исходное давление - откуда-то вводится
            //вводить полностью не будем, проверять правильность заполнения исходных данных также не будем!!
            string[] temp = { "0,0-4,9", "5,0-9,9" };
            int[] pres = { 750, 760, 770 };
            double[,] coef = {
                                 {1.082, 1.08},
                                 {1.054, 1.052},
                                 {1.027, 1.025}
                             };
            int t = -1; //индекс по температуре
            int p = -1; //индекс по давлению
            //ищем номер колонки
            for (int i = 0; i < temp.Length; i++)
            {
                int k = temp[i].IndexOf('-');
                double N = Convert.ToDouble(temp[i].Substring(0, k));
                double E = Convert.ToDouble(temp[i].Substring(k + 1));
                if (T >= N && T <= E) { t = i; break; }
            }
            //ищем номер строки
            for (int i = 0; i < pres.Length; i++)
                if (P<=pres[i]) {p = i; break;}
           
            //выбираем значение
            if (t == -1 || p == -1) MessageBox.Show("Указанные значения не найдены");
            else MessageBox.Show("Требуемый коэффициент равен " + coef[p, t].ToString());

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы