Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод.указ1.ФЛП.каз.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
156 Кб
Скачать
☆

Зертханалық жұмыс №5 Динамикалық мәліметтер қорымен жұмыс. Графика және Турбо-Пролог терезесі

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

НЕГІЗГІ БӨЛІМ

Статикалық мәліметтер қоры бағдарламаның негізгі кодын жатады және олар өңдеулер барысында ешбір өзгеріссіз қалуы тиіс. Динамикалық мәліметтер қоры әр уақытта жаңа фактылармен толықтырылып отырылады. Динамикалық мәліметтер қорының ерекшелігі ол жеке файл ретінде сақталынады. Динамикалық мәліметтер қорын бағдарламаның database бөлімінде көрсетіледі, мысалы:

database

dstudent (string, symbol, integer)

латын әріпінің d- динамикалық және статикалық мәліметтер қорының предикатының айырмашылығын көрсетеді.

Турбо-Прологта фактылер үшін құрастырылған предикаттар бар. Олар динамикалық мәліметтер қорында орналасқан.

asserta (X) – мәліметтер қорына алғашқы фактілерді енгізу;

assertz (X) – мәліметтер қорының соңына мәліметтер енгізу;

retract (X) – берілген фактілер бойынша жаңадан еңгізілген фактілерді жояды;

consult (имя файла) – файлға мәліметтер қорын толықтыру үшін енгізу жады жазылуын қадағалайды;

Терезелермен жұмыс жасайтын негізгі предикаттар:

makewindow (терезе саны, экран, атр_рамки, аталуы, жолы, бағана, биіктігі, ені) – берілген сандық атрибуттар бойынша анықтайды;

clearwindow – берілген терезедегі мәліметтерді;

removewindow – ағымдағы терезені жою;

gotowindow (номер_окна) – ағымдағы берілген терезе саны бойынша анықтау;

shiftwindow (номер_окна) – ағымдағы терезені анықтап, ағымдағы терезенің санын анықтайды;

graphics (режим, палитра, фон) – графикалық режимді орындайды;

dot (стр, столб, цвет) – берілген түстің нүктесін және берілген координатасын анықтайды;

line (стр1, столб1, стр2, столб2, түс) – графикалық режимде сызықты.

Тапсырманың орындалу реті

Өзіңіздің таңдауыңыз бойынша келесі тапсырмаларды орындаңыз

Келесі берілгендер бойынша бағдарлама құрыңыз:

  • жеке файл түрінде жазылған динамикалық мәліметтер қорын анықтаңыз

  • динамикалық мәліметтер қорына арнап мәзірді құрыңыз

  • көп арналы интерфейс үшін қолданушының терезесін құрыңыз

Келесі программаны құрыңыз:

  • графикалық сызықты емес тәуелділікті

  • графикалық режимге ауысуды орындаңыз

  • параметрлердің өзгеруін қадағалаңыз

Зертханалық жұмыс №6 Тізімді пайдалану. Файлдармен жұмыс

Жұмыстың мақсаты: тізімдер жұмыс жасалынатын операцияларды игеру, файлдық мәліметтер қорын өңдеу.

НЕГІЗГІ БӨЛІМ

Тізім дегеніміз – белгілі бір объектілердің домендік типтегі жинақтаулы. Барлық операцияларды орындау үшін жекелеген бөліктерге белгілі бір әдістермен орналастыруымыз керек. Оларды бас және соңы деп бөлеміз. Басы – ол тізімнің алғашқы элементтері, ал соңы оның төменгі бөлігін өрнектейді.

Турбо-Пролог тізімдермен бірнеше операцияларды орындауға мүмкіндік береді:

  • тізімнің нақтылығын және қателігін анықтайды;

  • екі тізімнің біріктірілуін;

  • тізімді екіге бөлу;

  • өсу және төмендеу бойынша элементтерге сұрыптама жасау;

  • элементтер негізінде мәліметтер қоры бойынша тізім құрастыру.

Файлдағы мәліметтер бойынша жұмыс, файлдық өңдеу деп атаймыз. Мұндай файлдармен операциялар жасау қатарына келесілер жатады:

  • файлды құру;

  • файлға жазылым жасау;

  • файлдан оқу;

  • құрылған файл модификациясын анықтау.

Турбо-Прологта келесі құрылымды предикаттар файлмен жұмыс жасалынады:

Openread () – файлды оқу үшін ашылады;

Openmodify() – жазылымдағы файлды оқу;

Openwrite() – файлды толықтыру үшін орындалады;

Openappend() – файлды толықтыру;

Closefail() – файлды жабу;

Readdevice() – логикалық енгізуді ауыстыру мүмкіндігін береді;

Writedevice() – логикалық ауыстыру.

Тапсырмаларды орындаңыз

Келесі бағдарламаларды мақсаттары бойынша орындаңыз:

domains

n=integer*

m=symbol*

predicates

find(integer, n)

find(symbol, m)

append(n, n, n)

append(m, m, m)

split(integer, n, n, n)

sort(n, n)

insert(integer, n, n)

asc(integer, integer)

clauses

/*тізімдегі элементті анықтаңыз*/

find(H, [H|_]).

find(H, [_|T]) :- find(H, T).

/*тізімдерді біріктіріңіз*/

append([], L, L).

append([H|T1], L2, [H|T3]) :- append (T1, L2, T3).

/*тізімдерді бөлу*/

split(N, [H|T], [H|T1], L2) :- H <= N, split (N, T, T1, L2).

split(N, [H|T], L1, [H|T2]) :- split (N, T, L1, T2), H>N.

split(_, [ ], [ ], [ ]).

/*тізімдерді сұрыптау*/

sort([ ], [ ]).

sort([H|T], S) :- sort(T, S_T), insert(H, S_T, S).

insert(H, [X| S], [X|S1) :- asc(H, X), !, insert(H, S, S1).

insert(H, S, [H|S]).

asc(H, X) :- H>X.

Берілген тізімнің ұзындығын анықтаңыз.FINDALL-ды қолданып, құрылымды тізімді жазыңыз.

Формат:

FINDALL(Айнымалы, Атом, Тізім).

ОҚУ, ОҚУ-ӘДІСТЕМЕЛІК, ҒЫЛЫМИ, АНЫҚТАМАЛЫҚ ЖӘНЕ НОРМАТИВТІК ӘДЕБИЕТ

Негізгі

  1. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. – М.: Мир, 1990.

  2. Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, 1990.

  3. Янсон А. Турбо-Пролога в сжатом изложении. – М.: Мир, 1991.

  4. Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990.

  5. Доорс Дж., Рейблейн А.Р., Вадера С. Пролог – язык программирования будущего. – М. Финансы и статистика, 1990.

  6. Клоксин У., Меллиш К. Программирование на языке Пролог. – М.: Мир, 1987.

  7. Хоггер К. Введение в логическое программирование. – М.: Мир, 1988.

  8. Стобо Дж. Язык программирование Пролог. – М.: Радио и связь, 1993.

  9. Кларк К., Маккейб Ф. Введение в логическое программирование на микроПрологе. – М.: Радио и связь, 1987.