//bloki romywania i wyostrzania metodą min max a nastepnie środekCiezkosci
        private void BlokWnioskowaniaOgrzewania(ref Heat Out, ChartItem5Value in1, ChartItem1Value in2)
        {
            double min, low, mid, mor, max, join;

            for (int i = 0; i < Out.Count; i++)
            {
                if (in1.Min + in1.Low + in1.Mid < 1 && in1.Mor + in1.Max > 0)
                {
                    min = Min(in2.Y, 1, Out[i].Min);
                }
                else
                {
                    min = Min(in2.Y, in1.Mid, Out[i].Min);
                }
                mid = Min(in2.Y, in1.Low, Out[i].Mid);
                if (in1.Min + in1.Low + in1.Mid < 1 && in1.Mor + in1.Max == 0)
                {
                    max = Min(in2.Y, 1, Out[i].Max);
                }
                else
                {
                    max = Min(in2.Y, in1.Min, Out[i].Max);
                }
                mor  = 0;
                low  = 0;
                join = Max(min, low, mid, mor, max);

                Out[i].ZbiorWnioskowania = join;
                Out[i].Text = Out.AddTextJoin(Out[i].Text, join);
            }
            BlokWyostrzania(ref Out);
        }