Programmeerimine III, Marek Kusmin Teema 0 1

Size: px
Start display at page:

Download "Programmeerimine III, Marek Kusmin Teema 0 1"

Transcription

1 Programmeerimine III, Marek Kusmin Teema 0 1 Teema 0 Objektorienteeritud programmeerimise juured Filosoofiliselt väljendudes on objektorienteeritud programmeerimine (OOP) programmeerimiskontseptsioon, mis on võtnud üle struktuurprogrammeerimise paremad omadused ning kombineerinud neid paljude teiste efektiivsete kontseptsioonidega. Kokkuvõttes annab see võimaluse muuta programmide loomine märksa efektiivsemaks. Muidugi, alati ei pruugi see ka sajaprotsendiliselt nii olla (vt. ka OOP kriitika). Laias laastus võib OOP iseloomustamiseks öelda, et kui kasutada programmeerimisel objektorienteeritud lähenemist, siis kogu programm jaotatakse loogilisteks komponentideks objektideks. Objekt sisaldab temale iseloomulikku komplekti andmeid, mida sageli nimetatakse objekti atribuutideks ja funktsioone nende andmetega manipuleerimiseks. Viimaseid kutsutakse objekti meetoditeks. Hulk objekti meetodeid võib välismaailmale täiesti nähtamatud olla välismaailmal pole vaja teada nende olemasolu. Samuti pole välismaailmal vaja teada, kuidas üks või teine meetod mingid tegevused realiseerib. Selles osas võib objekti võrrelda musta kastiga. Kokkuvõttes on nii võimalik vähendada konkreetse programmi nähtavat keerukust. Kerge irooniaga võib väita, et objektorienteeritus on muutunud programmeerimismaailma moesõnaks peaaegu igaüks räägib sellest ja peaaegu igaüks teeb peaaegu kõike objektorienteeritult. Vähemalt tegija enese sõnade järgi :) Tegelikus programmeerimistöös ei ole mõtet jahtida objektorienteeritust kui niisugust objektorienteerituse kui niisuguse pärast. OOP annab efekti eelkõige suurte ja keeruliste süsteemide loomisel. Kui võrrelda OOP-d vana hea struktuurprogrammeerimisega, siis sageli väljendatakse nende erinevust järgmise lausega: Struktuurprogrammeerimises on primaarsed funktsioonid ja andmed sekundaarsel kohal, objektorienteeritud programmeerimises vastupidi primaarsed on andmed ning funktsioonid nendega toimetamiseks on sekundaarsed. See on üpris täpne tähelepanek, samas ei maksa ka kõike absolutiseerida... Kõikidele objektorienteeritud programmeerimiskeeltele on omased kapseldumine (encapsulation), polümorfism (polymorphism) ja päritavus (inheritance). Lühidalt öeldes on nende mõistete sisu järgmine: 1. Kapseldumine Nagu teada, kõik programmid sisaldavad kahte fundamentaalset osa kood (code), mis teeb ja toimetab midagi ning andmed (data), mida kood töötleb ja modifitseerib. Kapseldumine on mehhanism, mis seob need kaks osa üheks tervikuks ning hoiab mõlemaid ebatervete väliste mõjude eest. Objektorienteeritud keelte puhul on võimalik koodi ja andmete sidumine moel, et tulemuseks on justkui mingi must kast, mille sees on kõik seda tüüpi kasti iseloomustamiseks vajalikud andmed ja ka meetodid (funktsioonid) nende andmetega töötamiseks. Samas ei pea väljaspool kasti asuv vaatleja või kasutaja üldse teadma, mismoodi see andmetöötlus seal kasti sees käib, temale on tähtis vaid (õige) resultaat, musta kasti õige reaktsioon. Selline koodi ja andmete töötav sümbioot ongi objekt. Kui kasutada C++ termineid, siis objekti, tema sisu ja käitumist kirjeldab klass. Objekti sees asuvad andmed kui kood võib olla nii avalik (public) kui privaatne (private). Lisaks eelnimetatutele võib olla ka nn kaitstud (protected) osi. Objekti privaatsed osad on nähtavad ja juurdepääsetavad vaid objekti enese seest, välisilma jaoks on nad nähtamatud ning väljastpoolt on otse nende poole pöördumine võimatu. Avalikud osad on

2 Programmeerimine III, Marek Kusmin Teema 0 2 juurdepääsetavad ka väljastpoolt objekti. Tavapäraselt kasutatakse objekti avalikke meetodeid (avalikku koodi) kontrollitud liidese kaudu objekti privaatsete andmete juurde pääsemiseks, kui nii võib öelda. 2. Polümorfism Nimetus pärineb kreeka keelest ja vabas tõlkes võiks tähendada vormide paljusust. Sisuseletus näite najal kõlaks nii: enam-vähem igal autol on rool ja roolimehhanism. Kuigi see mehhanism võib olla üles ehitatud mitmetel erinevatel viisidel (võimenditavõimendiga, tigu- või lattmehhanismina, kasvõi elektrilise ülekandena jne) on üldiselt sellega manipuleerimise tulemus sama. Ning kui kasutaja on suutnud endale selgeks teha ühe konkreetse roosisüsteemiga hakkamasaamise, siis põhimõtteliselt oskab ta või vähemasti peaks oskama hakkama saada ka kõikide teiste roolisüsteemidega (kui vaid jõud peale hakkab). Analoogiaid võib muidugi tuua ka programmeerimisest: oletame, et programmis on vaja kasutada pinusid (stack) e FILO puhvreid. Oletame veel, et andmeid, mida pinusse või pinudesse tuleb paigutada, on kolme erinevat tüüpi täisarvud, ujukomaarvud ja sümbolid. Algoritm, mis kirjeldab nende andmete pinusse torkamist ja sealt väljaõngitsemist, on ühesugune kõikide andmetüüpide korral, kuid mitteobjektorienteeritud programmeerimiskeelte korral tuleb realiseerida kolm erinevat ja erinevate nimedega pinuga manipuleerimise funktsioonide komplekti, igal neist on siis ka oma liides. Polümorfism annab objektorienteeritud programmeerimiskeeltes võimaluse luua näiteks üks pinu põhikomplekt, mis toimib kõigis neis erinevates situatsioonides. Sageli seletatakse polümorfismi olemus lahti lause üks liides, palju meetodeid kaudu. See tähendab, et kasutades polümorfismi on võimalik mingi grupi sarnaste tegevuste jaoks luua üks ja üldine liides. 3. Päritavus Päritavus on nähtus, mille puhul üks objekt võib, nagu nimetus ütleb, pärida (osad) omadused mingilt teiselt objektilt või objektidelt. Päritavus on oluline seetõttu, et see annab võimaluse paigutada objekte kirjeldavad klassid hierarhiatesse. Näiteks Suislepp (või mis iganes selle õunasordi nimi ka pole) on alamhulk klassist õun, see omakorda alamhulk klassist puuvili, see omakorda alamhulk klassist söök. Kui nüüd mingid omadused on kirjeldatavad klassis söök (näiteks see, et selle manustamine ei tapa manustajat maha vähemasti kohe jne), siis sellised omadused pärivad ka põlvnevad klassid, näiteks seesama mainitud õun. Samas võib iga klass hierarhias lisada mingid temale iseloomulikud omadused, näiteks klass puuvili täiendab klassi söök sel moel, et piiritleb kasvukohana ikka mingi puu või põõsa, eristades sel moel iseend ja kõiki oma järglasi klassis juurvili. Kui poleks päritavust, siis tuleks iga klassi käitumine defineerida algusest lõpuni selle klassi sees. Mis oleks pikk ja vaevaline. Päritavus annab võimaluse võtta ette mingi sobilik (üldisem) klass ja sellest mingite täienduste tegemise teel tekitada uus (spetsiifilisem) klass. Klass Kui me räägime objektist ja klassis, siis millest me räägime? Objekt siinses kontekstis on (vähemasti meie ettekujutusele ja arusaamale vastav) peegeldus mingist reaalse maailma objektist koerast, lennumasinast, pangaautomaadist, millest iganes. Klass kui niisugune on selle objekti struktuuri ja käitumise kirjeldus. Lisaks neile mõistetele tuleb aeg-ajalt kasutusele mõiste eksemplar. Eksemplar on siis mingi reaalse maailma objekti

3 Programmeerimine III, Marek Kusmin Teema 0 3 kujutamiseks koostatud klassi mingi konkreetne eksemplar (instance), millel on kindel seisund. Näiteks eelpool kirjeldatud klassi Suislepp eksemplar võib olla erinevates seisundites (toores/küps, ussitanud jne). Kui rääkida tervest korvitäiest õuntest, siis on meil terve hulk (korvitäis) klassi Suislepp eksemplare. Teatava mööndusega võib tõmmata paralleeli klassi ja C-st tuttava struktuuri vahele ning öelda, et klass on struktuur, mis lisaks andmetele sisaldab ka funktsioone (OOP kõnepruugis meetodeid) nende andmetega töötamiseks. Mõned reeglid Siinkohal mõned soovitused, mida tuleks OOP juures meeles pidada. 1. Kui sa arvad, et see midagi on iseseisev mõiste, tee see omaette klassiks. 2. Kui sa arvad, et see midagi on eraldiseisev objekt, tee see mingi klassi objektiks. 3. Kui kaks klassi omavad midagi ühist, siis tee see midagi ühine omaette baasklassiks, millest need kaks klassi põlvneksid. Kuna kõik konkreetse programmi klassid omavad midagi ühist, pole paha valmis meisterdada mingi (peaaegu) universaalne baasklass selle konkreetse programmi tarvis. Sellise baasklassi loomisel ei maksa jõudu kokku hoida! Võimalust mööda tuleks püüda: 4. Vältida globaalsete muutujate kasutamist. 5. Vältida globaalsete (väljaspool klasse paiknevate) funktsioonide kasutamist. 6. Vältida avalike andmete kasutamist klassides. 7. Vältida otsest pöördumist klassi andmete poole. Oskuste ja teadmiste edenedes võiks siia nimekirja lisada veel mõned punktid: 8. Vältida võtmesõna friends kasutamist (mis see on, sellest tuleb juttu edaspidi). 9. Kasutada virtuaalseid funktsioone, st hoiduda konkreetsete tüüpide kirjeldamisest baasklassides. 10. Piirata inline-funktsioonide kasutamist, va juhul, kui tegemist pole just olulise optimeerimisega. C++ Käesolev kursus annab ülevaate ühest paljudest objektorienteeritud programmeerimiskeeltest. C++ omab vahendeid eelpool nimetatud kolme olulise omaduse (kapseldumise, polümorfismi ja päritavuse) realiseerimiseks. Samas ei tähenda fakt, et C++ võimaldab luua objektorienteeritud lähtekoodi, et see ei võimaldaks luua mitteobjektorienteeritud koodi. Nii nagu tema eelkäija C, on ka C++ äärmiselt paindlik. Selles peitubki tema tugevus... C++ loojaks nimetatakse Bjarne Stroustrupi (Bell Labs) ja loomisaastaks C++ ei ole küll esimene objektorienteeritud programmeerimiskeel (esimeseks selliseks loetakse keelt nimega Simula aastast 1967), aga võib öelda, et just C++ tõi OOP ideoloogia laiemalt kasutusse. Sageli huvitutakse C++ ja Java omavahelisest suhtest. Java on arvutiasjanduses suhteliselt värske nähtus, Interneti keel, kui nii võib öelda. Ka on Java C++ poolt tugevalt

4 Programmeerimine III, Marek Kusmin Teema 0 4 mõjutatud, nende süntaks on sarnane, on ka muid iseloomulikke sarnaseid jooni. Kogenematu silm võib Javas kirjutatud lähtekoodi pidada C++-s kirjutatuks. Sellise sarnasuse tõttu on arvatakse sageli ekslikult, et Java on mingi C++ derivaat või omapärane haru, murrak. See ei ole nii. Kuigi Java ja C++ on paljuski sarnased, on nad siiski mõeldud erinevate ülesannete lahendamiseks. C++ on mõeldud optimeeritud ja kõrge efektiivsusega programmide loomiseks. C++ kompilaatorid kompileerivad lähtekoodi üpris efektiivseks (kiireks) programmifailiks (binaarkoodiks). Java on loodud platvormist sõltumatute programmide loomiseks. Sellise porditavuse saavutamiseks ei kompileerita Java lähtekoodi mitte binaarkoodiks vaid teatavaks pseudokoodiks, mida kutsutakse Java baitkoodiks (Java bytecode), mida kasutatakse interpreteerivas keskkonnas. Selline lähenemine tagab suurepärase porditavuse kuid samas kaotatakse efektiivsuses. Seetõttu ongi Java paslik nn Internetirakenduste loomiseks, mis töötavad ülimalt laial spektril arvutitel. Kui aga on oluline saavutada kõrge jõudlus, siis muidugi ei tasu Javat valida ning eelistuse saab C++. Teiseks C++-le lähedaseks keeleks on C# (C sharp), millest aga siinkohal juttu ei tee. Nagu ka nimest järeldada võib, on C++ keel, mis põlvneb C-st. Väikeste eranditega on C++-s säilitatud ka kõik C jooned ja elemendid. Varasemat C++ süntaksit kutsutakse traditsiooniliseks C++-ks, tänapäeval läheb aina laiemasse kasutusse moderniseeritud C++, mida nüüd on hakatud lausa Standard C++-ks kutsuma. Käesolevas kursuses kasutame mõlemat varianti. Allpool olgu toodud lihtsaimad näited nn hello-programmist, milles küll klasside (programmeerija enese poolt loodud objektide) loomist ei demonstreerita. Kui kasutatakse uuema aja kompilaatorit ning ei anta eraldi võtit teatava hoiatuse "mahasurumiseks", siis lihtviisilisel kompileerimisel annab näite N-0.1 kood hoiatuse. Selle võib hetkel tähelepanuta jätta, aga kui on suur soov sellest hoiatusest vabaneda, siis tuleb kompileerimiseks kasutada näites eneses kirjeldatud võtit -W. Sama juhendit kohtab ka ühe hilisema näite juures. Näide N-0.1 Traditsiooniline C++ oohello.cc - Object Oriented Hello Program To disable warning compile: g++ -Wno-deprecated -o oohello oohello.cc / #include <iostream.h> cout << "OOHello, OOWorld!" << endl; Näide N-0.2 Moodne Standard C++ oohello.cc - Object Oriented Hello Program /

5 Programmeerimine III, Marek Kusmin Teema 0 5 cout << "OOHello, OOWorld!" << endl; Näide N-0.3 age.cc - Sample N-0.3 / int iage; cout << "Enter your age: "; cin >> iage; cout << "You are " << iage << " years old\n"; Mõni sõna eeltoodud näidetes kasutatud nimeruumide (namespace) kohta. Nimeruumide kasutamine võimaldab programmi globaalse skoobi klasse ja funktsioone jaotada rühmadesse, võib öelda alamskoopidesse. Erinevates nimeruumides võivad rahulikult eksisteerida sama nimega objektid, muutujad ning funktsioonid ilma, et tekiks segadus ja konfliktid. Selline jaotus osutub vajalikuks, kui programmi mahukusest tulenevalt muutub häirivaks klasside, muutujate ja funktsioonide suur hulk, mis raskendab neile mõistuspäraste nimede panekut. Samuti välistab nimeruumide kasutamine juhuslikust nimede kokkusattumisest tingitud probleemid juhul, kui kasutatakse mingeid teiste poolt loodud APIsid, koodilõike jms. Nimeruum deklareeritakse järgmiselt: namespace identifier... namespace body Selle kasutamisest annab ettekujutuse alljärgnev näide. Kasutatakse "traditsioonilise" C++ vormi ja "lihtviisilisel" kompileerimisel saame hoiatuse osaliseks, mis kõneleb "deprecated or antiquated header"-ist. Sellest ellimineerimiseks võib kasutada kompileerimise ajal võtit -Wno-deprecated. Näites N-0.5 on sama asi viidud Standard C++ kohaseks. Tavapärane Standard C++ nimeruum, milles kõik vajalik deklareeritud, kannab nime std, sealt ka selle nimeruumi kasutamise korraldus Näide N-0.4 nspace-1.cc - Sample N-0.4 To disable warning use g++ -Wno-deprecated -o nspace-1 nspace-1.cc / #include <iostream.h> namespace spacea int variable = 100;

6 Programmeerimine III, Marek Kusmin Teema 0 6 namespace spaceb char variable[] = "One Hundred"; cout << "In namespace spacea we have " << spacea::variable << endl; cout << "In namespace spaceb we have " << spaceb::variable << endl; Näide N-0.5 nspace-2.cc - Sample N-0.5 / namespace spacea int variable = 100; namespace spaceb char variable[] = "One Hundred"; cout << "In namespace spacea we have " << spacea::variable << endl; cout << "In namespace spaceb we have " << spaceb::variable << endl; Viimane näide (N-0.6) demonstreerib aga võimalust vahetada vaikimisi kehtivaks mingi meie enese deklareeritud nimeruum. Suurem mõte võib sellisel lahendusel olla koodilõikudes, mis ei kasuta märkimisväärselt standardses nimeruumis deklareeritut. Näide N-0.6 nspace-3.cc - Sample N-0.6 Just demo, don't like such style because of "std::" overhead. Usable, if no need to use much from namespace std namespace spacea int variable = 100; namespace spaceb char variable[] = "One Hundred"; using namespace spacea; std::cout << "In namespace spacea we have " << variable << std::endl; std::cout << "In namespace spaceb we have " << spaceb::variable << std::endl;

7 Programmeerimine III, Marek Kusmin Teema 0 7 Nimeruumi kasutusskoop võib olla deklareeritud suhteliselt vabas kohas: Näide N-0.7 nspace-4.cc - Sample N-0.7 namespace spacea int variable = 100; namespace spaceb char variable[] = "One Hundred"; cout << "Here we go..." << endl; using namespace spacea; std::cout << "In namespace spacea we have " << variable << std::endl; using namespace spaceb; std::cout << "In namespace spaceb we have " << variable << std::endl; cout << "That's it..." << endl; Kompileerimine Tuttav C kursusest, erinevus vaid kompilaatori nimes (muidugi, siinkohal on esitatud vaid lihtsaim juhtum): $ g++ -o oohello oohello.cc Nagu eelpool öeldud kes soovib näite N-0.4 kompileerimisel vabaneda hoiatusest, lisab võtmeid: g++ -Wno-deprecated -o nspace-1 nspace-1.cc Miks kasutada C++? Tavalised kiidusõnad erialaste raamatute alguslehtedel või kursuste esimestel minutitel on üldistatult järgmised: C++ annab võimaluse väljendada abstraktseid ideid. C++ on kolmanda põlvkonna programmeerimiskeel, mis võimaldab programmeerijal oma ideid ja soove väljendada märksa kõrgemal tasemel kui näiteks assembleri kasutamise korral. C++ säilitab programmeerijale võimaluse kasutada madaltaseme vahendeid. Kuigi tegemist on kolmanda põlvkonna keelega, on selles küllalt palju assemblerile iseloomulikku ja omast masinalähedust. Näiteks saab programmeerija ikkagi väga ulatusliku kontrolli mäluhalduse üle.

8 Programmeerimine III, Marek Kusmin Teema 0 8 C++ on päris hästi standardiseeritud. Integreerimise ja portimise mured vähenevad... C++ on taaskasutatava koodiga objektorienteeritud programmeerimiskeel. No sellesse tasub suhtuda veidi kainemalt... ;) (vt ka järgmist lõiku OOP kriitikast). C++ on laialdaselt õpetatav ja kasutatav. Tõesti, C++ omab päris laialdast kasutajate ringkonda ja seepärast ka pikka nimekirja abiinstrumente (tools), mis hõlbustavad uute programmide loomist. Loomulikult ei saa öelda, et C++ oleks absoluutselt-kindlasti-sajaprotsendiliselt kõige laialdasemalt kasutatav programmeerimiskeel üldse... Iseseisev töö OOP kriitika Töötada läbi artiklid OOP kriitikast: Diskussioon artikli põhjal. Kordamine C süntaks ja põhikonstruktsioonid. Ülesanne 0.1 Täiendada näites N-0.3 toodud programmi nii, et see käituks sõltuvalt sisendist erinevalt: annaks vähemalt kolme erinevat tüüpi vastuseid (näiteks stiilis You are really young! / You are really, really very old! ) sõltuvalt sisestatud väärtusest. Mis juhtub siis kui kasutaja poolt sisestatav ei ole arvulise väärtusena tõlgendatav? Ülesanne 0.2 Sarnaselt eelpool toodud õuna klassihierarhiale kirjeldada järgmiseid klassihierarhiaid: sprinter, tõstja, pikamaajooksja, sülearvuti, hõõglamp, raamat. Kirjeldada vähemalt ühe nimetatud klassi ja selle vanemklasside meetodid. Kirjeldada veel üks-kaks vabalt valitud klassi. Lisamaterjal Ülesande 0.1 lahendamisel tekib ärksamatel lahendajatel küsimus aga kuidas saaks välistada, et mittesobiva sisestuse puhul programm sellest aru saaks ja vastavalt reageeriks? Sellele küsimusele saab ammendavalt ja lahtiseletatult vastata alles kursuse hilisemate teemade juures, kui vajalikud eelteadmised on omandatud. Etteruttavalt aga siinkohal lihtsalt kaks koodinäidet võimalike variantidega. Esimene neist on küll lihtsam lugeda, samas kohmakam, teine keerukam mõista kuid elegantsem. Näide N-0.8 #include <limits> int iage;

9 Programmeerimine III, Marek Kusmin Teema 0 9 cout << "Enter your age: "; cin >> iage; while(cin.fail()) Clear Error Flag cin.clear(); Drop bad input from cin cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout << "Bad input, try again: "; cin >> iage; ; cout << "You said your age is " << iage << endl; Näide N-0.9 #include <limits> int iage; while((cout << "Enter your age: ") &&!( cin >> iage)) Clear Error Flag cin.clear(); Drop bad input from cin cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout << "Bad input, try again!" << endl; ; cout << "You said your age is " << iage << endl;

XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest

XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest 1 2 3 XmlHttpRequest asemel võib olla vajalik objekt XDomainRequest 4 5 6 7 8 https://www.trustwave.com/global-security-report http://redmondmag.com/articles/2012/03/12/user-password-not-sophisticated.aspx

More information

Andmebaasid (6EAP) I praktikum

Andmebaasid (6EAP) I praktikum Andmebaasid (6EAP) I praktikum Mõisteid Server on arvutisüsteem või selles töötav tarkvara, mis pakub teatud infoteenust sellega ühenduvatele klientidele. Klient on tarkvara, mis võimaldab suhelda serveriga.

More information

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja.

Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. Puudub protseduur. Protseduuri nimi võib olla valesti kirjutatud. Sub prog1() Msgox "Tere" Sub prog2() a = si(1) Protseduuri (või funktsiooni) poole pöördumisel on vähem argumente kui vaja. a = Sin() Protseduuri

More information

Tabelid <TABLE> Koostanud: Merike Hein

Tabelid <TABLE> Koostanud: Merike Hein Tabelid Tabelite kasutusvõimalus on HTML'is olemas juba pikka aega. Tabelimärgendite esmaseks kasutusalaks oli muidugi mõista tabelkujul info kuvamine. tähendab siis tabelite joonistamist.

More information

MSDE Upgrade platvormile SQL 2005 Server Express SP4

