Na vajah bomo spoznali osnove spletnih storitev ter način njihove uporabe.
Spletna storitev:
Napišite spletno storitev, ki bo znala glede na poštno številko kraja vrniti naziv kraja ter temperaturo v stopinjah Celzijah za ta kraj. Pri tem se bomo omejili samo na kraje v ZDA. Spletna storitev naj vsebuje eno metodo, ki kot vhodni parameter prejme poštno številko kraja (ZIP Code) in kot rezultat vrne naziv kraja ter temperaturo v stopinjah Celzija. Za preizkus vaše spletne storitve, napišite okensko aplikacijo, ki bo uporabljala vašo spletno storitev. Okenska aplikacija naj omogoča vnos poštne številke kraja in izpis vseh podatkov, ki jih vrne vaša spletna storitev.
Vaša spletna storitev naj podatke o vremenu pridobi preko naslednje spletne storitve:http://ws.cdyne.com/WeatherWS/Weather.asmx. Metodo, ki boste pri tem uporabili se imenuje “GetCityWeatherByZIP” in kot vhodni parameter sprejme poštno številko kraja. Metoda kot rezultat vrne 14 atributov, izmed katerih sta za nas pomembna samo naziv kraja (City) ter podatek o temperaturi kraja (Temperature).
Podatek o temperaturi je podan v Fahrenheitovi temperaturni lestvici, zato bomo uporabili še drugo spletno storitev, ki nam bo pretvorila temperaturo kraja iz Fahrenheitov v stopinje Celzijev. Spletna storitev za pretvorbo temperature se nahaja na tem naslovu:http://www.w3schools.com/webservices/tempconvert.asmx. Metodo, ki boste pri tem uporabili se imenuje “FahrenheitToCelsius” in kot vhodni parameter sprejme temperaturo v Fahrenheitih. Metoda kot rezultat vrne temperaturo v stopinjah Celzijev.
Primera dveh poštnih številk (ZIP Code):
Pri izvedbi naloge se ni potrebno omejiti na zgoraj omenjeni spletni storitvi. V rešitvi lahko uporabite tudi kakšne druge spletne storitve, ki jih boste našli na spletu. Pazite le, da vaša spletna storitev uporablja najmanj dve “zunanji” spletni storitvi.
Preizkus spletne storitve:
Napišite tudi testni program, ki bo preko uporabniškega vmesnika klical vašo spletno storitev in izpisal rezultate.
Na vajah boste izvedeli, kateri sklop nalege (A,B,C,D,E,F) boste dobili.
Za določen glosár (spletna povezava) naj študent izdela uvozni program, katerega rezultat naj bo datoteka XML, ki naj ima spodnjo obliko. Po možnosti (če ima glosar za pojem določeno tudi področje) naj bo pri vsakem pojmu, podano tudi področje, kamor lahko pojem uvrstimo. Hierarhijo področij uporabnik postavi v XML pred samimi pojmi v okviru oznake …. Če sam pojem v glosarju tega ne vsebuje, naj poskusi to določiti ročno ali polavtomatsko.
Vsak pojem sme biti uvrščen v več področij. Če spada v več področij, potem naj bodo področja razvrčena po relevantnosti; tj. na prvem mestu določimo njegovo glavno področje itd. Pri hierarhiji področij določimo za vsako področje identifikator in ime.
Pri opisu pojma izberemo identifikatorje pripadajočih področij, kamor pojem uvrstimo. Poleg tega za vsak pojem določimo njegov naziv in krajšo opredelitev ali opis pojma. Podamo še povezave, ki predstavljajo spletne vire, kjer je ta pojem opisan, dan primer zanj itd. ali pa je v povezavi z drugim izrazom (pojmom). V drugem primeru je mogoče, da sploh ni zunanje spletne povezave, ampak samo izraz. V tem primeru pač povezava ne vsebuje drugega, kot izraz. Povezav je lahko več.
Ker je težko pričakovati, da bo hierarhija področij za pojme podana vnaprej, predlagamo, da se pojme najprej nehierarhično naniza znotraj oznake …. Torej, samo na eni ravni (ni podpodročij). V zadnji fazi, ko so pojmi že izdelani, področja pa znana, pa področja ročno preuredite, kot je predagano v primeru. V skrajnem primeru, ko pa področja za posamezni pojem niso podana, oz. se jih ne da niti ročno določiti, pa področij pač ne podate in se jih pri pojmih ne določi.
Če je glósar večjezičen, bi radi tudi to izkoristili, zato imamo možnost podati seznam jezikov in se pri nazivih (tj. konkretnih izrazih) nanašati na več jezikov. Opredelitev naj bo v izbranem jeziku (če je na voljo naj bo slovenska, sicer pa v izvornem jeziku; običajno angleškem).
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za podana iskalnika Google (Splet, Slike, Zemljevidi, Scholar) in Najdi.si (Splet, slike/video/zvoki, zemljevid) izvedite iskanje za podano besedno zvezo in izdelajte XML zadetkov. Za vsak zadetek podajte zapis XML. Zadetek mora biti opisan z zaporedno številko rangiranja, naslovom povezave, URL naslovom, tipom gradiva (stran HTML, slika, video, audio) in kratkim opisom, katerega vrne iskalnik.
En študent pokrije vse podiskalnike za Google, drugi pa za Najdi.si.
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za podan spletni slovar/glosar izvedite iskanje za podano besedno zvezo in izdelajte XML zadetkov. Za vsak zadetek podajte zapis XML. Zadetek mora biti opisan z zaporedno številko rangiranja, naslovom povezave, URL naslovom, tipom gradiva (stran HTML, slika, video, audio) in kratkim opisom, katerega vrne iskalnik.
En študent izdela parser za en slovar/glosar.
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za podan spletni slovar/glosar izvedite iskanje za podano besedno zvezo in izdelajte XML zadetkov. Za vsak zadetek podajte zapis XML. Zadetek mora biti opisan z zaporedno številko rangiranja, naslovom povezave, URL naslovom, tipom gradiva (stran HTML, slika, video, audio) in kratkim opisom, katerega vrne iskalnik.
En študent izdela parser za en slovar/glosar.
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za podan spletni slovar/glosar izvedite iskanje za podano besedno zvezo in izdelajte XML zadetkov. Za vsak zadetek podajte zapis XML. Zadetek mora biti opisan z zaporedno številko rangiranja, naslovom povezave, URL naslovom, tipom gradiva (stran HTML, slika, video, audio) in kratkim opisom, katerega vrne iskalnik.
En študent izdela parser za en slovar/glosar.
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za podan spletni slovar/glosar izvedite iskanje za podano besedno zvezo in izdelajte XML zadetkov. Za vsak zadetek podajte zapis XML. Zadetek mora biti opisan z zaporedno številko rangiranja, naslovom povezave, URL naslovom, tipom gradiva (stran HTML, slika, video, audio) in kratkim opisom, katerega vrne iskalnik.
En študent izdela parser za en slovar/glosar.
XML mora biti ustrezen, tj. spletni brskalnik ga mora odpreti brez napak (angl. “well-formed”).
Za nalogo napišite aplikacijo za preprosto urejanje besedil (teksta), ki bo podobna Windows Notepad (beležnica). Aplikacija naj ima prilagodljivo velikost okvirja skupaj z vsemi gradniki (resizeable), menu in vnosno polje za vnašanje teksta. Omogoča naj:
- nalaganje
- shranjevanje
- spreminjanje tekstovnih datotek (.txt)
- kopiranje teksta (copy)
- lepljenje teksta (paste). Obe operaciji naj bosta dosegljivi preko menuja!
- možnost nalaganja večih datotek naenkrat in prikaz vsake v svojem zavihku (tabbed environment).
V vsakem zavihku naj bo mogoče spreminjanje in shranjevanje besedila neodvisno od drugih zavihkov, operaciji kopiranja in lepljenja pa naj delujeta tudi med posameznimi zavihki.
Program napišite v programskem jeziku C#.
V programskem jeziku C# napišite aplikacijo, s katero bo mogoče pregledovati slike na disku. Zahteve za aplikacijo so:
- omogoča naj pregledovanje slik v formatu JPG, BMP in GIF.
- omogoča naj nalaganje ene ali večih slik hkrati.
- omogoča naj odstranjevanje izbrane slike iz seznama slik ali večih slik iz seznama slik hkrati (ne iz diska!!).
- v seznamu slik naj bodo zapisana samo IMENA slik (brez končnic in/ali poti do slike).
- omogoča naj prikaz osnovnih informacij o sliki: dolžina in višina slike v pikah (dimenzije), format slike, velikost slike v KB, datum in ura spremembe slike.
- omogoča naj shranjevanje in nalaganje seznama izbranih slik iz datoteke (seznam ‘priljubljenih’ oz. MojaGalerija).
- omogoča naj pisanje in prikazovanje poljubnega komentarja k vsaki naloženi oz. prikazani sliki. Komentarji se naj shranijo skupaj s seznamom priljubljenih slik (v MojaGalerija).
- omogoča naj prikaz naloženih slik v seznamu po imenih in s prikaznimi sličicami (‘thumbnail’).
- omogoča naj dva različna načina predogleda slike: v naravni velikosti in prilagojeno glede na velikost prikazne površine.
- program naj bo preprost za uporabo, prijazen do uporabnika in vizualno zanimiv!
Pri izdelavi programa boste potrebovali:
- znanje iz predhodnih nalog
- razred ListView (za prikaz seznama slik)
- razred FileInfo (informacije o slikah)
- razred Image (za delo s slikovnimi podatki)
- razred PictureBox (gradnik za prikaz slik)
- preostale razrede in grafične elemente po vaši lastni presoji!!
Za opise razredov in pripadajočih metod uporabite pomoč iz MSDN!
Zaradi praznikov (in enkratne odsotnosti profesorja) smo imeli pred tem kolokvijem predavanja le 2-krat.
Tako so prišle v upoštev naslednja poglavja (kot so zapisana v knjigi Borut Žalik: Algoritmi računalniške geometrije):
V funkciji testiraj_filtre.m izračunajte vektorja a in b s filtri cheby1, cheby2, butter za visoko-prepustno sito. Izberite enako lomno frekvenco in enake rede filtra. Narišite amplitudi frekvenčnih odzivov za vsak filter posebej. Vsi grafi naj bodo popolnoma označeni (x os, y os, itd.) ter prikazani na eni sliki (uporabite ukaz subplot). V komentar programa za vsak filter napišite, kako se obnaša njegova frekvenčna karakteristika. Napišite tudi, kakšne razlike med njimi opazite.
Gotovo vsi poznate tonski način izbiranja številke na telefonu (DTMF – Dual Tone Multiple Frequency). V bistvu za vsako pritisnjeno tipko telefon pošlje kratek zvočni signal sestavljen iz dveh čistih sinusov po naslednjem sistemu.
Najprej preizkusite generator signalov DTMF:
SIS:Vaja09:Digitalni filtri:generateDTMF - Naložil: Narmotur
, ki je napisan v Matlabu. Funkcija vrne vektor zvočnega signala, ki ga lahko poslušate s funkcijo sound (vzorčevalna frekvenca je 8000 Hz).Napišite program zaporedje=razpoznaj_DTMF(x), ki bo z uporabo pasovno prepustnih filtrov poskušal prepoznati, kakšno zaporedje telefonskih tipk je bilo pritisnjeno v vhodnem signalu x. Uporabite 7 pasovno prepustnih filtrov (tipe in rede filtrov izberite sami), ki bodo prepuščali le bolj ali manj ozko frekvenčno okolico zgoraj navedenih frekvenc (697 Hz, 770 Hz , 852 Hz, itd.). V kolikor amplituda pri dveh filtriranih signalih presega določeni prag, vemo katera tipka je bila pritisnjena. Namesto funkcije filt uporabite funkcijo filtfilt, ki izniči vpliv zakasnitve filtrov.
Signal, ki ga dobite z generatorjem signalov DTMF, ne vsebuje nikakršnega šuma. V realnosti pa lahko vaš program vsebuje tudi govor ali šum. Testni program na sistemu bo preizkusil vaš program z različnimi stopnjami šuma. Šum se ponavadi naredi tako, da signalu prištejemo naključne vrednosti. Nivo dodanega šuma merimo s faktorjem SNR (razmerje signal/šum), ki ga merimo v decibelih (dB). Nižja, ko je vrednost SNR, močneje je šum prisoten. Pri SNR = 20 dB je šum po moči stokrat šibkejši od signala. Pri SNR = 10 dB je šum po moči desekrtat šibkejši od signala. Ko je SNR=0 dB, je moč šuma enaka moči signala.
Na sistemu za vaje se bo signalu iz generatorja DTMF šum dodal s funkcijo awgn:
signalPlusSum = awgn(signal,10,'measured')
.
Število doseženih točk bo bo pri tej nalogi odvisno od robustnosti vašega programa s testnimi primeri. Za pravilo delujoč program, ki dela pri šumu 20 dB dobite 15 točk. 20 dodatnih točk pa bo mogoče doseči z odpornostjo na šum – najboljša rešitev bo nagrajena z 10 dodatnimi točkami (skupaj torej 25 točk), druga najboljša z 9, tretja z 8 in tako naprej, dokler ne zmanjka točk.
Pozor! Naloga morate rešiti v časovnem prostoru.
Po vzoru primera 36 iz predavanj, zapišite lastni primer redefiniranja in prekrivanja
metod. Zapišite vsaj dva primera metod tako za prekrivanje kot redefiniranje.
V nalogi uporabite tudi manipulatorje nad izpisom v datoteko!
Nalogo 11.1 dopolnite z naslednji tremi izjemami:
Prikažite uporabo izjem.
Razširite nalogo 9.1 tako, da: