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

Бұл өздік жұмысты орындау барысында мен тізімдерді , файлды және графиканы қолдану арқылы көптеген оларға қолданылатын стандартты предикаттарды оқып үйрендім.
Соған байланысты, осыған дейін біз қолданушының программамен (Файлдармен байланыс) байланысының бір әдісін қолдандық – қолданушы программаға сұрақ қояды, ал программа айнымалыларды нақтылап, жауап береді. Байланыстың мұндай механизмі өте қарапайым және ыңғайлы, өзінің қарапайымдылығына қарамастан ақпаратты енгізу мен шығаруды қамтамасыз етіп тұрады. Бірақ оның иілгіштігі төмен, сондықтан келесі жағдайларда бұл байланыс механизмін кеңейту керек:
• мәліметтерді сұрақ түрінде емес, басқа формада енгізу. Мысалға, ағылшын тілінде жазылған сөйлем түрінде
• ақпаратты кездейсоқ форматта енгізу
• ақпаратты тек қолданушы терминалымен ғана емес, сонымен қатар файлмен де айырбастау тағы да басқа көптеген әдістерді үйренуге болады деп те айтуға болады.
Тағы бір айта кетерлік жайт ол Прологтың басқа да көптеген мүмкіншіліктеріне тоқтола кетсе ол артықтық етпейді. Бірақ Прологтың барлық мүмкіншілігін айтуға уақытта және сөз де жетпейді. Бірақ қолданушы өзіне керек мәліметті алғысы келсе немесе үйренсе ол оған өз шешіміне қателеспейді. Сол сияқты графикамен файлдардың да көптеген сырларын қарастырайық.
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”]
Тізімді басы және ... бөлу ... ... Прологта тізімнен бірінші элементті бөліп алып, жеке өңдесе
болады. Бұл тәсіл тізімнің ұзындығына ... ... ... ... береді. Тізімнің басына еркін өту әдісі-тізімді басына және соңына
бөлу тәсілі деп аталады.
Тізімді ... және ... бөлу ... ... (|) түзудің көмегімен
іске асады.
[Head|Tail].
Head мұнда тізімнің басын белгілеу үшін арналған айнымалы,Tail тізімнің
соңын ... ... ... және ... ... үшін ... келген атты алуға болады.)
domains
number_list = integer
animal_list = symbol
predicates
print_list(number_list)
print_list(animal_list)
clauses
print_list([]).
print_list([Head|Tail]) ... 2, 3] ... [1 | [2, 3]] ... [1 | [2| [3]]] немесе [1 | [2 | [3
| ... ... [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, ... ... ... және ... ... 2, 3, 4]
Сол программаның тексті:
PREDICATES
append (intlist, intlist)
CLAUSES
%бос және бос емес тізімдердің қосылуы
append ([ ], List, List):- ... емес екі ... ... ([H | T], List, [H | App_T]):- append (T, List, App_T).
GOAL
append ([1, 2], [3, 4], App_List), write(“App_List=”, App_List).
Программаның ... ... 2, 3, ... ... / шығару предикаттары терминалдағы (считывание) және жаз-баны
іске асырады. Клавиатура стандартты кіріс ағынымен, ал ... ... ... байланысады. Кіріс және шығыс ағындары Пролог – жүйемен
жұмыс жасаған кезінде ... ... әр ... ... ... жасай алады. Ол үшін файл стандартты кіріс ... ... және ... ... ... арналған предикат-тар
клавиатурадан емес, файлдан (считывание) шығарады. Қажетті жағдайда файл
стандартты ... ... ... ... ... ... ... предикаттар жазбаны экранда емес, файлда іске ... ... ... үшін ... ... ... – F файлды стандартты кіріс ағыны ретінде анықтайды.
seen(F) – бұл предикат F файлдан клавиатураға стандартты кіріс ағынын ... ... see(F2) ... ... F2 ... ... кіріс ағыны
ретінде анықтамас бұрын seen(F1) предикаты көмегімен F1 ... ... ... ... ... қажет (отменить).
tell(F) – мақсатты тұжырым файлдың стандартты шығыс ағынымен ...... ... F ... экранға стандартты шығыс ағынын қайта
анықтайды, tell(F2) ... ... жаңа ... F2 ... ағыны
ретінде анықтамас бұрын, told(F1) предикатының көмегімен файлдан ... ... ... ... ... ... ... қандай файлмен байланысты ... ... ... екі ... ... – F ... кіріс ағынымен байланысты файлдың ... ... - F ... ... ... ... ... атымен тұ-
жырымдалады.
Егер предикаттарды орындау кезінде файл F – тің жоқ екені немесе F
айнымалысы ... ... ... қате шығарады. Стандартты кі-ріс
және шығыс ағындарынан басқа файлмен байланыс жасау үшін басқа да ағындар
қолданылады.
open(F,S,A) – бұл ... S ... F ... ... Егер A – мәні read
болса, онда файлды оқу үшін ... A – мәні write ... онда ... үшін ... – бұл предикат S ағынын жабады. Қарастырылған мақсатты тұжы-
рымдарды ... ... ... ... ... S – ... аты, F ... аты, A – режим доступа.
Егер ағыны ашық болса, ... ... ... ... атын ... енгізу – шығарудың барлық предикаттарын қолдануымыз қажет.
Мысалы, тұжырымдарды кезектілігімен (последовательности)орындау
нәтижесінде,
? – open(тестфайл, элемент,write),
write(элемент, ... ... ... ... жазбасы және жаңа қатардың себебі
(признак) енгізіледі.
Файлдардағы ... ... ... ... өндеу деп
аталады. Файлдарға келесі негізгі операциялар ... ... ... файлға тұжырымды жазу;
- файлдан тұжырымды оқу;
- файлды модификациялау.
Турбо-Прологта ... ... ... үшін ... ... ... - оқу үшін файлды ашу;
Openmodify() - оқу/жазу үшін файлды ашу;
Openwrite() – жазу үшін файлды ... - ... үшін ... ...... ...... логикалық құрылғысын қайта мекендетудіжүзеге
асыру;
Writedevice() - шығарудың логикалық құрылғысын қайта мекендетуді
жүзеге асырады.
Турбо-Прологта графиктік режимде жұмыс ... үшін ... ... ... ... палитра, фон) - графиктік режимді орнату;
dot(қатар, баған, түсі) - берілген координата бойынша нүктелердің
түсін орнату немесе оқу;
line ... бағ1, қат2, бағ2, ... - ... ... ... және т.б.
Программаны Прологта редактілеу
Пролог жүйеде программамен жұмыс кезінде программаға ... ... ... ... бар. Егер ... ... болмаса,
Пролог ортасынан шығу, программаны редактілеу және қайтадан Пролог – жүйге
қайта келу қажет,
еdit(F)
F – файл аты
Файл редактіленгеннен ... ол ... ... ... ... күйде
ұстау үшін Прологтың деректер базасына қайта енгізіледі.
Предикаттарды баспаға ... ... ... ... ... үшін ... ... болады:
Listing
Бұл предикат стандартты ... ... ... деректер
базасындағы барлық тұжырымдарды шығарады.
listing(C)
Егер С атом болса, онда стандартты шығару ... C ... ... ... ... Егер C F ... функторы
бар терм болса, онда F функторлы және A ... ... ... ... ... ... ал арності 2 – ге тең барлық тұжырымдар тізімі ... ... ... біз ... ... ... бір әдісін
қолдандық – қолданушы программаға сұрақ қояды, ал ... ... ... ... Байланыстың мұндай механизмі өте қарапайым ... ... ... қарамастан ақпаратты енгізу мен шығаруды
қамтамасыз етіп ... ... оның ... төмен, сондықтан келесі
жағдайларда бұл байланыс механизмін кеңейту керек:
• мәліметтерді сұрақ түрінде емес, басқа ... ... ... ... жазылған сөйлем түрінде
• ақпаратты кездейсоқ форматта енгізу
• ақпаратты тек ... ... ғана ... ... ... де айырбастау
Пролог-программа жұмыс істеп жатқан кезде екі файл «активті» болады:
біреуі - енгізу үшін, екіншісі – шығару үшін. Бұл екі ... ... ... және ағымды шығыс ағыны деп аталады. Басында бұл екі ағын терминалға
сәйкес болады. Ағымды ... ... ... ... ... ... мүмкін. See предикатына мысал:
...
see(файл1), (user-қолданушы)
файлдан_оқу(ақпарат),
see(user),
...
мұнда ақпарат файл1-ден оқылып, терминалға жіберіледі.
Ағымды шығыс ағыны келесі мақсатпен ауыстырылады:
tell(ФайлАты)
Мысал:
...
tell(файл3), ... ... ... ... ... одан ... келесі шығыс
терминалға жіберіледі.
Мақсат
seen ... ... ... ... ... (жазудың соңы)
ағымды шығыс файлын жабады.
Файлдар тек тізбекті түрде өнделеді. Мұнда файлдар терминал секілді
болады. Кіріс файлының оқылуы ... ... ... ... ... ... ... Егер оқу туралы сұраныс файдың соңында болса, онда ... ... ... ... ... атом ... Бір рет ... ақпарат екінші
рет оқылмайды.
Барлық файл «тексттік» болады, яғни олар ... ... ... ... қарай Прологта файлдардың қарастырылуы
екі тәсілмен жүреді. Бірінші ...... ... ... ... ... ... енгізуге немесе шығаруға жасалған сұраныс бір
символдың оқылуына немесе жазылуына әкеледі. Бұл ... үшін get, get0, ... 0-ді алу, ... предикаттары пайдаланылады.
Екінші тәсіл – файлдың негізгі элементі ... ... ... ... отыр деп ... ... ... бірлік дегеніміз
прологтік терм. Сондықтан енгізу-шығаруға жасалған сұраныс толық ... ... ... ... ... ... ағынына ауысуына әкеледі. Бұл
мақсат үшін read және write ... ... ... ... ... ... термдер синтаксисіне сай болу керек.
Файлды ұйымдастырудың формасы тапсырмаға байланысты болады. ... ... ... ... ... оқуға рұқсат етсе, онда
термдерден тұратын файлдарды ... жөн. ... бір ... ... ... ... толық мағыналы фрагменті бар ақпаратты жіберуге
болады. Ал, жүйе мен қолданушы арасында ... ... ... ... ... онда ... ... синтаксисіне сай емес символдар
қатары ... ... ... және write
read орнатылған предикат ағымды кіріс ағынынан термдерді оқуға
арналған. Мақсат
Read(Х)
келесі Т ... оқу және ... ... үшін ... Егер Х – ... онда ... Х нақтыланып, Т-ға тең болады. Егер ... онда Read(Х) ... да ... Read ...
детерминирленген, яғни ол орындалмаған кезде келесі термді енгізуге қайтып
келу болмайды. Файлдағы әрбір термнен ... ... ... пробел, немесе
каретканы қайтару символы болу керек.
Егер Read(Х) файлдың соңы болған кезде анықталса, онда Х end_of_file
(файл ... ... ... орнатылған предикат термді шығарады. Сондықтан мақсат
Write(Х)
Х термін ағымды шығыс файлына шығарады. Прологтың ерекшелігі write
процедурасының ... ... ... ... шығару керектігін
«білуі».
Графикамен жұмыс жасау
Формат: back ... integer ... ... дейін)
Пероны кері бағытта ығыстырады.
Түсініктеме: Пероны берілген қадамдар санына байланысты кері ығыстырады.
Бағыт left ... right ... ... ала ... ... ... графиктік режимде болуы керек. Экран мөлшері – ... және ... 3200 ... Егер мүмкін емес орынға қозғалыс берілген болса, онда
back ... ... penup ... ... перо
сызықты сызып отырады. Сызықтың түсі pencolor предикатымен орнатылады.
Мысал: back ... 500 ... кері ... ... forward ... integer ... ... дейін)
Пероны алға ығыстырады.
Түсініктеме: Пероны берілген қадамдар санына байланысты алға ... ... ... ... Егер ... емес ... ... онда
forward предикаты орындалмайды. Перо активті болғанша, алға қарай қозғалыс
кезінде сызылып отырады. Сызықтың түсі pencolor предикатымен орнатылады.
Формат: left ... ... ... айналдырады.
Түсініктеме: Пероны сағат тіліне қарсы көрсетілген бұрышқа айналдырады.
Экран графиктік режимде болуы ... left ... 90 ... ... ... айналады.
Формат: line (Жол1, Баған1, Жол2, Баған2, түсі)
Жол1: integer
Баған1: integer
Жол2: integer
Баған2: integer
Түсі: integer
Сызықты ... ... ... жұмысы кезінде сызықты сызады. Бірінші
нүктенің координаталары бірінші екі параметрлермен беріледі, ал екінші
нүктенің ...... және ... параметрлермен беріледі.
«Түсі» мәні төменде келтірілген кестеге сәйкес беріледі. Жолдардың және
бағандардың нөмірлері 0-ден 31999-ға ... ... ... ... Егер ... емес ... ... болса, онда line предикаты
орындалмайды.
Мысал: line (500, 800, 500, 3000, ... ... ... көлденең сызық салынады. Бұл бұрын
орындалған graphies предикатында қандай палитраның таңдалғанына байланысты
айқындалады. Режим 1 орнатылды деп ... ... ... (500,800)
және (500,3000) координаталарын сызықтар қосады.
Формат: right (Бұрыш)
Бұрыш: integer
Пероны оңға қарай айналдырады.
Түсініктеме: ... ... тілі ... көрсетілген бұрышқа айналдырады.
Экран графиктік режимде болуы керек.
Мысал: right (45)
Перо сағат тілі бағытымен 45 ... ... ... ... түс)
жол: integer
баған: integer
түс: integer
нүктенің түсін орнатады немесе оқиды;
Түсініктеме: жол және баған ... ... ... ... ... ... графикалық режимде болуы керек. Жол мен баған нөмірлері
үшін 0 − 31999 ... ... ... ... егер ... ... позициясы берілген болса, орындалмайды.
Мысал: dot(300, 700, 2)
(300, 700) ... ... ... 1 ... ... түске ие
болады.
Түсініктеме: нүктенің түсінің мәнін "түс" параметрімен байланыстырады.
Мысал: dot(500, 800, ... ... ... х=1 ... егер нүкте (500, 800) позициясында жасыл
түске ие болса және 1 режимінде 0 палитра орнатылған болса.
Формат: ... ... ... ... әрі ... forward және back предикаттары
көмегімен сурет салуға болады. Қылқалам арқылы ... ... ... предикатымен беріледі.
Формат: penрos( жол, баған, бағыт)
жол: integer
баған: integer
бағыт: integer
Қылқаламның орнын оқиды немесе орнатады
Түсініктеме: Берілген ... ... ... және баған
нөмірлері пиксельмен беріледі. ... ... ... (0° - төмен)
беріледі.жол мен баған нөмірлерінің мүмкін мәндері 0 – 31999 ... penрos (5000, 8000, ... (5000, 8000) ... ... және ... қарай бағытталады.
Түсініктеме: Қылқалам позициясын оқиды. Параметрлер жол, ... ... ... penрos (Z, S, ... S, R ... сәйкесінше, 300, 6500 және 45 ... және ... ... деактивизациялайды.
Мысал: penup
Қылқалам өз ... ... ... әрі ... forward және back
предикаттары кездессе, ... ... ... ... ... graphics ... Палитра, Фон)
Режим: integer (1-ден 5-ке дейін)
Палитра: integer (0 немесе 1)
Фон: integer
Графикалық режимді орнатады
Комментарий: Экранның графикалық режимін орнатады. ... ... ... және мәнімен 1-ден 5-ке дейінгі диапазонда байланысуы мүмкін.
Түстері екі мүмкін палитрадан (0 немесе 1 кодтары) таңдалады. Экран
тазартылғаннан кейін курсор сол жақ ... ... ... beep
Мысал: beep
Дыбыстық сигнал шығады
Формат: sound ... ... ... ... ... ... ... ұзақтығы мен жиілігі арқылы дыбыстық сигнал шығады.
Мысал: sound (100, 440)
Бір ... ... ... 440 Гц ... дыбыстық сигнал шығады
Формат: Pencolor ... ... ... ... ... ... Перомен жүргізілетін линияның түсін ... ... ... ... ... ... Pencolor (1)
Егер алдында графика командасын орындау кезінде 1 режимі және 0 палитрасы
орнатылған болса, жасыл түс орнатылады.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ... ... ... на ... ... для ... ... «МИР» 1990
2. www.yahoo.com
3. Ин У, Соломон Д «Искусство использование Турбо Прологе»
Москва ... 1990

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 10 бет
Бұл жұмыстың бағасы: 300 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
Динамикалық тізімдермен жұмыс8 бет
Мәліметтердің динамикалық құрылымы25 бет
ЖШС «НҰР» жеке кәсiпорынының автоматтандырылған құжат алмасу жүйесiн жасау72 бет
"Мәтіндік редакторде кесте құру."18 бет
12-жылдық білім берудегі компьютерлік графиканын мүмкіншіліктері13 бет
Matlab жүйесі. Үш өлшемді графика10 бет
Векторлық графика4 бет
Графикалық мәліметтердің бейнелену негізі7 бет
Компьютерлік графика8 бет
Компьютерлік графика туралы7 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь