Республикасы білім жəне ғылым министрлігі



Pdf көрінісі
бет7/8
Дата12.03.2017
өлшемі1,43 Mb.
#8954
1   2   3   4   5   6   7   8

2.9. Зертханлық жұмыс  9.Visual Prolog файл жүйесi. 

   


    Бұл бөлiмде Visual Prolog файл жүйесiн  жəне файлдармен айналып тұрған 

стандарттык  предикаттарды        көрсетіледі.  Енгiзу  /шығару  қайта 

тағайындалумен - əр түрлi құрылымдарымен  енгiзу /шығару тиiмдi байланыс 

əдiсiмен   таныстыру. 

Файл жүйесi ептеген ерекшелiктерiмен Visual Prolog əр түрлi версияларында 

бiрдей жұмыс iстейдi 

       Visual  Prolog  current_read_device  (оқығанның  ағымды  құрылымы),  оған  

енгiзу  оқылады  жəне      жазғанның  ағымды  құрылымы  current_write_  device,  

(одан  шығару жіберіледі)  қолданылады.    

        Əдеттегiдей,  оқығанның    ағымдағы  құрылымы  клавиатура  болып 

табылады,  ал    ағымдағы  жазу  құрылымы  -  дисплейдiң  пердесi.  Дегенімен 

басқа құрылымдарды  тағайындай аласыз 

         Мысалы,  енгiзу  сыртқы  жадта  сақталған      (мүмкiн  дискте)    файлдан 

оқыла алады. Тiптi мүмкiн бағдарламаны орындағанда   ағымдағы енгiзу  мен 

шығару  құрылымдарды  қайта  анықтау    болады.  Оқудын    жəне  жазудың 

құрылымдарына    қолданылғанына      қарамаай,  Prolog  Visual  бағдарламада   

оқу  мен    жазу    ұқсас    етіледі.    Файлға      оны    ашу  керек.    Файл  келесілерге   

ашылады . 

 

Оқу  үшін ; 



 

Жазу үшін ; 



 

Қосу үшін; 



 

Модификацияға  үшін. 



 

58

             Кез  келген  əсер  ету  үшін    ашық  файл,    оқудан  айырмашылығы  бар  



болатын,  операция    аяқтаудан  кейін  жабылу    болуға  тиісті.  Жағымсыз 

жағдайда  өзгерістер  енгізген  файлға  жоғалтуға  бола  алады.  Бір  уақытта  

бірнеше  файлдарды ашуға болады. 

Ашық  файлдардың      арасында    енгiзу      мен    шығару    жылдам  қайта 

белгіленеді. 

Файлдарды    ашу    мен    жабуы  көбірек  уақыт  алады,    əлдеқайда 

деректердің  ағындарын  қайта тағайындалулары қарағанда  

Visual  Prolog    файл  ашқан  жатқан  кезде,  ол  операциялық жүйенің    файлдын  

бейнелі  түрде  атын      нақты  атымен    байланыстырады    жəне    осы    бейнелі 

түрде аты    енгiзу   мен  шығаруға   бағыттылынады. 

Файлдардың  бейнелі  түрде  атылары  кішкентай  əріптен  бастауға  тиісті 

жəне file доменды сипатталғанда   хабарландыруға  болу тиісті. Мысалы: file 

= file1;   source;  auxiliary;  somethingElse 

Кез келген бағдарламада тек қана бір file домен  рұқсат  берілген. 

1 кестеде қөрсетілген бес кірістірілген  file альтернативтерді    Visual Prolog 

айырылып танады 

  

 

кестеFile доменның   кірістірілген  альтернативтер 

Альтернатива  Сипаттама 

keyboard 

Клавитатурадан оқу  (Үндемеу бойынша ) 

screen 

Мониторға жазу 



stdin 

Стандарттық   еңгізуден оқу  

stdout 

Стандарттық   шығуын жазу  



stderr 

Қателерды шығару үшін стандарттық  құрылымға жазу  

 

Бұл  кірістірілген  альтернативтер    file  сипатталғанда  кездесуге  тиісті 



емес 

Ашумен  жабуға  оларды  керек емес  болмайды. 

Файлдарды ашу мен  жабу  

Файлдарды    ашу  мен    жабу  үшін    стандарттық    предикаттар  туралы 

келесі бөлімдер сипаталады  

Ескерту 


Файлды  ашқанда    ескеру    сақтау  керек,    кері  слэш  (\),  дискінің  

подкаталогың 

белгілеу 

үшін 


 

қолданатында 

DOS-бағдарларынған 

болжамдарда Visual Prolog  ESC-символ (бағдарлаушысымен)   боп келеді   

 Сондықтан  бағдарламада  файлға    белгіленген  жөлды    рұқсаттылғанда    екі 

(\\)кері слэш əрдайым көрсету маңызды болады. 

Мысалы, жөл: 

"с:\\prolog\\include\\iodec1.con"  

файлға рұқсаттың жолын  ұсынады: 

с:\prolog\include\iodec1.con 

Предикат openread/2 

Предикат openread  оқу үшін  OSFileName  файл ашады, келесі  формат 

қолдана: 

openread(SymbolicFileName,  OSFileName) 

%   (i,   i) 


 

59

 



 

Visual  Prolog    file      домен      хабарандырылған,    SymbolicFileName 

бейнелі  түрде  аты  бойынша  ашық  файлға  айналады.  Егер  файл    ашылмаса, 

Visual Prolog  қателек туралы хабарландырады  

Предикат openwrite/2 

Предикат  openwrite    жазу    үшін    OSFileName      файл    ашады,    келсі 

формат қолдана: 

openwrite(SymbolicFileName, OSFileName)    % (i, i) 

 

Егер файл болса, онда  оны  жояды. Басқа жағдайда Visual Prolog жаңа 



файлды  құрады  жəне  оның  тиiстi  тiзбесiнде  сыйғызып  салады.  Егер    файл 

жасалмаса, Visual Prolog қателiк туралы хабарды бередi. 

 

Предикат openappend/2 



Предикат openappend файлдың соңына  жазу  үшін  OSFileName   файл  

ашады  


Сонымен бiргекелесі формат қолданылады: 

openappend(SymbolicFileName, OSFileName)    % (i, i) 

Егер  файл  жазуға  ашыла  алмаса,  Visual  Prolog  қателiк  туралы 

хабарландырады. 

Предикат openmodify/2 

Предикат  openmodify  жазу  мен  оқу  үшін  OSFileName  ашады,    Егер 

файл болса,  ол қайта жазылмайды, openmodify келесі  формат: 

openmodify (SymbolicFileName, OSFileName)    % (i, i) 

Егер  жүйе  OSFileName  аша  алмаса,  Visual  Prolog  қателiк  туралы 

хабарландырады. Оpenmodify 

 

Предикат      кез  келген  рұқсаты  бар  файлының  толтырулары  үшiн  



стандарттық filepos. 

 предикатпен бiрге қолданыла алады 

 

Предикат filemode/2 



предикат filemode мəтіндік  режимде  файлды  ашқан кезде    предикат 

filemode  мəтiндiк  немесе  екiлiк      режимде    көрcетiлген  файлды    орнатады, 

келесі  формат  қолдана: 

filemode(SymbolicFileName, FileMode)    % (i, i) 

Если FileMode = 0, SymbolicFileName файл екiлiк   режимге  келеді   

если FileMode = 1,   онда   ол  мəтіндік  режимге  келеді. 

Мəтіндік   режимде       жазғанда     жана   жөлдарға   "Келесi жолға  өту" / 

"Енгiзу пернесi"  символдар  қосылады ,    ал   оқығанда   бұл  екі   символдар  

жаңа жол  сияқты  түсiндiрiледі 

Carriage return  (возврат каретки) = ASCII 13  

Line feed       (перевод строки)  = ASCII 10 

 

