utorak, 4. ožujka 2008.

polja:nastavak

Ovdje samo nastavljamo što smo radili u prošlom postu o poljima.....naravno ovo je jedan program...samo ga spojite:



Polje polja
U ovom programu ćete vidjeti kako se polje može koristiti unutar polja i biti element polja.
Prvo definiramo naše polje polja i na taj način smo definirali naših pet polja kao pet elemenata koji su unutar polja multi.
Naravno da su klase String jer ih spremamo kao wchar_t tip.
Pratite samo oštre uglate zagrade i vidjet ćete naravno gdje počinje i gdje završava koja deklaracija.Naravno unutar polja multi moramo deklarirati s gcnew jer se radi o dinamičkom alociranju memorije u CLR –u i naravno neizostavni hat ^ !!!
Nakon deklaracije polja slijedi nam dodijeljivanje početne vrijednosti stupnjevanja ocjena koje će anm naravno trebati u programu wchar_t slova_ocjene = 'A';

To nam je u biti brojač jer tu definiciju i ujedno deklaraciju povećavamo za svaki korak petlje slova_ocjene++ unutar for each petlje i naravno radi se o petlji u petlji i kad to bolje proučite vidjet ćete da je logično,brojač je stavljen u prvu petlju jer ocjenjuje u biti cijelo prvo polje unutar polja multi ,a petljica unutar prve petlje nam pokazuje svako ime unutar te petlje(vanjske) i kad ona završi skače se na novi element(polje).
Naravno ,ponovite iz tuta osnove o petljama i sve će vam biti jasno.
Na kraju je dodana obična petlja for da bismo uljepšali program s crtom.Dužinu određujemo korakom x.
Naravno mogli smo to napraviti i s običnom petljom for i evo programa koji to i pokazuje,proučite ga i ispišite i nekoliko puta ako treba!!Polja nam služe kao indeksi kojima pristupamo članovima i također imamo petlju u petlji i ako ste ponovili petlje iz tuta za početnike ovo vam neće biti teško!

Slijedi program. Isti je kao i onaj gore ali koristimo "obične petlje for":







Što se tiče upotrebe gcnew naredbe to je slično dinamičkom alociranju u native c++,samo što nema naravno delete jer nam nije potreban zbog handle „hat“ čiščenja kad nam objekt ili varijabla nije više potreba za njma.Shvatite taj handle kao pokazivač koji stalno pokazuje i prati taj objekt i uništi ga kad nam nije potreban!
Sad nam još malo slijedi rad s klasom String.

Strings

Već ste se prije upoznali s klasom String tipa(znači riječima) koje se sastoje naravno od znakova koji opet pripadajuj System::char-u!
Naravno u System namespecu govorimo ,a namespecu pristupamo pomoću onih dvotočki ali ponovite te odnose bar iz onih osnova u tutorijalu za početnike a kasnije u napretku same stranice kad dođemo do klasa u CLR sve će vam i biti jasnije .
Jedna rečenica u CLR programiranju koristeći naravno C++/CLI izgleda ovako:

System^ rijec = L“Odje pišite rečenicu koju želite“;

Varijabla riječ je u biti zbog handle „hat“ znaka rezervirala mjesto u klasi string za objekt riječ! Taj objekt se naravno sastoji od Char znakova koji su u biti wchar_t unicode znakovi zbog onog L na početku rečenice!
Znači varijabli(objektu) riječ smo pomoću znaka jednako dodijelili niz znakova koji tvore našu riječ!
Tracking handle (^) je znači sistem praćenja u CLR-u koji omogućava brisanje i oslobađanje memorije kad nam više ne trebaju!
Našoj rečenici osim običnog ispisa možemo pristupiti pomoću polja i njegovim indeksima ali tako možemo pristupiti samo pojedinom slovu ili praznini !
Naravno to je sve prikazano na primjeru koji proučite!
Sad da bismo pomoću polja bar nešto napravili s Stringom moramo primjeniti Length svojstvo kojem naravno pristupamo - > tim operatorom ,da bi uopće upotrijebili taj operator mora se raditi znači o pristupu nekom polju ili objektu s članovima jer tek je tad taj operator upotrebljiv ,a to ćemo kasnije još bolje objasniti!
U našem slučaju rijec je objekt zbog String^ handl tj. članica je klase String i na taj način je objekt u CLR-u i tad se može upotrijebiti taj operator! Naravno sad proučite programe niže dolje i uvidjet ćete da nije teško razumjeti C++/CLI !Ja sam objašnjenj malo doslovno prevodio ali nadam se da razumijete.


U ovom niže programu je pristup pomoću polja i upotreba svojstva Length!


U ovom programu dok ga ne objasnim probajte sami proučiti logiku operatora + u primjeni nad stringovima!


Objašnjenje slijedi.Znači operatorom + možemo spajati riječi ali možemo te riječi spajati i s brojevima kao i s bool izrazima,zo nam pokazuju gornji programi.Nadam se da ovdje ne treba više objašnjavati. Također možemo spajati i riječ(string ) s znakovima a rezultat ovisi kako deklariramo znak! Program o tome slijedi.

Znakove smo deklarirali na dva načina a rezultat prikaza je različit jer CLR deklaraciju s char tipom smatra kao numeričku varijablu a wchar_t je dio String klase i pokazuje nam slovo:

Evo gore je rezultat našeg programa.
Sad jedan program čiju logiku možete i sami skužiti jer nije teško a radi se o funkciji Join() koja je definirana u String klasi i ona je i upotrbljava .Samo ime vam govori što ona radi i kako to radi.Program vam to pokazuje i opet vidite kako preko dvotočki pristupamo funkciji i naravno u zagradama funkcije stavimo što želimo združiti!!! Naravno stvorili smo i novi String objekt.Svaka promjena na stringovima rezultira novim stringovima jer je original nepromjenjljiv!!!


Sad ćemo malo u ovom programu vidjeti malo rada s String objektima,program slijedi :



Rad s String objektima
Cilj nam je u ovom programu napraviti izlaz za String objekt oblik takav kakav je u CMD-u prikazan.
Prvo deklariramo znači polje brojeva koje ćemo uređivati i raditi output.
Zatim ,deklariramo u biti naš oblik objekt započevši s formiranjem dva objekta str_1 i str_2 ,prvi je prva polovica a drugi je druga polovica budućeg novog Stringa.
I imamo deklaraciju broja kao String.
Zatim u prvoj petlji mi određujemo koja nam je dužina polja i to spremamo u varijablu max_duz koju koristimo za definiciju i deklaraciju našeg novog stringa oblik ,a njegov output uređujemo u slijedećoj petlji for gdje upotrebljavamo varijablu broj_po_lin koju namještamo na tri i kad je ostatak nula tad nam ide i ispis po tri broja našeg cijelog polja i eto ispisa tri po tri!Nije teško shvatiti logiku programa i kako se slaže sve ako naravno znate petlje.Vi mijenjajte određene parametre programa da biste vježbali i uvidjeli logiku programa,promijenite npr . da se slažu po četiri ili po dva.Možete izmjeniti i duljinu polja i na taj način shvatite svojstvo Length .Probajte umjesto String^ broj staviti int broj i vidite da ne šljaka i zašto ne šljaka jer mi u biti radimo s Stringovima iako nam je polje int tipa ali ga uređujemo kao String objekt.Naravno ponovite definiciju operatora %!
Slijedeći program je rad s Trim() funkcijom koja uklanja praznine s početka i kraja rečenice (praznine koje nam ne trebaju) .

Ovdje u ovom programu eliminiramo s funkcijom Trim() sve suvišne praznine i na taj način uređujemo rečenicu :

Primjetite da je prvi ispis neuređene rečenice a zatim poslije funkcije Trim():

Evo malo se i ponavlja program ali neka malo i vi vježbajte:


Ovdje promjrnjujemo Trim() funkciju za eliminiranje određenih slova koja u ovom slučaju pripadaju tj. tvire riječi kojih ćemo se riješiti :

Naravno prvo deklariramo i definiramo rečenicu a onda slova tipa wchar_t i na taj način Trim funkcija može djelovati jer svi su u klasi String :

Ako samo krajeve ili početke želimo "odrezati" u rečenici tad nam služe funkcije TrimEnd() i TrimStart(), Suprotna funkcija od Trim() funkcije koja nas riješava praznina i slova , imamo funkciju koja dodaje praznine s lijeva ili desna PadRight() i PadLeft() i naravno slijede i kratki programi koji to i pokazuju i mislim da previše objašnjenja nije potrebno jer i sama definicija imena funkcije , a i u programu na primjeru je lako uočiti o čemu se radi :
...molim ići na post -obrada teksta.

Nema komentara: