% predikat cti/1 slouzi k nacteni vstupu z klavesnice % ukonceneho teckou. Za soucasti slov se povazuji % pismena A..Z, a..z, a dale cislice 0..9. % Jednotliva slova jsou zarazena do seznamu, ktery % je parametrem predikatu. cti([Slovo|Zbytek_slov]):- get0(Znak), cti_slovo(Znak,Slovo,Novy_zn), cti_zbytek_slov(Novy_zn,Zbytek_slov). cti_zbytek_slov(46,[]). % tecka na konci vstupu cti_zbytek_slov(Znak,[Slovo|Zbytek_slov]):- cti_slovo(Znak,Slovo,Novy_zn), cti_zbytek_slov(Novy_zn,Zbytek_slov). cti_slovo(-1,'',_). % ukonceni vstupu cti_slovo(Znak,Slovo,Novy_zn1):- znak_slova(Znak,Znak1),!, get0(Novy_zn), cti_zbytek_slova(Novy_zn,Zbytek_slova,Novy_zn1), name(Slovo,[Znak1|Zbytek_slova]). cti_slovo(_,Slovo,Novy_zn1):- % Neni znak slova get0(Novy_zn), cti_slovo(Novy_zn,Slovo,Novy_zn1). cti_zbytek_slova(Znak,[Znak1|Zbytek_slova],Novy_zn1):- znak_slova(Znak,Znak1),!, get0(Novy_zn), cti_zbytek_slova(Novy_zn,Zbytek_slova,Novy_zn1). cti_zbytek_slova(Znak,[],Znak). znak_slova(-1,-1):-!,fail. % tecka na konci, neni soucast slova. znak_slova(Znak,Znak):-Znak>96,Znak<123. % a..z znak_slova(Znak,Znak):-Znak>64,Znak<91. % A..Z znak_slova(Znak,Znak):-Znak>47,Znak<58. % 0..9