Екілік  режимде   ешқандай   да өзгерістер  болмайды  



 

60

Екілік    файлды      оқу    үшін    сəз      тек    қана    readchar        немесе      екiлiк 



файлдарға рұқсат үшiн предикаттар. кқолданады

 

Предикат closefile/1 

closefile    предикат    белгіленген    файлды      жабады,    ол    келесі    

форматты   қолданады: 

closefile(SymbolicFileName)  %   (i) 

Егер файлы ашық болмаса бұл предикатты əрдайым ойдағыдай бiтедi 



 

Предикат readdevice/1 

readdevice  предикат  readdevice  current_read_device  (оқудын    ағымды 

құрылымы) қайта анықтайды     немесе оған  атын қайтарады .  

Предикаттың  форматы  

readdevice(SymbolicFileName) 



%   (i),   (о) 

 

Предикат writedevice/1 

readdevice  предикат    оқудын    ағымды  құрылымын  қайта  анықтайды,  

егер    SymbolicFileName    айнымалысы    анықталса  жəне    файл      оқуға  ашық  

болса.  Егер  SymbolicFileName    айнымалысы  бос    болса,      онда    readdevice   

оқудын  белсенді  ағымды құрылымның   атын   береді  

Предикат writedevice/1 

writedevice  предикат      не  тағайындайды      немесе    current    write_device 

(жазудың ағымды құрылымы)  ат  алуға  рұқсат береді.  Оның форматты  

writedevice(SymbolicFileName) 



%   (i),   (о) 

Егер  көрcетiлген  файл  жазғанға  немесе  қосқанға    ашылса,    writedevice 

предикат  жазу  құрылымын  қайта  анықтайды.  Егер  SymbolicFileName  

айнымалысы  бос    болса,      онда    writedevice  жазудың    белсенді    ағымды 

құрылымның   атын   береді.  

Файлды жабуының, файлға  жазуы жəне файлды ашуы үлгілер 

1.  Келесi  тiзбектігі    жазу  үшiн  MYDATA.FILнiң  файлды  ашады, 

writedeviceнiң 

екi 

предикаттарының 



арасындағы 

тудырылатыны 

операторлармен,содан соң барлық шығаруды ы MYDATA.FILнiң файлға бұл 

destinationнiң  file  доменiнiң  сипаттама  пайда  болатын  бейнелi  түрде  атына 

сəйкес келетіне бағыттайды, 

domains 


file = destination 

goal 


openwrite(destination,   "MYDATA.FIL"), 

writedevice(OldOut), 

%Шығарудын ағымды құрылымы аламыз 

writedevice(destination), % Файлға шығаруды қайта жібереміз 

writedevice(OldOut),  %Шығарудын ағымды құрылымын налпына келтiремiз 

2.

 



Бағдарлама    ch2е09.рго  (листинг  1)    символдарды  тіркелген 

клавиатурада      TRYFILE.ONE  файлға    ағымдағы  дисктегі  салады,    read  и 

write стандарттык предикаттарды қолданады 


 

61

Тіркелген  символдар    дисплейдің  экранына  шығарылмайды.    Сiздере 



жақсы    жаттығу  болады,    егер  осы  символдарды    экранға  шығару  

бағдарламаны жазғанда. Клавишаны басқанда файл жабылады. 

Бағдарлама ch12e09.pro 

domains 


  file = myfile 

 

predicates 



  readloop - procedure () 

  run - procedure () 

 

clauses 


  readloop:- 

 

readchar(X), 



 

X<>'#',!, 

 

write(X), 



 

readloop. 

  readloop. 

 

  run:- 



 

write("This program reads your input and writes it to"),nl, 

 

write("tryfile.one\n"), 



 

write("For stop press #"),nl, 

 

openwrite(myfile,"tryfile.one"), 



 

writedevice(myfile), 

 

readloop, 



 

closefile(myfile), 

 

writedevice(screen), 



 

write("Your input has been transferred to the file tryfile.one"),nl. 

 

goal 


  run.  

 

Стандарттык  еңгізушығару ды  қайта анықтауы   

file    доменда  stdin,  stdout,  stderr  үш  қосымша  опциялар  бар.  Бұл 

файлдық  ағындарының  артықшылығы    келесіде:  сiз  командалық  жолында 

стандарттык еңгізу / шығару қайта тағайындауға болады  (кесте2)  

 

 



Кесте

  2. Файлдық ағындар мен  сипаттамалар 

 

 



stdin Стандарттык енгiзу, файл  болып келеді,  тек қана оқу үшiн. Бұл 

(stdin  )  readdeviceнiң  клавиатуралары    үндемеу  бойынша      stdin  енгiзу 

құрылымымен тағайындайды 

 



. stdout Стандарттык шығару файл  болып келеді,  тек қана жазу үшiн. 

 

62

Бұл (stdout ) writedeviceнiң терминалының перделерiн үндеу бойынша stdoutт 



енгiзу құрылымымен тағайындайды  

 



 

stderr  Стандарттык  шығару  қателер    файл    болып  келеді,    тек  қана 

жазу    үшiнге  қол  жететiн.  Үндеу  бойынша  бұл  терминалдын  экраны. 

Writedevice  (stderr)    қателерi  туралы  stderr.шығару  үшiн  құрылымен 

тағайындайды. 

 

Файлдармен  жұмыс  істеу 



Бұл  бөлiмде  файлдармен    жұмыс  істеу    үшiн  бiрнеше  басқа  предикаттар 

сипаттаймыз  Бұл  келесі  предикаттар  filepos,  eof,  flush,  existfile,  deletefile, 

renamefile, disk и copyfile. 

 

Мысалдардың бірнешеуін келтірейік

1.    Келесі  кіріспе  тізбегіне  somefile.pro  файлға  Text  мəні  жазып 

алынады(myfile  сияқты  айналып  жатыр),  100  позициядан  бастап  файлдын 

бастауынан бойынша. 

Text = "A text to be written in the file",  

 

openmodifу(myfile,   "somefile.pro"),  



writedevice(myfile), 

filepos(myfile,   100,   0),  

write(Text),  

closeflie(myfile). 

Листинг  бағдарламасында  бұл  істеп  жасалынғандарды,  байттың 

артында  байт  файлдың  ішіндегісін  қолданып  filepos  тексеруге  болады.  Бұл 

бағдарлама  файлдың  атын  сұрайды,  файлдың  позициялардың  ішіндегісін 

содан  соңын  көрсетіп  отыр,  позициялардың  нөмерлері  клавиатурамен 

жүргізіліп отырады. 

2 листинг. ch12e09.pro бағдарламасы 

 

domains 


  file = input 

 

predicates 



  inspect_positions(file) - determ (i) 

 

clauses 



  inspect_positions(UserInput):- 

 

readdevice(UserInput), 



 

nl,write("Position No? "), 

 

readln(X), 



 

term_str(ulong,Posn,X), 

 

readdevice(input), 



 

filepos(input,Posn,0), 



 

63

 



readchar(Y),nl, 

 

write("Char is: ",Y), 



 

inspect_positions(UserInput). 

 

goal 


  write("Which file do you want to work with ?"),nl, 

  readln(FileName), 

  openread(input, FileName), 

  readdevice(UserInput), 

  inspect_positions(UserInput).  

 

Eof/1 предикаты 

eof  перидикатын  тексеріп  жатыр,  процессте  алған  оқуларға  файлдың 

соңымен  позиция  келіп  жатыр.    Мұндай    жағдайда  eof  табысты  болады. 

Қарсы  жағдайда  ол  жағымсыз  жағдайға  да  шыдайды.  Eof  перидикатының 

түрлері:. 

eof(SymbolicFileName)      % (i) 

Егер  файл  құқықтармен  орындаулар  уақыты  тек  қана  жазуға  ашық 

болса    қатені  eof  беріп  береді.  Назар  аудараыыңыз,  предикат  (  +   

комбинациялы пернелер) DOS файлдың аяқталуының нышанына ерекше мəн 

туғызбайды. 

Предикат  пайдалы  файлдармен  жұмыс  істеуінде    предикатты  анықтау 

үшін  қолдануға  пайдалы,  мысалы,  файлдың  аяғына  жете  болмайтын  кезде 

Вile нүктені сол мезгілдерге дейін қайтарады.  

Предикат repfile predicates файлдармен жұмыста  

repfile(FILE) 

clauses 

repfile(_).  

repfile(F):-not (eof (F)), repfile(F). 

 

Келесі  бағдарламада  басқа  біреу  файл  өзгертеді,  барлық  əріптер 



бастапқы болып  келеді. Листинг 3. Программа ch12e11.pro 

omains 


  file = input; output 

predicates 

  convert_file - procedure () 

  repfile(FILE) - nondeterm (i) 

  run - determ () 

clauses 


  convert_file :- 

 

repfile(input), 



 

readln(Ln), 

 

upper_lower(LnInUpper,Ln),          /* converts the string to uppercase */ 



 

write(LnInUpper),nl, 

 

fail. 


 

64

  convert_file. 



  repfile(_). 

  repfile(F):- 

 

not(eof(F)), 



 

repfile(F). 

  run:- 

 

write("Which file do you want convert ?"), 



 

readln(InputFileName),nl, 

 

write("What is the name of the output file ?"), 



 

readln(OutputFileName),nl, 

 

openread(input, InputFileName), 



 

readdevice(input), 

 

openwrite(output, OutputFileName), 



 

writedevice(output), 

 

convert_file, 



 

closefile(input), 

 

closefile(output). 



goal 

  run. 


 

Предикат flush/1 

Передикат    аталған  файлға  ішкі  буферлер  flush  ішіндегісін  жазып 

отырады. 

flush(SymbolicFileName) 

%   (i) 


Ол буфер  «барлық құлату жүйесін» сұрап жатыр. 

 

Предикат existtile/1 



Егер      передикат  existfile  программасын  табысты  орындаса,  онда 

OSFileName    файлы  табылады.  Предикат  OSFileName  тізбе  бола  алады,  ал  

сияқты,  \psys\ *.cfg аты  алмастырулар  таңбалары  бола  алады:  Егер  файлдың 

аты  тізбеге  белгі  қойылған  жолда  емес  предикат  жетіспеушілігі  existfile  те 

бітіп  жатыр.  Бірақ,  байқаң,  "system"  (Жүйелік)  қойылған  атрибуттармен 

барлық  файлдарды,  файлдарды  қоса  existfile  де  табады,  жəне  "hidden"  де 

(Бүркеме),  ол  тізбелерді  таппайды.  Суреттеп  айтылған  төмендегі  тізбелерді 

іздестірулер предикаттардың қолдануымен істелінген болу мүмкін. 

Тексеру  үшін    файл  дискіде  болған  жағдайда  ғана  (оны  ашпастан 

алдын) пайдалана аласыз open(File, Name) :- 

existfile(Name), 

openread(File, Name).  

open(_, Name) :- 

write("Error: the file ", Name," is not found"). 

 

Предикат searchfile/3 



Предикат тізім жолдарында файлды табу үшін searchfile қолданылады. 

 

65

searchfile(PathList,  Name,  FoundName)        %  (i,  i,  o)Егер  дискке  түбірде 



autoexec.bat орналасқан :, C тең FoundName орнайды : \AUTOEXEC.BAT. 

Файлдың    аты  алмастырулар  нышандары  бола  алады.  Бұл  жағдайда 

алмастырулар  нышандары  болатын  файлдан  толық  атымен  сабақтас 

FoundName  болады,  жəне  төменде  суреттеп  айтылған  тізбелер  іздестіру 

предикаттар үшін дəлелді сапада қолданылуы  бұдан əрі мүмкін болу керек. 

Егер  алдыңғы  мысалдың  файлдың  атының  тап  қалған  сияқты  *.bat  орнына 

мысалы autoexec.bat, сабақтас FoundName көрсетеді : \ *.ВАТ. 

 

Предикат deletefile /1 



Предикат  deletefile  оның  берілген  аргументтері  мен  формалары  мен 

берілген файлдарфн өшіріп тастайды. deletefile(OSFileName)    % (1) 

Егер  файл  алып  тастай  алмаса  предикат  қатені  береді.  OSFileName 

біржолдық  нышандар бола алмайды. 

 

Предикат renamefile/1 



 

Предикат  renamefile  NewOSFileName  атынан  OldOSFileName    атын 

өзгертіп жатыр. Ол өз формасын алады. 

renamefile(OldOSFileName,   NewOSFileName)  %   (i,   i) 

 

Егер  NewOSFileName  атымен  файл  болмаса  предикат  табысты 



renamefile болып қалады, жəне екеуіде файлдық өзгерген аттармен сақталып 

қалады. Жағымсыз жағдайда қате берған болады. 

 

Предикат disk/1 



 

Предикат  ағымдағы  диск  өзгеруі  үшін  disk  қолданып  жатыр  немесе 

каталогта/подкаталота өз  қалыпын алады : 

disk(Path)  %   (i),  (о) 

 

Еркін  айнымалы  шақыруда  параметрге  сапада,  ағымдағы  тізбеге  disk 



қайтарылады.  Бұл  дискте  қазіргі  ағымдағы  тізбесіз  өзгеріссіз  басқа  дискке 

ауыстырып қосу үшін DOS-Бағдарлаған болжамдарда D қолданылады:. D бұл 

жерде – құрылым таңбалаушы əріп. 

 

Предикат copyfile/2 



 

Предикатта  файлдың  көшірмесін  алу  үшін  copyfile  қолданылады.  Ол 

екі параметрді қабылдайды :.copyfile(SourceName, DestinationName) 

%      (i, 

i) 

 

Файлдардың  аттары  толық  немесе  ішінара  беріле  алады,  жəне  бұл 



файлдарға  жолдар  дисктер  жəне  тізбелерді  қоса.  Қайта  құрылмалы 

нышандарға тыйым салынған. Көшіріп алған атрибуттарын жəне құқықтарын 

бастапқы файл алады. 

 

2.10. Зертханлық жұмыс  10.Visual- ға кiрiспе iшкдеректер базасы


 

66

 



(internal  fact  databases  )  iшкi  деректер  базасы  сiз  оны  орындалуы  

барысында  Prologты  сiздiң  Visualдар  тiлiндегi  программасынан  уақытында 

тiкелей  толықсытып  алып  тастай  алатын  айғақтардан  тұрады.  Сiз 

бағдарламаның  factsтың  бөлiмiндегi  iшкi  деректер  қорын  жəне  predicatesтiң 

бөлiм  суреттеп  айтылған  предикаттарды  қолданылатын  осы  сияқты  бұл 

предикаттарды қолдануға суреттейтiн предикаттар жариялай аласыз. 

Деректер қорына жаңа айғақтарының қосымшалары үшiн Visual Prolog 

assert,  asserta,  assertzдың  предикаттарын  қолданылады,  retract  жəне 

retractallдiң  предикаттары  қазiргi  айғақтарды  алып  тастауы  үшiн  қызмет 

көрсетедi. Сiз  деректер базасындағы мазмұнын, сначасы айғақ (немесе бөп-

бөлiк айғақ) бұл айғақтың жаңа болжамын сонан соң қойылып алып тасталып 

өзгерте  аласыз.  Consult/1  жəне  consult/2  предикаттар  файлдан  айғақтары 

оқиды  жəне  олардың  iшкi  деректер  қор,  a  save/1  жəне  save/2лерiне 

толықсытады файлдағы iшiндегi iшкi деректер базаларын сақтайды. 

Visual  Prolog  деректер  қорына,  кəдiмгi  предикат  с  тəуелдi  болып 

фактiлердi түсiндiредi. Iшкi деректер базасының предикаттарының айғақтары 

оңай  өзгертуге  болатын  кестеде  максимал  жылдамдығының  табысы  үшiн 

сонда кəдiмгi предикаттар екiлiк кодтарға құрастырады сақталады. 

Iшкi  деректер  базасының  хабарлауы(бұл  əлдеқашанғы  databaseның 

сөзiнiң  синонимы)  facts  маңызды  сөз  factsтың  бөлiмдi  тануын  басты 

анықтайды. Facts бөлiм тиiстi iшкi деректер база суреттейтiн предикаттарды  

тiзбектен  тұрады.  Орындаулар  уақытында  assertaлары  предикаттары  арқылы 

жəне  assertz  деректер  базасына  (бiрақ  ереже  емес)  айғақтар  толықсытуға 

болады. Немесе, сiз дисктегi файлдан толықсытылатын айғақтары consultтың 

үйреншiктi  предикаты  шақырып  ала  аласыз.  Facts  бөлiм  ғибраттанушыда 

көрiне алады 

 

domainsname,  address  =  stringage  =  integergender  =  male  femalefacts(name, 



address, age, gender) person 

predicates(name, address, age) male  

(name, address, age) female  

(name, age, gender) child 

clauses(Name, Address, Age) male:- 

(Name, Address, Age, male) person. 

 

Сiз мысал бұл (male, female, child) басқа предикаттарды қолданылатын 



осы  сияқтымен  person  предикатты  пайдалана  аласыз.  Сiз  бағдарлама 

personның  предикаты  үшiн  айғақтар  жұмыс  уақытында  толықсытып  алып 

тастай алатын жалғыз айырмашылық. 

Айғақтардың  бөлiм  жариялалған  предикаттарға  келесi  екi  шектеу  атап  өту 

керек: 



 



тек  қана  айғақтар  деректер  қорына  толықсытуға  рұқсат  етiледi,  бiрақ 

ереже емес;  

 

базасының айғақтары еркiн айнымалы бола алмайды. 



 

 

67

Factsтың  бiрнеше  бөлiмдерiнiң  бар  болуына  рұқсат  етiледi,  бiрақ  ол  үшiн 



factsтың əрбiр бөлiмiнiң аты анық көрсетуi керек. 

(integer ) myFirstRelation  

mySecondRelationfreal, string  

(string ) myThirdRelation  

/* etc. */ 

Mydatabaseның аты бар factsтың бөлiмiнiң сипаттамасы mydatabaseның 

аты бар айғақтардың деректер қорын құрады. Егер сiз iшкi деректер базасына 

ат  қоймасаңыз,  онда  ол  үндемеу  бойыншаға  dbasedomның  үйреншiктi  атын 

тағайындайды.  Ол  егер  тек  қана  жобаның  бiр  бөлiгi  сияқты  жарияламайтын 

тамырлы  модулдың  единстiнен  тұрады  бағдарлама  айғақтардың  жергiлiктi 

атаусыз бөлiмдерi бола алатынын көңiл аударыңыз. 

Деректер  базасының  предикаттарының  аттары  сирек  кездесетiн 

(бастапқы  файл  )  модул  болуы  керек;  facts  екi  əр  түрлi  тараулардаларға 

дикатов  бiрдей  аттар  өте  қолдануға  болмайды.  Дəл  осылай  facts  жəне 

predicatesтiң  тараулардасына  предикаттарының  бiрдей  аттары  қолдануға 

болмайды. Тарауларданың жергiлiктi facts нақтылы предикаттарының аттары 

дегенмен,  олар  жариялайтын,  жəне  предикатов/фактовтың  жергiлiктi 

аттарымен  қақтықпайды  басқа  модул  жариялалған  модул  үшiн  жергiлiктi 

болып табылады. 



Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет