🗊Презентация Артық кетуді басқару

Нажмите для полного просмотра!
Артық кетуді басқару, слайд №1Артық кетуді басқару, слайд №2Артық кетуді басқару, слайд №3Артық кетуді басқару, слайд №4Артық кетуді басқару, слайд №5Артық кетуді басқару, слайд №6Артық кетуді басқару, слайд №7Артық кетуді басқару, слайд №8Артық кетуді басқару, слайд №9Артық кетуді басқару, слайд №10Артық кетуді басқару, слайд №11Артық кетуді басқару, слайд №12

Вы можете ознакомиться и скачать презентацию на тему Артық кетуді басқару. Доклад-сообщение содержит 12 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1






Артық кетуді басқару
Описание слайда:
Артық кетуді басқару

Слайд 2





Бірнеге пайдалы қосымша предикаттар ....
Бірнеге пайдалы қосымша предикаттар ....
repeat – предикат, әрқашан шыншыл. Ол әрқашан дәлелдеудің бағытына тәуелсіз дәлелденеді. Себебі дәлелдеу солдан оңға қарай жүргізілгендіктен, солдан оңға қарай қозғалысты сәтті кері жөндеу деп қабылдаймыз:
1. repeat  (сәтті дәлелденеді)
1 repeat (repeat ке дейін жөндеу талпынысы)
2 repeat  (сәтті дәлелденеді)
repeat предикаты Прологта келесі бағдарлама түрінде жазылуы мүмкін:
 repeat.
repeat :– repeat. 
Жолдарадың орнын ауыстырса не болады?
Описание слайда:
Бірнеге пайдалы қосымша предикаттар .... Бірнеге пайдалы қосымша предикаттар .... repeat – предикат, әрқашан шыншыл. Ол әрқашан дәлелдеудің бағытына тәуелсіз дәлелденеді. Себебі дәлелдеу солдан оңға қарай жүргізілгендіктен, солдан оңға қарай қозғалысты сәтті кері жөндеу деп қабылдаймыз: 1. repeat  (сәтті дәлелденеді) 1 repeat (repeat ке дейін жөндеу талпынысы) 2 repeat  (сәтті дәлелденеді) repeat предикаты Прологта келесі бағдарлама түрінде жазылуы мүмкін: repeat. repeat :– repeat. Жолдарадың орнын ауыстырса не болады?

Слайд 3





fail – предикат, әрқашан шыншыл емес. Ол ешқашан дәлелденбейді.
fail – предикат, әрқашан шыншыл емес. Ол ешқашан дәлелденбейді.
 fail (дәлелденбейді)
 fail (дәлелденбейді) 
Осыдан шығатыны:  fail дан үтірден  кейін жазылатындар ешқашан дәлелденбейді (біз онда жете алмаймыз).
fail предикаты Прологта келесі бағдарлама түрінде жазылуы мүмкін: fail :– 1 == 0.
repeat және fail дан келесі шексіз цикл алынуы мүмкін: 
?– ..., repeat, ... , fail.
Бұл циклдан бағдарлама Out of memory бойынша шығады, себебі дәлелдеуде repeat дәлелдеудің жаңа бұтағы ретінде генерацияланып, жадыда орналасады.
Описание слайда:
fail – предикат, әрқашан шыншыл емес. Ол ешқашан дәлелденбейді. fail – предикат, әрқашан шыншыл емес. Ол ешқашан дәлелденбейді.  fail (дәлелденбейді)  fail (дәлелденбейді) Осыдан шығатыны: fail дан үтірден кейін жазылатындар ешқашан дәлелденбейді (біз онда жете алмаймыз). fail предикаты Прологта келесі бағдарлама түрінде жазылуы мүмкін: fail :– 1 == 0. repeat және fail дан келесі шексіз цикл алынуы мүмкін: ?– ..., repeat, ... , fail. Бұл циклдан бағдарлама Out of memory бойынша шығады, себебі дәлелдеуде repeat дәлелдеудің жаңа бұтағы ретінде генерацияланып, жадыда орналасады.

Слайд 4





Екі санның минимумын табу бағдарламасын қарастырайық: 
Екі санның минимумын табу бағдарламасын қарастырайық: 
1.min(X, Y, X) :– X<Y. 
2.min(X, Y, Y).
егер X кіші Y, онда минимальды – X, әйтпесе – минимальды – Y. Бағдарламаны тексереміз:
?– min(2, 3, Min).
Min = 2
yes
бағдарламаның қатесі неде?
?– min(2, 3, Min), Min>2.
Min = 3
yes
Яғни минималды сан тең 2? Дұрыс шешім:
Описание слайда:
Екі санның минимумын табу бағдарламасын қарастырайық: Екі санның минимумын табу бағдарламасын қарастырайық: 1.min(X, Y, X) :– X<Y. 2.min(X, Y, Y). егер X кіші Y, онда минимальды – X, әйтпесе – минимальды – Y. Бағдарламаны тексереміз: ?– min(2, 3, Min). Min = 2 yes бағдарламаның қатесі неде? ?– min(2, 3, Min), Min>2. Min = 3 yes Яғни минималды сан тең 2? Дұрыс шешім:

Слайд 5





1 min(X, Y, X) :– X<Y.
1 min(X, Y, X) :– X<Y.
2 min(X, Y, Y) :– X>=Y. 
Дұрыс шешімнің екінші бір нұсқасы «кесумен»:
1 min(X, Y, X) :– X<Y, !.
2 min(X, Y, Y). 
Кесу операторы Прологта «!» леп белгісімен белгіленеді.  Кесу әрқашан тура дәлелдеуде дәлелденеді, ал жөндеу талпынысында қайта дәлелдеуді  кесу көрсетілген ережеде рұқсат етпейді.
if-then-else конструкциясын Прологта қалай беруге болады:
A :– B, !, C.
A :– D.
Описание слайда:
1 min(X, Y, X) :– X<Y. 1 min(X, Y, X) :– X<Y. 2 min(X, Y, Y) :– X>=Y. Дұрыс шешімнің екінші бір нұсқасы «кесумен»: 1 min(X, Y, X) :– X<Y, !. 2 min(X, Y, Y). Кесу операторы Прологта «!» леп белгісімен белгіленеді. Кесу әрқашан тура дәлелдеуде дәлелденеді, ал жөндеу талпынысында қайта дәлелдеуді кесу көрсетілген ережеде рұқсат етпейді. if-then-else конструкциясын Прологта қалай беруге болады: A :– B, !, C. A :– D.

Слайд 6





Егер В дәлелдей алса, онда С дәлелденеді, әйтпесе D дәлелденеді. Егер кесуді алып тастаса, онда С дәлелдей алмай қалған жағдайда, В қайта дәлелденуі мүмкін, ал бұл if-then-else емес.
Егер В дәлелдей алса, онда С дәлелденеді, әйтпесе D дәлелденеді. Егер кесуді алып тастаса, онда С дәлелдей алмай қалған жағдайда, В қайта дәлелденуі мүмкін, ал бұл if-then-else емес.
 member предикаты (Item,   List)   элементтің тізімге кіріуінің бірнеше шешімін табуға мүмкіндік беретін. Оны тек бірінші кіруді іздейтіндей етіп жөндеуге болад.: member(Elem, [Elem | _]) :– !. member(Elem, [Head | Tail]) :– member(Elem, Tail).
Кесудің екі түрі бар: қызыл және жасыл.
Шартты бөлу.
Жасыл кесулер бағдарламаның орныдалу логикасына әсер етпей шешім болмайтын артық алу бұтақтарын кеседі. Қы-зылдар – шешімдерге әсер етіп оларлы кесім тастай алады.
Описание слайда:
Егер В дәлелдей алса, онда С дәлелденеді, әйтпесе D дәлелденеді. Егер кесуді алып тастаса, онда С дәлелдей алмай қалған жағдайда, В қайта дәлелденуі мүмкін, ал бұл if-then-else емес. Егер В дәлелдей алса, онда С дәлелденеді, әйтпесе D дәлелденеді. Егер кесуді алып тастаса, онда С дәлелдей алмай қалған жағдайда, В қайта дәлелденуі мүмкін, ал бұл if-then-else емес. member предикаты (Item, List) элементтің тізімге кіріуінің бірнеше шешімін табуға мүмкіндік беретін. Оны тек бірінші кіруді іздейтіндей етіп жөндеуге болад.: member(Elem, [Elem | _]) :– !. member(Elem, [Head | Tail]) :– member(Elem, Tail). Кесудің екі түрі бар: қызыл және жасыл. Шартты бөлу. Жасыл кесулер бағдарламаның орныдалу логикасына әсер етпей шешім болмайтын артық алу бұтақтарын кеседі. Қы-зылдар – шешімдерге әсер етіп оларлы кесім тастай алады.

Слайд 7





Кесуді қолдануда not предикаты келтірілуі мүмкін
Кесуді қолдануда not предикаты келтірілуі мүмкін
not(X) :– X, !, fail.
not(_).
Ол не істейді: егер X дәлелденсе, онда not – дұрыс емес, себебі кесу мен fail қосылуы not дәлелдеуінің сәтсіздігіне алып келеді. Егер X дәлелденбесе, онда  Х қандай екеніне қарамастан дұрыс болатын, бірінші ережеге альтернатива іздеуге тура келеді.
Мысал:
?– X = 2, not(X == 3).
X = 2
yes
?– X = 2, not(X == 2).
no
Описание слайда:
Кесуді қолдануда not предикаты келтірілуі мүмкін Кесуді қолдануда not предикаты келтірілуі мүмкін not(X) :– X, !, fail. not(_). Ол не істейді: егер X дәлелденсе, онда not – дұрыс емес, себебі кесу мен fail қосылуы not дәлелдеуінің сәтсіздігіне алып келеді. Егер X дәлелденбесе, онда Х қандай екеніне қарамастан дұрыс болатын, бірінші ережеге альтернатива іздеуге тура келеді. Мысал: ?– X = 2, not(X == 3). X = 2 yes ?– X = 2, not(X == 2). no

Слайд 8





Бір тізімді басқа тізімнен алып тастау бағдарламасы minus(L1, L2, Diff). Яғни  Diff тек L1 де кездесіп, L2 де кездеспейтін элементтер орналасады.
Бір тізімді басқа тізімнен алып тастау бағдарламасы minus(L1, L2, Diff). Яғни  Diff тек L1 де кездесіп, L2 де кездеспейтін элементтер орналасады.
minus([],_, []).
minus([X | L1], L2, L) :– member(X, L2), !, minus(L1, L2, L).
minus([X | L1], L2, [X | L]) :– minus(L1, L2, L).
Егер бастапқы тізім бос болса онда айырма нәтижесі де бос. Егер тізімнің басы нәтижелі тізімде бар болса, онда «басы» туралы ұмыта тұрамыз да алуды соңынан жасаймыз. Егер тізімде «басы» жоқ болса, онда қайта оралғанда «басын» нәтиже тізімге орналастыру керек.
Мысал:
?– minus([a, b], [b], L).
L = [а]
	yes
Описание слайда:
Бір тізімді басқа тізімнен алып тастау бағдарламасы minus(L1, L2, Diff). Яғни Diff тек L1 де кездесіп, L2 де кездеспейтін элементтер орналасады. Бір тізімді басқа тізімнен алып тастау бағдарламасы minus(L1, L2, Diff). Яғни Diff тек L1 де кездесіп, L2 де кездеспейтін элементтер орналасады. minus([],_, []). minus([X | L1], L2, L) :– member(X, L2), !, minus(L1, L2, L). minus([X | L1], L2, [X | L]) :– minus(L1, L2, L). Егер бастапқы тізім бос болса онда айырма нәтижесі де бос. Егер тізімнің басы нәтижелі тізімде бар болса, онда «басы» туралы ұмыта тұрамыз да алуды соңынан жасаймыз. Егер тізімде «басы» жоқ болса, онда қайта оралғанда «басын» нәтиже тізімге орналастыру керек. Мысал: ?– minus([a, b], [b], L). L = [а] yes

Слайд 9





read(X) –  X ті ағымдағы кіру ағысынан оқу предикаты. 
read(X) –  X ті ағымдағы кіру ағысынан оқу предикаты. 
write(X) – Х ті ағымдағы шығу ағысына шығару предикаты.
nl – каретканы ауыстыру белгісін шығу ағысына шығарады.
 Қолдану мысалы:
?– write('Enter value: '), read(X), write('result = '), write(X).
Enter value: 12345.
result = 12345
X = 12345
Yes
12345 тен кейін нүкте тұрғанына назар аударыңыз!!!  Осыдан кейін каретканы ауыстыру орындалған.
Описание слайда:
read(X) – X ті ағымдағы кіру ағысынан оқу предикаты. read(X) – X ті ағымдағы кіру ағысынан оқу предикаты. write(X) – Х ті ағымдағы шығу ағысына шығару предикаты. nl – каретканы ауыстыру белгісін шығу ағысына шығарады. Қолдану мысалы: ?– write('Enter value: '), read(X), write('result = '), write(X). Enter value: 12345. result = 12345 X = 12345 Yes 12345 тен кейін нүкте тұрғанына назар аударыңыз!!! Осыдан кейін каретканы ауыстыру орындалған.

Слайд 10





Файлдармен жұмыс істеу үшін:
Файлдармен жұмыс істеу үшін:
sее(ИмяФайла) – кіру ағысын файлдан берілгендерді оқу үшін бағыттайды.
seen – кіру ағысын жабады егер файлдан оқыған болса.
see(user) – кіру ағысын стандартты консолдан берілгендерді оқу үшін қайта бағыттайды. tell(ИмяФайла) – шығу ағысын файлдан берілгендерді шығару ұшін қайта бағыттайды.
told – шығу ағысын жабады, егер файлға шығарылған болса.
tell(user) – берілгендерді шығарудыңшығу ағысын стандартты консолға қайта бағыттайды.
Файлдар тек тізбектеле өңделе алады. Кіру файлынан әрбір оқу сұранысы ағымдағы кіріс ағысының ағымдағы
Описание слайда:
Файлдармен жұмыс істеу үшін: Файлдармен жұмыс істеу үшін: sее(ИмяФайла) – кіру ағысын файлдан берілгендерді оқу үшін бағыттайды. seen – кіру ағысын жабады егер файлдан оқыған болса. see(user) – кіру ағысын стандартты консолдан берілгендерді оқу үшін қайта бағыттайды. tell(ИмяФайла) – шығу ағысын файлдан берілгендерді шығару ұшін қайта бағыттайды. told – шығу ағысын жабады, егер файлға шығарылған болса. tell(user) – берілгендерді шығарудыңшығу ағысын стандартты консолға қайта бағыттайды. Файлдар тек тізбектеле өңделе алады. Кіру файлынан әрбір оқу сұранысы ағымдағы кіріс ағысының ағымдағы

Слайд 11





позициясынан оқиды. Оқылғаннан кейін ағымдағы пози-ция келесі әлі оқылмаған берілгендер элементіне ауысты-рылады. Келесі оқуға сұраныс жаңа ағымдағы позициядан оқуға алып келеді. Егер оқу сұранысы файлдың соңында орындалса, онда бұл сұранысқа end_of_file атомы беріледі (файл соңы). Бір рет оқылған ақпаратты екінші оқу мүмкін емес.
позициясынан оқиды. Оқылғаннан кейін ағымдағы пози-ция келесі әлі оқылмаған берілгендер элементіне ауысты-рылады. Келесі оқуға сұраныс жаңа ағымдағы позициядан оқуға алып келеді. Егер оқу сұранысы файлдың соңында орындалса, онда бұл сұранысқа end_of_file атомы беріледі (файл соңы). Бір рет оқылған ақпаратты екінші оқу мүмкін емес.
Файлда data.txt орналасады 12345 нүктесіз және ауысты-ру кареткасынсыз. Сұраныс нәтижесі:
?– see('data.txt'), write('Enter value: read(X),
write('result = '), write(X), seen.
Enter value:
uncaught exception: error(syntax_error('data.txt:1 (char:6) or operator expected after expression'), read/1)
Файлда data.txt орналасады 12345. нүктемен және ауыс-
			тыру
Описание слайда:
позициясынан оқиды. Оқылғаннан кейін ағымдағы пози-ция келесі әлі оқылмаған берілгендер элементіне ауысты-рылады. Келесі оқуға сұраныс жаңа ағымдағы позициядан оқуға алып келеді. Егер оқу сұранысы файлдың соңында орындалса, онда бұл сұранысқа end_of_file атомы беріледі (файл соңы). Бір рет оқылған ақпаратты екінші оқу мүмкін емес. позициясынан оқиды. Оқылғаннан кейін ағымдағы пози-ция келесі әлі оқылмаған берілгендер элементіне ауысты-рылады. Келесі оқуға сұраныс жаңа ағымдағы позициядан оқуға алып келеді. Егер оқу сұранысы файлдың соңында орындалса, онда бұл сұранысқа end_of_file атомы беріледі (файл соңы). Бір рет оқылған ақпаратты екінші оқу мүмкін емес. Файлда data.txt орналасады 12345 нүктесіз және ауысты-ру кареткасынсыз. Сұраныс нәтижесі: ?– see('data.txt'), write('Enter value: read(X), write('result = '), write(X), seen. Enter value: uncaught exception: error(syntax_error('data.txt:1 (char:6) or operator expected after expression'), read/1) Файлда data.txt орналасады 12345. нүктемен және ауыс- тыру

Слайд 12





кареткасынсыз. Сұраныс нәтижесі:
кареткасынсыз. Сұраныс нәтижесі:
?– see('data.txt'), write('Enter value: '), read(X), 
write('result = '), write(X), seen.
Enter value: result = end_of_file
X = end_of_file
yes
В файле data.txt находится 12345. с точкой и переводом каретки. Результат запроса:
?– see('data.txt'), write('Enter value: '), read(X), write('result35'), write(X), seen.
Enter value: result=12345
X = 12345
	yes
Файлда берілгендер кіші әріптермен немесе бір таңбалы тырнақшаға алынуы керек!!!
Описание слайда:
кареткасынсыз. Сұраныс нәтижесі: кареткасынсыз. Сұраныс нәтижесі: ?– see('data.txt'), write('Enter value: '), read(X), write('result = '), write(X), seen. Enter value: result = end_of_file X = end_of_file yes В файле data.txt находится 12345. с точкой и переводом каретки. Результат запроса: ?– see('data.txt'), write('Enter value: '), read(X), write('result35'), write(X), seen. Enter value: result=12345 X = 12345 yes Файлда берілгендер кіші әріптермен немесе бір таңбалы тырнақшаға алынуы керек!!!



Похожие презентации
Mypresentation.ru
Загрузить презентацию