36
АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected] Предмети: Увод у објектно програмирање Алгоритми и структуре података др Милован Миливојевић страна 1 36 Блок 2-P Algoritmi Strukture podataka Uvod u OOP др Милован Миливојевић

Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 1 oд 36

Блок 2-P Algoritmi ● Strukture podataka ●

Uvod u OOP

др Милован Миливојевић

Page 2: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 2 oд 36

VAŽNO

• Materijal u ovom Bloku predstavlja kompilaciju materije iz referenci [1] i [2];

• Materija je namenjena samo za internu upotrebu za studente I i II godine - studijskog programa Informacione tehnologije, Akademije zapadna Srbija ● odsek Užice, kao pomoć u pripremi i savladavanju materije vezane za: Algoritme, Strukture podataka i Uvod u objektno programiranje;

• Pri korišćenju ovog teksta za druge namene OBAVEZNO je referenciranje na originalnu literaturu.

Preporučena literatura:

1.

Microsoft Visual C# 2012 korak po korak

Autor: John Sharp

Izdavač: CET Beograd, Srbija Godina izdavanja: 2013.

2.

Microsoft Visual C# Step by Step, Ninth Edition

John Sharp

Izdavač: Published with the authorization of Microsoft Corporation by: Pearson Education, Inc. Copyright © 2018 by Pearson Education, Inc.

3.

Exam Ref 70-483: Programming in C#

Wouter de Kort

Published with the authorization of Microsoft Corporation by: O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, California 95472 /// Copyright © 2013 by O'Reilly Media, Inc.

4.

Osnove dizajna i analize algoritama

Autor(i): Dejan Živković

Godina izdavanja: 2007.

5.

Algoritmi i strukture podataka

Autor: Milo Tomašević

Izdavač: Mikroknjiga Beograd, Srbija Godina izdavanja: 2008.

6.

Algoritmi i strukture podataka

Autor: Dragan Urošević

Izdavač: Računarski fakultet Beograd (RAF) / CET Beograd, Srbija Godina izdavanja: 2018.

7.

Rešeni zadaci iz programskog jezika C# (drugo izdanje)

Autor: Laslo Klaus

Izdavač: Akademska Misao Beograd, Srbija Godina izdanja: 2018.

Page 3: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 3 oд 36

Sadržaj 2. BLOKA

• Korišćenje Microsoft Visual Studio 2019 programskog okruženja.

• Kreirenje jedostavne C# konzolne aplikacije.

• Objašnjenje i svrha imenovanih prostora (namespaces).

• Kreiranje jednostavne grafičke aplikacije u C#.

Namena:

Microsoft Visual C# je Microsof-ov moćni komponentno-orjentisani jezik sa značajnom ulogom u arhitekturi Microsoft.NET Framework-a (slično ulozi koji je jezik C imao za razvoj UNIX-a).

Namenjena za razvoj OOP aplikacija u Microsoft.NET okruženju.

Nasleđuje najbolje osobine jezika C++ i Visual Basic.

Istorija:

2001. god. pojava jezika C# 1.0.

2005. god. C# 2.0 sa sledećim osobinama:

• generički koncept

• iteratori

• anonimne metode.

2008. kao deo Microsoft Visual Studija javlja se C# 3.0 sa osobinama:

• ekstenzione metode

• lambda izrazi

• upit sa integrisanim jezikom – LINQ (Language Integrated Query)

2010. god, pojavio se C# 4.0 sa osobinama:

• međuoperativnost sa drugim jezicima i tehnologijama

• imenovani i opcioni argumenti

• tip dynamic

• uklopljen u razvoj .NET verzija koje obezbeđuju Biblioteke paralelnih zadataka – TPL (Task Parallel Library) što je osnova za bolje iskorišćenje jezgara sa više procesora.

C# 5.0 dodaje osnovnu podršku za asihnronu obradu zadataka (modifikatori metoda: async i await).

C# 6.0 je dodatno poboljšanje unapreženo u pravcu lakšeg razvoja aplikacija. Uključuje:

• string interpolacije

• način implementacije svojstava (properties),

• expression-bodied metode itd.

C# 7.0 dodaje dalja unapređenja u kontekstu produktivnosti. Na primer:

• implementira property accessors kao expression-bodied članove,

• metode mogu vratiti višestruke vrednosti u tuples formi (n-torke),

• korišćenje out parameters je uprošćeno, i

• switch iskaz je proširen za podršku pattern-a i type-matching ...

Page 4: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 4 oд 36

Windows 10 je ključna platforma za razvoj aplikacija u C#, ali nova verzija omogućava da se aplikacije razvijene u C# pokreću i na drugim operativim sistemima (na primer Linux-u), koristeći .NET Core runtime.

