X Files Vladimir Stefanovic Pozarevac
SuperModerator Član broj: 15100 Poruke: 4939 *.dynamic.sbb.rs.
|
Evo jedan primer programa za 4 razred gimnazije, prirodno matematickog smera, cisto da se orjentises. Radi se o Delphiju, ali se naravno sve uklapa u BCB. Kada budes procitao videces da su neke stvari zastarele, neke nisu bas najbolje koncipirane ili su nedorecene, a nekih nema (socekti). Naravno RAII, izuzeci, STL, threadovi,...
Ipak, s obzirom da se radi o akademskom kursu, ja bih isao drugacijim konceptom:
* prvih par casova upoznavanje (kao 1. i 2. stavka)
* zatim bih definisao malo veci projekat (neka baza podataka + slanje emailova korisnicima u bazi + oline provera verzije programa) koji bi se resavao "korak po korak" u preostalom vremenu
Evo programa:
1. Programi zasnovani na prozorima (2)
* Osnovne karakteristike programa zasnovanih na prozorima.
* Elementi grafičke korisničke površine (Graphical User Interface).
* Programi rukovođeni događajima (događaji, izvori događaja i rukovaoci događajima).
* Problemi koje rešava Delphi.
Pri realizaciji tematske celine "PROGRAMI ZASNOVANI NA PROZORIMA" objasniti razliku između klasičnih programa koji dijalog sa korisnikom vode u tekstualnom režimu rada, red po red, i savremenih programa kod kojih se komunikacija sa korisnikom obavlja u grafičkom okruženju. Istaći značaj poštovanja specifikacije koju je postavila firma Microsoft pri projektovanju grafičke korisničke površi (lakše snalaženje u programu bez obzira na proizvođača). Učenicima se mogu prikazati neki od njima poznatih programa (Word, Excel i dr.) kako bi uočili šta im je zajedničko u pogledu dizajniranja (File je uvek prvi podmeni u glavnom meniju; funkcionalno povezane komponente su objedinjene u grupe; svaki prozor ima neku centralnu temu; stilska usaglašenost svih prozora i dr.). Posebnu pažnju obratiti na pojam događaj i na načine nastajanja događaja.
2. Uvod u razvojno okruženje Delphi (8)
* Početak rada i upravljanje Delphi-jem.
* Prazan projekat.
* Čuvanje i otvaranje projekta.
* Obrazac i podešavanje njegovih svojstava.
* Dodavanje komponenata obrascu.
* Komponenta u žiži.
* Jednostavne komponente: oznaka (Label), okvir za tekst (Edit), dugme (Button) i časovnik (Timer).
* Svojstva komponenata i njihovo podešavanje.
* Događaji komponenata i rukovaoci događajima.
Pri realizaciji tematske celine "UVOD U RAZVOJNO OKRUŽENJE DELFI" objasniti najvažnije komande za rukovanje Delphi okruženjem. Izloženu materiju uvežbavati na primerima sa nekoliko okvira za tekst za unos podataka, oznaka za prikaz rezultata i dugmadi za pokretanje izračunavanja. Poželjno je da se prvi primeri, dok učenici ne steknu osnovne navike za rad u razvojnom okruženju Delphi, demonstriraju metodom „korak po korak“ tako da učenici mogu detaljno da isprate sve etape u izradi aplikacije. Rukovaoci događajima za dugmad treba da budu jednostavne linijske strukture, jer pri realizaciji ove tematske celine nije akcenat na izradi logički složenih aplikacija. Nastavnik bi trebalo da insistira da se datotekama i objektima (umesto od Delphija ponuđenih imena) daju osmišljena imena koja bliže odslikavaju njihov tip i namenu korišćenjem Mađarske notacije, tj. zadavanje prefiksa u imenu koji ukazuje na tip datoteke ili objekta. Obavezno tražiti da se za novi projekat napravi novi katalog, da zbog navika iz Pascala ne bi došli u situaciju da ne mogu da razaznaju iz kojih se datoteka sastoji neki projekat.
3. Komponente izbora i kontejnerske komponente (10)
* Komponente izbora: okvir za potvrdu (CheckBox), radio-dugme (RadioButton), grupa radio-dugmadi (RadioGroup), okvir s listom (ListBox), kombinovani okvir (ComboBox).
* Kontejnerske komponente: okvir za grupu (GroupBox), ploča (Panel).
* Vizuelno grupisanje komponenata: ram (Bevel).
Pri realizaciji tematske celine "KOMPONENTE IZBORA I KONTEJNERSKE KOMPONENTE" korišćenje obrađenih komponenti uvežbavati programima sa razgranatim strukturama. Uslovi treba da se oslanjaju na stanje potvrđenosti okvira za potvrdu i radio-dugmadi. Za grupisanje logičke celine komponenata koristiti kontejnerske komponente.
4. Komponente za rad s nizovima (6)
* Višeredni okvir za tekst (Memo).
* Mreže podataka (StrigGrid).
* Projektovanje aplikacija korišćenjem jednodimenzionalnih i dvodimenzionalnih nizova.
Pri realizaciji tematske celine "KOMPONENTE ZA RAD S NIZOVIMA" višeredni okvir za tekst može da se koristi za unos i prikaz jednodimenzionalnih nizova: jedan red po podatku, a mreža podataka za dvodimenzionalne nizove.
5. Multimedijalne aplikacije i štampanje (8)
* Platno za crtanje (Canvas).
* Crtanje linija i prostih figura.
* Štampanje crteža i teksta.
* Komponenta za sliku (Image).
* Reprodukcija zvuka i video snimaka (MediaPlayer).
Pri realizaciji tematske celine "MULTIMEDIJALNE APLIKACIJE I ŠTAMPANJE" učenicima pri izradi grafičkih aplikacija skrenuti pažnju da koordinatni sistem platna (Canvas) i svih komponenti, što je standard u Delphiju, ima kao početak gornji levi ugao. Ako im ovakva orijentacija predstavlja problem (zbog navika iz matematike), u početku im se može dati funkcija koja preračunava koordinate zadate pod pretpostavkom da je koordinatni početak donji levi ugao. Istaći značaj preslikavanja prirodnih koordinata (koji su realni brojevi) na celobrojne ekranske pri crtanju matematičkih funkcija, jer ako im se zada da nacrtaju grafik funkcije, na primer y=sin(x), skoro bez izuzetka će meri 1 u Dekartovom koordinatnom sistemu dodeliti jednu tačku (piksel) na ekranu i tako umesto sinusoide dobiti pravu. Takođe, skrenuti pažnju na neophodnost menjanja razmere pri štampanju grafičkih elemenata zbog različitih rezolucija ekrana i štampača (lik koji na ekranu ima normalne dimenzije, na hartiji može izgledati minijaturno).
6. Prozori za dijalog i izrada menija (6)
* Potprogrami za prozore za dijalog (ShowMessage, MessageDlg, InputBox).
* Prozori za dijalog za otvaranje i zatvaranje datoteka (OpenDialog, SaveDialog) i za izbor boje (ColorDialog).
* Izrada menija.
* Komponente glavnog (MainMenu) i pomoćnog menija (PopupMenu).
Pri realizaciji tematske celine "PROZORI ZA DIJALOG I IZRADA MENIJA" istaći razliku između uslovljenih (modal) i neuslovljenih (modeless) prozora za dijalog. Na jednostavnom primeru izložiti kako mogu samostalno napraviti prozore za dijalog. Pri tom ukazati na značaj svojstva Modal Result dugmadi koje preuzima prozor i na osnovu njega preduzima odgovarajuće akcije.
7. Osnovi rada s bazama podataka (10)
* Pojam baze podataka (relaciona baza, tabele, atributi, n-torke).
* Pojam primarnog ključa, stranog ključa i sekundarnog indeksa.
* Integritet baze podataka.
* Tipovi baza podataka (lokalne, klijent/server, distribuirane).
* Organizacija veze s bazama podataka.
* Tehnologija BDE (Borland Database Engine).
* Stvaranje baze podataka korišćenjem programa Database Desktop. Projektovanje aplikacije za rad s bazama podataka korišćenjem čarobnjaka.
Pri realizaciji tematske celine "OSNOVI RADA S BAZAMA PODATKA" potrebno je izložiti teorijske osnove rada sa bazama podataka. Kao ilustracija izloženog materijala može da se napravi jednostavna baza podataka od par tabela korišćenjem Borland Database Engine.
8. Komponente za vezu s bazama podataka (12)
* Komponente za vezu s tabelom baze podataka (Table, DataSource).
* Komponente za prikaz i menjanje podataka u bazi (DBGrid, DBText, DBEdit, DBMemo, DBImage), Filtriranje podataka.
* Navigacija kroz tabelu (DBNa-vigator).
* Obrada tabele iz programa (kretanje po tabeli - First, Last, Next, Prior, Locate, GotoNearest, brisanje zapisa - Delete, umetanje zapisa - Insert).
Pri realizaciji tematske celine "KOMPONENTE ZA VEZU S BAZAMA PODATAKA" skrenuti pažnju na razliku između tabela (Table) baze podataka koje su fizički smeštene na disku i skupa podataka (DataSet) koji omogućava pristup podacima tabela. Istaći da se skup podataka ne može poistovećivati sa tabelom, jer on predstavlja skup slogova formiranih od podataka jedne ili više tabela. Ukazati na grešku koju početnici često prave: zaboravljaju da zatvore skup podataka (Table1.Close) pre nego što pristupe izmeni svojstava DatabaseName i TableName). Učenicima mora biti potpuno razjašnjeno koji su to režimi u kojima se može nalaziti baza podataka (dsInactive, dsBrowse, dsEdit, dsInsert) i njihova svojstva. U protivnom, biće prijavljena greška, na primer, pri pokušaju izmene sloga a da prethodno skup podataka metodom Edit nije doveden u stanje dsEdit. Učenicima skrenuti pažnju da pri pristupu polju tabele moraju voditi računa o njegovom tipu, da se ne bi desilo da se zbog pokušaja pristupa polju tipa string korišćenjem svojstva AsFloat prijavi greška. Pošto učenici obično komponentu DataSource smatraju suvišnom, prirodno postavljaju i pitanje zašto se vizuelne komponente ne bi mogle direktno povezati sa skupom podataka, treba im navesti neke primere prednosti upotrebe ove komponente. Kako ona predstavlja ventil koji vizuelnim komponentama omogućava ili blokira pristup podacima (korišćenjem svojstva Enabled), korisna je kada zbog nekog izračunavanja nad podacima treba privremeno raskinuti vezu da bi se ubrzalo izračunavanje. Ili, ako vizuelne komponente treba da „vuku“ podatke iz neke druge baze iste šeme podataka (prelazak sa jednokorisničke na višekorisničku aplikaciju koja treba da radi na mreži) dovoljno je samo preusmeriti svojstvo DataSet komponente DataSource, umesto da se to radi za svaku vizuelnu komponentu posebno.
|