Тізімдер, файл және графиканы қолдану. Тізімдермен, файлдармен және графикамен жұмыс жасау үшін қолданылатын стандартты предикаттар



Бұл өздік жұмысты орындау барысында мен тізімдерді , файлды және графиканы қолдану арқылы көптеген оларға қолданылатын стандартты предикаттарды оқып үйрендім.
Соған байланысты, осыған дейін біз қолданушының программамен (Файлдармен байланыс) байланысының бір әдісін қолдандық – қолданушы программаға сұрақ қояды, ал программа айнымалыларды нақтылап, жауап береді. Байланыстың мұндай механизмі өте қарапайым және ыңғайлы, өзінің қарапайымдылығына қарамастан ақпаратты енгізу мен шығаруды қамтамасыз етіп тұрады. Бірақ оның иілгіштігі төмен, сондықтан келесі жағдайларда бұл байланыс механизмін кеңейту керек:
• мәліметтерді сұрақ түрінде емес, басқа формада енгізу. Мысалға, ағылшын тілінде жазылған сөйлем түрінде
• ақпаратты кездейсоқ форматта енгізу
• ақпаратты тек қолданушы терминалымен ғана емес, сонымен қатар файлмен де айырбастау тағы да басқа көптеген әдістерді үйренуге болады деп те айтуға болады.
Тағы бір айта кетерлік жайт ол Прологтың басқа да көптеген мүмкіншіліктеріне тоқтола кетсе ол артықтық етпейді. Бірақ Прологтың барлық мүмкіншілігін айтуға уақытта және сөз де жетпейді. Бірақ қолданушы өзіне керек мәліметті алғысы келсе немесе үйренсе ол оған өз шешіміне қателеспейді. Сол сияқты графикамен файлдардың да көптеген сырларын қарастырайық.
1. И.Братко «Программирование на языке ПРОЛОГ для искусственного интеллекта» Москва «МИР» 1990
2. www.yahoo.com
3. Ин У, Соломон Д «Искусство использование Турбо Прологе»
Москва «МИР» 1990

ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ

Қ.И.Сәтпаев атындағы Қазақ ұлттық техникалық университеті

Ақпараттық технологиялар институты

Техникалық кибернетика кафедрасы

Студенттің өзіндік жұмысы

Тақырыбы : Тізімдер , файл және графиканы қолдану. Тізімдермен,
файлдармен және графикамен жұмыс жасау үшін қолданылатын стандартты
предикаттар.

Тексерген:Муртазина А.У.

_____ __________2006ж

Студент: Жанабилова Г.Ж

Мамандығы: 050703

Тобы: ИСб-04-1к

АЛМАТЫ 2006
КІРІСПЕ
Бұл өздік жұмысты орындау барысында мен тізімдерді , файлды
және графиканы қолдану арқылы көптеген оларға қолданылатын
стандартты предикаттарды оқып үйрендім.
Соған байланысты, осыған дейін біз қолданушының программамен
(Файлдармен байланыс) байланысының бір әдісін қолдандық – қолданушы
программаға сұрақ қояды, ал программа айнымалыларды нақтылап, жауап береді.
Байланыстың мұндай механизмі өте қарапайым және ыңғайлы, өзінің
қарапайымдылығына қарамастан ақпаратты енгізу мен шығаруды қамтамасыз етіп
тұрады. Бірақ оның иілгіштігі төмен, сондықтан келесі жағдайларда бұл
байланыс механизмін кеңейту керек:
• мәліметтерді сұрақ түрінде емес, басқа формада енгізу. Мысалға,
ағылшын тілінде жазылған сөйлем түрінде
• ақпаратты кездейсоқ форматта енгізу
• ақпаратты тек қолданушы терминалымен ғана емес, сонымен қатар
файлмен де айырбастау тағы да басқа көптеген әдістерді
үйренуге болады деп те айтуға болады.
Тағы бір айта кетерлік жайт ол Прологтың басқа да көптеген
мүмкіншіліктеріне тоқтола кетсе ол артықтық етпейді. Бірақ Прологтың
барлық мүмкіншілігін айтуға уақытта және сөз де жетпейді. Бірақ
қолданушы өзіне керек мәліметті алғысы келсе немесе үйренсе ол оған
өз шешіміне қателеспейді. Сол сияқты графикамен файлдардың да
көптеген сырларын қарастырайық.

Тізімдерді қолдану.

