09/07/04 08:49:25
>>357
% Prolog
% 3.
% 大きさ8のint型配列aに初期値として
% 1 2 3 4 5 6 7 8
% を設定する。これを
% 0 0 1 2 3 4 5 6
% のように要素を右に2つシフトして a[0],a[1]には 0 を入れ、
% その後配列の各要素を
% a[0]=0
% a[1]=0
% <略>
% a[7]=6
%
% のように表示するプログラムを書け。
t357_3 :-
右にシフト(2,[1,2,3,4,5,6,7,8],_シフトされたならび),
表示(1,_シフトされたならび).
表示(_,[]) :- !.
表示(N,[A|R]) :-
M is N - 1,
write('a[%t]=%t',[M,C]),
N2 is N + 1,
表示(N2,R).
右にシフト(0,X,X) :- !.
右にシフト(N,L,X) :-
append(Y,[_],[0|L]),
M is N - 1,
右にシフト(M,Y,X).