On-line učionica

3. februara 2019.

Formatirani izlaz i skraćivanje koda

Filed under: C++,Programiranje — jelena100janovic @ 12:36 pm

Već ste verovatno primetili da ove lekcije nisu „klasične“. U smislu da ne sadrže sve potrebne podatke za određenu tematiku programiranja. To je zato što se liste mogućih funkcija, klasa, metoda, itd. mogu „izguglati“. A sve ovo pričam jer ću uskoro da vam ubacim neki link na kome ima gooomila informacija. To nikako ne znači da treba sve to da naučite! Više je referenca gde da potražite odgovor kada u nekom primeru treba da rešite određeni problem.

Formatiranje ispisa

Često nam je potrebno da rezultate nekog programa ispišemo u sređenom obliku, nalik tabeli. To u C++-u nije baš jednostavno. I evo sad tog izvora informacija kako se formatira ispis na ekran u C++-u. Tona informaciija… koja počinje poznatim endl 🙂

Primer

Napisati program koji na standardni izlaz ispisuje vaš nadimak u polju širine šesnaest znakova, a u novom redu vaše ime u polju širine četrnaest karaktera.

Pre nego što napišemo kod, šta mislite, kako će to izgledati?

Koje od silnih rešenja sa linka nam rešava problem? Treba nam širina izlaznog polja… na engleskom field width. Eto ga, skoro na samom početku… funkcija setw(). Obratite pažnju da se te funkcije još nazivaju manipulatori i da se većina nalazi u biblioteci iomanip, koju moramo uključiti na početku programa. Hajde da probamo!

Očigledno sam namestila ove širine polja tako da moje ime izgleda lepo na ekranu. Slobodno promenite brojeve da i vaš ispis deluje lepo 😉

Skraćivanje koda

I ovo je tema kojom smo se već bavili… mogli smo u prethodnom primeru da sve napišemo u jednoj cout naredbi.

Takođe smo već skraćivali kod pri deklaraciji više promenljivih istog tipa:

Kada deklarišemo promenljivu, a odmah zatim joj dodelimo početnu vrednost, i to se može skratiti:

Evo i primera na osnovu koga je C++ dobio ime:

To je bilo uvećavanje za jedan. Slično, imamo smanjivanje za jedan:

Takođe možemo skratiti i uvećavanje za neku drugu vrednost sem jedinice:

Ili bilo koju drugu operaciju:

Programiranje Windows aplikacija

Ovo se u stvari zove istrčavanje u nešto što nije tema ove godine, ali jeste zanimljivo 😉 Sećate se da sam vam pokazala kako izgleda novi projekat za Windows aplikaciju i da smo tada rekli da nećemo odatle početi, jer je to mnogo koda koji ne možete da shvatite. I dalje to mislim, ali ćemo ipak zagrebati po njemu. Dakle, ne mogu vam objasniti sve, čak ni većinu, ali ćemo razjasniti dovoljno da biste mogli da napravite neki elementarni grafički program.

Prvo, za grafičke programe je karakteristično da su interaktivni, odnosno da se njihove akcije pojavljuju kao reakcija na neke događaje (proteklo vreme, klik, pritisak na neki taster, …). Zato su grafički programi nekako „obrnuti“ od klasičnih. U klasičnom programu sam tok programa određuje kada će se šta desiti i glavni program zadaje naredbe koje se izvršavaju. U grafičkom okruženju, na osnovu događaja (event), određeni prozor može zadati naredbu glavnom programu, odnosno poslati mu poruku (message). Takođe, pojaviće se i vrlo čudni tipovi promenljivih. Najvažniji među njima je pokazivač (handle) na neki objekat, koji u stvari predstavlja broj, memorijsku adresu gde je definisan taj objekat – prozor, ikona, dugme i slično. Sve što nam je potrebno za rad sa svim tim Windows objektima se nalazi u biblioteci windows.h koja je uključena na početku programa. Takođe, primetićete i jedan čudan dogovor u programiranju – imena promenljivih počinju istim slovom kao njihov tip. Tako svi pokazivači na objekte počinju sa h, pa ih je lakše prepoznati. Evo sad i dela tog čudnog koda. Ne bojte se, nije tako strašno 🙂

Primetite da sam na ovoj slici sakrila veći deo koda. Pokušaćemo da otprilike objasnimo samo neke elemente onoga što je ostalo.

Kao što konzolna aplikacija ima svoju main() funkciju, tako je kod grafičke aplikacije to funkcija WinMain(), ali ona samo kreira neke promenljive i pokreće prozor i njegove delove, a glavni deo programa izvršavaju događaji, odnosno poruke. Nećemo ulaziti sada u to kako se pravi prozor, jer to je deo koda koji nam je već napisan. Ako biste sada pokrenuli program, dobili biste prazan prozor u kome se ništa ne dešava. Takođe je napisan i deo koda koji upravlja porukama. Naše je, u ovom trenutku, samo da kreiramo poruke i kod koji treba da se izvrši kada se specifični događaj desi. To se piše u funkciji WndProc(), tu negde u petom, šestom redu koda.

Naš prvi grafički program

Nadam se da je tekst u komentarima dovoljan kao objašnjenje. Vi poznajete crtanje na računaru i koordinatni sistem. Znate da je koordinatni početak u gornjem levom uglu, da se x-osa prostire udesno, a y-osa nadole, pa mislim da možete da uradite sledeće zadatke:

Domaći zadatak

  1. Napisati grafički program koji iscrtava krug, sa centrom u sredini prozora, tako da pokriva prozor po visini.
  2. Napisati grafički program koji iscrtava tri koncentrična kruga, sa centrom u sredini prozora, tako da je prvi od ivice do ivice, drugi za trećinu manji, a treći duplo manji od drugog.
  3. Napisati grafički program koji iscrtava tri podudarna kruga horizontalno, jedan do drugog, tako da popunjavaju celu širinu prozora.
Advertisements

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se /  Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se /  Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se /  Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se /  Promeni )

Povezivanje sa %s

Create a free website or blog at WordPress.com.

%d bloggers like this: