1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

Seotud dokumendid
Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Funktsionaalne Programmeerimine

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

Loeng03

loeng2

MS Word Sisukord Uue dokumendi loomine... 2 Dokumendi salvestamine... 3 Faili nimi... 4 Teksti sisestamine... 6 Klaviatuuril mitteleiduvat sümbolite l

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Pealkiri

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Pealkiri

Word Pro - digiTUNDkaug.lwp

ArcGIS Online Konto loomine Veebikaardi loomine Rakenduste tegemine - esitlus

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

KASUTUSJUHEND

Microsoft Word - Referaat.docx

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Microsoft Word - Keypad-controller-manual-new_1.docx

E-arvete juhend

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Andmed arvuti mälus Bitid ja baidid

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

SQL

PowerPointi esitlus

MTAT Operatsioonisüsteemid - Turvalisus

Müügiarvete juhend VEP_

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

PÄRNU TÄISKASVANUTE GÜMNAASIUM ESITLUSE KOOSTAMISE JUHEND Pärnu 2019

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Kom igang med Scratch

Funktsionaalne Programmeerimine

B120_10 estonian.cdr

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

Microsoft Word - requirements.doc

OÜ Lemonsport Hummel spordivarustus Raplamaa JK õpilastele ja pereliikmetele Valik september Jalgpallikooli võistlus- ja treeningvarustus 20

PHP

Maksu- ja Tolliamet MAKSUKOHUSTUSLANE Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsi

Microsoft Word - RM_ _17lisa2.rtf

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Väljumismanifesti teenused

ITI Loogika arvutiteaduses

DE_loeng5

Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

Praks 1

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Operatsioonisüsteemi ülesanded

Kursuseprogramm IFI6054 Agiilne tarkvaraarendus 3 EAP Kontakttundide maht: 28 Õppesemester: K Eksam Eesmärk: Aine lühikirjeldus: (sh iseseisva töö sis

Juhend Merit Aktivas korteriühistu erilahenduse kasutamiseks Merit Aktiva Pro ja Premium pakettides on olemas erilahendus korteriühistutele. Seda saab

lvk04lah.dvi

AG informaatika ainekava PK

loogikaYL_netis_2018_NAIDISED.indd

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Microsoft Word - Toetuste veebikaardi juhend

Microsoft Word - 56ylesanded1415_lõppvoor

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

EBSCO täistekstiandmebaaside kasutamine Otsingu sooritamiseks: 1. Logi sisse 2. Vali EBSCOhost Web 3. Seejärel vali andmebaas, milles soovid otsingut

SK-3MD

Microsoft Word - installation-guide.doc

Microsoft Word - HOTSEC kasutusjuhend v1.900.docx

MTAT Operatsioonisüsteemid - Turvalisus

IT infrastruktuuri teenused sissejuhatav loeng 00

SAF 6.0

Tartu Ülikool

Microsoft PowerPoint - IRZ0020_praktikum4.pptx

1. Üliõpilased 1.1 Tõendid Vali menüüst: Üliõpilased tõendid tõendite trükkimine. Avaneb vorm Tõendite trükkimine, vali tõendi liik Tõend õppim

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

Control no:

Microsoft Word - Vx610 EMV KASUTUSJUHEND.doc

Word Pro - diskmatTUND.lwp

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

SP Tartu Inspiratsioonipäev.key

Microsoft Word - TM70_SP-MG_kasutusjuhend.docx

Kobras 2015/2016 lõppvoor, benjaminid

SINU UKS DIGITAALSESSE MAAILMA Ruuter Zyxel LTE3302 JUHEND INTERNETI ÜHENDAMISEKS

Directo ja Omniva arvekeskuse (endine EAK ehk Eesti E-arvete Keskus) liidestamine

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Matemaatiline analüüs III 1 4. Diferentseeruvad funktsioonid 1. Diferentseeruvus antud punktis. Olgu funktsiooni f : D R määramispiirkond D R selles p

EE-macbook-retina-12-early2015-qs.indd

PowerPoint Presentation

BIM360 ja RealityCapture

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

vv05lah.dvi

1. AKE Ajalise keerukuse empiiriline hindamine

VKE definitsioon

Ruutvormid Denitsioon 1. P n Ütleme, et avaldis i;j=1 a ijx i x j ; kus a ij = a ji ; a ij 2 K ja K on korpus, on ruutvorm üle korpuse K muutujate x 1

Mining Meaningful Patterns

(10. kl. I kursus, Teisendamine, kiirusega, kesk.kiirusega \374lesanded)

lcs05-l3.dvi

SQL

Taskuprinter KASUTUSJUHEND

Väärtusta oma vabadust. Eesti Yale Seifide Kasutusjuhend Mudelid: YSB/200/EB1 YSB/250/EB1 YSB/400/EB1 YLB/200/EB1 YSM/250/EG1 YSM/400/EG1 YSM/520/EG1

Väljavõte:

1 / 16 7. loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

2 / 16 Sisend/väljund vaikimisi: Termid: read, write?-read(x). : 2+3. X = 2+3.?-write(2+3). 2+3 true. Jooksva sisendi vaatamine: seeing?- seeing(x). X = user. Jooksva väljundi vaatamine: telling?- telling(x). X = user. See tähendab, et vaikimisi on nii sisendiks kui väljundiks interaktiivne keskkond, mida süsteem tähistab konstandiga user.

3 / 16 Sisendi määramine: Fail kui sisend: see, seen, seeing?- see( input.txt ), seeing(x). X = <stream>(01180198).?- read(x). X = f(2, x, [a, 2]).?- read(x),y is X. X = 2* (1+2), Y = 6.?- read(x). X = end_of_file.?- seen. true.?- seeing(x). X = user.

4 / 16 Väljundi määramine: Fail kui väljund: tell, told, telling?- tell( output.txt ). true.?- telling(x). X = <stream>(01181520).?- write(abcd). true.?- write(3 + 2). true.?- told. true.?- telling(x). X = user.

5 / 16 Faili kirjutamine: Faili avamine/sulgemine: open, close?-open( hello.txt,write,s), write(s, Hello! ), close(s). S = <stream>(01256ba0)?-open( hello.txt,write,s,[alias=out]), write(out, Hello! ), close(out). S = out

6 / 16 Faili kirjutamine: Faili saab kirjutada ka sümbolhaaval: put_code kirjutab faili sümboli tema ASCII koodi järgi.?-put_code(out,65). Kirjutab faili sümboli A. put_char kirjutab faili etteantud sümboli.?-put_code(out, A ).

7 / 16 Failist lugemine:?-open( hello.txt, read, S, [alias=in]). get_code, get_char Võimaldavad lugeda failist ühe sümbolikoodi / sümboli, kusjuures iga kord loetakse uus sümbol.?- get_char(in,x). X = H.?- get_char(in,x). X = e.?- get_char(in,x). X = l.?- get_char(in,x). X = l.?- get_char(in,x). X = o.?- get_char(in,x). X =!.?- get_char(in,x). X = end_of_file.

8 / 16 Failist lugemine:?-open( hello.txt, read, S, [alias=in]). peek_code, peek_char Võimaldavad lugeda failist ühe sümbolikoodi / sümboli kusjuures sama sümbolit loetakse mitu korda järjest.?- peek_char(in,x). X = H.?- peek_char(in,x). X = H.?- peek_char(in,x). X = H....

9 / 16 Failist lugemine: Realõpp : sümbol \n või ASCII kood 10. Faililõpp : sümbol end_of_file (selle kood on 1), at_end_of_stream(in). Teisendused sümbolite ja nende koodide vahel:?-atom_codes(abc,xs). Xs = [97, 98, 99]?-atom_chars(abc,Xs). Xs = [a, b, c]

10 / 16 Teksti teisendamine sümbolite listiks Loeme sisendi Stream sümboleid kuni rea lõpuni. Listi [C Cs] väärtuseks on sisendi esitus sümbolite listina. text_to_list(stream,[c Cs]):- get_char(stream,c), (end_of_line(c) -> Cs = [] ; text_to_list(stream,cs)). end_of_line( \n ). Olgu sisendiks interaktiivne keskkond ( user ).?-text_to_list(user,r). : The text R = [ T, h, e,, t, e, x, t, \n ]

11 / 16 Teksti teisendamine sõnade listiks Defineerime sõna tähed ja sõna lõpud. end_of_word(. ). end_of_word( ). end_of_word( \n ). %...kindlasti saame defineerida neid rohkem letter(x) :- letters(xs), member(x,xs). letters([ A, B, C,...]). %suured tähed letters([a,b,c,...]). %väiksed tähed

12 / 16 Teksti teisendamine sõnade listiks Loeme sümbolite listist välja esimese sõna: loeme listi vasakult paremale kuni jõuame märgini, mis tähistab sõna lõppu. Predikaat first_word(cs,ws,rest) on tõene, kui sümbolite listist Cs esimese sõna Ws eraldamisel saama listi Rest. Cs on sümbolite list. Ws on esimese sõna sümbolite list. C on vaadeldav sümbol. Rest on list, kuhu pannakse kõik ülejäänud sümbolid esimese sõna eraldamise järel. Kui vaadeldav sümbol C on täht, lisame ta moodustatava sõna juurde. Vaatame läbi ülejäänud sümbolid Cs rekursiivselt. first_word([c Cs],[C Ws],Rest):- letter(c), first_word(cs,ws,rest).

13 / 16 Teksti teisendamine sõnade listiks Kui C on sõna lõpp, siis lõpetame tööd. Kõik vaatlemata sümbolid jäävad kolmandaks parameertiks. first_word([c Cs],[],[C Cs]):- end_of_word(c). Kui oleme jõudnud sisendi lõpuni, siis samuti lõpetame tööd. Mitte ükski sümbol ei jäänud vaatlemata. first_word([],[],[]). Tulemusena saame kätte teksti esimese sõna ning ülejäänud teksti osa.?- first_word([ T,h,i,s,,i,s,,t,e,x,t],Xs,Ys). Xs = [ T, h, i, s], Ys = [, i, s,, t, e, x, t]

14 / 16 Teksti teisendamine sõnade listiks Eraldame tekstist sõnad. Kõigepealt loeme välja etteantud listist esimese sõna (samuti listina) ning teisendame seda üheks terveks sõnaks kasutades süsteemset predikaati atom_chars/2. Loeme välja ülejäänud sõnad rekursiivselt. Tühikuid ja muid rea lõppu tähistavaid sümboleid jätame välja. word_list([],[]). word_list([c Cs],Ws):- end_of_word(c), word_list(cs,ws). word_list([c Cs],[W Ws]):- letter(c), first_word([c Cs],WordLetters,Rest), atom_chars(w,wordletters), word_list(rest,ws).

15 / 16 Teksti teisendamine sõnade listiks Testime enne defineeritud preikaate kasutaja sisendi peal.?-text_to_list(user,r), word_list(r,w). : This is text R = [ T,h,i,s,,i,s,,t,e,x,t, \n ] W = [ This,is,text]

16 / 16 Ülesanne Tekitage oma arvutisse tavaline tekstifail nimega tekst.txt ning kirjutage esimeseks reaks This is text. Lõpetage reavahetusega! Kasutades enne defineeritud predikaati text_to_list kirjutage päring, mis avab faili tekst.txt, loeb sellest esimese rea ning väljastab selle ekraanile sümbolite listina. Faili avamiseks kasutage süsteemset predikaati open. NB! Koodi kopeerimisel slaididelt võivad muutuda ülakomade märgid (end_of_line( \n )).