петак, 15. новембар 2019.

Operatori u C# programskom jeziku

U prethodna dva posta Zdravo C# i .Net Core i Da li unapred definisani tipovi podatakaimaju drugačije vrednosti u .Net Core ste prvo naučili kako da ispišete neki tekst na terminal panelu, zatim ste naučili kako da deklarišete promenjive i dodelite im vrednost. Ispisivanje teksta na terminal panelu je interesantno ali ne vredi mnogo ako ne umete i da uzmete podatak od korisnika i dodelite ga nekoj promenjivoj u vašem programu i koristite ga za neki vaš proračun. U ovom postu  posvetićemo se osnovnim operatorima u C# programskom jeziku ali ćemo reći nešto više i o ostalim operatorima koje sada odmah na početku učenja C#  programskog jezika, ne bi ste razumeli. Mogu da  pretpostavim da ste neke osnovne operatore učili iz matematike još u osnovnoj školi. Važno je da znate da C# programski jezik ima više operatora nego što se to uči na časovima matematike. Neki operatori su isti kao što ste učili na časovima matematike dok drugi postoje samo u C#  programskom jeziku, posebno u verziji 7.0. To znači da su neki od operatora novi i ne postoje u starijim verzijama C#  programskog jezika. Pogledajte prvo koje to sve kategorije operatora postoje u C#  programskom jeziku verziji 7.0.


