of Computer Engineering Prince of Songkla University HatYai, Songkhla 90112 E-mail: dandrew@ratree.psu.ac.th Draft: 14th January 2003, #2 Abstract This article looks at the advantages and disadvantages of using Java and Java 3D for games programming. It assumes the reader is familiar with Java, but presents short overviews of gaming, the low-level APIs OpenGL and DirectX, and Java 3D. No programming examples are included here, although links to online code are supplied. 1. Background to Gaming Giving a definition for `computer game' is problematic, due to the wide range of game types. For example, the ArcadePod site (http:www.arcadePod.com) divides its hundreds of Java games into more than ten categories: 3D games, multiplayer, action, clas...
Milles seisneb static typing ja dynamic typing erinevus? Static- Muutuja tüüpi on teada kompileerimise ajal ning seda muuta ei saa. See vähendab vigade hulka programmi töö ajal. Dynamic – Muutuja tüüp selgub programmi töö ajal. 2. Milliseid piiranguid seavad nähtavusele proteced ja package-private (default) nähtavused? Public – nähtav kõigile Package private- nähtav paketi sees Private – nähtav klassi sees Protected – nähtav paketi sees ja alamklassidele 3. Mis on Oracle Java virtuaalmasina (JVM) nimi? Kes ei tea, kukub ainest läbi :) JRE Java Runtime Environment – java programmi käivitamiseks JDK – Java Development Kit - arendusvahend java programmi arendamiseks 4. Tüübiteisendus - milleks vajalik, kuidas kasutatakse? Fruit a = new Apple(); Alamtüüp. Deklareeritud tüüp -- Loodud tüüp.Millist tüüpi deklareerida? - Eelistada alati üldisemat tüüpi Alamtüüpi objekti same alati kasutada ülemtüübina(implicit casting). Apple b = new Apple(); Fruit c =b; Vastupidine tegevus nõuab selget teisendust(explicit casting) Allateisendus: Muudate objekti tüüpi kui teil on teada, et mingi (laiemat) tüüpi objekt on tegelikult kitsamat tüüpi. Fruit a = new Apple(); JVM loob objekti ja unustab ,et see loodi Apple´st Deklareerime, et a on Fruit tüüpi. Kui soovime a-d uuesti Apple-na kasutada, peame tegema allateisenduse: Apple d = (Apple) a; 5. Olgu antud suvaline objekt. Millist tüüpi...
loengutesti kordamisküsimused kevad 2015 1. Kas erind (exception) on objekt? Spetsiaalne Throwable-tüüpi objekt vigade haldamiseks Javas . Oskame ette näha olukordi, kus programm ei pruugi käituda soovitult Võib-olla suudame programmi töö taastada Informeerime kasutajat veast viisakal moel try { new Item(8); } catch (Exception e) { System.out.print(e.getMessage()); } Lisaks võimalik finally osa – täidetakse alati kui programm ellu jääb Exception ex = New Exception(„Viga”) : tavaline uue objekti loomine konstruktorile anname String-tüüpi argumendi „Viga” catch (SomeException e) : püütakse kinni SomeException-tüüpi objekt, mida saab kasutada nime „e” abil 2. Mis vahe on kontrollitud (checked) ja kontrollimata (unchecked) erinditel? Checked exceptions – kontrollitud erindid: Informeerivad kasutajat olukordadest, kus normaalse töö taastamine on võimalik, Kasutaja peab nendega tegelema! Kontrollime alati kas erind tekitati .. Kui jah, siis töötleme se...
Javas nimetatakse alamprogramme meetoditeks (tulenevalt selle keele objektorienteeritusest) ning meetodid on rühmitatud klasside kaupa. Meetodid võivad olla kas programmeerija enda poolt loodud või Javasse sisse ehitatud (nn. API meetodid, mille kirjelduse leiab Java dokumentatsioonist). Sõltumata sellest, kust meetod pärineb, võib see olla kas klassi- või isendimeetod. Klassimeetod (class method) , mida Javas kirjeldab võtmesõna static, on kasutatav n.ö. "igas olukorras", s.t. ei ole vajalik objektorienteeritud paradigma järgimine (esialgu püüame oma kursuses läbi ajada klassimeetoditega). Täpsemalt öeldes - klassimeetodi poole pöördumiseks ei ole vajalik objekti olemasolu. Klassimeetodi poole pöördumiseks kirjutatakse reeglina: Klassi_nimi . meetodi_nimi ( faktilised_parameetrid ); Kui meetod on defineeritud joo...
0 2011a) See on juhend kiireks Java õppimiseks, esialgsete teadmiste omandamiseks. Näited teen eclipse'iga. Koostanud Alex. Email: alex45555@hotmail.com. Tänud Roelile, kes leidis kirja- ja muid näpuvigasid ning tegi huvitavaid soovitusi manuaali redigeerimiseks/täiendamiseks! I. Valmistumine programmi kirjutamiseks. Alustame kõige lihtsamast asjast ehk põhimõttest. Programm koosneb pakettidest. Pakett koosneb klassidest, millest üks on alati main class, mis jooksutab teisi klasse. Main klassi all mõtlen ma seda, et meil on üks suvalise nimega klass, mis hoiab endas staatilist main nimega funktsiooni (sellest veidi hiljem). Klassid on selleks, et hoida erinevaid programmi osi eraldi. Näitena võib tuua maja. Maja puhul on klassideks näiteks sein, aken, uks, katus, vundament jne. Maja elamiskõlblikuks muutumiseks on vaja Main klassi. Klassid koosnevad funktsioonidest....
aastast Sun Microsystems poolt arendatav ja 23. mail 1995 avalikustatud objektorienteeritud programmeerimiskeel. Esialgselt oli uue programmeerimiskeele nimetuseks Oak ja seda loodi koduelektroonika tarbeks, kuid hiljem nimetati see ümber Javaks ja seda hakati kasutama rakendite (aplettide) (ingl applet), rakenduste (application) ja servertarkvara loomiseks. Põhivõimalused · eriolukordade töötlemise laiendatud võimalused; · sisend/väljund filtrimisvahendite lai kogum; · sisseehitatud lihtsad klassid (massiiv, loetelu, stack jms); · võrgurakenduste loomise lihtsate vahendite olemasolu; · http-päringute ja vastuste loomise klasside olemasolu; · Sisseehitadud keelevahendid mitmelõimeliste rakenduste loomiseks; · unifitseeritud ligipääs JDBC- ja SQLJ-põhistele andmebaasidele ·...
The problem – Video rental store For a video rental store we want to create a system for managing the rental administration. We want three primary functions. Have an inventory of films Calculate the price for rentals Keep track of the customers “bonus” points Price The price of rentals is based type of film rented and how many days the film is rented for. The customers say when renting for how many days they want to rent for and pay up front. If the film is returned late, then rent for the extra days is charged when returning. The store has three types of films. New releases – Price is PREMIUM_PRICE times number of days rented. Regular films – Price is BASIC_PRICE for the fist 3 days and then BASIC_PRICE times the number of days over 3 Old film - Price is BASIC_PRICE for the...
util.Arrays java.util.Collections 0 0 0 0 0 0 32000 17195 9866 44 119 75 64000 28165 16630 26 240 83 250000 128000 57457 31086 53 342 61 256000 206955 44794 121 180 110 JAVA Sorting Algorithms Time (ms) 5000 200000 4500 Time (ms) 4000...
strDist("catcowcat", "cat") → 9 return func(str, sub).length(); } private String func(String str, String sub) { int strlen = str.length(); int sublen = sub.length(); if (str.equals("")) return str; if (str.startsWith(sub)) { if (str.substring(strlen-sublen, strlen).equals(sub)) return str; else return func(str.substring(0, strlen-1), sub);} else return func(str.substring(1), sub); 15. Find the longest word in string public static void str(String s){ String[] wordsArray=s.split(" "); int maxsize=0; String maxWord=""; for(int i=0; i < wordsArray.length; i++) { if(wordsArray[i].length()>maxsize) { maxWord=wordsArray[i]; maxsize=wordsArray[i].length();} } JavaFX 1. Draws straight lines public class SeparateJoon extends Application { static int count = 0; class MyHandler implements EventHandler<MouseEvent> { @Override public void handle(MouseEvent arg0) { }} public static void main(String[] args) { launch(args);} @Override public void start(Stage primaryStage) throws Exception { BorderPane root = new BorderPane(); Scene scene = new Scene(root, 500, 500); final Polyline poly = new Polyline(); primaryStage.setScene(scene); primaryStage.show(); final Pane main = new Pane(); root.setCenter(main); Polygon polygon = new Polygon(); polygon.getPoints().addAll(new Double[]{ 250.0, 200.0, 200.0, 300.0, 300.0, 3...
november 2009 Henri Jeret 10 c Programmeerimisest rääkides ja sellega tegeledes peab saama lahti üldarvamusest, et arvuti on tark. Tegelikult on arvuti võrdlemisi rumal ning oskamatu. Ta küll oskab väga täpselt käsku täita, kuid seda tehes ta ei toetu enda tarkustele. Arvuti teeb vaid seda, mida programmerija on talle ette kirjutanud. Kui töödates tekib olukord, mille lahendamiseks pole talle mingeid käske antud, siis jookseb ta kokku või kuvab vastava veateate kujul: ,,Tundmatutel põhjustel...". Erinevaid programmeerimise keeli on kokku umbes 627. Selle all mõtlen peaaegu kõiki arvuti keeli. Mõned populaarsemad keeled: 1. Java Java tuli ametlikult välja aastal 1995. Autor on James Gosling. Javal on nii mõndagi ühist C ja C++ keelega, kuna ta tugineb neil keeltel. Kuigi Java on hetkel kõige populaarsem keel, on tema populaarsus viimase seitsme aasta jooksum umbes 7% vähenenud. 2...
o protsessor (CPU) - juhtseade (CU), aritmeetikaseade (ALU), registrid, taimer, ... o põhimälu - muutmälu (RAM), püsimälu (ROM), ülekirjutatav püsimälu, ... o adresseerimine - bitt, bait, sõna, aadress, aadressruum, ... k - kilo (10^3), M - mega (10^6), G - giga (10^9), T - tera (10^12), P - peta (10^15), E - eksa (10^18), Z - zeta (10^21), Y - jota (10^24) o siinid - andmesiin, aadress-siin, juhtsiin, ... o välisseadmed - välismälu, sisend/väljundseadmed, kontrollerid, ... · Programmi täitmine arvutis: o masinkäsud - protsessori käsustik o operandid, aadresside moodustamine o andmete kujutamine madaltasemel: täisarvud, ujupunktarvud, sümbolid ja stringid (sõned), ... o käskude täitmist...
Turingi masin 1937 Universaalne masin suudab arvutada/järeldada kõike Turingi tees: kõike mida saab üldse mingi masinaga järeldada/arvutada, saab ka Turingi masinaga arvutada Parmenides (5 saj. e.m.a) kasutas pikki loogilisi põhjendusi. Zenon Elast (5 saj e.ma) paradoksid Sofistid-Sokrates (470-399 e.m.a), Platon (428/427 - 348/347e.m.a) Aristoteles: väidete struktuur kui iseseisev uurimisobjekt Süllogismi näited:1eeldus:iga koer on imetaja, 2eeldus mõned neljajalgsed on koerad, järeldus: mõned neljajalgsed on imetajad. Süllogism on väitlus, kus mingitest etteantud väidetest järeldub paratamatult uus väide. Aristotelese puhul alati kaks kategoorilist eeldust, üks kategooriline järeldus Stoikud uurisid, kuidas saab loogiliste sidesõnade (ja, ei, või, kui ...siis)abil lihtsamatest lausetest keerulisemaid kokku panna ja kuidas näidata selliselt moodustatud lausete õigsust. Ramon Llull 1235- 1315 müstik Peateos Ars magna, generalis et ultima; Leonardo da Vinci c...
Error on selline, mille puhul kasutajal pole midagi teha (paneb programmi töö seisma), aga exception on selline asi, mille puhul kasutaja saab parandada, nt kui ta on sisestanud numbri asemel tähe vms. Programmikoodi saab panna try+catchi sisse ja sees kasutada throw exceptioneid, milled siis catch kinni peab püüdma (kõigi exceptionitega ei pea tegelema, nt runtimeexception...). Kui ise exceptioneid kasutada, siis panna exceptioniks mitte lihtsalt exception, sest see on kõigi exceptionite ema, vaid mõni täpsem madalama klassi exception. Kõrgema klassi exception püüab kinni ka kõik madalama taseme exceptionid. Saab ise teha madalamate tasemete exceptioneid, sel juhul nad peavad extendima mõnda kõrgema taseme exceptionit. Spetsiifilisemad exceptionid peab catchima eespool, muidu kui üldisem catchitakse juba ära, siis spetsiifilisemat enam käima ei panda. I/O wrapper...
abiks.pri.ee TAHKISED Tahkiseks nim sellist ainet, millel on kristallstruktuur Amfoteerseks nim selliseid tahkeid aineid, millel puudub kristallstruktuur (neil on vedelikele sarnane omadus voolata, neil puudub sulamistemp) Monokristalliks nim ainet siis, kui tahkises aines paiknevad molekulid kindla korra järgi üle terve ainekoguse Polükristallil koosneb ainekogus paljudest erinevalt orienteeritud monokristallidest (metallid) Anisotroopiamolekulide korrapärase paigutuse korral sõltuvad aine omadused suunast (iga molekul on järgmisest võrdsel kaugusel) Isotroopiamolekulide mittekorrapärase paigutuse korral aine omadused keskeltläbi suunast ei sõltu Kristallitüübid(4): 1.ioonkristallides valitsevad tõmbejõud positiivsete ja negatiivsete ioonide vahel (keedusoolNaCl) 2.aatomkristallides tekivad tõmbejõud tänu ühistele elektronpaaridele (teemant)...
Loodusjõud on midagi, mille vastu inimene on täiesti võimetu. On seda olnud aegade alguses saadik ja on siiani. Inimesel on maailmas palju võimalusi surma saada. Enamusi varjante aga annaks head ja puhast elu elades vältida. Kui sa ei osale liikluskeeristes, ei sõdi, ei suitseta jne on võimalus surra just läbi loodusõnnetuste, mille alla kuuluvad ka tsunaamid. Tänu tehnika tohutule arengule 20 saj. On tänapäeval võimalik mingilgi määral ennetada ette katastroofe ja läbi selle ohvreid vähendada. Küll aga näitab vastupidist eelmise aasta lõpus Taimaal toimunud suur katastroof mis oli läbi aegade ühe suurima ohvrite arvuga. Selle põhjustas maavärina tagajärjel tekkinud hiidlaine ehk tsunami. See oli ka üks põhjusi, miks valisin oma teemaks just tsunamid. Kui üks asi on nii võimas, et suudab maailmama muuta ja panna keskenduma aint ühele asjale, hakkab huvitama, et mis seda sis põhjustab, mis jõud selle kõige t...
TALLINNA TEHNIKAÜLIKOOL INFORMAATIKAINSTITUUT Ekspertsüsteem erialase spetsialiseerumise valimiseks Projekt / iseseisev töö aines 'Ekspertsüsteemid projekt' (IDX5702) Koostaja: Eero Ringmäe Õpperühm: LAP62 Matrikli nr: 010636 Esitatud: .................. Juhendaja: Jaak Tepandi TALLINN 2004 Sisukord Sisukord................................................................................................................. 2 1. Sissejuhatus........................................................................................................4 1.1 Lähteolukord ja ülesande püstitus................................................................ 4 1.2...
TALLINNA TEHNIKAÜLIKOOL Informaatikainstituut Infosüsteemide õppetool Iseseisev töö aines 'Infosüsteemide projekteerimine': Kino infosüsteemi strateegilise arenduse dokumentatsioon Teostajad: Indrek Kempi (001546) Pärtel Lias (010617) Eero Ringmäe (010636) Õpperühmad: LAP51 ja LAP 52 Juhendaja: Lea Elmik Tallinn 2003 Autorideklaratsioon: Kinnit...
TALLINNA TEHNIKAÜLIKOOL Informaatikainstituut Infosüsteemide õppetool Projekt aines "Objektorienteeritud disain" MOBIILTELEFONI TARKVARA Üliõpilane: Martti Remmelgas 010635 Eero Ringmäe 010636 Pärtel Lias 010617 Õpperühm: LAP 61 & LAP 62 Juhendaja: Ants Torim Tallinn 2004 Autorideklaratsioon Deklareerin, et käesolev projekt on minu töö tulemus ja seda ei ole kellegi teise poolt varem esitatud. ........................ ........................... (kuupäev)...
Arvutivõrgu IP datagram. UDP ja TCP UDP protokoll UDP (User Datagram Protocol) on ühenduseta edastusega transpordikihi protokoll, mida kasutavad näiteks DNS, NFS v2 ja Talk. Ühenduseta edastus tähendab seda, et kliendi masinast saadetakse UDP datagrammi sisaldav IP pakett serverisse ning server saab sellele paketile vastuse saata. Filtreerimise seisukohalt on oluline UDP datagrammi päises olev lähte-ja sihtport. Ühenduseta andmevahetus toimub üksikuid pakette vahetades. Kui klient otsustab saata järgmise UDP datagrammi, siis selle lähteport ei pruugi olla sama mis eelmisel samasse sihtkohta saadetud datagrammil. UDP protokollile on iseloomulik, et protokollikihis ei toimu andmevahetuse õnnestumise kontrolli. Selle eest peab hoolitsema rakenduskiht. UDP datagrammi sisaldavate IP pakettide filtreerimise muudab keeruliseks see, et UDP protokoll ei võimalda eristada kliendi poolt saadetud paketile vastuseks tulevat paketti sellisest paketist, mi...
static int bar1(int n,int m) { int x; if (n <= 0) x = m; else x = (n+m)*bar1(n-1,m); return x;} static int bar2(int n, int m) { int x=0; if (n <= 0) x = m; else for (int i = 0; i < n + m; i++) { x = x + bar2(n-1,m);} return x;} ______________________________________ public class Male { public static void main(String[] args) { JFrame frame = new MaleFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400);frame.setVisible(true); } } class MaleFrame extends JFrame { MaleFrame frame; JPanel toppanel; JPanel buttonpanel; DrawPanel drawpanel;int nupp = 0; MaleFrame() { toppanel = new Jpanel(); buttonpanel = new JPanel(); drawpanel = new DrawPanel(); JButton button = new JButton("Vajuta!"); buttonpanel.add(button); toppanel.setLayout(new BorderLayout()); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { nupp = 1; drawpanel.repaint(); } } ); toppanel.add(BorderLayout.SO...