Турбо-Прологта тізім деп аталатын байланысқан объектілер
қолданылады. Тізім дегеніміз- бірінен соң бірі келетін, реттелген
объектілер жиынтығы. Тізім құрамы бір-бірімен байланыста болғандықтан
олармен топ бойынша да(бүкіл тізім), жеке объект(тізім элементтері)түрінде
де жұмыс істеуге болады.
Турбо-Прологта тізінің көмегімен бірнеше операцияларды орындауға болады.
Олардың қатарына төмендегідей операциялар кіреді:
• Тізім объектілеріне еркін кіру;
• Тізімге жататындығын тексеру;
• Тізімді екіге бөлу;
• Тізім элементтерін өсу және кему реті бойынша сұрыптау.
Тізімдер деректер базасын, эксперттік жүйелерді, сөздіктерді т.б.
жасағанда өте қажетті және маңызды болып табылады.Тізім бір домендік типтің
объектілер жиынтығы болып табылады. тізімнің объектілері болып бүтін және
нақты сандар, символдар, символдық жолдар және структуралар табылады.
Элементтердің орналасу реті тізімнің ерекше белгісі болып табылады; тура
сол элементтерді басқа тәсілмен орналастырсақ , онда ол басқа тізім болып
саналады. Салыстыру барысында рет маңызды роль атқарады.
Тізім элементтері тік жақшаға ( [ ] ) алынып жазылады және элементтері бір
бірінен үтір арқылы ажыратылады.
Тізім ретінде мыналар алынуы мүмкін:
[1,2,3,6,9,3,4]
[3.2, 4.6, 1.1, 2.64, 100.2]
[“YESTERDAY”, “TODAY”, “TOMORROW”]

Тізімді басы және соңына бөлу тәсілінің пайдаланылуы.
Турбо Прологта тізімнен бірінші элементті бөліп алып, жеке өңдесе
болады. Бұл тәсіл тізімнің ұзындығына қарамастан, тізім біткенше жұмыс
істей береді. Тізімнің басына еркін өту әдісі-тізімді басына және соңына
бөлу тәсілі деп аталады.
Тізімді басына және соңына бөлу операциясы вертикаль () түзудің көмегімен
іске асады.
[HeadTail].
Head мұнда тізімнің басын белгілеу үшін арналған айнымалы,Tail тізімнің
соңын білдіреді. (Тізімнің басының және соңының аттары үшін Турбо-Прологта
кез келген атты алуға болады.)
domains
number_list = integer
animal_list = symbol
predicates
print_list(number_list)
print_list(animal_list)
clauses
print_list([]).
print_list([HeadTail]) :-
write(Head),nl,
print_list(Tail).
Мысалы:
[1, 2, 3] немесе [1 [2, 3]] немесе [1 [2 [3]]] немесе [1 [2 [3
[ ]]]]
[1] немесе [1 [ ]]
Вертикалды түзу сызықты тізімдің басы мен денесін бөлу үшін ғана
емес, бірақ тізімдің басқы элементтерін бөлу үшін де қолданылады:
[1, 2, 3] немесе [1, 2 [3]] немесе [1, 2, 3 [ ]]
Бұл мысалда екі тізімнің қосылуы туралы қарастырамыз, ал екі тізімді
қалай қосуға болатынын қарастырайық. Екі элементті екі тізім берілсін
делік: [1, 2] және [3, 4]. Қосылуды бірінші тізімнің басынан бастап
бастап бөлуден бастау, ол тізім бос болып қалғанша. Ал тізім бос
болған кезде оны екінші тізіммен қосу оңай болады.
Нәтижесінде, шыныменде, екіншісіне ұқсас сондай тізім шығады.Мұнда
тек қалғаны басын қосу керек және біріншісінен екіншісін бөлу керек.
Бұны қадаммен көрсететін болсақ ол былай болады:
• – [1, 2] – [1 [2]] (басы– 1, денесі – [2])
• – [ 2] – [2 [ ]] (басы – 2, денесі – [ ])
• Екінші тізіммен бос тізімді қосу [ ] және бос емес екінші тізім
[3, 4] – сол бос емес тізім шығады – [3, 4], енді тізім ді қосуды
бастауға болады, денесі сияқты – [3, 4]
1. тізімнің денесінен шыққан [3, 4] бірінші тізімнен шыққан денесі
қосылады 2, келесі тізім бізге не береді – [2, 3, 4]
2. енді бар қалғаны екінші тізімге қосу [2, 3, 4], денесі 1, бұл
бірінші тізімнен бөлінген және екеуінің қосылғаны[1, 2, 3, 4]
Сол программаның тексті:
PREDICATES
append (intlist, intlist)
CLAUSES
%бос және бос емес тізімдердің қосылуы
append ([ ], List, List):- !.
%бос емес екі тізімдің қосылуы
append ([H T], List, [H App_T]):- append (T, List, App_T).
GOAL
append ([1, 2], [3, 4], App_List), write(“App_List=”, App_List).
Программаның шешуі :
App_List=[1, 2, 3, 4]

Файлдарды өңдеу
Енгізу шығару предикаттары терминалдағы (считывание) және жаз-баны
іске асырады. Клавиатура стандартты кіріс ағынымен, ал экран стан-дартты
шығыс ағынымен байланысады. Кіріс және шығыс ағындары Пролог – жүйемен
жұмыс жасаған кезінде қажет ететін әр түрлі файлдарды қолдану-шымен
байланыс жасай алады. Ол үшін файл стандартты кіріс ағыны ретінде
қарастырылады және жоғарыда қарастырылған енгізуге арналған предикат-тар
клавиатурадан емес, файлдан (считывание) шығарады. Қажетті жағдайда файл
стандартты шығыс ағыны ретінде белгіленеді. Мұндай жағдайда шыға-руға
арналған предикаттар жазбаны экранда емес, файлда іске асырады. Стандартты
ағындарды анықтау үшін келесі предикаттар қолданылады:
See(F) – F файлды стандартты кіріс ағыны ретінде анықтайды.
seen(F) – бұл предикат F файлдан клавиатураға стандартты кіріс ағынын қай-
та анықтайды. see(F2) предикаты көмегімен F2 файлдың стандартты кіріс ағыны
ретінде анықтамас бұрын seen(F1) предикаты көмегімен F1 файлдың стандартты
кіріс ағынымен байланысын өзгерту қажет (отменить).
tell(F) – мақсатты тұжырым файлдың стандартты шығыс ағынымен анық-талады.
told(F) – мақсатты тұжырым F файлдан экранға стандартты шығыс ағынын қайта
анықтайды, tell(F2) предикатының көмегімен жаңа файлдың F2 шығыс ағыны
ретінде анықтамас бұрын, told(F1) предикатының көмегімен файлдан F1
ағымдағы шығыс ағынын өшіру қажет.
Прологта стандартты ағымдар қандай файлмен байланысты екенін
анықтауға мүмкіндік беретін екі предикат бар.
Seeing(F) – F стандартты кіріс ағынымен байланысты файлдың атымен тұжы-
рымдалады.
telling(F) - F стандартты шығыс ағынымен байланысты файлдың атымен тұ-
жырымдалады.
Егер предикаттарды орындау кезінде файл F – тің жоқ екені немесе F
айнымалысы нақтыланбағаны белгілі болса, қате шығарады. Стандартты кі-ріс
және шығыс ағындарынан басқа файлмен байланыс жасау үшін басқа да ағындар
қолданылады.
open(F,S,A) – бұл предикат S ағындағы F файлын ашады. Егер A – мәні read
болса, онда файлды оқу үшін ашылады, A – мәні write қабылдаса, онда файл
жазу үшін ашылады.
close(S) – бұл предикат S ағынын жабады. Қарастырылған мақсатты тұжы-
рымдарды орындау кезінде айнымалылары нақтылану қажет. S – ағынның аты, F –
файлдың аты, A – режим доступа.
Егер ағыны ашық болса, бірінші аргумент ретінде ағының атын көрсету
отырып, енгізу – шығарудың барлық предикаттарын қолдануымыз қажет.
Мысалы, тұжырымдарды кезектілігімен (последовательности)орындау
нәтижесінде,
? – open(тестфайл, элемент,write),
write(элемент, тестпоток),
nl(элемент), close(элемент).
тестфайл файлында ‘тестпоток’ жазбасы және жаңа қатардың себебі
(признак) енгізіледі.
Файлдардағы мәліметтермен жұмыс істеу файлдық өндеу деп
аталады. Файлдарға келесі негізгі операциялар қолданылады:
- файлдарды құру;
- файлға тұжырымды жазу;
- файлдан тұжырымды оқу;
- файлды модификациялау.
Турбо-Прологта файлдармен жұмыс істеу үшін келесі стандартты
предикаттар пайдаланады.
Openread() - оқу үшін файлды ашу;
Openmodify() - оқужазу үшін файлды ашу;
Openwrite() – жазу үшін файлды ашу;
Openappend() - толықтыру үшін файлды ашу;
Closefile() – файлды жабу;
Readdevice() – енгізудің логикалық құрылғысын қайта мекендетудіжүзеге
асыру;
Writedevice() - шығарудың логикалық құрылғысын қайта мекендетуді
жүзеге асырады.
Турбо-Прологта графиктік режимде жұмыс істеу үшін төменде негізгі
стандартты предикаттар қолданылады:
graphics(режим, палитра, фон) - графиктік режимді орнату;
dot(қатар, баған, түсі) - берілген координата бойынша нүктелердің
түсін орнату немесе оқу;
line (қат1, бағ1, қат2, бағ2, түсі) - графиктік режимде сызық
сызу және т.б.
Программаны Прологта редактілеу
Пролог жүйеде программамен жұмыс кезінде программаға ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
ПРОЛОГ - БАҒДАРЛАМАНЫҢ СИНТАКСИСІ ЖӘНЕ СЕМАНТИКАСЫ
Жалпы білім беру мектептерінде математикалық логика элементтерінің оқытылуы және турбо пролог логикалық программалау тілі
Объектілі-бағдарлы программалаудың теориясын меңгеру
Турбо Прологтағы программаның құрылымы
Мәліметтер базасы обьектілері
Графикалық функциялар
Глобальды жүйе
Оқу үрдісінде қолдануға арналған электронды оқу құралдары
Python бағдарламалау тілі жайлы
Терезеден терезеге көшу
Пәндер