Takođe, Windows 10 obezbeđuje razvoj aplikacija koje su visoko interaktivne i koje omogućavaju dobru saradnju sa sevisima koji su u cloud-u.

Ključno za Windows 10 je unapređenje sa UWP (Universal Windows Platform) aplikacijama dizajniranim da rade na bilo kom Windows 10 uređaju (desktop računarima, laptop-ovima, tabletima ili čak na IoT uređajima).

Kada se savlada jezgo C# -a, onda je veoma bitno da razvijene aplikacije mogu migrirati na višeplatformsko okruženje.

Pored mogućnost razvoja aplikacija koje funkcionišu u cloud-u, dalja inspiracija za Windows 10 je razvoj aplikacija koje se mogu aktivirati glasom (Cortana - digitalni asistent u Windows-u 10, upravljan glasom).

Uprkos složenosti koja je uobičajeno vezana za analizu govornog prirodnog jezika (NLP - Natural Language Processing), omogućena je laka saradnja korisnički aplikacija sa Cortana zahtevima;

Takođe, the cloud je postao važan element u arhitekturi mnogih sistema - počev od skalabilnih poslovnih aplikacija do mobilnih aplikacija koji rade na portable uređajima - pa je i u ovom kontekstu napravljen proboj kombinacije Windows 10 i C#-a.

Dobitna kombinacija:

Visual Studio 2019 i .NET Framework version 4.6.1., Windows 10 i jezik C# 7.0 za razvoj aplikacija naredne generacije.

Mogući opcioni razvoj (ADO.NET; ASP.NET; Azure, Windows Communication Foundation; Workflow foundation... razvoj poslovnih i globalnih aplikacija...!).

Sistemski zahtevi:

Software:

Windows 10 (Home, Professional, Education, ili Enterprise).

Visual Studio Community 2017, Visual Studio Professional 2017, ili Visual Studio Enterprise 2017. (ili Visual Studio Community 2019)

Kao minimum pri instalaciji bi trebalo selektovati sledeće:

• Universal Windows Platform development

• .NET desktop development

• ASP.NET and web development

• Azure development

• Data storage and processing

• .NET Core cross-platform development

Page 5: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 5 oд 36

Većina programa koji su dati kao primer se može razviti u Visual Studio Community 2017.

Hardware (minimum):

• Računar sa procesorom 1.8 GHz ili bržim (dual-core ili boljim)

• 4 GB RAM (8 GB RAM i više preporučeno)

• 10 GB raspoloživog prostora na hard disk-u posle instalacije Visual Studio-a)

• 5400 RPM hard-disk drive (SSD preporučeno)

• Video karta koja podržava 1024 × 768 ili veću rezoluciju

• Internet konekcija

Uvod u razvojno okruženje. Početak programiranja u C#.

Početni koraci u kreiranju aplikacija.

• Aplikacije: Konzolne / Console Application /, WPF (Windows Presentation Foundation)... kreiranje aplikacija sa podesivim formama koje nisu pravougaonog oblika itd..., Grafičke aplikacije / Windows Forms Application /...

o Konzolne aplikacije su aplikacije koje rade u komandnom promptu (Command Prompt window) bez grafičkog interface-a (GUI).

o IDE - Integrated Development Environment - Integrisano programsko okruženje.

Napomena: Svi elementi su dati za razvojno okruženje Visual Studio 2019 (slika 2.1).

Slika 2.1. Uvodni prozor / otvaranje postojećeg / kreiranje novog projekta ...

• Create new project / za kreiranje novog projekta. Dobija se ekran prikazan na slici 2.2

Potrebno je odabrati tip aplikacije koja se želi razvijati (konzolna aplikacija, aplikacija sa Widows formama itd.) Visual studio će pokrenuti potrebne optimalne resurse (biblioteke, klase, sklopove...)

Page 6: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 6 oд 36

Slika 2.2. Izbor tipa aplikacije / primer: konzolne aplikacije ...

