Globální moderátor HighPrint 177 Odesláno: 21. Červenec, 2011 Globální moderátor Share Odesláno: 21. Červenec, 2011 Inicializace aneb nastavení hodnot Zdravím, jsem tu s prvním TuTem a to je Inicializace aneb nastavování hodnot do polí. Jak už víte, pole můžeme využít k uložení vícero informací do jedné jediné větvící se proměnné. Více se dozvíte o polích v ffredykově výuce (link: viewtopic.php?f=79&t=14522). Tady v mým tutu se bude teda popisovat nastavováhní hodnot polí.Nastavování hodnot teda lze podle jejich využití a typů. Příklad: new p; // p je nulová tudíž jeho hodnota je 0 new p = 1; // přiřadili jsme proměně p hodnotu 1 new p = 'd' ; // přiřadili jsme proměně p písmenko 'd' využití se najde spousta new p[3] = {1,2,3}; // přiřadili jsme jednotlivým polím hodnotu new p[3] = {1,2}; // třetí pole bude 0 new bool:p = true; // přiřadili jsme booleanu p počáteční hodnotu true Poznámka: Vlastně přiřazování písmenka funguje stejně jako format, akorát ten za nás dělá tu těžkou práci. Funguje to tak, že za každou poli se přiřadí určité písmenko. new p[5]; p[0] ='a'; p[1] ='h'; p[2] = 'o'; p[3] = 'j'; printf(„%c%c%c%c“,p[0], p[1], p[2], p[3]); // %c = formát charakteru, tudíž to vypíše písmenko format(p,sizeof(p),"ahoj"); Vysvětlení: Vytvořili jsme proměnnou p s 5 polí (1 pole navíc aby se rozpoznalo, že se jedná o string, tím, že v posledním poli uloží ukončovací/nulový znak '\0'. V případě delšího řetězce než máme definované pole, ukončovací znak sebere poslední znak z řetězce a přepíše ho na ukončovací znak. Proto se vypíše jen "aho" místo "ahoj"). Progresivní nastavování hodnot v poliTeď si povíme o progresivním nastavování hodnot (Jinými slovy posloupnost). Značí se teda třemi tečkami („…“) a závisí vždycky na 2 posledních polích.Příklady: new p[10] = {1,…} /* Když máme jen jednu hodnotu, ostatní hodnoty se budou řídit tím jediným… tudíž to by bylo stejné jako kdybychom nastavovali {1,1,1,1,1,1,1,1,1,1} */ new p[10] = {1,2…} /* {1,2,3,4,5,6,7,8,9,10}*/ new p[10] = {1,2,30,40…} /* řídí se podle 2 posledních hodnot, tudíž {1,2,30,40,50,60,70,80,90,100} */ POZOR: Nefunguje s abecedou!Vzhledem k tomu, že ffredyk uvedl ve svém tutu ještě enum, tak vám ukážu jejich přiřazování hodnot. Předvedu jen se 3 známými typy proměn.Příklad: enum ENUM_TURBO { text[5], //string bool:boolean1,//bool p // promena } new Supr[ENUM_TURBO] = {"ahoj",true,5}; // přiřadili jsme teda stringu text „ahoj“, booleanu true, a hodnotu 5 proměně p A jak vlastně vypadá přiřazování hodnot když máme více větví? Dovolím si vypůjčit teda obrázek ffredyka:Příklad:new p[2][5] = { {1,2,3,5,6} , {7,8,9,10,11} };Vysvětlení:Takto asi celkově vypadá když si pole rozdělíme… máme jednu počáteční závorku (kmen; zvýrazněné zelenou), potom 2 větve (zvýrazněné červeně) a v nich další 5 větviček což jsou ty hodnoty které náleží dané větvi.Další příklad, tentokrát se stringamanew p[2][5] = { "cus" , "ahoj" } ;Vysvětlení:A teď zase znova, „větvičky a větvě“… Kmen je zvýrazněn zelenou barvou, a větve jsou datové objekty, na nichž 5 polí. A taky bacha když s tímto pracujete ještě hlouběji, všimněte si, že slovo cus má jinou délku než ahoj, takže když zjišťujete písmenka např. takto: printf(“%c - %c“, p[0][4], p[1][4]); tak bude asi jasné, že to písmenko nevypíše, neboť slovo „cus“ má jen 3 písmenka a nevypíše se teda čtvrtý. Naopak druhé písmenko vypíše teda „j“…. Doufám, že tuto část jsem vysvětlil jasně jestli ne tak sem napište dotaz a rád vám pomůžu.A poslední fáze, jak zjistit jednotlivé větve nebo kmen jak dlouhé to je, mám teď na mysli funkci „sizeof“. Řekl bych, že tady u téhle části to sám vysvětlit ani neumím, ale snad vám to pomůže když vám to tady ukážu na příkladě:Příklad: new p[2][3] = { {1,2,3}, {4,5,6}}; sizeof(p) = vypíše 2, = samotné p = výsledek je velikost „kmene“ sizeof(p[]) = vypíše 3 = p[] = výsledek jsou „větve“ Závěr: Tak to je snad všechno, jestli najdete chybu stačí informovat a upravím to Doufám, že jste se něco nového dozvěděli, někteří jedinci ano, někteří ne. Jestli jste něčemu nerozuměli stačí napsat Ověřený návod Tento návod prošel validací, a lze ho proto považovat za ověřený. 1 Link to comment Share on other sites More sharing options...
Guest ßlyster Odesláno: 21. Červenec, 2011 Share Odesláno: 21. Červenec, 2011 pekny tut :thumbup: Link to comment Share on other sites More sharing options...
Guest Odesláno: 21. Červenec, 2011 Share Odesláno: 21. Červenec, 2011 Hezký TuT, zase jsem se něco přiučil páč moc pole a enumy nevyužívám. Mohl jsi ještě zmínit, že pokud děláme string, tak když si uděláme ... new string[4]; A do formátu vypíšeme např.: format(string,sizeof(string),"ahoj"); Tak nám to bude házet error že pole je moc malé tudíž musíme vždy přidat +1 hodnotu do pole takže .. new string[5]; Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 21. Červenec, 2011 Author Globální moderátor Share Odesláno: 21. Červenec, 2011 Díky Blyster Mort: Mám to tam vysvětlené +1 pole navíc aby pawn rozpoznal, že se jedná o string, protože v posledním poli uloží ukončovací znak, jestliže nebudeme mít tento ukončovací znak vypíše to jen "aho" místo "ahoj" Měl jsem to tam odzačátku a errory by to normálně házet nemělo Link to comment Share on other sites More sharing options...
Guest Odesláno: 26. Červenec, 2011 Share Odesláno: 26. Červenec, 2011 nice tutorial, nevidím nič čo by som vytkol 10/10 mohol si ešte vysvetliť %c ale nice :thumbup: :thumbup: Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 26. Červenec, 2011 Share Odesláno: 26. Červenec, 2011 wow... 10/10 výborný Tutoriál Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 27. Červenec, 2011 Author Globální moderátor Share Odesláno: 27. Červenec, 2011 QWER, obvykle urážíš, kritizuješ, ale najednou pochvala Skoro bych řekl, že si to ani nečetl no... ale na přání přidáno co znamená formát %c, ale jinak díky KarTooN, to platí pro tebe taky četl jsi to vůbec? , ale jinak díky Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 27. Červenec, 2011 Author Globální moderátor Share Odesláno: 27. Červenec, 2011 QWER, obvykle urážíš, kritizuješ, ale najednou pochvala Skoro bych řekl, že si to ani nečetl no... ale na přání přidáno co znamená formát %c, ale jinak díky KarTooN, to platí pro tebe taky četl jsi to vůbec? , ale jinak díky Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 QWER, obvykle urážíš, kritizuješ, ale najednou pochvala Skoro bych řekl, že si to ani nečetl no... ale na přání přidáno co znamená formát %c, ale jinak díky KarTooN, to platí pro tebe taky četl jsi to vůbec? , ale jinak díky četl, hodně zajímavé jen tak dál Link to comment Share on other sites More sharing options...
KarTooN 1 Odesláno: 27. Červenec, 2011 Share Odesláno: 27. Červenec, 2011 QWER, obvykle urážíš, kritizuješ, ale najednou pochvala Skoro bych řekl, že si to ani nečetl no... ale na přání přidáno co znamená formát %c, ale jinak díky KarTooN, to platí pro tebe taky četl jsi to vůbec? , ale jinak díky četl, hodně zajímavé jen tak dál Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now