Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# pole matíc

Dobry den,

chcel by som nadeklarovat pole v C# napr 100. prvkov, pricom kazdy prvok by predstavoval maticu roznej velkosti (velkost matice zada uzivatel (napr. 5x4)), bolo by dobre keby si mozem pri kazdej matici pamataj aj jej nazov. Vedeli by ste mi prosim pomoct?

Dakujem

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
nešlo by to nejako takto? zadefinoval by som triedu Matice, potom by som vytvoril pole týchto matíc:…
nereg. 11.07.2010 11:26
nereg.
Polia dlzka a sirka su zbytočné, pretože obidva rozmery vieš zistiť priamo z poľa. Prvý konštruktor… nový
los 11.07.2010 11:57
los
Urcite pouzit dynamicku alokaciu z heap. Jak sa to robi v srandojazyku C# si nastuduj. V C++ zalezit… nový
MM.. 11.07.2010 14:54
MM..
... a slusne v style OOP (co by mal zvladat aj C#) by to malo byt tak ze sa naprogramuje trieda "Mat… poslední
MM.. 11.07.2010 15:01
MM..

nešlo by to nejako takto?
zadefinoval by som triedu Matice, potom by som vytvoril pole týchto matíc:

class Matice
{
    public string nazov;
    public int dlzka;
    public int sirka;
    public int[,] pole;

    public Matice()
    {
        int [,] pole = new int[dlzka, sirka];
    }

    public Matice(string nazov_hodnota, int dlzka_hodnota, int sirka_hodnota)
    {
        nazov = nazov_hodnota;
        dlzka = dlzka_hodnota;
        sirka = sirka_hodnota;
    }
}
Matice [] pole = new Matice [100];
pole[1].pole[1, 1] = 1;
...

Viete poradiť???

Polia dlzka a sirka su zbytočné, pretože obidva rozmery vieš zistiť priamo z poľa.

Prvý konštruktor je zrejme zbytočný, pretože ti vytvorí pole o rozmeroch nula krát nula, čo asi nie je to, čo chceš. Okrem toho, vytvorené pole neukladáš do členskej premennej, ale do lokálnej premennej (máš tam deklaráciu navyše), takže to robí niečo iné, ako očakávaš.

V druhom konštruktore zasa chýba vytvorenie samotného poľa podľa zadaných rozmerov.

A nakoniec si síce vytvoríš pole pre sto matíc, ale samotné matice už nikde nevytváraš. Chýba ti tam volanie konštruktora s požadovanými rozmermi matice, ktorú mimochodom ukladáš na druhé miesto v poli matíc (a nastavuješ jej hodnotu na pozícii 2, 2) - polia sú indexované od 0.

... a slusne v style OOP (co by mal zvladat aj C#) by to malo byt tak ze sa naprogramuje trieda "Matica" ktora bude alokovat pamaat a drzat si o sebe informacie (sirka, vyska, atd), a v programe urobis pole (alebo spojkovy zoznam ak je ich pocet dynamicky) objektov triedy "Matica".

Zpět do poradny Odpovědět na původní otázku Nahoru