Slika 2.3. Izbor tipa aplikacije / primer: konzolne aplikacije (Console App(.NET Framework)...

(.NET Core template se može koristiti za izgradnju portable applikacija koje se takođe mogu pokretati na ostalim operativnim sistemima, kao što je Linux... Međutim, .NET Core aplikacije ne prekrivaju sve karakteristike koje su raspoložive u .NET Framework okruženju).

Page 7: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 7 oд 36

Slika 2.4. Kreiranje novog projekta

Razjasniti: Project Name, Location, Solution Name, Create directory for solution, .Net Framework 4.7.2

• Različiti alati i dijaloški prozori u integrisanom razvojnom okruženju - IDE (Integrated Development Environment) imaju svoj podrazumevani interfejs za odabranio jezik i tip aplikacije koju korisnik želi razviti.

• Pomoću komandnog dugmeta Create, prema slici 2.4, kreira se konzolna aplikacija AISPprimer1 u direktorijumu E:\AKADEMIJA ZS2020\AISPPrimeri\ .

Primer ekrana sa interface-om dat je na slici 2.5.

• U okviru vitičastih zagrada metode Main (slika 2.5), uneti iskaz:

Console.WriteLine(”Pozdrav studentima”);

Page 8: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 8 oд 36

Slika 2.5. Primer konzolne aplikacije ● Interface

Sledi opis interface-a:

• prozor Code and Text Editor

• pojam: Project

• Okvir Solution Explorer

• Datoteka Program.cs definiše klasu zvanu Program. Klasa Program sadrži metodu Main.

• U C# svi izvršni kodovi moraju se nalaziti u nekoj metodi. Metode moraju pripadati nekoj klasi.

• Metoda Main je ulazna tačka programa. Ova metoda mora biti definisana u klasi Program kao statička. Pojam statički će biti kasnije objašnjen.

Menu bar

Tool bar

Code and Text

editor window

Page 9: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 9 oд 36

Objašnjenja Solution Explorer-a:

Jedan Solution može imati više projekata.

Solution Explorer pored ostalih stavki prikazuje i imena fajlova/datoteka koje su u vezi sa projektom (slika 2.6):

• Solution (AISPprimer1) je datoteka rešenja najvišeg nivoa. Ona organizuje projekte, ukoliko u okviru jednog rešenja postoji više projekata. Stvarno ime datoteke je AISPprimer1.sln

• AISPprimer1 je datoteka projekta. Ona upućuje na jednu ili više datoteka koje sadrže kod programa, grafiku itd. Ime fajla je AISPprimer1.csproj

• Properties folder sadrži datoteku AssemblyInfo.cs kojoj se mogu dodati atributi kao što je ime autora, datum kada je program pisan, napomene itd. U okviru ove datoteke mogu se definisati parametri za način pokretanja programa.

• References sadrži reference ka bibliotekama kompajliranog koda koji aplikacija/ program koji se kreira može da koristi. U radnom okruženju .NET takve biblioteke se zovu sklopovi (assemblies). Pikazuje se podrazumevani skup referenci. To su one koje se najčešće koriste. Dakle, možemo da kreiramo korisne programe, kompajliramo ih, spakujemo u biblioteke i dozvolimo drugim programerima da ih koriste.

• App.config jkjk

• Program.cs je izvorna C# datoteka i prikazana je u prozoru Code and Text editor.

Slika 2.6. Solution Explorer

• Jezik C# je osetljiv na mala i velika slova // Case sensitive.

• Takođe, jezik C# je InetelliSense: (Primer: ako se kuca Cons.... // pojaviće se lista IntelliSense....) (slika 2.7).

Page 10: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 10 oд 36

Slika 2.7. Jezik C# je intelliSense ● Primer: aktiviranje metoda klase Console

Console je klasa koja je već definisana i koju su obezbedile biblioteke i sklopovi pri aktiviranju okruženja za razvoj konzolne aplikacije. Kroz klasu Console obezbeđene su metode za prikazivanje poruka na ekranu ili čitanje ulaznih podataka sa tastature.

Analizirati kako se ponaša koncept IntelliSense kada se kuca Console slovo po slovo... Analizirati i ukazati na poruke u Tooltip-u.

Ikone Značenje

Kada se kuca tačka posle imena klase, IntelliSense prikazuje imena svih članova te klase.

Levo od imena je ikona koja reprezentuje tip (prirodu) tog člana klase.

Primeri su dati desno:

Metoda (Method)

Svojstvo (Property)

Klasa (Class)

Struktura (Struct)

Enumeracija (Enum)

Proš. Metoda (Extension meth.)

Intefejs (Interface)

Delegat (Delegate)

Događaj (Event)

Imenovani prostor (Namespace)

Page 11: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 11 oд 36

Analizirati:

• Console.Writeline(

Reč je o preopterećenoj metodi klase Console. Metoda Writeline je preopterećena, što znači da postoji više metoda sa istim imenom Writeline ali sa različitim argumentima. Konkretno postoji 19 različitih oblika metode Writeline. Svaka od njih ima određenu namenu... npr... da prikazuje različite vrste podataka.

• Pojmovi KLASA i METODA kao osnovnih pojmova OOP, biće kasnije detanjije tretirani.

• PREPORUKA: Vitičaste zagrade koje definišu tela klasa ili metoda pisati u paru // Steći naviku!!!

{

}.

• Komentari u C# se realizuju preko dve kose crte: //

Ili ako je potrebno komentar ispisati u više redova ... takav pasus trebe da bude označen sa

/* .....sadržaj komentara ...

.....

... */

• Sa funkcijskim tasterom F6 ili sa menija Build Build Soilution se vrši kompajliranje koda (dobijanje *.exe varijante programa).

• U donjoj zoni ekrana može se videti prozor Output koji ukazuje da je prevođenje uspešno izvršeno. Ako ovaj prozor nije vidljiv, on se može prikazati sa menija View Output.

• U okviru vitičastih zagrada metode Main (slika 2.5), ispod već unetog iskaza, uneti iskaz:

Console.WriteLine(”dr Milovan Milivojevic”);

Ovo je prikazano na slici 2.8.

Ukoliko program nije u redu onda će se javiti poruke o greškama u prozoru Error List (Slika 2.8 donja zona).

// Kompajler prijavljuje grešku jer poslednji uneti iskaz nije završen sa ;

Page 12: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 12 oд 36

Slika 2.8. Primer unosa komandi, iskaza. Kompajliranje i prikaz greški u prozoru Error List ●

• Ako se dva puta kliklne na grešku onda nas editor vodi direktno na poziciju greške.

Ispraviti grešku ...

• Program se startuje sa ctrl + F5 ili sa menija Debug Start Without Debugging.

Aplikacija se ivršava u komandnom prozoru (slika 2.9).

Napomena: veličina fonta i boja podloge su podešeni u komandnom prozoru ...

Slika 2.9. Izvršavanje aplikacije u komandnom prozoru ●

Page 13: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 13 oд 36

• Elementi bin i obj javljaju se iznad stavke Program.cs nakon kompajliranja i sadrže izvršnu verziju programa (AISPprimer1.exe) zajedno sa ostalim datotekama korišćenim za gradnju i debagovanje aplikacije (slika 2.10).

Slika 2.10. Prikaz izvršne verzije programa / primer: AISPprimer1.exe ●

Page 14: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 14 oд 36

• U Solution Explorer-u (gore desno) aktivirati ikonu Show All files, da bi se videle sve datoteke (fajlovi) koji su sastavni deo projekta AISPprimer1 (slika 2.11).

Slika 2.11. Prikaz ostalih datoteta (fajlova) projekta: primer - AISPprimer1 ●

Page 15: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 15 oд 36

Upotreba prostora imena (Name Space).

• Delovi programskog koda postaju tokom razvoja aplikacije sve kompleksniji. Zbog toga je veoma bitno da se oni organizuju u klase i metode. Naravno, s vremenom broj klasa i metoda raste i veoma je teško održati konzistentnost u imenima. Problem postaje još komplikovaniji ako više programera radi na jednom projektu.

• Imenovani prostori (Prostori imena) (Name Space) pomažu u razrešavanju ovih problema stvaranjem kontejnera za klase.

• Dve klase mogu imati ista imena ali živeti i u različitim prostorima. One neće biti u sukobu.

• Sam naziv projekta koji se razvija je imenovani prostor najvišeg nivoa.

• U okviru .NET FrameWork-a klase žive u okviru pojedinih imenovaih prostora. Npr. klasa Console živi unutar imenovanog prostora System. Dakle, njeno puno ime je System.Console.

• Ukoliko bi programer morao da stalno da navodi puno ime klase bilo bi to veoma nepraktično.... pa je omogućeno da se koristi direktiva ... using.

Prikaz using direktiva sa slike 2.10, dat je ispod:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

• Direktiva using uključuje navedene imenovane prostore koji sadrže najčešće korišćene klase u okviru Visual Studio okruženja za razvoj konzolnih aplikacija.

• Direktiva using jednostavno dovodi stavke prostora imena u područje važenja i oslobađa programera potrebe da potpuno imenuje klase tokom razvoja koda projekta.

• Klase su sastavljene u sklopove. Sklop (Assembly) je datoteka sa ekstenzijom .dll (biblioteke klasa). Sklop može da ima puno datoteka. Na primer .NET framework biblioteka ima preko hiljadu klasa. Ako bi sve klase bile u istom sklopu onda bi bile teške za održavanje i editovanje. Iz ovog razloga su klase razvrstane u brojne sklopove (najčešće prema funkcionalnosti).

Napomena: Odnos prostor imena : sklop je odnos više:više. Jedan sklop (biblioteka) može sadržati klase definisane za višestruke prostore imena, a jedan prostor imena može obuhvatati višestruke sklopove. Npr. prostor imena System je primenio, između ostalih, sklopove: mscorlib.dll; system.dll; System.Core.dll..

• Šablon koji se odabere za kreiranje aplikacije (npr. Console Application) automatski uključuje reference ka odgovarajućim sklopovima.

Primer za projekat AISPprimer1: Referencirani su sklopovi: Microsoft.Csharp; System.Core; System.Core; System.Data; System.Data.DataSet, System.Net.Http, System.Xml i System.Xml.Linq.

• Program može da doda ili ukloni sklopove po potrebi.

• Dodavanje imenovanih prostora: DTM na fasciklu References.... Add Reference ...

Page 16: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 16 oд 36

GRAFICKE APLIKACIJA U C#

Visual Studio 2019 sadrži sve što je potrebno za kreiranje grafičkih aplikacija za Windows 10.

Obezbeđeni su različiti šabloni.

Razvoj klasične Windows aplikacije sa grafikom startuje sa ekanom prikazanom a slici 2.12., a naredna dva koraka su prikazani na slikama: slika 2.13 i 2.14.

Slika 2.12. Izbor šablona Windows Forms App(.NET Framework) za grafičku aplikaciju●

Windows Forms App. [2]

This is an older graphical library that dates back to the origins of the

.NET Framework.

You can also find this template in the Class Desktop template list in Visual Studio 2017. As its name implies, the Windows Forms library is intended for building more classical forms-based applications using the Graphics Device Interface (GDI) libraries provided with Windows at that time.

While this framework is quick to use, it provides neither

the functionality and scalability of WPF nor the portability of UWP.

Page 17: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 17 oд 36

Slika 2.13. Dodela imena projektu i lokacije (memorisanje) projekta: primer-AISPprimer3 ●

Slika 2.14. Prikaz Design editora za kreiranje obrasca aplikacije: primer - AISPprimer3 ●

Page 18: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 18 oд 36

Postupak kreiranja grafičke aplikacije u template-u Windows Forms App (.NET Framefork)

1. Markirati formu i podesti njena svojstva (dole desno u prozoru Properties) a. (Name): ASSZS b. Text: ASSZS Uzice

2. U ToolBox-u selektovati kontrolni objekat label i „nacrtati” ga mišem na formi (postaviti labelu u gornji levi ugao

3. Selektovati labelu na formi i podesiti njena svojjstva (dole desno u prozoru Properties) a. (Name): lblNaslov

b. Font: c. FontColor: Blue d. Text: Uneti korisnicko ime:

4. U ToolBox-u selektovati kontrolni objekat TextBox i „nacrtati” ga mišem na formi (postaviti obejkat ispod labele)

5. Selektovati TextBox na formi i podesiti njegova svojstva (dole desno u prozoru Properties) a. (Name): txtBoxImeKor b. BackColor: 255,192,128 c. Font: MicroSoft SanSerif 14 pt

6. U ToolBox-u selektovati kontrolni objekat Button i „nacrtati” ga mišem na formi (postaviti objekat desno od TextBox-a)

7. Selektovati komandno dugme na formi i podesiti njegova svojstva (dole desno u prozoru Properties)

a. (Name): btnOK b. Font: MicroSoft SanSerif 14 pt c. ForeColor: 64,0,64 d. Text: OK

Aktivirati aplikaciju sa ctrl+F5.

Nakon kompajliranja, projekat će prikazati formu kao na slici 2.15.

Page 19: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 19 oд 36

Slika 2.15. Prikaz početnog oblika forme u primeru - AISPprimer3 ●

Iako deluje da nema koda koji pokreće ovu aplikaciju. U pozadini je Visual Studio generisao potrebni kod.

Kako taj kod izgleda?

a. Primer: DTM na formu (DTM - desni taster miša) b. Iz pomoćnog menija: View Code ili F7 c. Prikazuje se kod forme

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AISP_B2primer3P { public partial class ASSZU : Form { public ASSZU() { InitializeComponent(); } } }

• Ovaj kod uglavnom sadrži using klauzule i klasu ASSZS koja odgovara odabranom šablonu (template) za solution-u.

• Definisan je i konstruktor klase (metoda istog imena) koja vrši inicijalizaciju komponenti.

Detalji programskog koda koji definišu izgled forme mogu se prikazati na sledeći način:

8. U Solution Explorer-u (gore desno) selektovati Form1.Designer.cs 9. F7 ili DTM pa nakon toga View Code 10. U prozoru za kod „raširiti” pomoću + private void InitializeComponent() ...

Page 20: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 20 oд 36

Dobiće se kompletan kod koji opisuje formu:

namespace AISP_B2primer3P { partial class ASSZU { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.lblNaslov = new System.Windows.Forms.Label(); this.txtBoxImeKor = new System.Windows.Forms.TextBox(); this.btnOK = new System.Windows.Forms.Button(); this.SuspendLayout(); // // lblNaslov // this.lblNaslov.AutoSize = true; this.lblNaslov.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

Page 21: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 21 oд 36

this.lblNaslov.ForeColor = System.Drawing.Color.Blue; this.lblNaslov.Location = new System.Drawing.Point(56, 46); this.lblNaslov.Name = "lblNaslov"; this.lblNaslov.Size = new System.Drawing.Size(178, 24); this.lblNaslov.TabIndex = 0; this.lblNaslov.Text = "Uneti korisnicko ime"; // // txtBoxImeKor // this.txtBoxImeKor.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128))))); this.txtBoxImeKor.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.txtBoxImeKor.Location = new System.Drawing.Point(60, 83); this.txtBoxImeKor.Name = "txtBoxImeKor"; this.txtBoxImeKor.Size = new System.Drawing.Size(208, 29); this.txtBoxImeKor.TabIndex = 1; // // btnOK // this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.btnOK.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); this.btnOK.Location = new System.Drawing.Point(290, 83); this.btnOK.Name = "btnOK"; this.btnOK.Size = new System.Drawing.Size(52, 29); this.btnOK.TabIndex = 2; this.btnOK.Text = "OK"; this.btnOK.UseVisualStyleBackColor = true; // // ASSZU // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(397, 271); this.Controls.Add(this.btnOK); this.Controls.Add(this.txtBoxImeKor); this.Controls.Add(this.lblNaslov); this.Name = "ASSZU"; this.Text = "ASSZS Uzice"; this.ResumeLayout(false); this.PerformLayout(); }

#endregion private System.Windows.Forms.Label lblNaslov; private System.Windows.Forms.TextBox txtBoxImeKor; private System.Windows.Forms.Button btnOK; } }

U programskom kodu se intuitivno mogu prepoznati funkcije, imenovanja i podešavanja svojstava koje su pridružena pojednim kontrolnim objektima na formi: lblNaslov, txtBoxImeKor, btnOK, ASSZS ...

Page 22: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 22 oд 36

Kada se forma aktivira sa F5 (ili ctrl+F5), uočava se da, iako je moguće uneti proizvolja tekst u textBox, komandno dugme OK, nema efekta (jer ne postoji nikakav kod koji daje smisao aplikaciji).

U nastavku se programira događaj koji se pridružuje komandnom dugmetu btnOK.

Klikom na ovo dugme (što predstavlja događaj) program čita sadržaj unetog imena u txtBoxImeKor i prikazuje ga u poruci Message.

Postupak:

1. Prikazati formu u režimu Design 2. 2 x klik na komandno dugme OK 3. U klasu ASSZS pored konstruktora*, Visual Studio je kreirao blok za novu metodu

btnOK_Click

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AISP_B2primer3P { public partial class ASSZU : Form { public ASSZU() { InitializeComponent(); } private void btnOK_Click(object sender, EventArgs e) { } } }

// *pojam konstruktora biće objašnjen kasnije

4. U okviru metode btnOK_Click u okviru vitičastih zagrada dodati programski red:

private void btnOK_Click(object sender, EventArgs e) { MessageBox.Show("POZZZDRAV" + txtBoxImeKor.Text);

}

Page 23: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 23 oд 36

5. Na formu dodati kontolni objekat DateTimePicker 6. Na formu dodati kontrolni objekt: PictureBox i podesiti njena svojstva na:

a. Image: ucitati fotogrfiju Nikole Tesle preko ...

b. SizeMode: Zoom 7. Aktivirati formu sa F5. 8. Dobija se prikaz kao na sledecoj slici 2.16:

a) b)

Slika 2.16. Prikaz aktivirane forme u aplikaciji AISPprimer3 a) DatePicker b) komandno dugme OK●

●●●

Page 24: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 24 oд 36

Razvoj Windows aplikacije sa grafikom na osnovu šablona Universal Windows Platform (UWP), namenjene za bilo koji od uređaja: desktop računara, tableta ili telefona.

Može se dizajnirati korisnički interface (UI) Windows aplikacije, interaktivno. Visual Studio 2019, potom, generiše programske sekvence (linije koda) koje implementiraju taj interface.

Procedura:

• Startuje se sa ekranom koji je prikazan slici 2.17., a naredni koraci su prikazani na slikama: slikama od 2.18 do 2.23.

Slika 2.17. Početni dijalog za kreiranje grafičke aplikacije bazirane na Universal Windows Platform (UWP) šablonu●

Napomena: Kod nedovoljno jakih računarskih konfiguracija kreiranje projekata i Universal Windows Platform (UWP) aplikacija može biti usporeno.

Page 25: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 25 oд 36

Slika 2.18. Izbor operativnog sistema za koji se kreira aplikacija

Slika 2.19. Izbor programskog jezika u kome se kreira aplikacija u Visual Studio okruženju

Page 26: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 26 oд 36

Slika 2.20. Izbor šablona u kome se kreira aplikacija – Blank App(Universal Windows)

Slika 2.21. Dodela imena projektu (AISPprimer2) i izbor lokacije za memorisanje projekta

Page 27: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 27 oд 36

Slika 2.22. Izbor minimale platforme koju će projekat podržati

Po potrebi uključiti: Developer Mode (ako je prvi put startovan ovaj režim)

Slika 2.23. Izgled ekarana pre početka dizajniranja Forme u projektu - aplikaciji

Sledi procedura dizajniranja forme.

Dosta toga je Visual Studio pripremio u pozadini.

Na primer, ako se rašiti MainPage.xaml folder, (desno) uočava se C# fajl pod imenom MainPage.xaml.cs. Ovo je fajl u kome korisik može dodati svoj inicijalni kod za aplikaciju.

Page 28: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 28 oд 36

Postupak:

• 2 x klik na Main Page (desno) (slika 2.24)

Slika 2.24. Izgled ekarana pre početka dizajniranja Forme u projektu - aplikaciji

• Visual Studio 2019 obezbeđuje dva pogleda na grafičke aplikacije: the design view i the code view.

• Koristi se Code and Text Editor prozor za modifikovanje i održavanje programskog koda i programske logike grafičkih aplikacija, kao i Design View prozor za dizajniranje svih grafičkih korisničkih interfejsa (GUI - user interface).

• XAML označava eXtensible Application Markup Language, što je jezik koji Universal Windows Platform aplikacije koriste da definišu layout za GUI same aplikacije .

• U gornjoj zoni je područje za prikaz grafike, a ispod pano u kome je XMAL opisuje tu grafiku.

Napomena: Kod tradicionalnih Windows aplikacija, UI se sastoji od jednog ili više prozora, dok se kod Universal Windows Platform aplikacija odgovarajući objekti definišu kao strane (pages). U ovom tekstu koristiće se termin Forma i Prozor za dizajniranje.

Page 29: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 29 oд 36

• U ToolBox-u (levo) sažeti prikaz svih XAML kontrolnih obejakta (All XAML Controls) i prikazati sve kontrole koje se najčešće koriste u grafičkim aplikacijama (Common XAML Controls);

• U paleti alata (ToolBox) odabrati kontrolu TextBlock i postaviti je („nacrtati mišem”) na formu (slika 2.25);

Slika 2.25. Izgled ekarana pre početka dizajniranja Forme u projektu - aplikaciji

• Po potrebi moguće je ToolBox paletu „dokirati” pomoću „vertikalne čiode” (gore levo /ikonica pored x) ili podesti trajnu vidljivost (2x klik na ToolBox jezičak/karticu sasvim levo na ekranu) ovog skupa alata, što smanjuje prostor za dizajn (slika 2.26).

Page 30: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 30 oд 36

Slika 2.26. paleta sa kontrolnim objektima ToolBox u statusu - dokirana

Opis pozicije kontrole TextBlock dat je u prozoru XAML, gde se mogu uočiti parametri (svojstva) ove kontrole: visine, širine, udaljenosti od ivica, sadržaj teksta...

<TextBlock HorizontalAlignment="Left" Height="91" Margin="164,108,0,0" Text="TextBlock" TextWrapping="Wrap" VerticalAlignment="Top" Width="364"/>

• Selektovati kontrolu TextBlock, a potom u donjem desnom uglu u prozoru Properties podesiti veličinu slova (svojstvo Text) na 60 px (slika 2.27).

• Potom podesiti ispis teksta odnosno uneti: Unesite korisnicko ime (podešavanje Text-a u svostvu Common) / Uneti tekst će se prikazati u oknu za dizajniranje ... (slika 2.28)

Page 31: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 31 oд 36

Slika 2.27. Podešavanje veličine font-a i svostva Text za kontrolni objekat TextBlock

Slika 2.28. Prikaz kontrolnog objekta TextBlock (podešena veličina font-a i svojstvo Text)

Page 32: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 32 oд 36

• Selektovati Formu u oknu za dizajn / 1 x klik van kontrole TextBlock

• Selektovati paletu sa alatima ToolBox, odabrati kontrolu TextBox i postaviti je ispod kontrole TextBlock

• Podesiti velicinu slova na 60 px, a svojstvo Name ovog kontrolnog objekta na korIme (userName)

• Selektovati Formu u oknu za dizajn / 1 x klik van kontrole TextBlock

• Selektovati paletu sa alatima ToolBox, odabrati kontrolu Button i postaviti je desno od kontrole TextBlock

• Podesiti velicinu slova na 60 px, a svojstvo Name ovog kontrolnog objekta na OK i svojstvo Content (u Common), takođe na OK.

Efekti podešavawa vide se u XAML prozoru (slika 29):

Slika 2.29. Prikaz dodatih i podepenih kotrolnih objekata: TextBlock, TextBox i Button (podešavawe svojstava dodatih kontrolnih obejkata vidi se u prozoru XAML)

Nakon ovog moguće je aktivirati grafičku aplikaciju - F5.

Prikaz dobijene Forme dat je na slici 2.30.

Page 33: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 33 oд 36

Slika 2.30. Prikaz generisane Forme sa tri kontrola objekta

• Grafička aplikacija funkcioniše - moguće je uneti tekst u TextBox, i aktivirati komandno dugme OK. Ipak, ne dešava se ništa jer ne postoji programski kod, koji bi procesirao uneti text.

Zašto aplikacija radi iako nije napisana nijedna linija programskog kod-a?

Odgovоr: Pri kreiranju forme, u pozadini, Visual Studio kreira programski kod.

• Prikaz kod-a, može se dobit na više načina: a) 2 x klik na mainPage.xaml ( u Solution Explorer-u) b) Desni taster miša (DTM) na formu u prozoru Design → View Code (iz pomoćnog menija)

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 namespace AISPPrimer2 { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); } } }

Page 34: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 34 oд 36

Pored using klauzuila, vidljiv je samo jedan manji deo koda vezan za klasu MainPage i konstruktor koj poziva metodu za inicijalizaciju komponenti (klase i konstruktori će biti obašnjenji kasnije).

Da bi se Formi dala svrha, dodaje se malo kod-a.

• Selektovati dugme OK u prikazu za projektovanje

• U prozoru Properties (dole desno) selektovati Event Handlers (Rukovatelji događajima)

Svostvo Properties prikazuje listu događaja koji su pridruženi kontrolnom objektu komandno dugme (Button). Događaj (Event) označava neku značajnu akciju koja uobičajeno zahteva reakciju (odgovor) korisnika. Može se napisati sopstveni kod da bi se denisao sadržaj odgovora (to perform this response).

Slika 2.31. Aktiviranje rukovaoca događajem (Evennt Handlers)

• Za događaj Click potrebno je dodati okClick i sa Enter kreirati telo nove metode koja će biti postavljena u klasu MainPage:

public sealed partial class MainPage : Page

{

public MainPage()

{

this.InitializeComponent();

}

private void okClick(object sender, RoutedEventArgs e)

{

}

}

• Potrebno je dodati novu using direktivu posle postojećih using direktiva (iskaza/komadi)

using Windows.UI.Popups;

Page 35: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 35 oд 36

kao i dve komande u telu događaja okClick

private void okClick(object sender, RoutedEventArgs e)

{

MessageDialog msg = new MessageDialog("POZZZDRAV " + korIme.Text);

msg.ShowAsync();

}

• Nakon aktiviranja Forme sa F5, dobija se Forma sa programiranim događajem na komandom dugmetu OK (slika 2.32) :

Slika 2.31. Aktiviranje Forme sa događajem koji aktivira odgovor

Napomeana: Ako se u Visual Studio 2019 pojave talasave zelene linije ispod zadnje unete linije kod-a, reč je nedovoljnoj sinhronizaciji prednosti koje donosi ver. 2019, i ovo upozorenje se može ignorisati.

• Ako se u MainPage.xaml pogleda kod, videće se deo koji odgovara komandnom dugmetu OK

<Button x:Name="OK" Content="OK" Height="98" Margin="898,269,0,0" VerticalAlignment="Top" Width="143" FontSize="40" Click="okClick"/>

Pojačani deo (Click=”okClick”) na komandnom dugmetu OK na formi ukazuje na programirani dogadjaj Click. (može se uočiti da atribut Click referencira metodu okClick method.)

Napomena: Kodiranje događaja i generalno grafičkih aplikacija, detaljije je opisano u kasnijim blokovima nastave.

