ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π±ΠΎΡ‚Π° со списками

Лабораторная Ρ€Π°Π±ΠΎΡ‚Π°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡƒΠ΄Π°Π»_ΠΏΠ΅Ρ€Π²_эл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°: a) Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта; Π±) Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт? Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΄ΠΎΠ±_эл_Π²_ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт вставился ΠΏΠ΅Ρ€Π΅Π΄ послСдним элСмСнтом списка? МоТно Π»ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… Π²Π²ΠΎΠ΄Π° списка Π²Π²ΠΎΠ΄_списка1 ΠΈ Π²Π²ΠΎΠ΄_списка2 ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ прСдлоТСния? Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сумму элСмСнтов, стоящих Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π° Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ…… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π±ΠΎΡ‚Π° со списками (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜ Π Π•Π‘ΠŸΠ£Π‘Π›Π˜ΠšΠ˜ БЕЛАРУБЬ Π‘Π•Π›ΠžΠ Π£Π‘Π‘ΠšΠ˜Π™ ΠΠΠ¦Π˜ΠžΠΠΠ›Π¬ΠΠ«Π™ Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠ˜Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’

Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΈ

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм

ΠžΡ‚Ρ‡Π΅Ρ‚ ΠΏΠΎ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ № 6

ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅: «Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅»

Π½Π° Ρ‚Π΅ΠΌΡƒ: «Π ΠΠ‘ΠžΠ’А Π‘О БПИБКАМИ. «

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ: студСнты Π³Ρ€ΡƒΠΏΠΏΡ‹ 2 213 ΠœΠ°Π»ΠΈΡ‡ К. Π’. Π¨Π°Ρ€ΠΊΠΎ А.Π’.

ΠŸΡ€ΠΈΠ½ΡΠ»Π°: ст.ΠΏΡ€. Ковалькова И.А.

Минск 2014

Π—Π°Π΄Π°Π½ΠΈΠ΅ ЦСль Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Visual Prolog.

Из ΡΠΏΠΈΡΠΊΠ° L1 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список L2, ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π²Π΅Π½ срСднСму арифмСтичСскому ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ‚Ρ€ΠΎΠΉΠΊΠΈ элСмСнтов списка L1. Если число элСмСнтов списка L1 Π½Π΅ ΠΊΡ€Π°Ρ‚Π½ΠΎ 3, Ρ‚ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ элСмСнт списка L2 получаСтся Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° 3 ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ суммы Π΄Π²ΡƒΡ… послСдних элСмСнтов списка L1. Бписок L1 вводится ΠΏΠΎ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ΅ с ΡΠΊΡ€Π°Π½Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ исходный L1 ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ L2 списки.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС вхоТдСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅.

0Π‘ ΠŸΡ€ΠΎΠΈΠ·Π²Π΅ΡΡ‚ΠΈ сдвиг элСмСнтов списка (Π½Π΅ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ):

— Π½Π° N ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π²Π»Π΅Π²ΠΎ (Π²ΠΏΡ€Π°Π²ΠΎ).

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтами списка.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² ΡΠΏΠΈΡΠΊΠ΅.

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сумму элСмСнтов, стоящих Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π° Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… мСстах, ΠΈ ΡΡƒΠΌΠΌΡƒ элСмСнтов, стоящих Π½Π° Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… мСстах.

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΡΠΏΠΈΡΠΊΠ΅ всС элСмСнты со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ X Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Y.

Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

domains

list = real*

predicates

nondeterm read_list (integer, list)

nondeterm nov_spisok (integer, list, list)

nondeterm result

clauses

read_list (0,[]).

read_list (N,[H|T]):-readreal (H), N1 = N — 1, read_list (N1,T).

nov_spisok (0,[],[]):-!.

nov_spisok (1,[H|T],[H1|T1]): — H1 = H/3,nov_spisok (0,T, T1).

nov_spisok (2,[H|[H1|T]],[H2|T1]): — H2 = (H1+H)/2,nov_spisok (0,T, T1).

nov_spisok (N,[H|[H1|[H2|T]]],[H3|T3]): — H3 = (H+H1+H2)/3,

N1 = N — 3, nov_spisok (N1,T, T3).

result : — write («Vvedite chislo elementov massiva: «), readint (N), nl,

write («Vvedite elementi massiva: «), nl, read_list (N, H), nov_spisok (N, H, H1), nl,

write («Noviy spisok: «), write (H1), nl.

Goal result.

/*domains

list=real*

predicates

nondeterm read_list (integer, list)

nondeterm result

nondeterm chg (list, real, list)

clauses

read_list (0,[]).

read_list (N,[H|T]):-readreal (H), N1=N-1, read_list (N1,T).

chg ([], _, []) if !.

chg ([H|T], H, T1) if chg (T, H, T1),!.

chg ([H|T], S, [H|T1]) if chg (T, S, T1),!.

result:-write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число элСмСнтов списка»), nl, write («N=»), readint (N), nl,

write («Π’Π²ΠΎΠ΄ΠΈΡ‚Π΅ элСмСнты списка»), nl, read_list (N, L), write («Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ список L=»),

write (L), nl, nl, write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ искомый элСмСнт»), nl, readreal (E), nl, chg (L, E, LL), write («Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ список:»), nl, write (LL), nl.

goal

result.*/

/*domains

list=real*

predicates

nondeterm read_list (integer, list)

nondeterm result

nondeterm del (real, list, list)

clauses

read_list (0,[]).

read_list (N,[H|T]):-readreal (H), N1=N-1, read_list (N1,T).

del (X, [X|T], T).

del (X, [Y|T], [Y|T1]) if del (X, T, T1).

result:-write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число элСмСнтов списка»), nl, write («N=»), readint (N), nl,

write («Π’Π²ΠΎΠ΄ΠΈΡ‚Π΅ элСмСнты списка»), nl, read_list (N, L), write («Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ список L=»),

write (L), nl, nl, write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ искомый элСмСнт»), nl, readreal (E), nl, del (E, L, LL), write («Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ список L=»), write (LL), nl.

goal

result.*/

domains

list=integer*.

predicates

nondeterm summ_nechet (list, integer, integer)

nondeterm summ_chet (list, integer, integer)

nondeterm readlist (list)

Clauses

summ_nechet ([], _, 0):-!.

summ_nechet ([H|T], I, R):;

I mod 2 = 0, !, II = I + 1, summ_nechet (T, II, TR), R = TR + H;

II = I + 1, summ_nechet (T, II, R).

summ_chet ([], _, 0):-!.

summ_chet ([H|T], I, R):;

I mod 2 = 1, !, II = I + 1, summ_chet (T, II, TR), R = TR + H;

II = I + 1, summ_chet (T, II, R).

readlist ([H|T]):-readint (H),!, readlist (T). readlist ([]).

goal

write («Vvodite elementi spiska»), nl,

readlist (L),

write («Summa chetnih:»), nl,

summ_chet (L, 0, S).*/

domains

ilist=integer*

predicates

pravo (integer, ilist, ilist).

del_last (ilist, ilist).

add_last (ilist, ilist).

b (ilist, integer, ilist).

readlist (ilist).

clauses

del_last ([_],[]):-!.

del_last ([H|Tail],[H|NewTail]):-del_last (Tail, NewTail).

add_last ([],[0]):-!.

add_last ([H|Tail],[H|NewTail]):-add_last (Tail, NewTail).

pravo (0,L, L):-!.

pravo (N, T, L):-del_last (T, T1), N1=N-1,pravo (N1,[0|T1], L).

b (A, N, B):-pravo (0,A, A1), pravo (N, A1, B).

readlist ([H|T]):-readint (H),!, readlist (T). readlist ([]).

goal

write («Vvod N «),

readint (N),

write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ элСмСнты (ΠΊΠΎΠ½Π΅Ρ† Π²Π²ΠΎΠ΄Π° — Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ENTER): «), nl,

readlist (L),

b (L, N, B).*/

domains

list=real*

predicates

nondeterm readlist (list).

nondeterm max (list, integer).

nondeterm min (list, integer).

nondeterm res (integer, integer, integer).

clauses

max ([X], X).

max ([H|Tail], H) if max (Tail, M), H>M,!.

max ([_|Tail], M) if max (Tail, M).

min ([X], X).

min ([H|Tail], H) if min (Tail, M), H

min ([_|Tail], M) if min (Tail, M).

res (X, Y, R) if R=X-Y.

readlist ([H|T]):-readint (H),!, readlist (T). readlist ([]).

goal

write («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ элСмСнты (ΠΊΠΎΠ½Π΅Ρ† Π²Π²ΠΎΠ΄Π° — Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ENTER): «), nl,

readlist (L),

max (L, X),

min (L, Y),

res (X, Y, Res).

*/

domains

list = integer*

predicates

nondeterm print (list)

nondeterm replace (list, integer, integer, list)

clauses

print ([]) : — !.

print ([H|[]]) : — write (H).

print ([H|T]) : — write (H, «, «), print (T).

replace ([], _, _, []) : — !.

replace ([H|T], X, Y, [H|R]) : — H <> X, replace (T, X, Y, R).

replace ([H|T], X, Y, [Y|R]) : — H = X, replace (T, X, Y, R).

goal

write («Enter list:»), nl,

readterm (list, L), nl,

write («Enter X:»), nl,

readint (X), nl,

write («Enter Y:»), nl,

readint (Y), nl,

replace (L, X, Y, R),

write ('['),

print®,

write («]. «), nl,

readchar (_).

*/

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ вопросы

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ список?

Бписок — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ слоТного Ρ‚Π΅Ρ€ΠΌΠ°, состоящий ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Ρ€ΠΌΠΎΠ², Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятой. Как обозначаСтся отсСчСниС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅?

2. Π“ΠΎΠ»ΠΎΠ²Π° ΠΈ Ρ…вост списка. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ списка Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ Ρ…воста.

Н — Π³ΠΎΠ»ΠΎΠ²Π°, Π’ — хвост списка. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ [H|T]. HΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, Π’ — список ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ.

3. Как обозначаСтся пустой список?

4. МоТно Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ пустой список Π² Π²ΠΈΠ΄Π΅ Π³ΠΎΠ»ΠΎΠ²Ρ‹ ΠΈ Ρ…воста ?

НСт.

5. Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ изобраТСния списка: L, [X], [ _, A], [ _ |T], [H| _ ], [ _ ], [ _, B|C] ?

L — Ρ‚ΠΈΠΏ списка; [X] - список состоящий ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта; [_, A] - список ΠΈΠ· Π΄Π²ΡƒΡ… элСмСнтов, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅; [ _ |T], — список Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π³ΠΎΠ»ΠΎΠ²Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅; [H| _ ] - список Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ Π²Π°ΠΆΠ΅Π½ хвост; [_] - список ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния; [ _, B|C] - список Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ 2 элСмСнта, ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

6. ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ списка Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта?

Π”Π°, ΠΌΠΎΠΆΠ΅Ρ‚.

7. ΠŸΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π»ΠΈ элСмСнт 5 списку [[1, 2, 3], [4, 5, 6]]?

НСт, ΠΎΠ½ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ элСмСнту списка.

8. Бопоставимы Π»ΠΈ Π΄Π²Π° списка: [5, 6, 7] ΠΈ [H|T] ?

Π”Π°.

9. МоТно Π»ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… Π²Π²ΠΎΠ΄Π° списка Π²Π²ΠΎΠ΄_списка1 ΠΈ Π²Π²ΠΎΠ΄_списка2 ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ прСдлоТСния?

НСт.

10. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡƒΠ΄Π°Π»_ΠΏΠ΅Ρ€Π²_эл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°: a) Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта; Π±) Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт?

ΡƒΠ΄Π°Π»_ΠΏΠ΅Ρ€Π²_эл ([ _ | T], T).

А) ΡƒΠ΄Π°Π»_ΠΏΠ΅Ρ€Π²_эл ([ _ ,_| T], T).

B) ΡƒΠ΄Π°Π»_ΠΏΠ΅Ρ€Π²_эл ([ H,_ | T], [H|T]).

11. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΡƒΠ΄Π°Π»_посл_эл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹: a) Π΄Π²Π° послСдниС элСмСнты; Π±) прСдпослСдний элСмСнт ?

А) ΡƒΠ΄Π°Π» ([_,_],[]).

ΡƒΠ΄Π°Π» ([H|T],[H|T1]) if ΡƒΠ΄Π°Π» (T, T1).

ΡƒΠ΄Π°Π» ([_],[]).

B) ΡƒΠ΄Π°Π» [_, X],[X]).

ΡƒΠ΄Π°Π» ([H|T],[H|T1]) if ΡƒΠ΄Π°Π» (T, T1).

ΡƒΠ΄Π°Π» ([_],[]).

12. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π²Ρ‹Π΄Π΅Π»_ΠΏΠ΅Ρ€Π²_эл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°: a) Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнта; Π±) Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт ?

А) Π²Ρ‹Π΄Π΅Π»_ΠΏΠ΅Ρ€Π²_эл ([H, H1| _ ], H, H1).

B) Π²Ρ‹Π΄Π΅Π»_ΠΏΠ΅Ρ€Π²_эл ([H, H1| _ ], H1).

13. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π²Ρ‹Π΄Π΅Π»_посл_эл, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ: a) Π΄Π²Π° послСдниС элСмСнты; Π±) прСдпослСдний элСмСнт?

А) Π²Ρ‹Π΄Π΅Π»_посл_эл ([X, H], X, H).

Π²Ρ‹Π΄Π΅Π»_посл_эл ([ _ |T], X, H): — Π²Ρ‹Π΄Π΅Π»_посл_эл (T, X, H).

B) Π²Ρ‹Π΄Π΅Π»_посл_эл ([X,_], X).

Π²Ρ‹Π΄Π΅Π»_посл_эл ([ _ |T], X): — Π²Ρ‹Π΄Π΅Π»_посл_эл (T, X).

14. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΄ΠΎΠ±_эл_Π²_Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ элСмСнтами списка ?

Π΄ΠΎΠ±_эл_Π²_Π½Π°Ρ‡Π°Π»ΠΎ (E, [H, H1|T], [H, E, H1|T]).

15. Как Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π΄ΠΎΠ±_эл_Π²_ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт вставился ΠΏΠ΅Ρ€Π΅Π΄ послСдним элСмСнтом списка ?

Π΄ΠΎΠ±_эл_Π²_ΠΊΠΎΠ½Π΅Ρ† (E, [H], [E, H]).

Π΄ΠΎΠ±_эл_Π²_ΠΊΠΎΠ½Π΅Ρ† (E, [H|T], [H|T1]): — Π΄ΠΎΠ±_эл_Π²_ΠΊΠΎΠ½Π΅Ρ† (E, T, T1).

16. МоТно Π»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Ρ€Π°Π·Π΄Π΅Π»Π° domains ?

НСт список Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ хвост Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ Π’Ρ‹Π²ΠΎΠ΄ ΠŸΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Visual Prolog.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