( Operatori u C# programskom jeziku verziji 7.0 )


Aritmetički                                                                                      + - * / %

Logički                                                                                            & | ^ ~ && || !

Konkatenacija – spajanje stringova                                                +

Inkrementiranje i dekrementiranje – uvećanje i smanjenje            ++ --

Pomeranje bitova                                                                            << >>

Poređenje                                                                                        == != <> <= >=

Dodeljivanje                                                                                   = += -= *= /= %= &= != ^= <<= >>=

Pristup članovima (za objekte i strukture)                                     .

Indeksiranje (za nizove i indeksere)                                              []

Promena tipa                                                                                  ()

Ternarni – kondicionalni                                                                ?:

Stvaranje objekta                                                                           new

Informacije o tipu                                                                          sizeof (samo u nebezbednom kodu), is type of as

Kontrola izuzetaka prekoračenja checked,                                    unchecked

Indirekcija i adresa                                                                        * -> & (samo unebezbednom kodu) []

Unarni                                                                                           +x –x !x ~x ++x –x (T)x Await &x *x

Null – coalescing                                                                          x??y

Null – propagiranje (Elvis operator)                                            ?.

Lambda                                                                                         =>

i drugi.

Aritmetički operatori

петак, 25. октобар 2019.

Koju knjigu da kupim na 64-tom Beogradskom sajmu knjiga 2019-te godine?


Kao i svake godine, za mene je oktobar poseban mesec kome prethodi mala i ubrzana štednja novca za poseban događaj. Kao što pretpostavljate to je najveći regionalni događaj u istočnoj Evropi; Beogradski sajam knjiga koga neformalno zovu i praznik knjiga. Ove 2019 godine, to je 64-ti  Međunarodni Beogradski sajam knjiga, koji je počeo u nedelju 20 oktobra i traje do nedelje 27 oktobra. Sajam je otvoren za posetioce od 10h do 20h dok petkom i vikendom traje do 21h. Ulaznica za sajam je 250 dinara ali ako kupujete grupnu ulaznicu; to je ulaznica za više od 20 osoba; cena je 150 dinara. Prema gruboj statistici od prošle godine pretpostavljam da sajam broji oko 1000 izlagača od kojih su oko 450 inostrani izlagači iz dvadesetak država i posetom oko 200 000 ljudi. Pored milion i više knjiga sajam prate i brojne prezentacije, promocije, tribine, predavanja i okrugli stolovi. Interesovanje za knjige uključujući čak i polovne knjige varira i od štanda i od svake osobe pojedinačno jer svako od nas na neki način ima drugačije želje i drugačije materijalne mogućnosti. Ali je svakako lepo videti sva ta ozarena lica i sve te poglede, mnoštvo ljudi svih uzrasta koji u žurbi pokušavaju da pregledaju skoro svaki štand i priušte sebi što bolji izbor. Tako da je teško konkretno dati nekom preporuku šta tačno da kupi. Tako da ću neku svoju preporuku totalno ograničiti i predložiti vam više kao neki primer šta bi otprilike i vi mogli da pogledate. 


( Crkva Isusa Hrista Svetaca Poslednjih Dana, 30 godina na Beogradskom sajmu knjiga )

Većina ljudi koji me poznaje, zna da sam religiozna osoba. Razlog, pre svega što verujem u Isusa Hrista i što se zaista trudim da živim svaki dan kao što bolji čovek u svakom pogledu. Smatram koliko god je fizički, psihički i emotivni razvoj bitan, duhovni razvoj svakog čoveka je bitniji, jer donosi mir i blagostanje u najtežim izazovima. Volim da se družim sa misionarima iz celog sveta, učim strane jezike i putujem. Moja crkva; Crkva Isusa Hrista Svetaca Poslednjih Dana je meni velika podrška i oslonac u mom životu i osećaj blagostanja je uvek sa mnom. Takođe, cenim i poštujem svaku religiju ali isto tako poštujem pravo ljudi koji ne veruju u Boga. Svako ima pravo na svoje mišljenje i na svoj izbor. Kad dođete na Beogradski sajam knjiga možete videti mnoštvo različitih verskih zajednica i ono što je najbitnije svi se odlično slažu i pored različitih verskih uverenja. Pa nije retkost da se čak razmenjuje literatura i sveta pisma između jednih i drugih. Takođe, treba da imate u vidu da u Srbiji mnoge verske zajednice rade zajedno na mnogim humanitarnim projektima čija se materijalna ali i svaka druga vrednost u teškim životnim situacijama neprocenjiva. Crkva Isusa Hrista Svetaca Poslednjih Dana broji ove godine 30 godina svog prisustva na Beogradskom sajmu knjiga. I zbog toga svoju preporuku počinjem posebnom svetom knjigom koja je promenila život milionima drugih. Možda promeni i vaš. Naravno reč je o Mormonovoj knjizi. Takođe, vas pozivam kad ste na sajmu da obavezno posetite naš štand.

Zašto preporučuješ Mormonovu knjigu, šta još preporučuješ?

петак, 11. октобар 2019.

Glagoli 5 – Konjugacija glagola, Pluskvamperfekat – složeno davnoprošlo vreme u Nemačkom jeziku


Da bi ste gradili Pluskvamperfekat u Nemačkom jeziku, neophodno je da dobro poznajete Preterit; da znate pomoćne i modalne glagole u Preteritu; da dobro znate kako se pravi Perfekat; tačnije glagole u Participu perfekta. Zato je neophodno da dobro prostudirate prethodna dva posta Preterit i Perfekat pre nego što se upustite u Pluskvamperfekat, davno prošlo vreme u Nemačkom jeziku. Takođe, dobro obratite pažnju i na slabe i jake glagole. Jednostavno, slabi glagoli su oni koji se slabo menjaju. Kao što smo u prethodnim postovima naglasili; Perfekat se koristi često i najviše u govoru, dok sa Preteritom ćete se najčešće susretati kad čitate knjige i novine. Naravno ponekad Nemci koriste Preterit i u govoru jer je kraćeg gramatičkog oblika i jednostavniji, posebno kad koriste pomoćne i modalne glagole kao regularne glagole. Koliko tačno se koristi Preterit u govoru to najčešće zavisi i od dela nemačkog govornog područja gde se govori Nemački jezik. U svakom slučaju moj savet Vam je kada se govori o prošlosti oslanjajte se više na Perfekat kada govorite ali učite i Preterit oblike glagola da bi ste razumeli šta čitate. Ali što je to Pluskvamperfekat? To je kao i u Srpskom jeziku davnoprošlo složeno vreme; glagolski oblik koji označava radnju koja se izvršila pre neke druge radnje. Pluskvamperfekat se ne koristi baš često u Nemačkom jeziku kao i u Srpskom jeziku.


(Pluskvamperfekat se ne koristi često u Nemačkom jeziku)

Radnja koja se izvršava posle Pluskvamperfekta u složenoj rečenici može biti i u Perfektu ili u Preteritu, svejedno. Mada se češće koristi Preterit. Na primer:

Nachdem sie auf der Bank gewesen waren, gingen sie in ein Lederwaren Geschäft. – Pošto su bile u banci, išle su u prodavnicu kožne robe.   

Znači imamo jednu prosto proširenu rečenicu koja tvrdi da su pre prodavnice kožne robe one bile u banci. Taj deo rečenice stoji u Pluskvamperfektu. Jedna prošla radnja se već završila pre druge radnje u prošlosti, znači Pluskvamperfekat se prvo desio kada su one bile u banci, ali kad su išle u prodavnicu kožne robe, taj deo rečenice je u Preteritu. Ili.

Anna war schon gegangen, als der Chef hat nach ihr gefragt. – Anna je već izašla kad je šef pitao za nju.

Ovaj put Pluskvamperfekt se desio pre Perfekat. Iako bi ovaj oblik rečenice pre bio sa Preteritom radi kraćeg gramatičkog oblika.

Anna war schon gegangen, als der Chef nach ihr fragte. – Anna je već izašla kad je šef pitao za nju.

Kako se gradi pluskvamperfekat?

петак, 27. септембар 2019.

Da li unapred definisani tipovi podataka imaju drugačije vrednosti u .Net Core?

Da bi smo odgovorili na ovo pitanje, napravićemo jednu Console App .Net Core aplikaciju u Visual Studio Code-u instaliranom na Kali Linux distro; koji će nam predstaviti sve tipove podataka, njihove maksimalne i minimalne vrednosti. Takođe ćemo programu dodati i jednu konstantu i videćemo rezultate. Zatim ćemo isti kod proveriti u Visual Studio .Net 2019 Community. Ali krenimo redom. Programiranje je u suštini veština da Vi svojim kodom koji računar razume saopštite računaru da se ponaša na određen način. Da bi ste se bavili programiranjem, neophodno je da imate računar, operativni sistem, Internet konekciju, IDE – razvojno okruženje i da poznajete određeni programski jezik. U našem slučaju to je C# programski jezik koji trenutno učimo, Visual Studio Code instaliran na Linux operativnom sistemu; Kali distro instaliranom na jednom starijem laptop-u. U vašem slučaju to može biti drugačije, da na primer pravite .Net Core aplikacije u drugačijem operativnom sistemu. Važno je da shvatite da učenje C# programskog jezika nije previše tehnički, softverski i finansijski zahtevno. Moj savet Vam je kad god imate stariji računar ili računar slabije konfiguracije; instalirajte na njega Linux operativni sistem. I koristite ga za učenje. Da bi računar razumeo Vaš kod, vi računaru prosleđujete naredbe u vidu jedne linije koda ili više grupisani redova koda koje zovemo iskazi koje računar razume. Iskaze grupišete u metode, metode u klase i sve to radite što jednostavnije, preciznije i bez i jedne greške. Svaki deo koda mora biti bez greške, optimizovan i testiran. Takođe uvek se trudite da se kod uvek piše samo jednom dok se isti kod koristi i poziva više puta u projektu. Ali gde se tu uklapaju tipovi promenjivi, promenjive, njihove vrednosti i konstantne?


( Unapred definisani tipovi podataka u C# programskom jeziku )

Variables – promenjive su reči koje opisuju mesto u memoriji gde se nalaze vrednosti koje možete menjati. Da bi ste to razumeli najbolje da promenjivu zamislite kao neku malu kutiju koja čuva neku određenu vrednost u memoriji. Tako postoje razne kutije. Na primer postoji kutija integer ili tip podataka integer u koju možete staviti celi broj. Isto tako postoji kutija decimal ili tip podataka decimal gde možete staviti decimalni broj. Postoji kutija boolean u koju možete staviti samo true ili false; da je nešto tačno ili netačno. Ali vi ne možete staviti celobrojni broj u kutiju boolean. Znači vi stavljate vrednosti u određene kutije za tu vrednost koje čuvaju vašu vrednost u RAM memoriji računara. Tako program pamti podatke koje obrađuje. Da bi ste kontrolisali upotrebu memorije i brzinu obrade podataka treba uvek da razmislite koliko prostora vaša promenjiva će da koristi i da odaberete za nju adekvatan tip podataka. Šta je onda konstanta? Constant - konstanta je specijalna kutija ili specijalni tip podataka koji mora da sadrži i tip podataka. To znači dok kreirate konstantu vi određujete takođe i njen tip podataka.  Promenjive mogu da menjaju vrednost, ali konstanta ne može. Promenjivoj možete dodati ili oduzeti neki broj dok je konstanta je uvek ista. Ona se koristi kada imate neku vrednost poput Pi u matematici. Njena vrednost je 3.14159265359; ali da Vi ne biste stalno pisali ovakav broj kad god vam treba u programu; jednostavno napravite konstantu Pi tipa decimal i dodelite joj vrednost 3.14159265359. Pa kad vam treba ova vrednost, Vi pišete Pi u vašem kodu, dok program zna da je vrednost Pi isto kao da ste napisali 3.14159265359. Da bi ste videli kako se to radi, prelazimo na pisanje programa koje sadrži već definisane tipove koji se koriste u C# programskom jeziku.

Kako se deklarišu i inicijalizuju promenjive?

уторак, 10. септембар 2019.

Zdravo C# i .Net Core


Verovatno ste do sada upoznati sa činjenicom da se C# programski jezik može koristiti i na drugim platformama poput macOS i Linux operativnog sistema. Da, to nije samo moguće već se u nekim kompanijama to primenjuje i pored toga što je kodiranje u C# programskom jeziku sa .Net Core bibliotekama itekako ograničeno na spram .Net Framework-a. Isti slučaj je i sa IDE. Da bi ste kodirali u C# programskom jeziku u Linux operativnom sistemu, neophodno je da instalirate Visual Studio Code programersko okruženje koje se ne može porediti sa moćnim Visual Studio .Net okruženjem. Pa zašto onda da pored poznatog, familijarnog i veličanstvenog Visual Studio .Net-a, kodiramo u Visual Studio Code programskom okruženju? Pa i pored svojih velikih ograničenosti, prednost .Net Core aplikacija je što takve aplikacije mogu raditi pored Windows operativnog sistema i na macOSLinux operativnim sistemima. Zato što koristite macOS ili Linux i hoćete da programirate u C# programskom jeziku. Zato što je Visual Studio Code besplatan. Za potrebe učenja .Net Core aplikacija i praćenje narednih postova na ovu temu, Vi možete i iz Visual Studio .Net-a praviti .Net Core aplikacije koristeći Windows operativni sistem, ali još bolje Vi možete i da instalirate Visual Studio Code na Windows operativnom sistemu. Izbor je samo na Vama.


( Visual Studio Code se može koristiti kao IDE za mnoge programske jezike )

Da, mi smo već pisali na blogu o C# programskom jeziku i još uvek pišemo, ali isto tako treba da razumete da se C# programski jezik konstantno razvija i menja, da se isto tako kodiranje zaboravlja kad se često ne koristi. Vi koji do sada niste učili C# programski jezik, možete da počneteda učite C# programski jezik i od ovog posta ili pogledajte u sadržaju bloga C# Fundamentals – Osnovni nivo, izbor je samo Vaš. Što se tiče učenja dovoljno je da ste okrenuti ASP .Net projektu i automatski ćete potisnuti i zaboraviti većinu stvari koje ste znali kad ste radili na prethodnom projektu u WPF. Jednostavno život programera nije uvek jednostavan. Koliko puta sam nešto kodirao i kad se nisam dugo bavio sa istim kodom, ja sam ga jednostavno zaboravio. Zato Vam kažem, nemoguće je pamtiti sav kod, posebno ako uzmete u obzir da samo .Net Framework ima preko 30 000 funkcija. Ako se još bavite i drugim programskim jezicima, tek onda je neophodno da se bavite nečim što se zove arhiviranje. I da čuvate i štampate Vaše kodove i sve što ste ikad učili. Ovaj blog je veliki izvor informacija i lako me podseti kad se negde zaglavim, ali moje znanje je toliko složeno i kompleksno da prelazi 15 programskih jezika i opet ne mogu sve da znam i da ispratim sve promene. Još ako izgubim negde neki kod koji sam pre imao, to mi je najveća noćna mora. Zato Vaše učenje programiranja shvatite veoma ozbiljno i od samog starta počnite da arhivirate sve što ste ikad učili da programirate, jer jednog dana kada budete radili na nekom svom projektu biće vam veoma značajno. Zaboravite to da sve možete naći na Internetu, pogotovo ako ste Vi kodirali nešto iz Vaše glave. Što se tiče programiranja u C# programskom jeziku uvek je dobro da se podsetite i da obratite pažnju na promene koje se svake godine ugrađuju u C# programski jezik.

Šta sve i kako treba da instaliram da bi koristio C# u Linux operativnom sistemu?

среда, 28. август 2019.

Glagoli – 4. Konjugacija glagola, Perfekat – složeno prošlo vreme u Nemačkom jeziku


Ukoliko niste pročitali prethodni post Preterit, prosto prošlo vreme; najbolje bi bilo da to prvo naučite pa tek onda da učite Perfekat, složeno prošlo vreme. Perfekat označava radnju u prošlosti koja se u sadašnjosti završila ili su njene posledice još uvek u sadašnjosti. Većina ljudi koji po prvi put uči gramatiku Nemačkog jezika; mnogi ljudi više puta uči i ponavlja gramatiku; smatraju da je Perfekat najteži deo Nemačke gramatike. Ja lično baš i ne mislim tako, ali se slažem daPerfekat jeste složeno prošlo vreme i jeste komplikovano ali je i interesantno. Potrebno je da naučite niz određenih gramatičkih konstrukcija i da ih pravilno složite kako bi ste sastavili pravilno rečenicu. Ukoliko upotrebite i malo saveta za učenje mislim da će te se brzo naviknuti. Tačno je da se Perfekat u Nemačkom jeziku uglavnom najčešće koristi u govoru ali kad ste početnik često ga je teško i brzo primenjivati u govoru. Npr. Kada neko kaže nešto na Nemačkom jeziku u Perfektu; Vi bukvalno morate saslušati celu rečenicu šta je ta osoba koja govori rekla pa tek onda da prevedete šta je osoba tačno rekla. Kad neko priča na Engleskom jeziku Vi jednostavno dok osoba govori; Vi prevodite i dalje slušate šta osoba priča, ali u Nemačkom jeziku samo zato što u Perfektu, glavni glagol u Participu stoji na kraju rečenice, Vam može praviti zastoj u prevodu. Još ako osoba tokom govora na Nemačkom jeziku zareda više rečenica u Perfektu, onda će te verovatno morati prekinuti vašeg sagovornika:
  • Wiederholen Sie bitte noch ein mal. – Molim Vas ponovite još jednom.
  • Sprechen Sie bitte langsamer. – Molim Vas, govorite sporije.



( U Nemačkoj se Perfekat najčešće koristi u govoru )

Isto tako i Vi kad sami pravite rečenicu u Perfektu, potrebno će Vam biti neko vreme da Vi prvo u mislima složite svu konstrukciju rečenice u Perfektu pa tek onda da je izgovorite. Tek posle višegodišnjeg iskustva u prepoznavanju Perfektu u govoru, i njegovog delimičnog prevođenja dok ne čujete glavni glagol na kraju rečenice. Mi nismo svi isti i svako ima neki svoj način kako prevazilazi neku prepreku; tako na primer ovu teškoću možete ublažiti ako promenite oblik kako Vi prevodite na Srpski jezik. Npr.
  • Ich bin am Samstag zur Schule gegangen. – Ja sam išao u školu u subotu.
  • Ich habe im Auto geschlafen. – Spavao sam u autu.
možete prevoditi kao:
  • Ja u subotu u školu sam išao.
  • U autu sam spavao.

Na ovaj način Vi jednostavno ne morate čekati da sagovornik kaže gegangen ili geschlafen da počnete prevoditi rečenicu već ste do tog glagola već preveli rečenicu. Naravno ovo su kratke rečenice, dok kod dugačkih rečenica, posebno gde se grade različita vremena će Vam biti mnogo jasnije šta pokušavam da vam olakšam. Prvi zastoji kad prevodite sa Nemačkog jezika na Srpski jezik pre Perfekta će Vam praviti Modalni glagoli, jer kod njih se glavni glagol takođe stoji na kraju rečenice, ali to je nešto lakša situacija jer modalni glagoli imaju neko značenje kada kreiraju neku rečenicu dok pomoćni glagoli haben – imati i sein - biti se ne prevode jer gube svoje značenje. Pefekat kao složeno prošlo vreme može takođe da izražava Futur II ili buduću radnju. Npr.
  • Morgen um diese Zeit ist sie wieder abgereist. – Sutra u ove vreme opet je otputovala.  

Tako da ne budete zbunjeni ako Vaš sagovornik spomene Pefekat u sasvim drugom kontekstu. Za sada ne bi da komplikujem više, nego najbolje da se za sada koncentrišete isključivo na prošlost i da savladate pravilno građenje Pefekta.

Kako se gradi perfekat u Nemačkom jeziku?

четвртак, 15. август 2019.

Glagoli – 3. Konjugacija glagola, Preterit – prosto prošlo vreme u Nemačkom jeziku


Pre nego što pređete na Preterit, prošlo vreme; obavezno dobro prostudirajte Podeleglagola u Nemačkom jeziku i prethodni post Prezent, sadašnje vreme. Podelu glagola trebate znati da se ne pogubite među svim podelama glagola, dok Prezent,sadašnje vreme će vam dosta valjati i kod pravljenja preterita. Das Präteritum – preterit ili das Imperfekt - imperfekat je prosto prošlo vreme kojem se izražava radnja koja se desila u prošlosti i tamo završila. Međutim, Imperfekat u Nemačkom jeziku je stari naziv koji se više ne upotrebljava dok u Srpskom jeziku se ne koristi naziv Preterit već samo Imperfekat. Ukoliko se pitate da li je PreteritNemačkom jeziku isto što i Imperfekat u Srpskom jeziku, odgovor je DA; samo što je PreteritNemačkom jeziku mnogo više, jer se koristi i za građenje vremena. U Srpskom jeziku Imperfekat se i ne koristi u svakodnevnom govoru nego isključivo u nekim starim književnim delima. Teško da će te čuti da Vam neko na ulici kaže: „Seđah u onom kafiću juče.“ Tako da mnogi ljudi u suštini kad uče Srpski jezik i ne uče Imperfekat. Ali kada pričamo o PreterituNemačkom jeziku, onda je situacija drugačija. PreteritNemačkom jeziku se pre svega koristi u pisanoj komunikaciji poput novinarski članaka gde se desila neka radnja u prošlosti, zatim bajkama i starim spisima. Međutim, nemojte se začuditi da ljudi i na ulici nemačkog govornog područja koriste Preterit.


( Preterit se u Nemačkoj negde govori više od perfekta a negde se skoro uopšte ne govori. )

To isključivo zavisi od geografske lokacije nemačkog govornog područja. Postoje mesta u Nemačkoj gde ljudi čak više govore Preterit od Perfekta ali postoje i lokacije gde se skoro Preterit i ne upotrebljava. Isto tako, tačno je da Nemci kao narod više vole da koriste Perfekat, prošlo vreme nego Preterit, ali sa druge strane lakše je koristiti Preterit jer je prosto vreme i jednostavan. Naravno, najviše se koristi prilikom gradnje Pluskvamperfekta, davnoprošlog vremena i zbog toga poznavanje Preterita pomoćnih glagola je od suštinskog značaja. Opet moj savet vam je da dobro naučite Preterit, da možete da razumete kad čitate novine ali kada pričate potrudite se da za prošlo svršeno vreme koristite Perfekat, prošlo vreme. Mi ćemo se u narednim postovima baviti Perfektom i Pluskvamperfektom, ali trenutno najbolje da se maksimalno koncentrišete na PreteritNemačkom jeziku. Jedna dobra vest je da se Preterit jednostavno gradi posebno ako već poznajete Prezent, sadašnje vreme u Nemačkom jeziku.

Kako se gradi Preterit u Nemačkom jeziku?