KAZALO
|
Zap. št. |
Naslov |
|
1. |
UVOD |
|
2. |
PROJEKT COLOS |
|
3. |
OPIS PROGAMA XDEV IN DELOVNEGA OKOLJA |
|
3.1. |
Delovno okolje |
|
3.2. |
Pregled ukazov |
|
4. |
PREDSTAVITEV IZDELAVE SIMULACIJE POŠEVNEGA META |
|
4.1. |
Nekaj osnovnih elementov pri delu z Xdevom |
|
4.2. |
Izdelava programa poševni met po korakih |
|
4.3. |
Podrobnejši opis posameznih korakov |
|
4.3.1. |
Izdelava osnovnega okna - lupine |
|
4.3.2. |
Izdelava delovne površine in vnos objektov |
|
4.3.3. |
Določitev "atributov" - lasnosti posameznih objektov |
|
5. |
LITERATURA |
1. UVOD
Velikokrat se sprašujemo, kako motivirati učence pri pouku fizike oziroma kako narediti pouk čim privlačnejši. Srečujemo se tudi s primeri, ko določenega problema ali eksperimenta ne moremo nazorno pokazati, saj bi bilo to prezahtevno, nevarno ali pa nemogoče. Teh primerov je ogromno. Na
štejmo jih nekaj: poševni met na drugih planetih, skrčenje dolžine pri hitrosti blizu svetlobne hitrosti, gibanje planetov okoli sonca, cepitev jeder, itn.Ena izmed mnogih dobrih rešitev, ki bodo prav gotovo zanimive tudi v prihodnje, je računalniška simulacija posameznih primerov oziroma eksperimentov. S primernim programom in opremo lahko naredimo prave “umetnine” in pritegnemo veliko število učencev in s tem naredimo pouk fizike zelo zanimiv.
Za izvajanje teh računalniških simulacij potrebujemo zmogljivo računalniško strojno opremo, potrebujemo tudi programsko opremo in nenazadnje potrebujemo kar precej znanja, da lahko naredimo simulacijo najenostavnejšega eksperimenta. Tu pa se največkrat zalomi, saj veliko učiteljev ne utegne ali ne zmore pripraviti zanimivih simulacij in eksperimentov ravno zaradi prezahtevnosti.
V nadaljevanju bom predstavil enega izmed projektov - proj
ekt COLOS, v sklopu katerega sem tudi sam raziskoval področje novih metod učenja in poučevanja pri pouku fizike. Menim, da zelo dobro zapolnjuje vrzel na področju simulacij pri pouku fizike.Opisal bom zelo enostaven primer izdelave simulacije pri pouku f
izike in sicer poševni met. S pomočjo tega zelo enostavnega primera simulacije lahko brez večjih težav prične programirati in izdelovati simulacije vsakdo – tudi tisti, ki se prvič srečuje s programiranjem.
Pričetek združenja COLOS (konceptualno učenje znanja) sega v leto 1988. Na začetku so bili člani združenja znanstveno raziskovalne skupine univerz iz zahodne Evrope.
Glavni in osnovni cilj tega združenja je pospeševati ter koordinirati razvoj metod dela (poučevanja) ter tako izboljšati kvaliteto ra
zumevanja osnovnih pojmov v naravoslovju s posebnim poudarkom na intuitivnosti in kvaliteti poskusov.Leta 1988 si je skupina projekta COLOS pridobila podporo ene izmed največjih računalniških hiš na svetu, družbe Hawlett - Packard. Danes dela na tem projektu deset skupin iz sedmih evropskih držav z enako strojno in programsko opremo. Tako poskušajo kar čim bolje izkoristiti moderno delovno postajo za razvoj novih didaktičnih pripomočkov ter metod.
Vsaka skupina se je specializira za eno področje. Do sedaj so se skupine odločile za naslednja področja:
Znotraj vsake panoge namenjajo posebno pozornost:
Aplikacije in programi, ki jih razvijajo so namenjeni predvsem za pomoč učiteljem - profesorjem pri njihovem poučevanju - kot že pripravljene simulacije, ki jih je treba samo predvajati ali pa kot pisanje programskih kod z osnovnim znanjem
programiranja.Do sedaj je na razpolago že veliko programskih orodij za posamezna področja.
To so ui2c, wintree, Xdev, Xdevcc, cgitools....
V nadaljevanju bom podrobneje opisal programski paket Xdev.
3. OPIS PROGAMA XDEV IN DELOVNEGA
OKOLJA
3.1 DELOVNO OKOLJE
Delovno okolje programa Xdev so X-windowsi. Ti so nekako najprimernejši za operacijski UNIX. V primerjavi z Win31, Win95 imajo kar nekaj prednosti. Največja je ta, da je lahko naenkrat odprto veliko število oken - "konzol" in programov znotraj posameznega okna, ki lahko hkrati (paralelno) tečejo v posameznih oknih, kar pa je seveda tudi prednost operacijskega sistema UNIX in delovne postaje.
Za osnovo uporablja Xdev programski jezik C. Če torej želimo delati v Xdevu, je priporočljivo poznat
i osnove programskega jezika C. Samo programiranje pa je veliko enostavnejše, saj je programiranje v Xdevu tako imenovano OBJEKTNO programiranje.To pomeni, da imamo že pripravljene knjižnice z objekti. Naša naloga pa je, da te objekte vnesemo v naše osnovno okolje in potem vsakemu objektu predpišemo ime ter njegove lasnosti. Tak način programiranja je zelo enostaven in lahko hitro naredimo zelo lepe simulacije raznih gibanj idr.
To je bistvena prednost Xdeva pred ostalimi programi kot so Pascal, Basic..
.. Pri teh programih izgubimo veliko časa s tem, da narišemo objekte ter jim določimo njihovo funkcijo.
3.2. PREGLED UKAZOV
Ob zagonu programa XDev se nam pokaže okno, ki ga prikazuje slika (levo). Vse skupaj deluje zelo podobno, kot smo tega vajeni v običajnih oknih (Windows 3.x, Windows 95). To okno namreč vsebuje "menijsko" vrstico ter ostale gumbke za povečanje, pomanjšanje okna itd., kar je značilno za vse programe, ki so napisani za delovanje v oknih - v našem primeru X-oknih (X-Windows). Za na
s je najpomembnejša "menijska" vrstica, v kateri se skrivajo vsi čari XDev-a.Ta "menijska" vrstica ima naslednje "menije":
File
V tem "meniju" so "podmeniji", ki služijo za nalaganje in shranjevanje izdelanih programov na disk, za nalaganje in shranjevanje našega najboljšega izgleda XDev-a (v bistvu gre za okna, ki jih želimo imeti odprta takoj ob zagonu programa XDev ter njihovo lokacijo in velikost na ekranu) ter za brisanje ekrana in za končanje programa.
Run
V "podmenijih", ki
so skriti pod "menijem" Run, lahko kontroliramo izvajanje programa, ki je že izdelan v okolju XDev. Ko program naložimo na delovno površino, moramo "klikniti z miško" na opcijo "Continuous" in "Loop on", da z njo zaključimo "inicializacijo" programa. Z opcijo "Continous in Loop on" pa poženemo program. Na mesto opcije Loop on lahko uporabimo v izdelanem programu gumb Start, za katerim se skriva Loop on, tako da ta postopek ni nujno potreben, vendar pa vedno deluje.V tem "meniju" se skriva še opcija Gener
ate, ki ustvari samostojno aplikacijo programa. To pomeni, da našega izdelanega programa ne potrebujemo več nalagati v okolje XDev, pač pa ga lahko poženemo kar iz X-oken.Windows
Za nas najpomembnejši (za izdelavo programov) pa so "podmeniji", ki jih n
ajdemo v "meniju" Windows. Le-ti se uporabljajo za to, da so posamezna okna aktivna * (vklopljena - vidimo jih na ekranu in jih tudi lahko uporabljamo). Vsako okno ima svoj pomen in po pomenu so razvrščena tudi v tem "meniju":
* Priloga1:
Vsa možna okna v "meniju" Windows razen okna Output vidimo aktivna na tej sliki (levo zgoraj osnovno okno XDev-a ter pod njo okno Variables, desno Init Code, skrajno desno Siinbu, ob njem spodaj levo Callback in skrajno levo spodaj še Loop
).
Help
Zadnji "meni" Help služi za pomoč k uporabi programa XDev in vseh njegovih opcij. Ta pomoč je napisana v angleščini, kar je lahko ovira pri iskanju odgovora na določen problem.
4. PREDSTAVITEV IZDELAVE SIMULACIJE
POŠEVNEGA META
4.1. NEKAJ OSNOVNIH ELEMENTOV PRI DELU Z XDEVom
Program Xdev (s katerim sva delala z Dušanom Klemenčičem) je nameščen - "instaliran" na Tehnični fakulteti v Mariboru. Za osnovo potrebuje operacijski sistem UNIX. Ta operacijski sistem ima veliko prednosti pred operacijskim sistemom DOS. Glavna prednost je ta, da se lahko hkrati izvaja več programov. To pomeni, da lahko delujejo paralelno, neodvisno drug od drugega, kar seveda v DOS okolju nikakor ni možno. Težava je le v tem, da zasede operacijski sistem UN
IX velik del trdega diska. Zato potrebuje delovno postajo.Še ena bistvena prednost operacijskega sistema UNIX pred DOSom je v tem, da lahko naenkrat dela na njem veliko število uporabnikov. Seveda pa morajo biti le - ti povezani oziroma priključeni na mrežo. To pomeni, da lahko na delovni postaji, ki je v Mariboru dela naenkrat veliko število študentov iz vse Slovenije ali celo iz tujine. Vsak mora le biti prijavljen na mrežo in imeti mora operacijski sistem Linux, kar pa je nekakšna prirejena verzija U
NIXa za osebne računalnike PC (je bistveno krajši od UNIXa). Tako sva delala tudi midva.Kot sem že omenil, je eden izmed predpogojev za delo povezava v mrežo. To pomeni, da smo priključeni oziroma povezani prek vodnika (z optičnim kablom) z delovno postajo. Ko pa smo enkrat povezani v mrežo pomeni, da se lahko sprehajamo tudi po vseh delovnih postajah širom sveta, ki so povezane v mrežo. Mrežni sistem dela nam omogoča tudi dopisovanje, pogovarjanje, dobivanje slik, programov itd., ki so na posameznih d
elovnih postajah. Za dostop do omrežja potrebujemo le vstopno točko, kar v mojem primeru ni predstavljalo težav, saj sem imel dostop kar na fakulteti.Skratka - povežemo se lahko s komerkoli širom celega sveta, ki je priključen na mrežni sistem, V Evropi obstaja nekaj večjih sistemov, kot so Internet, Adrianet...
Tudi v Sloveniji obstaja tendenca razvoja v tej smeri. Ena izmed boljših rešitev za učitelje in učence bi lahko bila naslednja.
V Mariboru ali Ljubljani bi bila delovna postaja, ki bi bila namenje
na za pouk fizike na osnovnih in srednjih šolah (za celo Slovenijo). Na tej delovni postaji bi bili razni programi kot so Xdev, XYZ idr., ki bi bili na razpolago vsem učiteljem. Pripravljene bi bile tudi knjižnice simulacij, za različne eksperimente. Učitelj bi se na pouk pripravil tako (poleg lastne priprave), da bi pogledal kateri eksperiment (ki ga ni mogoče izvesti v učilnici) želi učencem pokazat. Ko bi bil pri pouku, bi bila njegova naloga le ta, da se prijavi na mrežo in požene simulacijo, ki bi bila že v bazi oziroma knjižnici (le - to bi si predhodno pogledal). Tako bi v hipu lahko pokazal vse na začetku naštete simulacije in še mnoge druge, za učence pa bi bilo to vsekakor privlačnejše kot suhoparno govorjenje in razlaganje. Rezultat bi bil zagotovo zelo dober tako za učitelja kot za učence. Če pa želi učitelj sam sprogramirati kakšen program, potrebuje veliko več časa in seveda tudi znanje programskega jezika. To pa je v velikem številu primerov šibka točka.Moja naloga je bila, da izdelam enostav
en primer simulacije pri pouku fizike, ki bo lahko služil v pomoč vsem, ki se prvič srečujejo s programiranjem v Xdev-u.Pri tem sem upošteval, da je možno spreminjati začetno hitrost, kot, pod katerim iztstrelimo kroglico, ter gravitacijski pospešek. Kot, pod katerim izstrelimo kroglico je možno spreminjati od 0 do 90 stopinj. Komponenti začetne hitrosti se tako avtomatsko spreminjata po velikosti.
Poleg tega je obstajajo ² ukazni gumbi²
, s katerimi lahko poženemo simulacijo, jo ustavimo na določenem mestu ter popolnoma ustavimo. V vsakem trenutku lahko tudi vidimo komponente hitrosti, čas ter pot in višino, na kateri se nahaja kroglica. Ko je kroglica v najvišji legi se nam na ekranu izpišejo vsi podatki, ki ostanejo vidni do konca simulacije. Skratka možno je nastaviti ter odčitati vse pomembne parametre.4.2. IZDELAVA PROGRAMA POŠEVNI MET PO KORAKIH
Oglejmo si izdelavo programa poševni met po korakih. Najprej bom prikazal načrtovanje programa poševni met v štirih osnovnih korakih, potem pa bom podrobneje opisal posamezne korake ob pomoči konkretnega primera.
1. korak
IZDELAVA OSNOVNEGA OKNA - LUPINE
2. korak
IZDELAVA DELOVNE POVRŠINE IN VNOS OBJEKTOV - GUMBI, ŽOGICA...
3. korak
DOLOČITEV LASTNOSTI POSAMEZNIM OBJEKTOM
ZAKLJUČEK
4.3. PODROBNEJŠI OPIS POSAMEZNIH KORAKOV
4.3.1. IZDELAVA OSNOVNEGA OKNA - LUPINE
Prvi korak pri izdelavi katerega koli programa je izdelava okna, ki ga bo naš program zasedal v X-oknih, ko ga bomo v tem okolju zagnali. To lahko naredimo na več načinov. Eden izmed načinov je ta, da odpremo enega od številnih primerov (File - Load - ...) in ga preoblikujemo tako, da bo zadostoval zamislim o našem programu in ga na koncu shranimo (File - Save - ...) pod ime našega programa. Tak način sicer krši avtorske pravice tistega, ki je ta program naredil prvi, vendar so primeri v XDev-u namenjeni prav temu, tako da ne rabimo imeti slabe vesti (razen, če na naloženem programu vidimo, da si avtor programčka lasti avtorske pravice). Tak način je priporočen zato, ker imamo že v nekaj potezah preoblikovanja osnovo za naš programček. V nadaljevanju bom podrobneje opisal drugi način, kjer vse kreiramo sami (zgodi se lahko namreč, da nobeden od primerov ne ustreza našim zahtevam in smo prisiljeni vse narediti sami).
V ta namen odpremo v "meniju" Windows okno Siinbu (na sliki). To okno je razdeljeno v dva dela, zato vsebuje dve "menijski" vrstici, kot je razvidno tudi
iz slike. V prvem delu (zgornji del) imamo opisane lastnosti izbranega objekta (objekt, ki ga kliknemo, je izbran). Te lastnosti so: ime, družina iz katere objekt izhaja, pozicija na ekranu v x in y smeri, višina in širina objekta ter vir. Z "meniji" v tem delu lahko pridemo do določevanja tudi drugih lastnosti objekta, kot so naslov, barva podlage, barva izpisov, orinetacija... (na naši sliki ni bil izbran noben objekt, zato tudi ni izpisanih nobenih vrednosti, pač pa so vrednosti prazne). Izbira objekta ne pomeni da lahko izberemo katerikoli objekt, in se bodo izpisale njegove lastnosti, temveč tiste objekte, ki jih naredimo v XDev-u (X-objekti).V drugem (spodnjem) delu vidimo, kateri so ti x-objekti. To so razni gumbi, različnih oblik, okvirji za izpis teksta, drsniki itd. Na razpolago je še več objektov, do njih pridemo preko "menijev" v drugem delu (žogice, puščice, ...).
In kako sedaj s Siinbu-jem ustvariti osnovo - izgled programa?
Najprej v Siinbu-ju kliknemo rdeči gumbek, kjer piše XShell. To pomeni, da bomo ustvarili lupino programa, kar je osnova vsakega nadaljnjega dela. Ko smo kliknili na rdeči gumbek, smo programu povedali da želimo ustvariti lupino, zato nas program čaka, da bomo z miško kliknili nekje na ekranu in nato z miško potegnili te
r s tem določili velikost in lego lupine. Ta procedura je enaka pri vnosu in oblikovanju vsakega objekta, ki ga najdemo v Siinbu-ju. Natančneje lahko velikost in pozicijo, ime in barvo ipd. objekta določimo še kasneje s pomočjo zgornjega dela Siinbu-ja.
4.3.2. IZDELAVA DELOVNE POVRŠINE IN VNOS OBJEKTOV
Ko že imamo lupino - osnovno okno, moramo v njo vnesti še t.i. BulletinBoard. Ta določa, kolikšno površino od lupine bomo uporabljali za naš program. Ker nimamo razloga, da bi kakšen del naše lupine pustili za izvajanje drugih programčkov, potegnemo naš BulletinBoard kar čez vso lupino (Shell). Postopek je podoben, kot pri izdelavi osnovnega okna. Tako imamo sedaj pripravljene "temelje", na katere bomo končno pričeli vnašati preostale objekte (gumbe, drsnik
e...), ki so neposredno vezani na naš program. Vsak korak, ki ga naredimo (vnašanje objektov, določanje lastnosti...) XDev vpiše v posebno datoteko, ki ima končnico All, ime pa ji določimo sami.Poglejmo si del te datoteke, ko imamo vnešenih že nekaj objek
tov:|
XShell TestCase2 : width 1058, height 515, lupina title "Bouncing Ball", x 10, y 20, background "#71C69E79FFFF"; XWidget XmBulletinBoard TestCase2.form : background "Black", marginWidth 0, marginHeight 0, x 0, y 0, width 1020, height 507; XWidget XmPushButton form.start : labelString "START", x 12, y 106, width 47, height 25; XWidget XmLabel form.ball : x 199, y 500, labelType "PIXMAP", labelPixmap "/usr/local/colos/ EXAMPLES/XDEV/ DATA/bigGreenBall.xpm.Z", marginWidth 0, marginHeight 0, background "Green"; XWidget XmSeparator form.Separator_1 : orientation "VERTICAL", height 513, width 5, x 196, y 1; XWidget XmPushButton form.button_7 : x 9, y 51, width 180, height 22, background "Green", labelString " Andrej FLOGIE"; XWidget XmPushButton form.POSPESI : x 133, y 108, width 60, height 25, background "Gray100", labelString "POSPESI";
|
Tako dobimo naš model prog
rama, kot ga vidimo na spodnji sliki. Treba mu je le še vdahniti življenje, kar pa običajno predstavlja najtežji del v procesu izdelave programa v XDev-u.
Osnovno okno programa, ki sem ga izdelal kot enostavni primer simulacije poševnega meta, je
razdeljeno na dva dela, in sicer levi – menijski ter desni – v katerem teče vizualna simulacija.Levi del pa je še razdeljen na štiri dele. V zgornjem delu so osnovni podatki o avtorju… V drugem delu so ukazni gumbi, s pomočjo katerih sprožimo in prekinemo simulacijo. V tretjem delu pa se nahajajo ukazni gumbi. Z njimi lahko nastavimo parametre, ki so potrebni in pomembni pri poševnem metu. To so začetna hitrost, kot pod katerim bomo izstrelili kroglico ter gravitacijski pospešek.
V spodnjem (zadnjem) del
u pa lahko spremljamo podatke, ki se nam sproti izpisujejo na določenih mestih. Vseskozi lahko opazujemo komponente hitrosti, pot, višino ter čas. To pomeni, da lahko v vsakem trenutku odčitamo velikost vektorja hitrosti, dolžino in višino stanja kroglice.V desnem predelu osnovnega okna pa lahko opazujemo let kroglice ter velikosti komponent hitrosti. Poleg tega se nam v najvišji legi in pri dometu kroglice v posebnem oknu izpišejo vsi pomembni podatki.
4.3.3. DOLOČITEV "ATRIBUTOV" - LASTNOSTI POSAMEZNIH
OBJEKTOV
VNOS SPREMENLJIVK
In kako vdahniti življenje našemu programu? Za to je potrebno kar nekaj programerske spretnosti. Kot prvo je treba predvideti, katere spremenljivke bomo potrebovali skozi celoten program (globalne spremenljivke). Te lahko tudi naknadno vnesemo oz. dodamo. Obenem jim lahko določimo kar začetne vrednosti. To delamo v posebnem oknu, ki ga odpremo v "meniju" Windows - Variables (to okno vidimo na sliki).
Spremenljivko vnesemo enostavno tako, da jo vpišemo v vnosno polje imenovano Add.
Najprej navedemo obliko spremenljivke (številka, črka ...), nato njeno ime ter po možnosti še njeno začetno vrednost. Spremenljivke so definirane tako, kot v programskem jeziku C. Celo število označimo z int, realno s float, tekst s char (dodamo še dolžino teksta ali pa tudi ne) itd. Za naš program sem predvidel naslednje spremenljivke:
|
int Width, Height; float v0 = 72.0; double kot = 3.141593/4; float g = 9.81; char textŠ255]; float t=0.0; float d,h; float t1, t2; int ch = 0; float v = 0.0; float vx = 0.0; float vy = 0.0; float v0x = 0.0; float v0y = 0.0; float x = 0.0; float y = 0.0; int x1 = 0; int y1 = 0; int ch1=1; int n = 10; int ch2 = 0; int ch3 = 0; int vy1; int vx1; |
Spremenljivke je smiselno poimenovati tako, da že iz samega imena takoj razpoznamo, čemu je ta spremenljivka namenjena. Tako je spremenljivka v0 namenjena za začetno hitrost, ki je nastavljena na začetno vrednost 72 m/s, kot je namenjen za kot, pod katerim žogo mečemo (pozor: enote so v radianih in jih je zato treba pretvarjati). Začetna vrednost kota je nastavljena na 45 stopinj. Začetna vrednost težnega pospeška g je nastavljena na vrednost dejanskega težnega pospeška na Zemlji. Ob nadaljnem pregledu spremenljivk boste razpoznali morda še nekaj pomenov spremenljivk (d...dolžina meta, h... višina meta...), nekaj spremenljivk pa potrebujemo, da shranimo vmesne vrednosti. Te spremenljivke za samo razumevanje programa niso tako pomembne in imajo običajno tako ime, da ji po imenu težko prisodimo namen. |
VNOS PROGRAMSKE KODE
Naslednja stopnja pri izdelavi programa je izpolnjevanje okna Init Code. V to okno vnesemo programsko kodo, ki ima pomen vedno le na začetku, ko program inicializiramo (postavimo začetne vrednosti, da lahko zaživi). V nadaljevanju programa se ta del ne izvede več. Sam izgled tega okna vidite na tej sliki (priloga2).
Zelo dobra stran tega okna je v tem, da lahko programsko kodo testiramo korakoma (vsaka vrstica kode se izvede postopoma). Učinke, ki jih ima koda na program, lahko tako postopoma opazujemo in tako na enostaven način odkrijemo, če je v kodi kakšna napaka ali da koda ni napisana tako, kot smo želeli. Sama koda ima obliko programskega jezika C, ki so mu dodani še X-ukazi. Tisti, ki le nekoliko obvladate C jezik, vam programiranj
e v XDev-u ne sme predstavljati težav. Tako kot v jeziku C lahko tudi tu vpisujemo komentarje, ki nam naredijo programsko kodo razumljivejšo, tako da na začetku komentarja damo znak #.Pa si poglejmo nekaj kode našega programa
Poševni met v oknu Init Code (celotno kodo najdete na koncu diplomske seminarske naloge):
VNOS ATRIBUTOV POŠEVNEGA META - "SRCE" PROGRAMA
Sedaj ko imamo
že vse pripravljeno za pričetek delovanja programa, mu je treba vstaviti še "srce", ki bo skrbelo, da bo program vseskozi deloval in nekaj tudi počel. To naredimo s pomočjo okna Loop, ki ga najdemo prav tako v "meniju" Windows. Videz tega okna je dokaj podoben prejšnjemu oknu Init Code z nekaj razlikami (kot vidimo na sliki). To okno nima npr. možnosti, da bi kodo kontrolirali po korakih, ima pa eno vnosno polje, ki ga okno Init Code nima.To je polje za vnos, v katerega vnesemo številko, ki pove, na koli
ko časa naj program ponovno izvede kodo od začetka. V tem je tudi pomen tega okna, namreč da se ves čas delovanja programa ta koda izvaja neprenehoma (kot srce). Pa si poglejmo še, kako ta koda izgleda v našem primeru Poševnega meta!|
x = x+1; vx = v0*cos(kot); t = x/vx; y = v0*sin(kot)*t-g*t*t/2; v = sqrt(v0*v0-2*g*(v0*sin(kot)*t-g*t*t/2)); vy = v0*sin(kot)-g*t; t2 = 2*v0*sin(kot)/g; t1 = t2/2; sprintf(text,"v=%.1f m/s",v); XSetVal oknoHT : labelString text; sprintf(text,"vx=%.1f m/s",vx); XSetVal oknoHXT : labelString text;
x1 = (int) x; y1 = (int) y; if (x1>=Width-210) š ch1=0; XUnmanage ball; } if (ch1=1) š XSetVal ball: x x1+199,y Height-y1-15; }
|
V Loop-u se celoten poševni met izra čunava, spreminja se lega žoge in s tem se izvaja simulacija poševnega meta (žoga se premika), izpisujejo se vrednosti, ki se v tem delu izračunavajo in nam posredujejo podatke o trenutnem stanju. V tem delu se torej največ dogaja, zato je programska koda tudi težje razumljiva. Večinoma se uporabljajo ukazi programskega jezika C, nekaj je pa tudi X-ukazov. Vse je pač odvisno od potrebe in od želja, kaj vse naj bi program delal in kako naj bi to prikazoval.Bistvo našega programa je v tem, da ob zagonu pro grama Loop povečuje vrednosti spremenljivki x, ki hkrati predstavlja položaj žoge v smeri x-osi. Glede na spreminjanje te vrednosti, se spreminjajo tudi ostale, predvsem vrednost na y-osi in hitrost, ...Te vrednosti se morajo pokoravati enačbam za poševn i met.V tem delu poskrbimo tudi za to, da se vrednosti sproti izpisujejo na ekranu - na ustreznih labelah. Včasih moramo vrednostim spremeniti tudi lastnost (realno število spremeniti v celo število), saj nekateri ukazi ne želijo operirati z določenimi tipi števil, ki nastanejo pri izračunavanjih. Poleg tega moramo paziti tudi na to, da nam žoga ne pobegne, ali da bi se začela odbijati od robov okna namenjenega našemu programu - saj v naravi takega primera ni, da bi se žoga začela odbijati samo zato, ker gledamo skozi ožja očala... Opazimo lahko tudi dva X-ukaza: Xunmanage in XSetVall. Prvi poskrbi, da postane objekt neviden našemu očesu, drugi pa objektu prireja določene vrednosti. |
DOLOČITEV LASNOSTI POSAMEZNIH UKAZNIH GUMBOV
Program je skorajda že končan, manjka le še nekaj malenkosti. In sicer gumbi, ki smo jih kreirali še ne delujejo. Izkaže se, da imamo pri odpravljanju teh malenkosti običajno tudi zelo veliko dela. Gumbom " vdahnemo" življenje v oknu Callback.
To okno vklopimo v "meniju" Windows in je prav tako podobno oknu Init Code, morda celo bolj oknu Loop. Od okna Loop se razlikuje po tem, da ima dva vnosna polja in en gumbek, ki pa je zelo pomemben. 
Ko se odločimo oživeti enega od doslej nefunkcionalnih gumbov, kliknemo na ta gumb imenovan Widget (objekt). Takoj opazimo, da je miška spremenila obliko. Na ta način nam poskuša program XDev povedati, da čaka na nas, da bomo izbrali nek objekt - gumb in nanj s to spremenjeno obliko miške kliknili. Ko to storimo, se v polje poleg tega gumba tak
oj vpiše ime gumba in predlagan vzrok (Reason). Da se gumb aktivira, je namreč potreben neki vzrok, običajno klik na ta gumb. Pod temi vnosnimi polji je prostor, kamor vpišemo, kaj naj se zgodi, ko kliknemo na ta gumb.Najenostavnejši je primer gumba Quit (
Konec). Ta gumb ima običajno funkcijo prekinitve izvajanja programa. Da se to tudi zgodi, moramo vpisati le ukaz Xquit 1 in program se konča. Za ostale gumbe je programska koda veliko bolj zapletena, saj je tudi njihov namen veliko bolj zapleten. Kakšne aktivnosti lahko določamo gumbom? Skoraj vse, odvisno od vaše sposobnosti programiranja. Primere si oglejte kar na mestu, kjer je izpisan celotni program.S tem smo naš program tudi dokončali in če nismo naredili preveč tipkarskih napak, bi moral program pravilno delovati. Seveda pa je velikokrat tako, da program pri prvem zagonu nikoli ne deluje pravilno in je teba veliko potrpežljivosti in iznajdljivosti pri odkrivanju napak (vsaj pri meni je tako). Glavno pa je, da človek pri tem ne obupa.
Na koncu je treba odpraviti vse napake, ki so se nam prikradle v program. Prav tako je treba pregledati zunanji videz programa. Sedaj je primeren trenutek, da popravimo in prilagodimo še nekatere barve, velikost pisave...
Skratka potrebna je "lepotna dekoracija" programa.
5. LITERATURA:
- Colos Group Murcia: XDev - The Manual (Francisco Esquembre), Murcia,
Februar 1994 (ENG)