Myslel jsem tim praci s pameti v assembleru. Tam musis prave resit, jak zapsat string, array a pod pomoci zakladnich instrukci. To jsme delali prave az po pascalu. A najednou to zacalo davat smysl.
A dvourozmerne pole ma nejvetsi vyznam asi u databazi.
Příspěvky odeslané z IP adresy 2001:718:2601:258:241e:5f5a:fae2:c2ca...–
Ono, cist programovaci prirucky neni totez jako mit ucitele.
Jako, vzpominam na sve vlastni zacatky, kdyz nam sice ucitel rekl, jake jsou datove typy a mozna i rikal, jak to funguje. Ale to je vse teorie, nejaky vzdaleny virtualni svet. Lepsi by byl prakticky model ze dreva. Dokud nepracujes primo s pameti a nezacnes premyslet, jakym zpusobem to do ni ulozit, tak ti popis nemusi byt uplne jasny. Proto jsem to zkusil rozepsat. Ono, zrovna c#, pascal a pod neni upne nejka, ja radeji pracuji s javascriptem. Ten znacne zjednodusuje zapis prace s poli. V C jazycich je prave hrozne matouci, ze neco pojmenujes pole a najednou u nej musis jeste definovat, ze je tam jiny datovy typ, integer, string a pod. Ze proste neni jednoznacne receno cislovane pole a to samo pouzije integer jako v pripade javascriptu.
// declares & initializes string array
String[] s1 = new String[2];
// assign the value
s1[0] = 10;
s1[1] = 30;
s1[2] = 20;
// nebo muzes pouzit cyklus
// tady jsou nejake ukazky pro dvourozmerne pole
https://stackoverflow.com/…string-array
// takhle nejak by se asi delala tabulka
//jmeno ; prijmeni ; bydliste
//tonda ; novak ; ostrava
//marek ; eben ; praha
// nejdriv vytvoris strukturu
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
// a pak ji muzez naplnit hodnotami
Tablero[0][0] = "jmeno"
Tablero[1][0] = "tonda"
// nebo to udelas cyklem, "vsude" das treba tonda
for (int i = 0; i < Tablero.GetLength(0); i++)
{
for (int j = 0; j < Tablero[i].GetLength(0); j++)
Tablero[i][j] = "tonda"
}
// ty tam mas totez, jen s double
Ony ty anglicke pojmenovani a ceske preklady jsou casto dost nejasne. Slovo pole se v realnem svete nikde jinde nepoziv. Stejne jako shoda podnetu s prisudkem v cestine. O zadnou shodu nejde, jde o propojeni, ze by to melo mit stejne y/i :)
V programovani mas struktury, do kterych muzes ukladat data nejak pojmenovane. Kazda ma nejake vlastnosti. Kazda zabira misto v pameti.
char = 1 (byte)
byte = 1 (byte, pouzivany jako cislo 0-255)
integer = 4 (pouzivany jako cislo +-2.147.483.647)
string = delka(n) + n x typ(char=1) // kdyz chces ulozit string, potrebujes
// vedet, kolik znaku ukladas a pak seznam tech znaku
cislovane_pole = pocet(n) + n x typ(char=1)
U cislovane_pole, typ, muze byt jakakoliv jina struktura, treba take pole.
A to je presne pripad dvourozmerneho pole. Typ muze byt i integer. Typ
muze byt cokoliv.
cislovane_pole = pocet(M) + M x ( pocet(N) + N x typ(char=1) )
A potom je jeste pole s indexy typu string nebo jine.
Cili, dvourozmerne pole je neco jako tabulka v excelu. Muzes ho pouzit pro ukladani souradnic X Y. Nebo seznam knizek s autorem, rok vydani, ... Proste tabulka. Mozna to lepe pochopis pozdeji, az budes resit, jak usporne ulozit data do souboru nebo zacnes pouzivat databaze.
Treba, kdyz ukladas z excelu tabulku do textoveho souboru, tak se pouziva csv format (bunky oddelene carkou - excel pouziva strednik)
jmeno ; prijmeni ; bydliste
tonda ; novak ; ostrava
marek ; eben ; praha
.
pole[radek 0][sloupec 0] = jmeno
pole[radek 1][sloupec 0] = tonda
str = pole[radek 2][sloupec 2] // praha
str[0] = p // prvni pismeno ze string praha
(ale nevim, jak se to pise v c++, ber to jen jako ukazku, jak funguje struktura pole)