Avatar
95pavel
Člen
Avatar
95pavel:

Zdravím,

chtěl bych se zeptat jestli někdo ví z jakého důvodu mi nefunguje funkce Min() - potřebuju zjistit minimální prvek z pole. Ze stejného pole zjišťuji i maximum (Max()) a to bez problémů funguje.

                int pocetMereni = Convert.ToInt16(pocetM.Text);
                double minHodnota = 0;
                double maxHodnota = 0;
                int x = 0;

                double[] poleM = new double[100];

for (int i = sloupce; i < sloupce + pocetMereni; i++)
                {
                    for (int y = 1; y < radek; y++)
                    {
                        poleM[x] = Convert.ToDouble(tabulka.Rows[y].Cells[i].Value);
                        x++;
                    }
                }


                maxHodnota = poleM.Max();
                minHodnota = poleM.Min();

                MessageBox.Show("max: "+ maxHodnota +"min: " + minHodnota);

Dekuju za odpověď.

 
Odpovědět 22.8.2013 8:11
Avatar
matesax
Redaktor
Avatar
Odpovídá na 95pavel
matesax:
int

        pocetMereni = int.Parse(pocetM.Text),
        maxHodnota = 0,
        minHodnota = 0,
        x = 0;

double[] poleM = new double[100];

for(int cellIndex = sloupce; cellIndex < sloupce + pocetMereni; cellIndex++)
        for(int y = 1; y < radek;  x++, y++)
        {
                poleM[x] = Convert.ToDouble(tabulka.Rows[y].Cells[cellIndex].Value);

                if(poleM[x] > maxHodnota)
                        maxHodnota = x;

                if(poleM[x] < )
                        minHodnota = x;
        }

MessageBox.Show("max: "+ poleM[maxHodnota] +"min: " + poleM[minHodnota]);

V té prasárně se nelze vyznat, tak jsem se jen pokusil... Moc prosím o řádné OOP přejmenování. (Šlo by to Anglicky?) Convert sem nepatří. Text se parsuje...

Editováno 22.8.2013 9:15
 
Nahoru Odpovědět 22.8.2013 9:12
Avatar
matesax
Redaktor
Avatar
matesax:

Koukám ještě:

if(poleM[x] < minHodnota)
    minHodnota = x;

Jo a min hodnota nemůže být 0 - nastav ji na první hodnotu z cyklu - pardon - ale fakt jsem zápolil, abych se v tom vyznal...

Editováno 22.8.2013 9:18
 
Nahoru Odpovědět 22.8.2013 9:16
Avatar
matesax
Redaktor
Avatar
matesax:

Aj - tak teď jsem chyboval já:

int

       pocetMereni = int.Parse(pocetM.Text),
       maxHodnota = 0,
       minHodnota = 0,
       x = 0;

double[] poleM = new double[100];

for(int cellIndex = sloupce; cellIndex < sloupce + pocetMereni; cellIndex++)
       for(int y = 1; y < radek;  x++, y++)
       {
               poleM[x] = Convert.ToDouble(tabulka.Rows[y].Cells[cellIndex].Value);

               if(poleM[x] > poleM[maxHodnota])
                       maxHodnota = x;

               if(poleM[x] < poleM[minHodnota])
                       minHodnota = x;
       }

MessageBox.Show("max: "+ poleM[maxHodnota] +"min: " + poleM[minHodnota]);

A může tam být ta 0...

 
Nahoru Odpovědět  -1 22.8.2013 9:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.