Главная
»
Информационные системы
»
Представление знаний в ИС
»
Заданному десятичному числу сопоставить список цифр его 16-ричного представления.
Заданному десятичному числу сопоставить список цифр его 16-ричного представления.
Вариант для доработки (сейчас пустой вывод), пишите в комментарии
% Bilet9
% Patched 14.01.13
% To start type: jstart.
DOMAINS
element = i(integer); c(char); s(string)
listE=element*
head(X,[X|L]).
tail(L,[X|L]).
member(X,L):-head(X,L).
member(X,L):-tail(T,L),member(X,T).
delete(X,[X|L],L).
delete(X,[Y|L],[Y|L1]):-delete(X,L,L1).
conk([],L,L).
conk([X|L1],L2,[X|L3]):-conk(L1,L2,L3).
sublist(S,L):-
conk(L1,L2,L),
conk(S,L3,L2).
un([],L,[]).
un(L1,L2,L3):- head(X,L1),
member(X,L2),
delete(X,L1,L11),
delete(X,L2,L22),
un(L11,L22,L33),
L3=[X|L33],!.
un([H|T],L2,L3):-un(T,L2,L3).
del_sub([],L,L).
del_sub([X|L],L1,L2):-delete(X,L1,L3),
del_sub(L,L3,L2).
proisv([X|[]],X).
proisv([H|T],X):-proisv(T,X2), X is H*X2.
bin(0,[]).
bin(1,[1]).
bin(X,Z):- X>1,
Y is X//2,
O is X mod 2,
bin(Y,Z1),
Z=[O|Z1].
dob(L,0,L).
dob(L,X,L1):-X>0,X1 is X-1,dob(L,X1,L2),L1=[0|L2].
dlina([],0).
dlina([H|T],X):-dlina(T,X1), X is X1+1.
is4(L,L1):-dlina(L,X),
Y is X mod 4,
Z is 4-Y,
dob(L,Z,L1).
hex([],[]).
hex([H1,H2,H3,H4|T],L1):-L2 is H1*1000+H2*100+H3*10+H4,tr(L3,L2),hex(T,L4),L1=[L3|L4].
tr(0,0).
tr(1,1).
tr(2,10).
tr(3,11).
tr(4,100).
tr(5,101).
tr(6,110).
tr(7,111).
tr(8,1000).
tr(9,1001).
tr(A,1010).
tr(B,1011).
tr(C,1100).
tr(D,1101).
tr(F,1111).
jstart:- write(' Vvedite chislo dlya preobrazovaniya v x16: '),nl,read(IJAM1),nl,
hex(IJAM,L1),
write(L1),nl.
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.