А-В айырма нєтижесiне В–ѓа кiрмейтiн А–ныњ ѓана элементтерiнен т±рады.
[1,2]+[3,4] - [1,2,3,4]
[1..10]+[5..15]- [1..15]
[1..10]*[5..15] - [5..10]
[1,2]*[3,4] - [ ]
[1..10]-[5..15] - [1..4]
Элементтердiњ жиынѓа енуiн тексеру.
Элементтердiњ жиынѓа енуiн тексеру ‰шiн in –ќызметшi сµзiмен берiлетiн логикалыќ ќатынас ќолданылады. Егер элемент жиынѓа енсе ќатынас нєтижесi true, єйтпесе false болады.
Мысалы,
1) 2 in [1..10,12]- true;
2) 5 in [1,2,7,10]- false.
Егер,
If (Ch=’a’) or (ch=’b’) or (Ch=’x’) or (Ch=’y’) then S
болса, онда ќ±рылымды басќаша былай жазуѓа болады:
if Ch in [‘a’, ‘b’,’x’, ‘y’] then S.
Екiншi ќ±рылым орындалуы жылдамдыѓы жаѓынанан да тиiмдi болады.
Логикалыќ ќатынастарды (тењ,тењ емес жєне жиынѓа элементтiњ кiруiн(= <> <= >=)) жиындар ‰шiн тексеруге болады.
[1,2,3]<> [1,2,2] - true
[1,2,3]=[5,2]- false
[1,2,3]>=[1,2]- true
[S]<=[1..10]-true,
Егер S–б‰тiн сан жєне [1..10] диапазонынан болса, онда символдардыњ жиынѓа кiру– кiрмеуiн тексерудi ќарастырайыќ:
var
Symbols: set of char;
S: char;
begin
for S:=chr(0) to chr(255) do
if S in Symbols then
< S айнымалысымен болатын iс-єрекеттер >
end;
…
Тақырып. Мәтіндік файлдармен жұмыс
Pascal тiлiнде файл – деп, деректердiњ ќандайда бiр жиынтыѓын саќтай алатын сыртќы еске саќтау ќ±рылѓысындаѓы жадыныњ обылысын айтамыз.
Б±л жады облысына ќандайда бiр деректердi орналастыруѓа да, жєне одан алуѓа да болады. Б±л єрекеттер файлѓа енгiзу– шыѓару – деп, аталады.
Файлдыќ айнымалылар жєне типтердi ќарастырайыќ. Файлдыќ айнымалыны сиппаттаудыњ жазылуы:
Var
F: file of integer;
Жазуды былай т‰сiнемiз:
F– атты б‰тiн сандардыњ (саны белгiсiз) сыртќы жадыда орналасќан (магниттi дискiде) тiзiмiн айтады.
Єр файлдыќ типтi айнымалыныњ файлда аѓымдыќ кµрсеткiшi болады. (Ол ќ±пия айнымалы жєне ќандайда бiр файл элементiн кµрсетедi).
Файлдыќ типтер сиппаттау ‰лгiсi:
<идентификатор> = File of <тип>;
[ М±нда типсiз файлдарды да жазуѓа болады].
Файлдыќ типтер мысалы:
type
Sequence =file of char;
Var
F1,F2: Sequence;
Table: file of string [80];
Database: file of person;
InputData: file of real;
Файлдыќ айнымалылармен Turbo Pascal-даѓы жасалатын амалдар:
бастаушы жєне аяќтаушы амалдар;
енгiзу–шыѓару;
файл бойынша ќозѓалу;
арнайы амалдар.
Тақырып. Типтелеген файлдар
Бастапќы жєне аяќтаушы амалдар:
Assinn, Reset, Rewrite, Flush, Close – амалдары болып табылады.
а) Assign – процедурасы наќты физикалыќ файлдармен файлдыќ айнымалылар арасындаѓы байланысты аныќтайды.
мысалы:
Assign (F,’d:\ mydir\ myfile. Dta’);
Assign бойынша шаќырудан кейiн F – файлдыќ айнымалы дисктiк файл myfile .dta – мен байланыста болады.
myfile .dta файлы mydir каталогiнде d дискiде ораласады.
б) Reset жєне Rewrite –процедуралары бiр ѓана параметр- файлды алу ‰шiн ќажет файлдыќ айнымалы .
Reset – ашатын дисктiк файл бар екенiн кµрсетсе,
Rewrite– б±рын жоќ жања файл ашады. Егер файл б±рын бар болса, б±л процедура оны µшiредi. Аѓымдаѓы кµрсеткiш– нµлiншi элементке ќойылады.
в) Flush (параметр–файлдыќ айнымалы) – файлмен , оныњ жабылуынсыз айырбасты аяќтауѓа керек.
г) Close – бiр ѓана параметр ретiнде кµрсетiлген файлмен ж±мысты аќтауѓа арналѓан. Файл ашылѓанда пайда болѓан буферлер жойылады.
Енгiзу – шыѓару амалдары.
Read –оќу
Write -жазу
EOF - файл соњы (end of file)
Файл бойынша ќозѓалу.
Seek
Truncate
Процедуралар жєне функциялары файл бойынша ќозѓалуды iске асырады.
Filesize
Filepos
Eof
Seek аѓымдаѓы кµрсеткiштi берiлген
нµмiрге ќоюѓа м‰мкiндiк бередi.
Seek екi параметрлi – файлдыќ типтi жєне б‰тiн типтi болады (longint-типтi). Бiрiншi параметр файлды кµрсетсе, екiншi параметр, реттiк нµмiр, файлдыњ ќай жерге ќою керек екенiн кµрсетедi.
Filesize-файл элементтерiнiњ жалпы санын бередi.
Filepos-аѓымдаѓы кµрсеткiш ќойылѓан элементтiњ нµмiрi.
Мысалдар:
Seek(F,Filepos(F)+1)бiр элементтi ќалдырып отыру
Seek(F,0) кµрсеткiштi файл басына ќою
Seek(F, Filesize(F)) аѓымдаѓы кµрсеткiштi файлдыњ соњѓы элемент соњына ќояды - б±л процедураны файл соњына элементтер ќосу ‰шiн немесе бастапќы позицияны алу ‰шiн ќолдануѓа болады
Eof функциясы –бiр параметрмен шаќырады – файлдыќ айнымалы ретiнде true жєне false логикалыќ мєндi ќайтарады.
Truncate- файлды соњѓы бµлiгiнен кµрсеткiш позициясымен ќоса ќию ‰шiн ќолданылады.Файлдыќ айнымалы ќиылѓан файлѓа сєйкес болады.
Арнаулы амалдар:
ERASE- дискiден файлды µшiру.
RENAME- файлѓа жања ат беру.
CHDIR- аѓымдыѓы каталогты ќою.
MCDIR-жања (iшкi)каталог жасау.
RMDIR-бос (iшкi) каталогты жою.
Тексттiк файлдар:
var
Textinf:text;
2. SetTextBuf(var F:text;var Buf) немесе
SetTextBuf(var F:text; var Buf;Size:word)
М±нда: F –файлдыќ типтi айнымалы,
Buf-буфер орналасатын айнымалы(типсiз).
Size- буфердiњ байттыќ µлшемi, (егер Size берiлмесе, онда буфердiњ µлшемi 128 байт болады).
Сiлтiлемелi типтер. Динамикалыќ айнымалалар.
Сiлтемелi немесе кµрсеткiштi типтер аралыќ, яѓни скаляр жєне ќ±рама типтер арасындаѓы тип болады. Бiр жаѓынан сiлтеме типтер бµлiнбейтiн, екiншi жаѓынан басќа типтер арќылы аныќталады.
Сiлтеме тип ќандайда бiр типтiњ мєндерiне кµрсеткiш болатын мєндер жиынын аныќтайды. Сiлтеме типтi сипаттау ‰шiн ‘^‘- символы жєне идентификатор типi кµрсетiледi:
type
R= ^real;
Б±л сипаттама бµлшек мєндерге кµрсеткiш жиынын аныќтайды.
Мєндерiне кµрсеткiш ќ±рауѓа болатын тип кез-келген жєне сiлтеме тип ‰шiн базалыќ тип болады.
Мысалы: 1) type 2) type
P=^integer; PtrType= ^BaseType;
Var BaseType=record
P1, P2: P; x,y:real
OneMan: ^Person end;
Базалыќ типтiњ мєндерiнiњ жадыда орналасу адресi сiлтеме типтердiњ мєнi болады.
Сiлтеме типтi айнымалыѓа ќандайда бiр мєндi мешiктеу керек болса, онда кµрсеткiштi алу амалын ќолдану керек. Ол @ ( амперсанд) + операнд- схемасы бойынша жасалады.
Мысалдар: 1) var i: integer;
P1=@i
@i нєтижесiнде б‰тiнге кµрсеткiш ќойылады.
Схема:
Р1 i
Кµрсеткiш* б‰тiн
2) var
A:array[1..10] of integer;
@A[i]-ќ±рылымныњ мєнi: А массивiндегi i-шi б‰тiнге кµрсеткiш
Р1=@A[i];
Сiлтемелi типтердi кез келген типтен жасауѓа болады, сондай-аќ, “кµрсеткiшке кµрсеткiш” аныќтауда м‰мкiн.
Схемасы:
РР1:= @P1;
PP1
P1
Кµрсеткiш *
Кµрсеткiш * i
Б‰тiн
Кµрсеткiш бойынша айнымалыны ќолдану.
Мысалы, P1:=@i;
1)ќолдану т‰рi: i: = i+2,
2)ќолдану т‰рi P1^ :=P1^ +2
жєне 2) – ќолдану т‰рлерi µзара эквиваленттi.
nil – нµлдiк кµрсеткiш, яѓни жадыда алдын-ала бiр адрес белгiленiп, оѓан ешќандай айнымалы жазуѓа болмайды. nil – кµрсеткiшi т±раќты жєне кез-келген кµрсеткiштi типке оныњ мєнiн меншiктеуге болады.
Айнымалылар тµмендегiдей топтпрѓа бµлiнедi.
статикалыќ ( жадыдаѓы орыны автоматты
aйнымалылар т‰рде жєне стектiк тєртiпке
баѓынатын бµлiнген айнымалылар) динамикалыќ (программалаушыныњ µзi
жасайтын немесе жоятын айнымалылар)
Динамикалыќ айнымалылар, олардыњ саны, жадыда орналасуы алдын ала белгiсiз, сондыќтан алдын-ала идентификатормен белгiлей алмаймыз. Ендеше, динамикалыќ айнымалыларды ќолдану ‰шiн олардыњ жадыда аѓымдаѓы орнына кµрсеткiштi белгiлеу керек.
Локальды айнымалылар ‰шiн оперативтi жадыда арнайы сегмент бµлiнедi (стектiњ сегментi). Осыѓан ±ќсас: динамикалыќ айнымалылар жадыныњ басќа облысында iске асырылады да, ол жадыныњ динамикалыќ облысы немесе heaр- ‰йме деп аталады.
Динамикалыќ айнымалыларды жасау жєне жою.
Жасау жєне жою- динамикалыќ айнымалыларѓа ќолданылатын негiзгi єрекеттер. Олар Pascal тiлiнiњ стандарт процедуралары NEW жєне Dispose арќылы iске асырылады.
NEW ( параметр) - Динамикалыќ айнымалыныњ мєнi ‰шiн
– жадысында орын дайындайды.
Мысаладр:
1) type
Student_rezult=(
udovl,neudovl,udarn,otl);
Student = record
fam: string [20];
number_group: integer;
Birthday: Date
Case rezult: Student_rezult of
neudovl: organization: boolean;
tartip: boolean);
udovl,udarn,otl: name:string
end;
var
P: ^ Student;
Begin
NEW(P);
…………
P^ Birthday. Year= 1985;
P^.Birthday. Month=Feb;
NEW процедурасын функционалды т‰рде ќолдануѓа болады.
Мысалы:
type
pstudent=^ Student;
var
p:= (pstudent);
begin
p: NEW(pstudent);
осы типтiњ
кµрсеткiшi = NEW(сiлтемелi тип)
NEW процедурасымен ж±мыс iстегенде ¿еарта жадыныњ жетпей ќалуы м‰мкiн. Сондыќтан, динамикалыќ жадыныњ аѓымдаѓы
жаѓдайын тексеру ‰шiн стандарт maxAvail функциясын ќолдану керек; оныњ мєнi- динамикалыќ айнымалыны орналастыруѓа болатын жадыныњ ‰зiлiссiз бос бµлiгiнiњ ењ ‰лкен µлшемi болып табылады.
Мысалы:
If MaxAvail>=Sizeof(Student) then
P:=NEW (Pstudent);
MemAvail - стандарт фун-я,мєнi динамикалыќ бос жадыныњ суммарлыќ µлшемi.
Dispose -стандарт процедурасы жадыны босатады.
Мысалы:
Var
P: ^Student;
Begin
NEW(p);
P кµрсеткiшiмен ж±мыстар
Dispose(p)
end.
Динамикалыќ типтi деректердiњ ќ±рылымдарына тiзiмдiк ќ±рылымды жатќызуѓа болады.
1- Схема:
Деректердiњ тiзiмдiк ќ±рылымыныњ схемасы:
Тiзiмнiњ Тiзiмнiњ Тiзiмнiњ
1 эл. 2 эл. … соњѓы
элементi
Кµрсеткiш Кµрсеткiш NIL
2- Схема:
‡йменiњ дербес компьютер жадысындаѓы орналасу схемасы:
ж‰йелiк
Heaр, END облыс ‰лкен адрес
Heaр PTR ‰йме
программа
Нeaр ORD ж‰йелiк кiшi адрес
облыс
3- Схема:
Динамикалыќ жадыныњ схемасы:
P1^ P1^ P1^
P2^ P2^ P2^
MARK(P) P3^ Dispose(P) Release(P)
P4^ P4^
P5^ P5
P5^
ӘДЕБИЕТТЕР Тізімі
Вирт Н. Алгоритмы и структура данных. –М.:Мир, 1989
О.А.Меженный. Turbo Pascal. -M.:Издательский дом
«Вильямењ, 2001. -448 с.
А.М.Епанешников, В.А.Епанешников. Turbo Pascal
7.0 - М «Диалог-Мифињ, 2002.
Г.Рапаков, С.Ржеуцкая. Turbo Pascal для студентов и
школьников - Санкт-Петербург, 2002.
Эллиот Б. Коффман. Turbo Pascal - М*Санкт-
Петербург*Киев, 2002.
В. Шел ест. Программирование - Санкт-Петербург
"БХВ-Петербург", 2002.
О.П.Зеленяк. Практикум программирования на Turbo
Pascal - М*Санкт-Петербург*Киев, 2002.
С.А.Немнюгин. Turbo Pascal практикум - Санкт-
Петербург «Питерњ, 2001.
А.Н.Моргун. Решение задач средствами языка Turbo
Pascal 7.0 - Киев «ЮНИОРњ, 2002.
Фаронов В. В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. -М.: "Нолидж", 1997. -616с.
Форонов В. В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. -М.: "Нолидж", 1997. -432с.
Чернов Б. И. Программирование на алгоритмических языках. Бейсик, Фортран, Паскаль: Кн. Для внеклас. чтения учащихся 9-11 кл. сред. Шк. -М.: Просвещение, 1991.-192с.
Зуев Е.А. Язык программирования Turbo Pascal 6.0.-М.: Унитех, 1992.-298с.
Программное обеспечение микроЭВМ. В 11 кн. Кн.7. Программирование на языке ПАСКАЛЬ: Учебное пособие для ПТУ/В.Ф. Шаньгин, Л..М. Поддубная; Под. Ред. В.Ф. Шаньгина. -2-е изд., перераб.и доп. -М.: Высш.шк.,1991.-142с.
Пильщиков В.Н. Сборник упражнений по языку Паскаль: Учеб. Пособие для вузов. -М.: Наука. Гл. Ред. Физ.-мат. Лит., 1989.-160с.
Программно-методические материалы: Информатика 1-11 кл./ сост. Л.Е. Самовольнова. -М.: Дрофа, 1998.-96с.
Лапчик М.П. Вычисления. Алгоритмизация. Программирование: Пособие для учителья. -М.: Просвещение, 1988.-208с.
Абрамов С. А., Зима Е.В. Начала программирования на языке паскаль. -М.: Наука. Гл. Ред. Физ.-мат. Лит., 1987.-112с
Грогано П. Программирование на языке ПАСКАЛЬ. -М.: Мир, 1982.
Перминов О.Н. Язык программирования Паскаль. М.Радио и связь, 1986
Масанов Ж.Қ., Бельгибаев А.Б., Бижанова А.С., Мақұлов Қ.Қ. Turbo Pascal Алматы, 2004ж
Қосымша әдебиеттер
Вирт Н. Систематическое программирование. Введение. Моква.Мир, 1984
Алдашев С.А., Ахметов Н.Р. Информатика мен есептеуіш техника терминдерінің орысша-қазақша сөздігі.
Янсон А. Турбо - Пролог в сжатом изложении: Пер. с нем. -М.: Мир, 1991.-94с.
Аитов Ж:А., Мақамбаев М.Б. Паскаль тілінде программалау. Семей, 1998 ж.-128 б.
Форсайт Р. Паскал для всех Пер. с англ. Под ред. Ю.И.Топчева. Москва. Машиностроение, 1986.
Ж.К. Нұрбекова, А.З. Даутова, Т.К. Койбагарова. Орысша-қазақша түсіндірме сөздік. Павлодар, 2002, -44 б
В.А. Острейковский. Информатика. Учеб. Для вузов.-М. “Высшая школа”, 1999.-511 с.
Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. –М.: Мир, 1981.
Мейер Б.,Бодуэн К. Методы программирования. –М.: Мир, 1982
Достарыңызбен бөлісу: |