Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды үйреніңіздер. Write()- процедурасын пайдаланып мәліметтерді бір жолға, ал writeln()—процедурасын пайдаланып оларды бағанға жазуды көрдік. Осы білгендерімізді пайдаланып, келесі есепті шешіп көрелік:
Пернетақтадан, өлшемі 100х100, элементтері бүтін сан болатын, екі өлшемді массив енгізіледі. Осы массивті элементтерінің орналасу реті бойынша, `МayFile5.in` атымен, мәтіндік файл түрінде жазатын, программа жазу керек.
Бұл есеп те, алдыңғы тақырыпта қарастырылған есепке ұқсас, екі негізгі кезеңнен тұрады:
1.Пернетақтадан мәліметтерді енгізу
2.Оларды атауы `МayFile5.in` болатын, файлға жазу керек.
Бірінші кезеңді орындау үшін :
- Пернетақтадан енгізілетін, массив өлшемдерінің нақты мәндерін кіргізу;
- Массив өлшемдерін біле отырып параметрлі цикл операторын қолданып массив элементтеріне нақты мәндерді меншіктеу.
Мәліметтерді енгізу процедурасының мәтінін Misal_8 программасынан алуға болады. Ал мәліметтерді өңдеу процедурасы өзгеріссіз қалатындықтан, Misal_F1программасындағыдай болады.
Массив элементтерін `МayFile5.in` файлына жазу процедурасының қандай болатындығын қарастыралық:
procedure exi;
var
FileOut: text;
begin
{нақтылы файлмен айнымалы арасындағы байланыс}
assing (FileOut,`mayFile.in`);
{файлды жазуға дайындау}
rewrite(FileOut);
{массив өлшемдерiн жазу және курсорды жаңа жолға көшiру}
writeln(FileOut, JolSany,«, BaganSany);
for i=1 to JolSany do
begin
{массив элементтерiн бос орын арқылы жолға жазу}
for j=1 to BaganSany do
write(FileOut,San[i,j],«);
{j-циклiн аяақтаған соң, курсорды жаңа жолға көшiру}
writeln(Fileout);
end;
{файлды жабу}
close(FileOut);
end;
Негiзгi программа мәтiнiнiң өзгерiсiз қалатындығын айтпаса да болады. Осы программаны Misal_F5 атымен сактаңыз. Программаны iске қосудың алдымен, келесi әрекеттердi:
- КурсордыExi процедурасын сипаттайтын жолдың басына қойыңыз;
- Негiзгi менюдi Debug iшкi менюiн ашыңыз;
- Add brekpoint… әрекетiн тандаңыз;
- Enter пернесiн басыңыз.
- Жеке модульдермен “жұмыс істеу” (программалау) мүмкіндігі.
- Бір деңгейдегі “ойша” машиналардың тәуелсіздігі, программаның жекеленген бөліктерін, программаш\ның басқа бөліктеріне әсер етпей тәуелсіз жетілдіруге мүмкіндік береді. Э. Дейкстр атап өткендей: “… программаны жетілдіру, бір түрдегі (ойша) машиналардың басқа қолайлы машиналарға ауысуынан туындайды”.
- Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.
Процедура мәтінімен жүріп өткенде құрама операторлардың жұмысына көңіл бөліңіз.
begin
{массив элементтерiн бос орын аркылы жолга жазу}
forj:=1 to BaganSany do
write (FileOut, San[i,j],«);
{j-цикл аякталган сон, курсорды жана жолга кошiру}
writeln(FileOut);
end;
Тоқтату нүктесін алып тастау үшін, келесі әрекеттерді орындаймыз:
- Негізгі менюді бес\лсенділеңіз;
- Негізгі менюден Debug ішкі менюін ашыңыз;
- Breakpoints пернесін басыңыз.
- Enter пернесін басыңыз.
Экранда программаға қойылған барлық тоқтату нүктелерінің тізімі көһрсетілген, Breakpoints… (тоқтату нүктелері) сұхбат терезесі (2.9-сурет) шығады.
- Қажетті элементті белгілеңіз;
- “Delete” (сұхбат терезесінен) батырмасын немесе “D” (пернетақтадан) пернесін басыңыз.
Белгіленген тоқтату нүктесі тізімнен алынып тасталады. Егер сіз барлық тоқтату нүктесін алып тастағыңыз келсе— “Clear all” батырмасын басу керек.
Тапсырма
- Егер exi ішкі программасындағы write және writeln процедураларындағы бірінші параметр FileOut көрсетілмесе San массиві қайда жазылған болар еді?
- Егер осы параметр тек writeln процедурасында көрсетілмеген болса не өзгереді?