Мәтіндік файлға мәліметтер жазу. Екі өлшемді массив

Алдыңғы тақырыпта сіз мәтіндік файлдарды ашуды, оған ақпараттарды жазуды үйреніңіздер. 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н басыңыз.
  1. Жеке модульдермен “жұмыс істеу” (программалау) мүмкіндігі.
  2. Бір деңгейдегі “ойша” машиналардың тәуелсіздігі, программаның жекеленген бөліктерін, программаш\ның басқа бөліктеріне әсер етпей тәуелсіз жетілдіруге мүмкіндік береді. Э. Дейкстр атап өткендей: “… программаны жетілдіру, бір түрдегі (ойша) машиналардың басқа қолайлы машиналарға ауысуынан туындайды”.
  3. Құрылымдылық программаның жеке бөліктерімен жұмыс жасау.

Процедура мәтінімен жүріп өткенде құрама операторлардың жұмысына көңіл бөліңіз.

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” батырмасын басу керек.

Тапсырма

  1. Егер exi ішкі программасындағы write және  writeln процедураларындағы бірінші параметр  FileOut көрсетілмесе San массиві қайда жазылған болар еді?
  2. Егер осы параметр тек writeln процедурасында көрсетілмеген болса не өзгереді?