Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravim!
Mohl by mi prosim nekdo poradit, jak napsat kod V c#, ktery precte uzivatelem zadanou matici a naplni ji do pole?
Nema to byt konzolova aplikace a opravdu nevim, jaky prvek/prvky mam pouzit :/
Pro ukazku:
Matice 3x3 se naplni do pole[i,j]
Diky moc za kazde rady ;-)
Offline
Zdar,
můžeš to udělat relativně jednoduše, uděláš si to třeba přes WPF textboxy, kterých hodíš třeba 10 horizontálně a 10 vertikálně (pak samozřejmě doházíš takto vzniklý čtverec), pojmenuješ si je nějak logicky, uděláš si proměnnou třeba typu List<TextBox>, kterou naplníš nějak logicky (třeba po řádcích) jmény těch prvků jak je tam máš, a hodíš si button, který pojmenuješ třeba "parse" - a chytneš event onClick, do kterého hodíš cyklus (foreach) a projdeš celý ten list, kde budeš kontrolovat, zda pole není null (poznamenáš si první výskyt null hodnoty na řádku, to ti udělá hranici matice, ostatní už budeš později ignorovat, stejně jako na příštím řádku), a projždíš sloupce, a hodně podobným principem (první null na prvním řádku znamená druhý rozměr matice).
Dále přečtené (ne-null) hodnoty vyparsuješ vlastnost .Text jako int (takže třeba parsedMatrix.Add(int.Parse(radek2sloupec4.Text);) (resp. jsi v cyklu foreach(TextBox t in matrixList) )
{
//....
try
{
parsedMatrix.Add(int.Parse(t.Text)); //parsedMatrix je list intů
//.....
}
catch (Exception) {//.... umíš dělat s výjimkama, že?}
Nakonec tedy máš horizontální rozměr, i vertikální, takže si vyrobíš dvojrozměrný pole, jejich velikosti budou rozměry-1, a jenom foreachem je naplníš z těch parsovaných intů.
So easy, isn't it?
Edit: kdybys potřeboval matici větší než 10x 10, tak si ještě udělej dvě tlačítka "nová stránka vpravo" a "nová stránka dolů" a dostaneš nekonečně velký prostor pro nekonečně (no dobře, nepranýřujte mně) velkou matici - samozřejmě obsluha je pak složitější, pokud uděláš novou stránku, potřebuješ si naparsovat hodnoty matice a někam uložit, kde to pak jenom spojíš - to už je ovšem trochu "vyšší dívčí" proti původnímu dotazu :)
Offline