Page 36: Algoritmi Strukture podataka Uvod u OOP · 2020. 4. 3. · Uvod u OOP др илован ... (NLP - Natural Language Processing), omogućena je laka saradnja korisnički ... • U

АКАДЕМИЈА СТРУКОВНИХ СТУДИЈА ЗАПАДНА СРБИЈА Одсек Ужице 31000 Ужице • Трг Светог Саве 34 www.vpts.edu.rs [email protected]

Предмети: Увод у објектно програмирање Алгоритми и структуре података

др Милован Миливојевић страна 36 oд 36

Other types of graphical applications [2]

Apart from Universal Windows apps, Visual Studio 2017 also lets you create other types of graphical applications.

These applications are intended for specific environments and do not include the adaptability to enable them to run across multiple platforms unchanged.

The other type of graphical applications available include: WPF App.

You can find this template in the list of Windows Classic Desktop templates in Visual Studio 2017.

WPF stands for “Windows Presentation Foundation.” WPF is targeted at applications that run on the Windows desktop, rather than

applications that can adapt to a range of different devices and form factors.

It provides an extremely powerful framework based on vector graphics that enable the user interface to scale smoothly across different screen resolutions.

Many of the key features of WPF are available in UWP applications, although WPF provides additional functionality that is only appropriate for applications running on powerful desktop machines..