Файл бу маьлумотларнинг фундаментал структураларидан бири. Компьютерларнинг дастур билан ишлаши, ташқи курилмалар билан алоқаси файл структурасига асослангандир.
Файллар қуйидаги масалаларни ечишга асослангандир:
1. Қийматларни бошқа дастурлар фойдаланиши учун сақлаб қуйиш;
2. Дастурнинг киритиш-чиқариш ташқи курилмалари билан алоқасини ташкил қилиш.
Файл тушунчасининг икки томони бор:
1- чи томондан файл – ташқи хотиранинг бирор ахборотни сакловчи номланган бир қисмидир. Бундай тушунчадаги файл физик файл деб аталади.
2- Томондан файл – бу дастурда ишлатиладиган маьлумотларнинг турли структураларидан биридир. Бундай тушунчадаги файл мантиқий файл деб аталади, яьни у бизнинг тасаввуримиз билан ҳосил қилинади.
Физик файл структураси
Физик файл структураси ахборот ташувчи – каттик ёки юмшок магнит дискларидаги байтларнинг оддий кетма-кетлигидан иборат.
Мантиқий файл структураси
Мантиқий файл структураси – бу, файлни дастурда қабул қилиш усулидир. Образли қилиб айтсак, у биз файлнинг физик структурасига карашимиз мумкин бўлган «шаблон»дир.
ФАЙЛЛАР БИЛАН ИШЛАШ. ТОИФАЛАШГАН ФАЙЛЛАР.
Файл бу маьлумотларнинг фундаментал структураларидан бири. Компьютерларнинг
дастур билан ишлаши, ташқи курилмалар билан алоқаси файл структурасига асослангандир.
Файллар қуйидаги масалаларни ечишга асослангандир:
1. Қийматларни бошқа дастурлар фойдаланиши учун сақлаб қуйиш;
2. Дастурнинг киритишчиқариш ташқи курилмалари билан алоқасини ташкил қилиш.
Файл тушунчасининг икки томони бор:
1 чи томондан файл – ташқи хотиранинг бирор ахборотни сакловчи номланган бир
қисмидир. Бундай тушунчадаги файл физик файл деб аталади.
2 Томондан файл – бу дастурда ишлатиладиган маьлумотларнинг турли
структураларидан биридир. Бундай тушунчадаги файл мантиқий файл деб аталади,
яьни у бизнинг тасаввуримиз билан ҳосил қилинади.
Физик файл структураси
Физик файл структураси ахборот ташувчи – каттик ёки юмшок магнит дискларидаги
байтларнинг оддий кетмакетлигидан иборат.
Мантиқий файл структураси
Мантиқий файл структураси – бу, файлни дастурда қабул қилиш усулидир. Образли
қилиб айтсак, у биз файлнинг физик структурасига карашимиз мумкин бўлган
«шаблон»дир.
Ана шундай шаблонларга мисол кўрайлик:
…
Белги
Белги
Белги
eof
Бу ерда ҳар бир белги файлнинг бир ёзуви, eof эса файлнинг охирини билдиради. Йуналиш
тугмаси белгисини маркер деб атайлик, маркерни дастур кўрсатмаси билан файлнинг
ихтиёрий ёзувига келтириб қуйиш ва ўша ёзувни ўқиш мумкин. Бунда ҳар бир ўқишда
фақат битта белги уқилади.
Юқорида файл ёзуви сифатида белгили типни олдик, энди файл ёзуви сифатида ёзув
типини оламиз:
T=RECORD
FIO:STRING[15];
ADR:STRING[20];
GODR:INTEGER;
END;
F:FILE OF T;
Бу ерда биз Т типидаги файл ҳосил килдик, агар Т типидаги ёзувда қуйидагича
маьлумотлар бор десак
Алиев
Бозоров
Акрамов
Каримов
Бухоро,15
П.Неруда,12
Накшбанд,45
Галаба,13
1974
1985
1980
1976
Ҳар бир ёзувда 3 та майдон бор ва ёзувлар сони эса туртта.
Агар биз файлдан 1чи ёзувни ўқишни буюрсак, унда бир ўқишда 3 та ўзгарувчида Алиев,
Бухоро 15, 1974 маьлумотлари бирданига уқилади. Буни қандай амалга оширишни қуйида
кўрамиз.
Агар файл структурасини массив структурасига солиштирсак, қуйидаги фарқларни
кўрамиз:
11. Массивда элементлар сони хотирани таксимлаш вақтида ўрнатилади ва у тўлалигича
тезкор хотирага жойлашади. Массив элементлари рақамланиши уни эьлон қилишда
кўрсатилган қуйи ва юкори чегараларга мос ҳолда ўрнатилади.
2. Файлда эса элементлар(ёзувлар) сони дастур иши жараёнида ўзгариши мумкин ва у
ташқи ахборот ташувчиларда жойлашган. Файл элементларини рақамлаш 0 дан
бошланади ва элементлар сони доим ноаниқ.
Биз юқоридаги мавзуларда ўзгарувчиларнинг турли тоифалари билан ишлаб келдик.
Булар скаляр, оддий ва мураккаб таркиблашган тоифалардир. Бу тоифадаги
маьлумотлар ёрдамида масалалрни ечишда бошланғич маьлумотлар клавиатурадан
оператив хотирага киритилади ва натижа экранга чиқарилади. Улардан бошқа
дастурларда фойдаланиб бўлмайди, чунки улар тизимдан чиқилгандан сўнг ҳеч каерда
сакланмайди.
Бу маьлумотларни хотирада сақлаш учун Паскал тилида
маьлумотларнинг файлли тоифаси белгиланган.
Файлларнинг турлари
Файлда сакланаетган маьлумотлар турига кура Паскалда файллар қуйидаги турларга
бўлинади:
1) тоифалашмаган;
2) тоифалашган;
3) матнли.
Тоифалашган файллар бир хил тоифали элементлардан ташкил топади. Уларни
маьлум курилмаларда узатиш ҳам мумкин. Файлнинг элементлари машина кодларида ёзилади
ва сакланади.
Тоифалашмаган файлларда турли тоифадаги маьлумотларни сақлаш мумкин. Улар ҳам
машина кодларида ёзилган бўлиб байтлар тўпламини ташкил қилади.
Матнли(текст) файллар ASCII кодлардан ташкил топган ва қаторларга ажратилган
бўлади. Матнли файлларда нафақат файлнинг якунида файл охири белгиси, балки ҳар
қаторнинг якунида махсус қатор охири белгиси қўйилади.
Файл типидаги ўзгарувчи файл ўзгарувчиси дейилади, у файлнинг мантиқий номини
белгилайди ва у мантиқий файл билан ташқи(физик) файл ўртасида «воситачи» вазифасини
утайди.
Файл типидаги ўзгарувчи учун арифметик амаллар аниқланмаган. Ҳатто файлларни
солиштириш ва бир файлнинг қийматини иккинчи файлга ўзлаштириш амаллари ҳам
аниқланмаган.
Юқоридаги барча турдаги файллар устида, умуман олганда қуйидаги амалларни
бажариш мумкин ва бу амаллар учун қуйидаги махсус процедура ва функциялар ишлатилади:
1. Файл билан ишлашдан олдин файлнинг физикавий ва мантиқий номларини боглаш лозим.
Бу қуйидаги процедура ёрдамида амалга оширилади:
Assign(<файл ўзгарувчиси>,’<физик файл номи ва йули>’);
Масалан
Assign(F,’d:\TP\myfile.txt’);
Ушбу процедура ёрдамида файл учун йул очиб дастурдан ташқи курилмага мурожаат қилиш
ва ахборот алмашиш мумкин.
2.Файлга маьлумот ёзиш учун файлни очиш:
Rewrite(<файл ўзгарувчиси>);
Бу процедура бажарилганда хотирага Assign процедурасида кўрсатилган ном билан янги
файл унга маьлумот ёзиш учун очилади ва ёзув кўрсаткичи файл бошига ўрнатилади. Бу
процедурани эхтиеткорлик билан ишлатиш керак, чунки кўрсатилган файл олдиндан
хотирада бўлса, ундаги маьлумотлар бутунлай учириб ташланади.
3. Файлни ундан маьлумотларни тезкор хотирага ўқиш учун очиш:
24. Reset(<файл ўзгарувчиси>);
Бу процедура бажарилганда Assign процедурасида кўрсатилган файл ундаги
маьлумотларни ўқиш учун очилади, яьни ёзув кўрсаткичи файлнинг биринчи элементига
келтириб қўйилади.
5. Файлга маьлумотларни ёзиш, киритиш:
Write(<файл ўзгарувчиси>,<катталик>);
Бу ерда катталик ўрнида ўзгарувчи ёки ифода ишлатилиши мумкин. Процедура
бажарилганда катталикнинг қиймати файл ўзгарувчиси билан богланган файлда файл
кўрсаткичи ўрнатилган жойга ёзилади ва файл кўрсаткичи кейинги позицияга сурилади.
Ушбу процедура файл ёзиш учун очилгандагина ишлайди.
6. Файлдан маьлумотларни ўқиш:
Read(<файл ўзгарувчиси>,<ўзгарувчи>);
Бу процедура бажарилганда Reset билан очилган файлда ёзув кўрсаткичи ўрнатилган
жойдаги элементнинг қиймати ўзгарувчига ўзлаштирилади. Сўнг ёзув кўрсаткичи битта
позицияга сурилади.
7. Турли юқоридаги максадлар учун очилган файллар иш охирида ёпилиши керак,
бунинг учун
Close(<файл ўзгарувчиси>);
Процедураси ишлатилади. Бу процедура бажарилганда ахборот узатишнинг барча
каналлари ёпилади.
8. Файл охирини аниқлаш функцияси:
Eof(<файл ўзгарувчиси>);
Бу функциянинг қиймати BOOLEAN типида бўлиб, у файл кўрсаткичи файлнинг охирида
ўрнатилганда TRUE қийматга эга бўлади, акс ҳолда унинг қиймати FALSE га тенг.
Тоифалашган файллар ва улар билан ишлаш
Тоифалашган файллар бир хил типдаги элементлардан ташкил топади. Улар дастурда
қуйидагича эьлон қилинади:
FILE OF <ЭЛЕМЕНТЛАР ТОИФАСИ>;
Бу ерда элементлар тоифаси файлнинг ташкил этувчилари, яьни файлдаги
маьлумотларнинг тоифаси бўлиб, бу тоифа сифатида оддий ва мураккаб
тоифаларни(файлдан ташқари) ишлатиш мумкин.
Тоифалашган файлларни қуйидагича тавсифлаш мумкин:
TYPE бўлимида Type f=file of integer;
Tal=file of char;
Num=file of real;
Var p,q: file of f; f1: file of char;
Var f2:file of integer;
Var бўлимида
Тоифалашган файлларга мисоллар кўриб ўтамиз.
1 – мисол.
Ташқи файлга ихтиёрий кетмакетликдаги белгиларни ёзиш ва ўқиш.
PROGRAM F1;
VAR F:FILE OF CHAR;
CH:CHAR; I:INTEGER;
BEGIN
ASSIGN(F,’MYFILE.TXT’);
REWRITE(F);
FOR I:=1 TO 10 DO
BEGIN
READLN(CH); WRITE(F,CH); END;
3CLOSE(F); RESET(F);
WHILE NOT EOF(F) DO
BEGIN
READ(F,CH);
WRITE(CH,’ ‘); END;
CLOSE(F); END.
Ушбу дастурда экрандан 10 та белги ўқиб олинади фа ташқи файлга ёзилади. Сўнг ўша
файл ўқиш учун очилиб файл тугагунга кадар қайтақайта уқилади ва ўкилган белгилар
босмага чиқарилади.
ТИПЛАШМАГАН, МАТНЛИ ФАЙЛЛАР БИЛАН ИШЛАШ
Типлашмаган файлларга
аниқ
файллар ёзувлардан иборат бўлиб,
қўлланади.Бундай файли ўзгарувчилар дастурда қуйидагича эълон қилинади:
типдаги файллар киради. Кўпчилик ҳолларда бу
турли берилганлар базасини ташкил этишда
TYPE
FileRec = RECORD
...
END;
VAR
F : file of FileRec;
Агар матнли файлларда беилганлар символлардан ташкил топган бўлса, типлашмаган
файллар ёзувлардан ташкил топган деб қаралади. Бундай берилганларнинг ўлчов бирлиги
сифатида ёзувнинг ўзи қабул қилинади. Ёзув узунлиги SizeOf(FileRec) билан аниқланади.
Seek(VAR F; NumRec: LongInt) процедура F жорий файлнинг NumRec тартибли
ўзгарувчисини ўрнатади; F типлашган ва типлашмаган берилганларнинг файл ўзгарувчиси.
Типлшмаган файлни очишда жорий позиция ёзув бошига ўрнатилади ва 0 чи тартиб номерга
эга бўлади, физик ёзув мантиқий ёзув тартиб номеридан биттага кам бўлади.
Мисол. Телефонлар хакидаги маълумот мисолида типлашмаган файллар билан ишлаш.
PROGRAM BookPhone;
TYPE
StFio = string[10];
StPhone = string[10]; RecBook = RECORD { файл учун ёзув }
Fio : StFio;
Phone: StPhone;
END;
VAR
BookFile : file of RecBook; { RecBook файлли ёзувга ўзгарувчилар}
Work : RecBook; { ёзувларга ўтиш учун ўзгарувчилар }
Ind : byte;
PROCEDURE OutputRec; { жорий ёзувни экранга чиқариш }
BEGIN
Read(BookFile, Work);
With Work do
Writeln('ФИО: ',Fio,' телефон: ',Phone);
END; { OutputRec }
PROCEDURE OutputAllRec;
{ файнинг ҳамма ёзувларини экранга чиқариш }
BEGIN
Seek(BookFile, 0); { файлни биринчи мантиқий ёзувни ўрнатиш }
4Writeln('*** Телефонлар хакидаги маълумотномани экранга чиқариш'); WHILE
(NOT Eof(BookFile)) DO
OutputRec;
END; { OutputAllRec }
PROCEDURE AddRec;
{ клвиатурадан санайди ва файлга ёзувни кўшади }
BEGIN
Writeln('*** Файл ёзувини чиқариш');
WITH Work DO BEGIN
Write('Фамилиясини киритинг: ');
Readln(Fio); { фамилияларни киритинг }
Write('Телефон номерини киритинг: ');
Readln(Phone); { телефон номерини киритиш }
Write(BookFile,Work);
END; { with }
END; { AddRec }
PROCEDURE UpdateRec(NumRec : LongInt);
{ тартиб номери бўйича файл ёзувини ўзгартиринг }
BEGIN
Seek(BookFile, NumRec); { тартиб номери бўйича файл позициясини ўрнатиш }
Writeln (' ёзувнинг эски қиймати ');
OutputRec; { ёзувни чиқариш ва файл позициясини кейинги ёзувга ўтказиш }
Seek(BookFile, NumRec); { олдинги позицияга қайтариш
Writeln(' янги қиймат ');
AddRec; { ёзувни ўзгарган қийматини чиқариш }
END; { UpdateRec }
BEGIN { BookPhone }
Assign(BookFile, 'PHONE.DAT'); { PHONE.DAT номли янги файл ташкил қилиш}
Rewrite(BookFile);
Write(' PHONE.DAT' ёзувининг 5 та ёзувини ташкил қилиш);
FOR Ind := 1 TO 5 DO { клавиатурадан 5 та ёзувни ташкил қилиш}
AddRec;
Write('Ёзувларни ташкил қилиш тугатилди. ... тугмачасини босинг');
Readln;
OutputAllRec; {ҳамма ёзувларни экранга чиқариш }
Write('Файлнинг 2 та ёзувини ўзгариши. ... тугмачасини босинг ');
Readln;
UpdateRec(1); {1 чи тартиб рақам файлнинг 2 чи мантиқий ёзувига тўғри келади}
Write('Давом эттириш учун хоҳлаган клвишани босинг...');
Readln;
OutputAllRec; { ўзгарган файлни экранга чиқариш }
Close(BookFile); { файлни ёпиш}
END. { BookPhone }
Матнли файллар
Матнли файлни 0 дан 256 гача бўлган белгилар қатори кетма кетлиги деб караш
мумкин. Матнли қаторни ёзиш учун Text стандарт типидан фойдаланилади.
VAR
F: text; { F файл ўзгарувчиси }
5Ҳар бир қатор охири маркери билан тамомланади. Амалиётда бундай маркерни
иккита белги кетма кетлиги ташкил қилади: Сатрга ўтиш chr(13) ва карреткани қайтариш
chr(10). Ушбу иккита белги матнли файллар устидаги стандарт ҳаракатларни белгилайди.
SYSTEM модулидаги стандарт очиладиган Input ва Output файллари Text типли бўлади.
Матнли файлларни киритиш ва чиқариш.
Матнли файллар уз спецификасига эга. Read ўқиш ва Write ёзиш процедураларининг
махсус кенгайтмаси белгили бўлмаган типлар билан ишлаш имкониятини беради.
Агар Ww word типидаги узгарувчи булса, Read(F, Ww) операторининг чақирилиши
сонлар кетмакетлигини F файлидан ўқиб, Ww ўзгарувчисига ўзлаштиради. Бошқа ҳолларда
дастурда хатоликка олиб келади.
Матнли файлларни очишни стандарт усулларда олиб бориш мумкин:
Файл ўзгарувчисига мос файл номини қуйиш ( Assign процедураси), янги матн
файлини очиш ( Rewrite процедураси);
ёки файл ўзгарувчисига мос файл номини қуйиш ( Assign процедураси ), хотирада
бор файлни очиш (процедура Reset).
Матнли файллар ўзининг спецификациясига караб, ўқиш ёки ёзиш операцияларидан
биттаси билан ишлаш имкониятини беради. Шунинг учун матнли файллар билан ишлашда яна
битта процедура ,файлни очиш процедураси пайдо бўлади:
Append(VAR F : text);
Бу процедура файлни очиб, курсорни файл охирига келтириб куяди. Append
процедурасига қўйиладиган талаблар ҳам худди Reset ва Rewrite процедураларига қўйилган
талабларга ўхшаш.
Матнли файлларни қайта ишлаш учун Read ва Write процедуралари қўлланилади.
Readln процедураси қаторларни бўлувчи махсус тил воситаси ҳисобланади. Унинг вазифаси
худди Read нинг вазифасига ўхшаш ва ўқишни қатор охирининг маркеригача олиб боради ва
бошқа янги қаторга ўтишни таъминлайлади. Writeln, процедураси ҳамма катталикларни
ёзишни таъминлайди. Процедуралар ёзилишининг кўриниши қуйидагича:
Readln(VAR F : text; V1 [,V2,...Vn]);
Writeln(VAR F : text; V1 [,V2,...Vn]);
бу ерда V1...Vn турли типдаги ўзгарувчилар. Read ва Readln процедуралари орасидаги
фарқ нимада деган саволга қуйидагича жавоб бериш мумкин. Read процедураси
берилганларни ҳаммасини бир қаторга олиб кириш имконини беради Readln операцияси эса
албатта бир қатор тугагандан кейин автоматик равишда иккинчи қаторга ўтишни
таъминлайди, яъни берилганларни турли қаторлардан олиб кириш мумкин. Write ва Writeln
процедураларида ҳам худди шундай.
Киритиш чиқариш операцияларини бажараётган пайтда махсус Eoln, Eof, SeekEoln,
SeekEof функцияларидан ташкил топган тил воситасини қўллаш мумкин.
Агарда файлнинг жорий позицияси файл охири маркерида турган бўлса Еoln(VAR F:
text) функцияси, True нинг булев қийматини қайтаради. Қолган ҳамма ҳолатларда
функциянинг қиймати False бўлади.
Агарда курсор охирги компонентадан кейин турган бўлса, Eof(VAR F: text) True нинг
булев қийматини қайтаради, акс ҳолда False бўлади.
1мисол. Дискда файл яратиш ва унга фойдаланувчи томонидан киритлган 5 та сонни
ёзиш.
Var f:text; n,i:integer;
Begin writeln(‘5 та бутун сон киритинг’);
Writeln(‘Ҳар бир сон киритилгач ENTER тугмасини босинг’);
Assign(f,’numbers.txt’);
Rewrite(f);
6For I:=1 to 5 do begin write(‘’); readln(n); writeln(f,n); end;
Close(f);
2 Мисол. Юқорида ташкил қилинган матнли файлдаги сонларни ўқиш.
VAR
F: text; n,I:integer;
Begin
Assign(f,’numbers.txt’);
Reset(f);
For I:=1 to 5 do begin write(‘’); readln(f,n); writeln(n); end;
Close(F);
END.
END.
AMALIY MASHG’ULOT
1Куйидагича тавсифлаш берилган:
Var f:file of integer; x,y:integer;
Агар f файлда 3 ва 7 сонлари булса, куйидаги операторлардан сунг y узгарувчи кандай
киймат олишини аникланг:
a)
if not eof(f) then read(f,y);
if not eof(f) then read(f,y);
b)
reset(f); read(f,y);
reset(f); y:=0;
while not eof(f) do
begin read(f,x);
y:=y+x end;
reset(f); y:=1;
repeat read(f,x); y:=y*x until eof(f);
c)
2Куйидагича тавсифлаш берилган:
Type son=file of real;
Son типида файлда сонлар кетмакетлиги мавжуд. Ундаги манфий элементлар сонини
аникловчи дастур тузинг.
3.Куйидагича тавсифлаш берилганг:
Type narx=record sum:0..maxint; tiyin:0..99 end;
Narx типидаги файлда маьлумотлар берилган. Ундаги энг кичик пул микдорини аниловчи
дастур тузинг.
LABARATORIYA ISHLARI
13.1. Куйидагича тавсифлаш берилган:
Type kator=file of 0..999;
Kator типидаги файл берилган. Ундаги элементлар усиш тартибида жойлашганлигини
текширувчи дастур тузинг.
13.2. Куйидагича тавсифлаш берилган:
Type tekct=file of char;
Tekct типидаги иккита t1 ва t2 файллар берилган. Улардаги элементлар сони узаро
тенглигини аникловчи дастур тузинг.
13.3.
var f:file of integer; i: integer;
7Ушбу операторлар бажарилгандан сунг f файл да хосил буладиган маьлумотни курсатинг:
А) rewrite(f);
If eof(f) then write(f,1) else write(f,2);
If eof(f) then write(f,3) else write(f,4);
b) rewrite(f);
for i:=3 downto 1 do write(f,sqr(i));
13.4.
type satr=packed array[1..100] of char;
tekst=file of char;
Шундай процедура тузингки, киритилган сатрда учраган барча сонлли символларни
tekst файлига езсин.
13.5.
type kator=file of 1..maxint;
Шундай дастур тузингки,
сонларини(1,1,2,3,5…) файлга езсин.
у берилган n дан ошмаган барча Фибоначчи
13.6. Бир берилган файлдаги маьлумотларни бошка бир файлга езувчи дастур тузинг.
13.7.
Иккита файлда маьлумот бор. Учинчи бир файл очиб, аввал биринчи файлдаги
маьлумотларни, сунг иккинчи файлдаги маьлумотларни йигинг.
13.8. Матн файлида маьлумотлар берилган. Файлда нечта сатр борлигини аникловчи
дастур тузинг.
Файл сатри езувдан иборат ва унда ходимнинг исми ва еши каби майдонлар бор. Файлдаги
еши энг кичик ва еши энг улуг ходимни аникловчи дастур тузинг.
13.9.
var f:file of integer; x: integer;
Юкорида тавсифланган файл хотирада бор ва унда факат 1, 2 сонлари жойлашган.
Куйидаги операторлар бажарилгандан сунг х узгарувчи кандай киймат кабул килади?
reset(f); read(f,x); if x=1 then write (‘1’) else write(‘2’);
13.10. var t:file of char; c:char;
Куйидаги операторлар бажарилгандан сунг t файлда нима хосил булади?
13.11. rewrite(t);
if eof(t) then c:=’a’ else c:=’b’; write(t,c);
13.12. Иккита файлда сонлар усиш тартибида езилган. Уларни учинчи файлга шундай
йигингки, у файлдаги элементлар хам усиш тартибида жойлашсин.
Шундай функция тузингки, у:
13.13.
А) матнли файлдаги буш сатрлар сонини аникласин.
Б) матнли файлдаги сатрлар ичида энг узунини аникласин.
13.18. Матнли файлдаги маьлумотларни босмага чикарувчи дастур тузинг.
13.19. Матнли файлда сатрлар сузлардан иборат. Аникланг:
а) д харфидан бошланадиган сузлар сонини;
б) з харфи билан тугайдиган сузлар сонини;
в) бирор харф билан бошланиб, шу харф билан тугайдиган сузлар сонини;
г) Факат бир харфдан иборат сузлар сонини.
13.20. Бир матнли файлда буш сатрлар хам бор. Уни иккинчи бир файлга буш сатрларсиз
утказинг.
13.21. Бир матнли файл хар бир сатрида 80тагача символлар бор. Шу файл езувларидаги
80тага тулмаган буш жойларни ‘*’ билан тулдириб иккинчи бир файлга езинг.
13.22. Сатр берилган. Унда сузлар орасида буш жой бор, сатр охири «.» билан тугайди.
Сатрдаги хар бир сузни файлнинг бир сатрига езадиган дастур тузинг.
13.23. Бир файлда сонлар езилган. Улардан мусбатларини иккинчи файлга, манфийларини
эса учинчи файлга езувчи дастур тузинг.
8