MSDE Upgrade platvormile SQL 2005 Server Express SP4 MSDE Upgrade platvormile SQL 2005 Server Express SP4 NB! Windos XP puhul peab veenduma, et masinas oleks paigaldatud.net Framework vähemalt versioon 2.0!!! NB! Muutke oma SA parool turvaliseks ( minimaalne

More information

WD My Net N600 juhend:

WD My Net N600 juhend: WD My Net N600 juhend: 1) Kui WD My Net N600 seade on ühendatud näiteks Elioni Thomsoni ruuteriga (TG789vn või TG784) või Elioni Inteno DG301a ruuteriga, kus üldiselt on ruuteri Default Gateway sama, nagu

More information

Erik Jõgi. twitter.com/erikjogi twitter.com/codeborne

Erik Jõgi. twitter.com/erikjogi twitter.com/codeborne Disain Erik Jõgi erik@codeborne.com twitter.com/erikjogi twitter.com/codeborne Disain? Miks? Bad code Clean Code A Handbook of Agile Software Craftsmanship Robert C. Martin, 2008 Uncle Bob You know you

More information

SQL Server 2005 Expressi paigaldamine

SQL Server 2005 Expressi paigaldamine SQL Server 2005 Expressi paigaldamine Laadige alla.net Framework 2.0 http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d- 8edd-aab15c5e04f5 Avage http://www.microsoft.com/express/2005/sql/download/default.aspx

More information

Lõimed. Lõime mõiste. Lõimede mudelid. Probleemid lõimedega seoses. Pthreads. Solarise lõimed. Windowsi lõimed. FreeBSD lõimed.

Lõimed. Lõime mõiste. Lõimede mudelid. Probleemid lõimedega seoses. Pthreads. Solarise lõimed. Windowsi lõimed. FreeBSD lõimed. Lõimed Lõime mõiste Lõimede mudelid Probleemid lõimedega seoses Pthreads Solarise lõimed Windowsi lõimed FreeBSD lõimed Linuxi lõimed MEELIS ROOS 1 Ühe- ja mitmelõimelised protsessid code data files code

More information

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste

Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu interfeisid Arvutikomponendid Ergo Nõmmiste Mälu liigid Read-only memory (ROM) Flash memory (EEPROM) Static random access memory (SRAM) Dynamic random access memoty (DRAM) 1 kbaidine mälu vajab 10

More information

2

2 1 2 3 4 5 St. seotud grupid 6 7 Soovitused: Vältida sidusgruppide tähtsuse järgi järjestamist. Minimeerige üksikute sidusgruppide esiletõstmist. 8 9 10 11 12 Päästeameti avalik veebileht (www.päästeamet.ee)

More information

NAS, IP-SAN, CAS. Loeng 4

NAS, IP-SAN, CAS. Loeng 4 NAS, IP-SAN, CAS Loeng 4 Tunniteemad Network Attached Storage IP Storage Attached Network Content Addressed Storage Network Attached Storage Tehnoloogia, kus andmed on jagatud üle võrgu Salvestusvahendile

More information

SQL Serveri paigaldus. Laadimine:

SQL Serveri paigaldus. Laadimine: SQL Serveri paigaldus Laadimine: http://msdn.microsoft.com/vstudio/express/sql/download/ Tasub paigaldada kõige lihtsam versioon (SQL Server 2005 Express Edition SP2). Samalt lehelt saab laadida ka Sql

More information

TP-Link TL-WR743ND Juhend

TP-Link TL-WR743ND Juhend TP-Link TL-WR743ND Juhend 1) Ühenda oma arvuti TP-Link ruuteriga üle kaabli (LAN). 2) Kui arvuti ja ruuter said omavahel ühendatud, siis võid minna seadme koduleheküljele (interneti brauseri otsingu reasse

More information

Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu.

Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu. Vea haldus ja logiraamat hajutatud süsteemides Enn Õunapuu enn.ounapuu@ttu.ee Millest tuleb jutt? Kuidas ma näen, millises sammus erinevad protsessid parasjagu on? Kuidas ma aru saan, kas protsess töötab

More information

EESTI STANDARD EVS-ISO/IEC 27003:2011

EESTI STANDARD EVS-ISO/IEC 27003:2011 EESTI STANDARD EVS-ISO/IEC 27003:2011 INFOTEHNOLOOGIA Turbemeetodid Infoturbe halduse süsteemi teostusjuhis Information technology Security techniques Information security management system Implementation

More information

Sissejuhatus Funktsionaalne programmeerimisparadigma

Sissejuhatus Funktsionaalne programmeerimisparadigma Sissejuhatus Funktsionaalne programmeerimisparadigma Paradigma järgi liigitub funktsionaalne (ingl functional) programmeerimine koos loogilise (ingl logic) programmeerimisega deklaratiivse programmeerimise

More information

Andmebaasi krüpteerimine ja dekrüpteerimine

Andmebaasi krüpteerimine ja dekrüpteerimine Andmebaasi krüpteerimine ja dekrüpteerimine Me võime küll asetanud kõikidele andmebaasi objektidele ligipääsuõigused eri kasutajate jaoks, kuid ikkagi võib mõni häkker avada vastava faili lihtsalt failina

More information

Veebilehe loomine HTML5 abil

Veebilehe loomine HTML5 abil Tallinna Ülikool Informaatika Instituut Veebilehe loomine HTML5 abil Seminaritöö Autor: Vladimir Vološin Juhendaja: Andrus Rinde Autor:......... 2011 Juhendaja:...... 2011 Tallinn 2011 Sisukord Sissejuhatus...

More information

Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := "Pii siinus on : "; x 2 := ; printx 2 ; print(sin(x 1 ));

Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := Pii siinus on : ; x 2 := ; printx 2 ; print(sin(x 1 )); Milleks tüübid? Mida teeb järgmine programmijupp? x 1 := "Pii siinus on : "; x 2 := 3.1415926;... printx 2 ; print(sin(x 1 )); Ei tea (loodetavasti siiski mitte midagi väga hullu :-) VARMO VENE 1 Milleks

More information

Javascripti praktilisus disainimustrite kasutamisel

Javascripti praktilisus disainimustrite kasutamisel TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Informaatika aluste õppetool Javascripti praktilisus disainimustrite kasutamisel Magistritöö Üliõpilane: Üliõpilaskood: Juhendaja:

More information

Objekt-orienteeritud programmeerimine MTAT (6 EAP) 5. Loeng. H e l l e H e i n h e l l e. h e i e e

Objekt-orienteeritud programmeerimine MTAT (6 EAP) 5. Loeng. H e l l e H e i n h e l l e. h e i e e Objekt-orienteeritud programmeerimine MTAT.03.130 (6 EAP) 5. Loeng H e l l e H e i n h e l l e. h e i n @ut. e e Täna loengus: Abstraktsed klassid Liidesed Mähisklassid 2 Abstraktsed klassid Meetodit nimetatakse

More information

Nokia E51 kasutamine modemina

Nokia E51 kasutamine modemina Tartu Ülikool Matemaatika-informaatika teaduskond Arvutiteaduse instituut Nokia E51 kasutamine modemina Juhend Koostaja: Allar Tammik Juhendaja: Kersti Taurus Tartu 2008 Sisukord Sissejuhatus...3 Arvuti

More information

Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Koostada programm, mis leiab positiivsete paarisarvude summat vahemikus 1 kuni 20.

Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Koostada programm, mis leiab positiivsete paarisarvude summat vahemikus 1 kuni 20. Harjutustund 3 Tsüklidirektiivid. Klass Math. Staatilised meetodid. Massiivid. Tsüklidirektiivid Vaadake teooriat eelmisest praktikumist. Ülesanne 1 Koostada programm, mis leiab esimeste 20 arvude summat

More information

Pädevushaldus RESTful veebiteenuste abil

Pädevushaldus RESTful veebiteenuste abil Tallinna Ülikool Informaatika Instituut Pädevushaldus RESTful veebiteenuste abil Seminaritöö Autor: Eigen Lenk Juhendaja: Mart Laanpere Tallinn 2010 Sisukord Sissejuhatus... 3 1. Muutused veebitarkvara

More information

Mis on tõene? Tsüklid, failihaldus. if - näited. unless - näited. unless. Merle Sibola. if ($arv > $suur) { #leitakse suurim arv $suur=$arv; } #if

Mis on tõene? Tsüklid, failihaldus. if - näited. unless - näited. unless. Merle Sibola. if ($arv > $suur) { #leitakse suurim arv $suur=$arv; } #if Mis on tõene? Tsüklid, failihaldus Merle Sibola iga string on tõene, välja arvatud "" ja "0" iga number on tõene, v.a. number 0 Iga viide (reference) on tõene Iga defineerimata muutuja on väär. if if (EXPR)

More information

Digitaalne signaal Diskreetimine ja Dirac Delta Digitaalfiltrid. Digitaalne heli. Hendrik Nigul. Mathematics of Sound and Music.

Digitaalne signaal Diskreetimine ja Dirac Delta Digitaalfiltrid. Digitaalne heli. Hendrik Nigul. Mathematics of Sound and Music. Mathematics of Sound and Music Aprill 2007 Outline 1 Digitaalne signaal 2 3 z-teisendus Mis on heli? Digitaalne signaal Heli on elastses keskkonnas lainena leviv mehaaniline võnkumine. amplituud heli tugevus

More information

Objektorienteeritud programmeerimine. 5. märts, 4. loeng Marina Lepp

Objektorienteeritud programmeerimine. 5. märts, 4. loeng Marina Lepp Objektorienteeritud programmeerimine 5. märts, 4. loeng Marina Lepp 1 Loeng Möödunud nädalal Klassid. Isendid. Konstruktorid. Sõned. Mähisklassid Praktikum Objektid ja klassid. Muutujate skoobid. Objektide

More information

EESTI STANDARD EVS-ISO 11620:2010

EESTI STANDARD EVS-ISO 11620:2010 EESTI STANDARD EVS-ISO INFORMATSIOON JA DOKUMENTATSIOON Raamatukogu tulemusindikaatorid Information and documentation Library performance indicators (ISO 11620:2008) EVS-ISO EESTI STANDARDI EESSÕNA NATIONAL

More information

TARTU ÜLIKOOL. Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND

TARTU ÜLIKOOL. Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND TARTU ÜLIKOOL Arvutiteaduse instituut LOODUS- JA TÄPPISTEADUSTE VALDKOND Anita Scharonberg CVE-2015-3457 Referaat Juhendaja: Meelis Roos Tartu 2016 SISUKORD 1 Sissejuhatus... 3 2 Turvaauk... 3 3 Turvaaugu

More information

Androidi rakenduste ligipääsu õigused

Androidi rakenduste ligipääsu õigused Tallinna Ülikool Digitehnoloogiate Instituut Androidi rakenduste ligipääsu õigused Seminaritöö Autor: Martin Kütt Juhendaja: Jaagup Kippar Autor:...... 2017 Juhendaja:...... 2017 Instituudi direktor:......

More information

PHP koodimisstandard PSR

PHP koodimisstandard PSR Tallinna Ülikool Informaatika Instituut PHP koodimisstandard PSR Seminaritöö Autor : Manuel Vulp Juhendaja : Jaagup Kippar Tallinn 2014 Sisukord Sissejuhatus... 4 1 Mis on koodimisstandard?... 5 2 Miks

More information

Veebiteenuse arendamise teekaart Rada7.ee näitel

Veebiteenuse arendamise teekaart Rada7.ee näitel Tallinna Ülikool Informaatika Instituut Veebiteenuse arendamise teekaart Rada7.ee näitel Bakalaureusetöö Autor: Kirill Milovidov Juhendaja: Jaagup Kippar Autor:...... 2015 Juhendaja:...... 2015 Instituudi

More information

Spring & AOP. Margus Jäger Lauri Tulmin

Spring & AOP. Margus Jäger Lauri Tulmin Spring & AOP Margus Jäger Lauri Tulmin 1 Sissejuhatus 3. peatükk raamatus Spring in Action 4. peatükk raamatus Professional Java Development with the Spring Framework Spring Spring AOP Võrdlus AspectJ

More information

Camunda protsessimootori tutvustus

Camunda protsessimootori tutvustus Tallinna Ülikool Digitehnoloogiate Instituut Camunda protsessimootori tutvustus Seminaritöö Autor: Keio Arula Juhendaja: Jaagup Kippar Autor: Juhendaja: 2015 2015 Instituudi direktor: 2015 Tallinn 2015

More information

Andmebaaside varundamine ja taastamine

Andmebaaside varundamine ja taastamine Andmebaaside varundamine ja taastamine Sybase SQL Anywhere 12 Menüü Pane tähele... 1. Andmebaasist kujutise tegemine ja taastamine 2. Andmebaasist pakitud varukoopia tegemine ja taastamine 3. Andmebaasist

More information

ArcGIS mobiilsed lahendused kasutades pilve teenuseid. Raido Valdmaa, AlphaGIS

ArcGIS mobiilsed lahendused kasutades pilve teenuseid. Raido Valdmaa, AlphaGIS ArcGIS mobiilsed lahendused kasutades pilve teenuseid Raido Valdmaa, AlphaGIS ArcGIS terviklik süsteem üks kaart, erinevad platvormid ArcGIS Online Server Rakendused ArcGIS Viewers ArcGIS APIs Javascript,

More information

Semantika, tuubid, loogika ja programmeerimine

Semantika, tuubid, loogika ja programmeerimine Sissejuhatus informaatikasse Semantika, tuubid, loogika ja programmeerimine Varmo Vene Arvutiteaduse Instituut Tartu Ulikool 5. mai 2009. Tsitaat klassikutelt Sissejuhatus Everyone knows that debugging

More information

JavaScript programmeerimise tüüpvead ja parimad praktikad

JavaScript programmeerimise tüüpvead ja parimad praktikad Tallinna Ülikool Informaatika Instituut JavaScript programmeerimise tüüpvead ja parimad praktikad Seminaritöö Autor: Kristjan Tammekivi Juhendaja: Andrus Rinde Autor:...,,2014 Juhendaja...,,2014 Instituudi

More information

BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil

BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil Tallinna Pedagoogikaülikool Matemaatika-loodusteaduskond Informaatika osakond Triin Lichfeld BC4J - Java ärikomponentide algõpetus Oracle9i JDeveloper arenduskeskkonna baasil Bakalaureusetöö Juhendaja:

More information

CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel

CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel Tallinna Ülikool Informaatika Instituut CSS i laiendusvõimalused läbi Sass i ning selle kasutamine veebirakenduste loomisel Seminaritöö Autor: Martin Koidu Juhendaja: Jaagup Kippar Tallinn 2012 Autorideklaratsioon

More information

XML-põhise dokumendihalduse võimalikkusest Eesti Wabariigis

XML-põhise dokumendihalduse võimalikkusest Eesti Wabariigis XML-põhise dokumendihalduse võimalikkusest Eesti Wabariigis Jan Willemson 20. veebruar 2001. a. Sissejuhatus Uksest ja aknast sisse murdev digitaalajastu pakub meile meie igapäevases töös palju uusi võimalusi,

More information

Andmebaasid kursuse andmemudel

Andmebaasid kursuse andmemudel Veebiteenused SyBase SQL Anywhere koostanud Sander Sepp SQL Anywhere on andmebaasi juhtsüsteem, mis sisaldab HTTP veebiserveri funktsionaalsust. Veebiserver võimaldab andmebaasi luua veebiteenuseid. Veebiteenused

More information

Objektorienteeritud programmeerimine

Objektorienteeritud programmeerimine Objektorienteeritud programmeerimine 2. loeng 18. veebruar Eno Tõnisson kasutatud ka Helle Heina ja Jüri Kiho materjale 1 Eelmisel nädalal loeng sissejuhatus praktikum paaristööna Asteroid 2012 DA14 möödus

More information

IT infrastruktuuri teenused. Failiserver. Margus Ernits

IT infrastruktuuri teenused. Failiserver. Margus Ernits IT infrastruktuuri teenused Failiserver Margus Ernits margus.ernits@itcollege.ee 1 Failide hoidmine kasutaja arvutis pole tihti mõistlik, kuna Failiserver Arvuti kõvaketta hävimisega kaovad andmed ja nendest

More information

This document is a preview generated by EVS

This document is a preview generated by EVS EESTI STANDARD EVS-ISO 5725-5:2002 MÕÕTMISMEETODITE JA TULEMUSTE MÕÕTETÄPSUS (TÕELINE VÄÄRTUS JA TÄPSUS) Osa 5: Alternatiivsed meetodid standardse mõõtmismeetodi kordustäpsuse kindlaks määramiseks Accuracy

More information

Objektorienteeritud programmeerimine

Objektorienteeritud programmeerimine Objektorienteeritud programmeerimine 2. loeng 19. veebruar 2018 Marina Lepp 1 Möödunud nädalal Loeng Sissejuhatus Praktikum Paaristöö, algus Vastlapäev Sõbrapäev Hiina uusaasta 2 Umbes mitu tundi tegelesite

More information

Keele võimalused Arhiivid, programne koodi uuring ja testimine.

Keele võimalused Arhiivid, programne koodi uuring ja testimine. Keele võimalused Arhiivid, programne koodi uuring ja testimine. Jar-arhiivid Kuude ja aastatega koguneb programmilõike, millest ka uute rakenduste koostamisel kasu on. Lühematel juhtudel saab need uue

More information

MTAT OPERATSIOONISÜSTEEMID praktikumid. Kersti Taurus

MTAT OPERATSIOONISÜSTEEMID praktikumid. Kersti Taurus MTAT.03.008 OPERATSIOONISÜSTEEMID praktikumid Kersti Taurus Mida tehakse praktikumides? Paigaldatakse operatsioonisüsteemid: Windows 7 Professional 64 bit eestikeelne ver. opensuse Linux 11.2 Edasi ülesanded

More information

ESIMENE OSA - ALGAJATELE

ESIMENE OSA - ALGAJATELE ESIMENE OSA - ALGAJATELE Esimene osa on jõukohane neile, kel on olemas programmeerimise alusteadmised. Täiendava materjalina võib kasutada oma programmeerimiskeele dokumentatsiooni. 1 PROGRAMMIDE SISEMAAILM

More information

3D mängude loomine XNA keskkonnas. Õppematerjal

3D mängude loomine XNA keskkonnas. Õppematerjal Tallinna Ülikool Informaatika Instituut 3D mängude loomine XNA keskkonnas. Õppematerjal Bakalaureusetöö Autor: Tambet Paljasma Juhendaja: Jaagup Kippar Autor:.... 2011 Juhendaja:.... 2011 Instituudi direktor:....

More information

IPv6 harjutused. Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid

IPv6 harjutused. Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid IPv6 harjutused Aadressi kuju, kirjaviis, osad, liigid Aadressi saamise viisid IPv6 aadressi kuju IPv4 32 bitti (4 baidi kaupa) Kuju kümnendarvud 4 kaupa punktidega eraldatud 192.168.252.200 IPv6 128 bitti

More information

Google Earth API juhendmaterjali koostamine

Google Earth API juhendmaterjali koostamine Tallinna Ülikool Informaatika Instituut Google Earth API juhendmaterjali koostamine Seminaritöö Autor: Ronald Kaul Juhendaja: Jaagup Kippar Tallinn 2011 Sisukord Sisukord... 2 Sissejuhatus... 3 1 Juhend

More information

Ülesanne 3 ja 4. Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose.

Ülesanne 3 ja 4. Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose. Ülesanne 3 ja 4 Diagrammide joonistamiseks kasutati CASE vahendit Rational Rose. Ülesande lahendamise täiesti loomulikuks tulemuseks oli, et kasutaja nõudmised täpsustusid ja seoses sellega lisandus uusi

More information

Puuduvate andmetega toimetulemine SQL-andmebaasides

Puuduvate andmetega toimetulemine SQL-andmebaasides Sisukord Puuduvate andmetega toimetulemine SQL-andmebaasides 1. Sissejuhatus...1 2. Vastandlikud seisukohad...2 3. NULLide lubamine baastabelis...3 4. Puuduvate andmete esitamine...4 4.1 IS NULL predikaat...6

More information

FUNKTSIONAALNE PROGRAMMEERIMINE. Animatsioonid

FUNKTSIONAALNE PROGRAMMEERIMINE. Animatsioonid Animatsioon on liikuv, ehk ajast sõltuv, graafika Liikumise illusioon saavutatakse sellega, et teatud ajavahemike järel (optimaalseks peetakse 30 freimi sekundis) joonistatakse erineva pildiga uus freim

More information

GTK+ raamistiku kasutamine Pythonis PyGl mooduli vahendusel

GTK+ raamistiku kasutamine Pythonis PyGl mooduli vahendusel Tallinna Ülikool Digitehnoloogiate instituut GTK+ raamistiku kasutamine Pythonis PyGl mooduli vahendusel Seminaritöö Autor: Sander Peerna Juhendaja: Inga Petuhhov Tallinn 2016 Autorideklaratsioon Deklareerin,

More information

ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL

ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut IDU40LT Sander Siniorg 134676IAPB ANIMATSIOONID CAP TEOREEMI KOHTA HAJUSATE SQL-ANDMEBAASIDE NÄITEL Bakalaureusetöö Juhendaja: Erki

More information

PILVANDMETÖÖTLUSE RAKENDUSED

PILVANDMETÖÖTLUSE RAKENDUSED TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutitehnika instituut IAG40LT Anett Kann 120903 PILVANDMETÖÖTLUSE RAKENDUSED Bakalaureusetöö Juhendaja: Vladimir Viies PhD Dotsent Tallinn 2015 Autorideklaratsioon

More information

Turvaline laohaldussüsteem programmeerituna keeles PHP

Turvaline laohaldussüsteem programmeerituna keeles PHP TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Informaatika eriala Kristjan Robam Turvaline laohaldussüsteem programmeerituna keeles PHP Bakalaureusetöö (6 EAP) Juhendaja: Helle

More information

Kirje. Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1

Kirje. Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1 Kirje. Tüpiseeritud fail. CASE-lause. Laiendatud klahvikoodid. 1 Kirje Kirje (record) on struktuurne andmetüüp (nagu massiiv) erinevat tüüpi andmete gruppeerimiseks. Kirje koosneb väljadest (field). Iga

More information

Algoritmikeelte analüüs

Algoritmikeelte analüüs TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutitehnika instituut Algoritmikeelte analüüs Ringi pindaladega arvutamise keel Priit Rebina 107362IASMM Tallinn 2011 1 Sisukord 1. Sissejuhatus..3

More information

SIDE (IRT 3930) Põhipunktid. Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus. Eeldused võrguhalduseks. Telefonivõrk. Mitmetasemeline andmevõrk

SIDE (IRT 3930) Põhipunktid. Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus. Eeldused võrguhalduseks. Telefonivõrk. Mitmetasemeline andmevõrk SIDE (IRT 3930) Loeng 23/2007 Sidevõrkude haldus Teema võrguhaldus Põhipunktid Võrguhalduse ülesanded Klient server mudel võrguhalduses Halduse standardimine Arvutivõrkude haldussüsteemid Terminalide ja

More information

Tallinna Pedagoogikaülikool Haapsalu Kolledž. Rakenduste programmeerimine. Jaagup Kippar

Tallinna Pedagoogikaülikool Haapsalu Kolledž. Rakenduste programmeerimine. Jaagup Kippar Tallinna Pedagoogikaülikool Haapsalu Kolledž Rakenduste programmeerimine Jaagup Kippar 2004 Sisukord Eessõna...7 Andmebaasid...8 Andmebaasiühenduse loomine...8 Otsene draiver... 11 Servlet...12 Sisestus...

More information

Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku

Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku Tallinna Ülikooli veebipuhvri teenuse kasutamine väljaspool ülikooli arvutivõrku Selleks, et kasutada Tallinna Ülikooli veebipuhvrit väljaspool ülikooli arvutivõrku, tuleb luua ühendus serveriga lin2.tlu.ee

More information

Kujundusmalli loomine sisuhaldussüsteemile Magento

Kujundusmalli loomine sisuhaldussüsteemile Magento Tallinna Ülikool Digitehnoloogiate instituut Informaatika Kujundusmalli loomine sisuhaldussüsteemile Magento Bakalaureusetöö Autor: Raul Gordejev Juhendaja: Romil Rõbtšenkov Autor:...... 2017 Juhendaja:......

More information

Erkki Moorits Cybernetica AS, Navigatsioonisüsteemide osakond

Erkki Moorits Cybernetica AS, Navigatsioonisüsteemide osakond Programmi kompileerimine ja C eripärad Erkki Moorits Cybernetica AS, Navigatsioonisüsteemide osakond Teemad Programmi kompileerimine, paigutus mälus ja kuidas jõuab programm mällu C keele eripärad Ohtlikud

More information

Veebisaidi arendus sisuhaldussüsteemile WordPress Seminaritöö

Veebisaidi arendus sisuhaldussüsteemile WordPress Seminaritöö Tallinna Ülikool Digitehnoloogiate instituut Veebisaidi arendus sisuhaldussüsteemile WordPress Seminaritöö Autor: Ain Arend Juhendaja: Romil Rõbtšenkov Tallinn 2017 Autorideklaratsioon Deklareerin, et

More information

Tallinna Ülikool Informaatika instituut. Risto Seene. Java 3D redaktor. Seminaritöö. Juhendaja: Jaagup Kippar

Tallinna Ülikool Informaatika instituut. Risto Seene. Java 3D redaktor. Seminaritöö. Juhendaja: Jaagup Kippar Tallinna Ülikool Informaatika instituut Risto Seene Java 3D redaktor Seminaritöö Juhendaja: Jaagup Kippar Tallinn 2008 Sisukord SISUKORD... 2 SISSEJUHATUS... 3 1. JAVA 3D... 4 1.1. STSEENI-GRAAF... 4 1.1.1.

More information

Informatsiooni andmeelementide omavaheliste seoste kohta saab, kui vastata järgmistele küsimustele:

Informatsiooni andmeelementide omavaheliste seoste kohta saab, kui vastata järgmistele küsimustele: Andmestruktuurid Programmid töötlevad andmeid. Neid hoitakse programmi töö jooksul mälus. Andmed pole amorfne arvude ja stringide hulk, vaid neil on omavahel väga olulised struktuursed seosed, mis võivad

More information

HTML 5 ja CSS 3 uued võimalused ning nende töökindlus veebilehitsejates

HTML 5 ja CSS 3 uued võimalused ning nende töökindlus veebilehitsejates Tallinna Ülikool Informaatika Instituut HTML 5 ja CSS 3 uued võimalused ning nende töökindlus veebilehitsejates Seminaritöö Autor: Anton Birjukov Juhendaja: Jaagup Kippar Tallinn 2012 Sisukord Sissejuhatus...3

More information

RASPBERRY PI 3 MODEL B WI-FI SEADISTAMISPROTSESSI LIHTSUSTAMINE

RASPBERRY PI 3 MODEL B WI-FI SEADISTAMISPROTSESSI LIHTSUSTAMINE TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Valeri Randalainen 142680IAPB RASPBERRY PI 3 MODEL B WI-FI SEADISTAMISPROTSESSI LIHTSUSTAMINE Bakalaureusetöö Juhendaja: Roger

More information

Libgdx raamistik ja 2D arvutigraafika õppematerjal

Libgdx raamistik ja 2D arvutigraafika õppematerjal Tallinna Ülikool Informaatika Instituut Libgdx raamistik ja 2D arvutigraafika õppematerjal Seminaritöö Autor: Raner Piibur Juhendaja: Jaagup Kippar Autor:...... 2015 Juhendaja:...... 2015 Instituudi direktor:......

More information

Protsessimootorite valiku metoodika

Protsessimootorite valiku metoodika TALLINNA TEHNIKA ÜLIKOOL Infotehnoloogia teaduskond Informaatikainstituut Infosüsteemide õppetool IDU70LT Protsessimootorite valiku metoodika Magistritöö Üliõpilane: Edvard-Sander Põldmäe Üliõpilaskood:

More information

Pythoni SDK LEGO WeDo 2.0-le

Pythoni SDK LEGO WeDo 2.0-le TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Janno Peterson Pythoni SDK LEGO WeDo 2.0-le Bakalaureusetöö (9 EAP) Juhendaja: Aivar Annamaa Tartu 2017 Pythoni SDK LEGO WeDo 2.0-le Lühikokkuvõte:

More information

Catel raamistik ja MVVM muster WPF rakendustes

Catel raamistik ja MVVM muster WPF rakendustes Tallinna Ülikool Informaatika Instituut Catel raamistik ja MVVM muster WPF rakendustes Bakalaureusetöö Autor: Lauri Mattus Juhendaja: Jaagup Kippar Autor:...... 2014 Juhendaja:...... 2014 Instituudi direktor:......

More information

PHP-põhise tarkvaraarenduse abivahendid.

PHP-põhise tarkvaraarenduse abivahendid. Tallinna Ülikool Matemaatika-loodusteaduskond Informaatika osakond PHP-põhise tarkvaraarenduse abivahendid. Seminaritöö Ahti Nurme Juhendaja: Jaagup Kippar Autor:.........2006.a. Juhendaja:.........2006.a.

More information

Java põhikursuse konspekt

Java põhikursuse konspekt Tallinna Pedagoogikaülikool Informaatika osakond Jaagup Kippar Java põhikursuse konspekt Tallinn 2003 Sissejuhatus Käesolev kirjutis on mõeldud nii iseõppijatele kui abimaterjaliks õpilastele ja õpetajatele.

More information

Mudelipõhine tarkvaraarendus

Mudelipõhine tarkvaraarendus T A R T U Ü L I K O O L MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Tarkvarasüsteemide õppetool Informaatika eriala Andres Vilgota Mudelipõhine tarkvaraarendus Bakalaureusetöö Juhendaja:

More information

DLK Pro mitmekülgne seade mobiilseks andmete allalaadimiseks Kohandatud-valmistatud erinevatele nõudmistele

DLK Pro mitmekülgne seade mobiilseks andmete allalaadimiseks Kohandatud-valmistatud erinevatele nõudmistele www.dtco.vdo.com DLK ro mtmekülgne seade moblseks andmete allalaadmseks Kohandatud-valmstatud ernevatele nõudmstele Lhtsalt genaalne, genaalselt lhtne DLK ro on VDO tootegrupp, ms on määratud vastavalt

More information

3.1 Valikulause. Sõnede ja arvude võrdlemine

3.1 Valikulause. Sõnede ja arvude võrdlemine 3.1 Valikulause. Sõnede ja arvude võrdlemine SISSEJUHATUS Elus tuleb teha mitmeid valikuid. Näiteks tuleb abielutseremoonial valida kahe valiku vahel - kas jah või ei. Selles osas vaatame, kuidas valikulausete

More information

Blocking Calls in Java

Blocking Calls in Java UNIVERSITY OF TARTU FACULTY OF MATHEMATICS AND COMPUTER SCIENCE Institute of Computer Science Rein Raudjärv Blocking Calls in Java Bachelor thesis (4 AP) Supervisor: Jevgeni Kabanov Autor:. mai 2007 Juhendaja:...

More information

Does the Shannon bound really apply to all data structures?

Does the Shannon bound really apply to all data structures? Proceedings of the Estonian Academy of Sciences, 2013, 62, 1, 47 58 doi: 10.3176/proc.2013.1.06 Available online at www.eap.ee/proceedings Does the Shannon bound really apply to all data structures? Antti

More information

M. Kusmin, Programmeerimine II Teema 6 1

M. Kusmin, Programmeerimine II Teema 6 1 M Kusmin, Programmeerimine II Teema 6 1 Teema 6 Dünaamiline mälukasutus Väga sageli pole programmi kirjutamise ajal täpselt teada, kui suuri puhvreid või muid "mälust haaratavaid tükke" programmi töö ajal

More information

Unity 2D keskkonnas rakenduste loomine Javascripti abil

Unity 2D keskkonnas rakenduste loomine Javascripti abil Tallinna Ülikool Informaatika Instituut Unity 2D keskkonnas rakenduste loomine Javascripti abil Seminaritöö Autor: Magnus Kvell Juhendaja: Jaagup Kippar Autor:...,,...,, 2014 Juhendaja:...,,...,, 2014

More information

11. Transpordikiht. Side IRT3930 Ivo Müürsepp

11. Transpordikiht. Side IRT3930 Ivo Müürsepp 11. Transpordikiht Side IRT3930 Ivo Müürsepp Transpordikihi funktsioonid Ühendusele orienteeritud side. Virtuaalne otsekanal alg- ja sihtpunkti vahel. Sõltumatus alumiste kihtide ülesehitusest ja protokollistikust.

More information

VEEBIRAKENDUSTE ARHITEKTUUR Tehniline vaade

VEEBIRAKENDUSTE ARHITEKTUUR Tehniline vaade VEEBIRAKENDUSTE ARHITEKTUUR Tehniline vaade KOGEMUS ZeroTurnaround - java engineer Developer tools, used by thousands Proekspert - tarkvaraarhitekt EMT & Elisa backend Danske Bank kaardimaksed LOENGU

More information

Pinu põhine puhvri ületäitumine DCE/RPC kontroll mootoris Cisco ASA 5500 seeria ja Cisco Catalyst 6500 seeria seadmetel CVE

Pinu põhine puhvri ületäitumine DCE/RPC kontroll mootoris Cisco ASA 5500 seeria ja Cisco Catalyst 6500 seeria seadmetel CVE Tartu Ülikool Matemaatika-informaatikateaduskond Arvutiteaduse instituut Pinu põhine puhvri ületäitumine DCE/RPC kontroll mootoris Cisco ASA 5500 seeria ja Cisco Catalyst 6500 seeria seadmetel CVE-2012-4661

More information

Vähetuntud tootjate tahvelarvutid ja nende täiustamine

Vähetuntud tootjate tahvelarvutid ja nende täiustamine TALLINNA ÜLIKOOL Digitehnoloogiate instituut Vähetuntud tootjate tahvelarvutid ja nende täiustamine Seminaritöö Autor: Janek Kossinski Juhendaja: Jaagup Kippar Autor:......... 2017 Juhendaja:.........

More information

Inuaki reptiil minu sees. Erakorralised avastused Maa minevikust, olevikust ja tulevikust

Inuaki reptiil minu sees. Erakorralised avastused Maa minevikust, olevikust ja tulevikust Inuaki reptiil minu sees Erakorralised avastused Maa minevikust, olevikust ja tulevikust I osa See on vestlus Rumeenia naise psühholoog Ariana Hawa ja ebatavalise poisi vahel, kes ütleb, et minevikus kehastus

More information

HTML 5 TEHNOLOOGIA EELISED JA PUUDUSED MOBIILIRAKENDUSTE ARENDAMISEL ADOBE PHONEGAP I NÄITEL

HTML 5 TEHNOLOOGIA EELISED JA PUUDUSED MOBIILIRAKENDUSTE ARENDAMISEL ADOBE PHONEGAP I NÄITEL TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutiteaduse instituut ITI40LT Argo Käsper 134299 HTML 5 TEHNOLOOGIA EELISED JA PUUDUSED MOBIILIRAKENDUSTE ARENDAMISEL ADOBE PHONEGAP I NÄITEL Bakalaureusetöö

More information

MÄRGISTUSKEELED JA NENDE PRAKTILISUS E-POE NÄITEL

MÄRGISTUSKEELED JA NENDE PRAKTILISUS E-POE NÄITEL Eesti Ettevõtluskõrgkool Mainor Infotehnoloogia Õppetool Veebitehnoloogia eriala Julia Levtšenko MÄRGISTUSKEELED JA NENDE PRAKTILISUS E-POE NÄITEL Lõputöö Juhendaja: Jüri Majak, PhD Tallinn 2015 RESÜMEE

More information

ANGULAR 2 JA REACTJS KLIENDIPOOLSETE RAAMISTIKKUDE ANALÜÜS JA VÕRDLUS VÄIKSEMATE ÜHELEHEVEEBIRAKENDUSTE KORRAL Bakalaurusetöö

ANGULAR 2 JA REACTJS KLIENDIPOOLSETE RAAMISTIKKUDE ANALÜÜS JA VÕRDLUS VÄIKSEMATE ÜHELEHEVEEBIRAKENDUSTE KORRAL Bakalaurusetöö TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Tarkvarateaduse instituut Siim Salin 143029IABB ANGULAR 2 JA REACTJS KLIENDIPOOLSETE RAAMISTIKKUDE ANALÜÜS JA VÕRDLUS VÄIKSEMATE ÜHELEHEVEEBIRAKENDUSTE

More information

Microsoft Kinecti rakenduste loomise õppematerjal, kasutades Kinect for Windows SDK d

Microsoft Kinecti rakenduste loomise õppematerjal, kasutades Kinect for Windows SDK d Tallinna Ülikool Informaatika Instituut Microsoft Kinecti rakenduste loomise õppematerjal, kasutades Kinect for Windows SDK d Seminaritöö Autor: Mait Mikkelsaar Juhendaja: Jaagup Kippar Autor:...... 2013

More information

Making Orthophotomosaic about Tartu City with PHOTOMOD Program and Its Geometrical Quality

Making Orthophotomosaic about Tartu City with PHOTOMOD Program and Its Geometrical Quality Making Orthophotomosaic about Tartu City with PHOTOMOD Program and Its Geometrical Quality Natalja LIBA and Ina JÄRVE, Estonia Key words: orthophotomosaic, aerial triangulation, block of imagery, orientation,

More information

Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö

Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö TALLINNA TEHNIKAÜLIKOOL Infotehnoloogia teaduskond Arvutiteaduse instituut Võrgutarkvara õppetool Õppejõudude hindamise rakenduse REST API ja kasutajaliides kasutades Spring ja AngularJS raamistikke Bakalaureusetöö

More information

Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev:

Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev: ETT+ X-tee teenuse päringute näited Dokumendi koostas: Rene Tomson, Cybernetica AS, kuupäev: 10.02.2016. Päringute näidete koostamisel on kasutatud ArcticITE poolt pakutavaid veebiteenuseid. 1. Kaubanomenklatuuri

More information

Veebilehtede loomine, css3

Veebilehtede loomine, css3 CSS... 3 CSS LINKIMINE HTML DOKUMENDIGA... 4 Välise stiililehe rakendamine... 4 Sisemise stiili rakendamine... 4 Reastiili rakendamine... 5 CSS ÕIGEKIRI... 5 Erinevad selektorid... 6 Elemendi nimega selektorid...

More information

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND ARVUTITEADUSE INSTITUUT INFORMAATIKA ERIALA Risto Saar Privaatsust säilitava arvutussüsteemi Sharemind andmebaasikiht Bakalaureusetöö (6 EAP) Juhendaja:

More information

Veebilehtede loomine, disain. Veebilehe disain peaks olema "nähtamatu"! Veebileht võiks olla ilus, praktiline, mugav!

Veebilehtede loomine, disain. Veebilehe disain peaks olema nähtamatu! Veebileht võiks olla ilus, praktiline, mugav! Veebilehe disain Veebilehe disain peaks olema "nähtamatu"! Veebileht võiks olla ilus, praktiline, mugav! "Täiuslikkus saavutatakse, mitte siis kui enam midagi lisada pole, vaid siis kui enam midagi ära

More information