Збекистон миллий университети



Download 1,98 Mb.
bet38/56
Sana23.06.2022
Hajmi1,98 Mb.
#694633
TuriПрограмма
1   ...   34   35   36   37   38   39   40   41   ...   56
Bog'liq
inf va dast-oquv-qollanma

Матн файллар. Матн файли деб - ASCII кодлари ҳамда кенгайтирилган ва бошқарувчи кодлардан ташкил топган файлга айтилади. Матн файллари сатрлар бўйича ташекил топган бўлиб, файл охири деб номланувчи махсус коддан ташкил топган бўлади. Матнли файл ихтиёрий маълумотларни (сонни, белгини, сатрни) белгилар кетма-кетлиги кўринишда сақлайди. Масалан, паскал тилида ёзилган программа ҳам матнли файл ҳисобланади. Ундан ташқари маълумотларни бир қисми сатрларга ҳам бўлиниши мумкин. Сатр охирини аломати бўлиб 13 код ҳисобланади ва у сатрни ўтказиш белгии (10 код) билан бирлаштирилиши мумкин, матнли файлнинг охири “z”(26 код) белги билан белгиланади. Сон, сатр ва мантиқий қийматларни ёзишда улар белгили кўринишга ўзгартирилади, ўқишда эса сон ва сатрлар матнли кўринишдан машинавий кўринишга автоматик равишда ўзгартирилади.
Матнли файллар билан ишлашда файлли ўзгарувчини киритиш керак:
var f: text;
ва уни физик файл билан assign процедураси орқали боғлаш керак, ундан кейин файлни очиш мумкин. Шуни таъкидлаш керакки матнли файл билан “file of char” туридаги турланган файл билан бир хил эмас.
Матнли файлни reset, rewrite ёки append(f) процедуралари орқали очиш мумкин, бунда охирги процедура матнли f файл охирига ёзиш учун очади. Ундан ташқари матнли файлни очишдан олдин ўқиш-ёзиш амаллари учун буфернинг ўлчамини қуйидаги процедуралар орқали ўрнатиш мумкин:
settextbuf(f,nbuf,buf);
бу ерда f -матнли файл номи, buf - буферга мўлжалланган ўзгарувчининг номи, nbuf - буфернинг байтдаги ўлчами.
Матнли ва сонли маълумотларни ўқиш ва ёзиш қуйидаги процедуралар ёрдамида амалга оширилади:
ўқиш: read(f,x), read(f,x1,x2,. . . ,xn) ёки сатрни ўтказиш билан -readln(f,x), readln(f,x1,x2,. . . ,xn).
ёзиш: write(f,x), write(f,x1,x2,. . . ,xn) ёки сатрни ўтказиш билан -writeln(f,x), writeln(f,x1,x2,. . . ,xn).


§ 3.19. Хотиранинг динамик тақсимоти. Курсаткич тури

Алгоритмик тилларда программа объектларига мурожаат шу объектнинг номини кўрсатиш орқали амалга оширилади. Машина тилларида эса объектга мурожаат шу объектнинг хотирадаги жойлашган ўрнининг адресини кўрсатиш орқали бўлади. Статик объектлар учун улар адресларини кўрсатиш (аниқлаш) трансляция жараёнида амалга оширилади.


Программа ишлаши жараёнида юзага келадиган ва ўлчамлари ўзгариши мумкин бўлган программа объектларига динамик объектлар дейилади.
Айниқса, статик объектлар учун чекли хотира (сегмент) ажратиладиган ШЭҲМ ларда динамик объектлардан фойдаланиш анча самаралидир. Стандарт паскал ва унинг ШЭҲМлардаги варианти Турбо-Паскал (ТП) муҳитида динамик объектлардан фойдаланиш имконияти кўзда тутилган. Паскал тилида динамик объектлар билан ишлаш учун махсус кўрсатгич тур аниқланган. Бу турнинг қиймати қандайдир программа объектига кўрсатгич бўлиб, у орқали объектга бевосита мурожаат амалга оширилади. Программада ҳар бир динамик объектга кўрсатгич туридаги статик ўзгарувчи мос қўйилади ва у орқали динамик объект устида амаллар қилинади.
Кўрсатгич туридаги ўзгарувчининг қиймати программа бажарилиши жараёнида амалга оширилади. Кўрсатгич тур синтаксиси қуйидагича
<кўрсатгич тур>  ^ < тур номи>,
бу ерда - кўрсатгич тур аломати, <тур номи> - стандарт ёки олдин аниқланган тур.
Мисол:
type
Vector  array [1..100] of integer
dinamic_vector  ^ Vector;
Var
p:^ integer; q:^char;
Dinvec:dinamic_vector;
Одатда кўрсатгич туридаги ўзгарувчиларга (p, q, dinvec) кўрсатгичлар дейилади. Кўрсатгичлар схема ёрдамида қуйидагича тасвирланади.

р бизнинг ҳолда р

Б ўш объектга кўрсатагич nil сўзи орқали ифодаланади: p


Кўрсатгичлар қиймати программа ишлаши жараёнида пайдо бўлади. Бунинг учун махсус процедура new аниқланган new (Р). Бу процедура ишлаши натижасида фактик параметрга мос динамик объект пайдо бўлади ва кўрсатгич (p) шу объектга қаратилади.
Динамик объектга мурожаат синтаксиси
<кўрсатгич ўзгарувчи>^
Мисол учун
Var p:^integer;
new (p); p^:58
динамик объект 58 қийматини қабул қилади.
Агар r ўзгарувчи integer турида бўлса қуйидагилар ўринли.
r : r  p^  r; p^ : p^ div 2;
work_vec^[p^1] : 100;
Кўрсатгич туридаги ўзгарувчилар учун ифода-қиймат сифатида қуйидагилар келиши мумкин:

  • бўш кўрстагич (nil);

  • кўрсатгич туридаги ўзгарувчи;

  • кўрсатгич туридаги функция.

Бу ерда ифода тури ўзлаштирувчи кўрсатгич тури билан мос тушиши керак.

Мисол. Қуйидаги ўзгарувчилар эълон қилинган.


V ar
p,q : ^ integer; Амалларнинг чизмада кўриниши.
Begin
new(p); new(q); p q
p^:3; q^:5;

p : q; p q




q :nil; р q
Кўрсатгичлар ўртасидаги фақат ‘<>’ (тенг эмас) муносабати ўринли.
Динамик объектларни йўқотиш учун Dispose стандарт процедураси орқали амалга оширилади. Бу процедура ишлаши натижасида унинг параметридаги кўрсатгичга мос объект тугатилади ва у эгаллаган хотира бўш ҳисобланади ва кўрсатгич қиймати ноаниқ ҳисобланади.
Мисол учун

Dispose(p); p ?
p : nil; p
Кўрсатгичлар асосида турли тузилишга ва ўлчамларга эга бўлган динамик объектларни – занжир, ҳалқа, бинар дарахтларни яратиш мумкин.
Занжир кўринишидаги объект турининг эълони:
Type
Zangir ^ Xalqa;
Xalqa  Record
Element : Integer;
Keyingi_Xalqa : Zangir
End;



Download 1,98 Mb.

Do'stlaringiz bilan baham:
1   ...   34   35   36   37   38   39   40   41   ...   56




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish