====== String2int ====== {{tag>numbers function}} ===== Description ===== Program interpret sign string and then save as a numbers **Source**: PROLOG str. 48 Wydawnictwo PLJ Warszawa 1991 ISBN 83-85190-63-5 ===== Download ===== Program source code: {{string2int.pl}} ===== Listing ===== pob_licz(Liczba) :- put(58), getstring(S), ost(E,S), usun_p(E,S,S1), nl, zaczynaj(S1,Liczba). zaczynaj([32|Ogon],Liczba) :- !, zaczynaj(Ogon,Liczba) . zaczynaj([45|Ogon],Liczba) :- !, dalej(Ogon,n,-1,0,Lic zba). zaczynaj(String,Liczba) :- dalej(String,n,1,0,Liczba). dalej([Cyfra|Ogon],n,Skala,Czesc_licz,Liczba) :-kod(Cyfra,Wartoœæ),!, Nowa_Czesc_licz is Czesc_licz*10 + Wartoœæ, dalej(Ogon,n,Skala,Nowa_Czesc_licz,Liczba). dalej([46|Ogon],n,Skala,Czesc_licz,Liczba) :- !, dalej(Ogon,t,Skala,Czesc_licz,Liczba). dalej([Cyfra|Ogon],t,Skala,Czesc_licz,Liczba) :-kod(Cyfra,Wartoœæ), !, Nowa_Czesc_licz is Czesc_licz*10 + Wartoœæ, Nowa_Skala is Skala*10, dalej(Ogon,t,Nowa_Skala,Nowa_Czesc_licz,Liczba). dalej([],_,1,Liczba,Liczba) :- !. dalej([],_,-l,Czesc_licz,Liczba) :- !, Liczba is -(Czesc_licz). dalej([],t,Skala,Czesc_licz,Liczba) :- !, Liczba is Czesc licz/Skala. dalej(_,_,_,_,Liczba) :- write('WprowadŸ liczbê :'), pob_licz(Liczba). kod(48,0). kod(49,l). kod(50,2). kod(51,3). kod(52,4). kod(53,5). kod(54,6). kod(55,7). kod(56,8). kod(57,9). ===== Comments =====