salec
Član broj: 6527 Poruke: 1738 *.rcub.bg.ac.yu.
|
Idemo redom:
Prvo, pod windowsima bi trebalo da rade svi programi koje si pisao u Quick Basicu, ako u njima nisi koristio naredbe koje se direktno obraćaju hardveru. Pokreneš QBASIC.exe, otvoriće ti se mali prozor sa poznatim ekranom editora, a nadalje znaš sve. Držanjem Alt i pritiskom na Enter, prelaziš u full-screen mode, odnosno sve će da izgleda kao da si u DOS-u.
Struktuirano programiranje si verovatno i koristio svo ovo vreme, ne znajući da se tako zove. Ono znači da je program podeljen u blokove instrukcija koji su zatvorene celine, odnosno ne postoje bezuslovni skokovi (goto) iz bloka u blok, nego se prenošenje izvršavanja izvodi strogo kontrolisano, putem selekcije (if, else, switch) i nekoliko vrsta petlji (for, while, repeat-until). Na taj način se prave kao neki "protivpožarni zidovi" između delova programa, kako bi se smanjila mogućnost greške a i zato da bi se konstruisanje programa moglo izvesti "odozgo na dole", odnosno da bi se kostur programa mogao napisati i isprobati odmah na početku, a detalji dodavati postepeno.
Objektno orijentisano programiranje: Generalno, taj princip "podeli pa vladaj" se pokazao kao jako dobar: kad god je moguće program podeliti na parčiće koji su potpuno nezavisni od drugih delova programa i rade nešto jednostavno što se lako proveri, to olakšava i ubrzava posao. Objektno orijentisano programiranje je produžetak tog rezona: podaci postaju "živi", odnosno njihov opis sadrži spisak (i kod) svih akcija koje će se nad njima moći izvršiti, a samoj vrednosti podatka ne može da se priđe direktno, jer je sakrivena u svojoj "ljusci" (ta osobina se naziva "enkapsulacija") . Nadalje, možeš koristiti te takve opise podataka (koji se zbog tih novih svojih osobina nazivaju "objekti", a njihovi opisi "klase"), da definises neku srodnu vrstu (tj. klasu) podataka (tj. objekata) nešto kao "isti takav, samo sa tim i tim razlikama" . Ta mogućnost se zove "nasleđivanje".
E, to je otprilike sve što ja znam o tome, budući da oko OOP obilazim već neko vreme kao oko vruće kaše a nikako da probam (sem što se trudim da one principe koje mogu, primenim u svojim "ne-objektnim" programima, nadajući se da će mi biti lakše da naučim neke od mogućnosti OO jezika kad budem shvatao u čemu mi one pomažu, odnosno kad se sretnem sa problemima koji se bez tih mogućnosti teško rešavaju), pa bih zato zamolio Dragog Tatu da me ispravi u onome što sam pogrešno napisao ili izostavio.
Osnovna razlika između BASIC-a i VB-a, za migrante, je u tome što je VB naizgled nekako statičan, odnosno nemaš utisak da u se njemu nešto vrti, nemaš neku glavnu petlju programa koja čeka na ulaz, zatim analizira ulaz, pa odluči šta će da uradi i onda kad to izvrši vraća se na početak. Ne, taj deo naravno postoji, ali je skriven, odnosno ugrađen i ti ga ne pišeš i ne utičeš na njega. VB programi su tzv. "event-driven", odnosno ti pišeš parčiće programa koji se aktiviraju kad korisnik nešto učini, klikne mišem na neko dugme, izmeni tekst u nekoj "kutijici" na prozoru programa (tzv. "formi") itd. Sa druge strane, ni akcije koje predstavljaju izlaz programa najčešće nemaju oblik nekakvih izvršnih naredbi, nego su to naredbe dodele: nekakav_tekst_na_nečemu = "Novi tekst" (umesto bukvalnog teksta pod navodnicima, naravno, može da stoji i neka promenljiva tipa string). Print, čini mi se, može da se radi u nešto što se zove Image ili možda PictureBox, ali meni to nije bilo potrebno. Tebi, koji si pisao raznovrsne programe, sa tekstom i grafikom, verovatno će te vrste "kontrola" biti najinteresantnije.
Eto, po meni, to su najveće razlike, od onih sa kojima se prvo susretneš.
VB donekle podržava OOP (mada za nasleđivanje nisam baš siguran...), odnosno sve "kontrole" (dugmići, selekcije, meniji, "kućice" za unos teksta, ispis ili crtanje,... itd.) su objekti. Moguće je konstruisati i neke svoje složene kontrole, na primer kućicu za unos teksta koja dozvoljava upis samo cifara (tako da ne moraš u programu da proveravaš da li je ulazna veličina prihvatljiva) i slično.
|