|
|
pl:prolog:pllib:string2int [2019/06/27 15:50] |
pl:prolog:pllib:string2int [2019/06/27 15:50] (aktualna) |
| ====== 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 ===== |
| <code prolog> |
| 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). |
| </code> |
| ===== Comments ===== |
| |