UF

 Ақпаратты компьютердің сыртқы құрылғыларында көрсету. Файлдармен жұмыс істеу.

     жоспары:

1. Берiлгендер файлы

2.Тiзбектi ену файлымен жұмыс

3.  Еркiн ену файлы

 

 

Негізгі ұғымдардың сөздігі: файлдар, жазу өрістері, көрсеткіш, REWRITE, WRITE, 

CLOSE.

Студенттерде қалыптасу керек білім мен дағды: файл компоненттерін, түрлерін,файлдың бір өлшемді  массивтерден айырмашылығын  меңгеру.                     

    1. Берiлгендер файлы                                                    

       Бейсиктегi сияқты,  Паскальда  ерекше  орын  алатын берiлгендер файлы - жазулардан тұратын элементтер тiзбегi. Жазулар санын файлдың ұзындығы деп атайды, оны алдын ала анықтап қою мiндеттi емес. Мысалы, мынадай мәлiметтiк тiзiмдi қарастырайық.

                         Т i з i м

           1011  Имантайұлы  Оспан       1975  қазақ

           1012  Ысқақұлы Камардiн       1974  қазақ

           1013  Шәймерденқызы Гүлнар 1976  қазақ

      

         Тiзiм - үш жазудан құралған  берiлгендер файлы, жазу-

файлдың  төрт  өрiстен  тұратын  бiр элементi  (бiрiншi  өрiс  үшiн студент шифры алынған, өрiстер  төрт бағанға  орналасқан). Кұрылымы:
       Студент (шифры, аты-жөнi, туған жылы, ұлты)

       Файл типiн сипаттау үлгiсi мынадай:

 

          type <тип атауы>=file of <элементтер типi>;

          var <айнымалы атауы> : <тип атауы>;

 

       Мұндағы  file (қатар, тiгiндi), of (тиiстi) -қызметшi сөздер. Тип және айнымалы атауларын пайдалануға ыңғайлы етiп, түсiнiктi түрде  таңдап алған жөн.  Мысалы, жоғарыда  қарастырылған  мәлiметтiк  тiзiмнен тұратын  файлды  мынадай түрде сипаттау мүмкiн :     

      type student=file of record a1: integer;

                                         a2: string[17];

                                         a3: integer; a4: string[5]

                                   end;

                      var   v : student;                                                                    

(student-файл типiнiң атауы; record, end-жазуды анықтайтын синтаксистiк шектеулер,  v - student типтi айнымалы,  a1, a2, a3, a4 - атрибут атаулары). Сипаттаудың екiншi түрi:

 

         type student = record a1:integer; 

                                      a2:string[17]; a3:integer;                                      

                                      a4:string[5]                                      

                                end;

         var  f : file of student; v : student;

                                                                         

      Мұндағы  student - жазу типiне берiлген атау;  f - элемент-

терi сипатталған жазулардан тұратын файлды,  v-осы жазуларды анықтайтын айнымалылар.

      Жазу өрiстерi  нүкте  арқылы  бөлiнген  жазу  мен атрибут

атауларынан тұрады:  v.a1, v.a2, v.a3, v.a4       

      Сипаттаудың  соңғы түрi есте тезiрек сақталатыны белгiлi. Бұдан әрi бiз де сипаттаудың осы түрiн пайдаланамыз.

       Жоғарыдағы сипаттаудан түрлi жазулардың және олардың 

өрiстерiнiң мәндерi кезегiмен бiрдей айнымалыларға меншiк-телетiнi көрiнiп тұр. Оларды компьютердiң ажырату түрi мынадай:

      Жадқа  файлдың  әр  элементiн  (v)  көрсеткiш  деп аталатын магниттiк бүршiк жазады да, к-элементтi жазуды аяқтаған кезде ол автоматты түрде (k+1 )- элемент жазылатын орынға жылжиды.

       Файл элементтерiн  дискiге жазудағы  ерекшелiктердiң бiрi-олар 0-ден бастап ретiмен автоматты түрде нөмiрленiп қо-йылуы. Файлды жадқа тиеудi файлды  жазу деп, сыртқы құ-рылғыдан оны мәшиненiң  жадына ендiрудi файлды оқу  деп атайды. Файл элементтерiн жазу мен оқу әр жолы көрсеткiш тұрған элементтен  басталады.

       Файлды  жазу, оқу операторларымен  таныстыру алдында мынадай белгiлеулер енгiзейiк:                                              

       f - файлдық айнымалы,

       bf - берiлгендер файлының атауы меншiктелетiн айныма- лы (мысалы,ңВ19ңатауы берiлген файл үшiн  bf := 'B19'),

     v - файлдық  элементтер  (жазулар),    v.a1, v.a2, v.a3, v.a4 -

өрiстiк айнымалылар  (нақты жағдайда  өрiстер саны  4-тен аз  не көп те болуы мүмкiн).

       Турбо Паскальда файлды жазу үшiн мынадай операторлар пайдаланылады:

       ASSIGN (f, bf)- bf  файлына f атауын беру (assign-тағайын-

дау). Ол bf -тiң  мәнiн  f  айнымалысына меншiктейдi де, одан әрi  осы айнымалымен  жұмыс  bf  мәнiмен  анықталған  файл жұмысына баламалы болады  (компьютер  f - тi  саны  белгiсiз  элементтерден тұратын БФ-тiң атауы деп қабылдайды. Ол мә-шиненiң  элементер санын  алдын ала  бiлiп  алуының  қажет-сiздiгiне байланысты.  Оның үстiне, бұл  тәсiл   бiр программа бойынша түрлi БФ-тi өңдеуге мүмкiндiк бередi);

      REWRITE(f)-атауы assign операторында анықталған файлды жазу үшiн  дискiлiк файлды ашу (rewrite-жаңадан жазу). Ол БФ үшiн  дискiден  арнайы  орын бөледi  де, көрсеткiштi (бас-тиектi) осы орынның басына орналастырады.                                       

       Ескерту. Егер сыртқы құрылғыда таңдап алынған атаулы

басқа БФ бұрыннан жазулы болса, rewrite (f) операторын оқы-ған соң компьютер алдымен оны өшiрiп тастайды. Сондықтан  жаңадан  жазылатын  файлға берiлетiн  атауды  мұқияттықпен таңдап алу керек;

       WRITE (f,v) - f  арқылы белгiленген дискiлiк файлға   v  элементiн жазу. Ол элементтi бастиек  тұрған орыннан бастап жазып шығады да, оператор орындалған соң бастиек келесi элемент жазылатын орынның басына ауысады;

       CLOSE (f) - файлды жабу (close - жабу).

 

       Программаға while true do циклi ендiрiлген; Шифр-? сұрағына жауап ретiнде 100 саны жадқа енгiзiлгенше бұл цикл  қайталанып орындала бередi. Әр қайталану алдында  write (f,v) операторы кезектi жазуды дискiлiк файлға  тиеп отырады да, 100  саны жадқа  ендiрiлген кезде  IF  шартты  өту операторы орындалып, close (f) операторы дискiлiк файлды жабады. Осы-дан соң кездескен  halt  нұсқауы  программаның әрi қарай  орындалуын  тоқтатып, басқаруды  программалау  жүйесiне қайтарып бередi.        

       Жадқа соңғы рет ендiрiлетiн 0 саны-программадан  шығу белгiсi. Белгiнi басқа өрiс элементтерiне сәйкестендiрiп алу да ықтимал екенi белгiлi.

 

    2. Тiзбектi ену файлымен жұмыс

               

       А. Дискiде  жазулы  берiлгендер файлын   сыртқы  файл  деп, дискiде файл жазылатын  орынды  дискiлiк файл  деп  те атайды, файлды оқып, экранға шығару үшiн пайдаланылатын операторлар:

      ASSIGN(f, bf) - bf файлына f атауын меншiктеу;

      RESET(f) -  атауы  f  арқылы  берiлген   сыртқы   файлды ашып,  көрсеткiштi  осы файлдың  басына орналастыру (reset- қайта орнату);

       WHILE NOT EOF(f) DO  - көрсеткiш  файлдың   соңына жеткенге  дейiн орындау циклi.  (EOF - көрсеткiштiң файл соңына  жетуiн  тексеретiн  стандартты  функция  (end of file-файл соңы). Егер көрсеткiш файлдың соңғы элементiнен ендi асса, eof мәнi - true, әйтпесе - false.);

       READ (f, v) - файлды оқу.   Атауы  f  арқылы  белгiленген файлдың  бiр элементiн  (v.a1, v.a2, v.a3, v.a4) дискiлiк  файлдан оқу.  Оператор орындалып  болған   соң көрсеткiш  келесi элементтiң басына ауысады;

       Write (v.a1, ' ', v.a2, ' ', v.a3, ' ', v.a4) - файл элементiн экранға шығару. Әдетте бұл оператордың параметрлерiне арнайы орындар бөлiп, файлды экранға оқуға ыңғайлы түрде  шығарады, мысалы, v.a1:6, v.a2:18,...       String типтi айнымалы мәнiн бағанның сол жағынан бастап шығарған дұрыс.  Ол үшiн  v.a2:18  параметрiнiң орнына

                      

               ' ',  v.a2, ' ':18-length(v.a2)

 

параметрлерiн  алса  болғаны. Бұл  кезде  адамның  аты-жөнi енiне  18 символ сиятын бағанның сол жағынан бастап орналастырылады да,  ' ' : 18-lеngth (v.a2) параметрi артық қалған жердi бос тастап кетедi.

       Файлды  оқу мен оны экранға шығару циклiне  read (f,v),  write  (v.a1,...)  операторларының енгiзiлуi тиiс. With v do операторын пайдаланып, write  операторының параметрлерiне  v. қосымшасын енгiзбеуге де болады.

 

3. Еркiн ену файлы

 

Турбо Паскальда  f  сыртқы  файлы  жазуларының  саны Filesize(f)  функциясы  арқылы анықталады. Жазуды бiрден iз-деп табу үшiн пайдаланылатын оператор:    seek (f, k-1).   Ол көрсеткiштi  к - жазудың басына  орналастырады  (seek (iз-деу)- стандартты атау).   (Дискiде файл жазулары 0 -ден бастап ретiмен нөмiрленетiндiктен,   к  - жазудың нөмiрi  к-1  санына тең.  Мысалы, сыртқы файлдың  3-жазуын оқу үшiн  програм-маға  seek(f, 2)  операторының енгiзiлуi тиiс.)

      Сыртқы  файл  жазуларына осы  сияқты  тездеп жету тәсiлi  файлға  еркiн (тiкелей) ену тәсiлi  деп,  файлдың өзiн  еркiн ену файлы деп атайтыны белгiлi. 

 

      Үш жазудан тұратын  жоғарыда  берiлген  мәлi-

меттiк тiзiмдi  1719  атауы бойынша  дискiге тиеу керек

(bf := '1719').

       Program f1;                                                          (1)

       {файл құру}

       type student = record a1 : integer;

                                    a2:string[17]; a3:integer;

                                    a4:string[5]

                              end;

       var f : file of student;  v : student;  bf : string[8];

       begin write('Жазылатын файл атауы -?'); readln(bf);  

          assign (f,bf); rewrite (f);

          with v do

          while true do

          begin writeln ('шифр үшiн');

           writeln('0-дi ендiру-прог.дан шығу')

           write('шифр-?'); readln(a1);

           if a1=0 then begin close(f); halt end;

           write('аты-жөнi-?'); readln(a2);

           write('туған жылы-?'); readln(a3);

           write('ұлты-?); readln(a4);

           write(f,v)                                            

          end                                                              {while}

        end.                                               {программа соңы}

                                     

        Программаның орындалу барысында бiрiншi рет экранда «Жазылатын файл атауы-?» сұрағы көрiнедi. Оған жауап ретiнде 1719 атауын клавиатурадан терiп алып, жадқа ендiру керек.

 

      '1719' файлын оқып, оны экранға шығару  программасын  құру керек  (bf:='1719').

 

       Program f2;                                                           (2)

       {файлды оқып, экранға шығару}

       type ...                         {(1)-программадағыдай}

       var  ...                         {(1)-программадағыдай}

       begin  write ('Сыртқы файл атауы -?');  readln (bf);

            assign (f,bf); reset(f); writeln;

            write(' ':10, bf, '-топ студенттерi');   writeln;

            with  v  do

            while not еof(f) do

            begin read(f,v);                          

                 writeln(a1:6, ' ', a2, ' ':18-length(a2), a3:5, a4:6)

            end;  close(f)

       end.     

       Б. Таңдап алынған  белгi бойынша  файлдың бiр элементiн экранға шығаруды  тiзбектi ену  және  еркiн ену  тәсiлдерi  бойынша  орындау  мүмкiн.                                     

       Тiзбектi ену тәсiлi бойынша 1719 атаулы сыртқы файлдың бiрiншi өрiс мәнi b-ға тең  болатын  жазуын экранға шығару керек (белгi үшiн b=1012 алынсын).

 

       Program f3;                                                            (3)

       {файл жазуын экранға шығару}

       type  ...                                {(1)-программадағыдай}

        var  b:integer; ...                   {(1)-программадағыдай}

        begin  write('сыртқы файл атауы -?'); readln(bf);

           assign(f,bf); reset(f);

           writeln('экранға шығарылатын жазудың');

           write('1- өрiс мәнi -?');    readln(b);

           with v do

           while not eof(f) do

           begin  read(f,v);

           if a1=b then    begin

           write (a1:6, ' ', a2 , ' ':18-length(a2),

                                           a3:5, a4:6);     

          close(f); halt  end

          end;

         write('Ондай жазу табылған жоқ');

         close(f)

       end.                  

      Бұл программа да (2)-программа сияқты құрылған. Оның соңындағы  write ('Ондай жазу табылған жоқ') операторы компьютер оқылған жазулардың iшiнен b белгiсi бар жазуды таппаған кезде орындалады.

       (1)-(2) программаларды бiрiктiрiп, бiр программа түрiнде жазған дұрыс.  Ол үшiн құрылған программалардың  әрқайсысын  көмекшi программа - процедура түрiне өзгертiп  жазса болғаны. 

       Программа: 

       Program tizim1;                                                     (4)

       uses crt;

       type student = record a1:integer; a2:string[17];

                                      a3:integer; a4:string[5];

                              end;

       өar f : file of student; v : student;

           bf : string[8];  b,m,r : integer;

       Procedure kuru;           {файл қғру}

       begin assign(f,bf); rewrite(f);

         with v do

         while true do

         begin writeln ('шифр үшiн');                        

           writeln ('100-дi ендiру-проц.дан шығу');

           write ('шифр -?') ; readln (a1);

           if a1 = 0 then  begin

           close (f); exit   end;

           write ('аты - жөнi-?');  readln (a2);

           write ('туған жылы -?'); readln (a3);

           write ('ғлты -?');       readln(a4);

           write (f,v)

         end

      end;                                             {процедура соңы}

      Procedure ekran;        {файлды оқып, экранға шығару}

      begin  assign(f,bf); reset(f);  writeln;

        write(' ':10, bf, '-топ студенттерi');

        writeln;     

        with v do

        while not eof(f) do

        begin read(f,v);

          write(a1:6,' ',a2,' ':18-length(a2));

          writeln(a3:5,a4:6)

        end; close(f)

      end;                                                 {процедура соңы}                                      

      Procedure jazu;

      {таңдап алынған белгi бойынша жазуды экранға шығару}                                     

       begin   assign(f,bf); reset(f);

         writeln('экранға шығарылатын жазудың');

         write(' 1-өрiс мәнi-?') ;  readln(b);

         with v do

         while not eof (f) do

         begin  read(f,v);

            if a1=b then     begin

            write (a1:6,a2:18,a3:5,a4:6);

            close (f); exit  end

         end;

         writeln ('Ондай жазу табылған жоқ');

         close (f)

       end;                                              {процедура соңы}

       begin  clrscr;                                 {негiзгi программа}

          while true do                                             

          begin writeln;

          write('Жазылатын не оқылатын БФ атауы : bf-?');

          readln (bf);  writeln; writeln;

          writeln ('1: файл құру');

          writeln ('2: файлды экранға шығару');

          writeln ('3: файл жазуын көру');

          writeln ('4: программадан шығу');      writeln;

           write ('Кай режим керек : m -?');

          readln (m);  writeln; clrscr;

             Case m of

                1 : kuru;

                2 : ekran;

                3 : jazu;

                4 : halt

             end                                                          {case}

          end                                                            {while}

        end.                                             {программа соңы}

          

       4-мысал.   В10 тобы студенттерiнiң  математика, физика,информатика  пәндерiнен  алған бағалары  жинақталып  көрсе­тiлген  тiзiмге  мынадай  өңдеу жұмыстарын  жүргiзу керек:

       1) студенттердiң аты-жөндерiн бiрiншi әрiптерi бойынша реттеп дискiге жазу;

       2) дискiден осы файлды оқып, экранда көрсету;

       3) математика  және  информатика  пәндерiнен  5  алған студенттер тiзiмiн экранға шығару;

      4) файлды қағазға басу (bf:='B10').

       

                          Тiзiм

                

               Нұрғалиқызы Жәмилә      5  4  5 

               Бахытжанұлы Жәнiбек      5  5  5

               Мұратбекқызы Шолпан    4  5  5

 

       Файл құрылымы:

  

       Студент2 (аты-жөнi, мат.бағасы, физ.бағасы, инф.бағасы)

                                                     

       Тiзiм жолдарын студенттердiң  аты-жөнi бойынша реттеу мәшине жадында жүргiзiлетiндiктен, әр бағандық өрiс мәндерi массив элементтерi түрiнде қарастырылуы тиiс.  

       Студенттердiң  саны белгiлi  деп құрылған программа:

                 

       Program tizim2;                                                      (5)

       uses crt, printer;

       const n1=50;

       type student2 = record

                             a1:array[1..n1] of string[20]

                             a2:array[1..n1] of integer;

                             a3:array[1..n1] of integer;

                             a4:array[1..n1] of integer

                          end;

            student3 = record

                             c1:array[1..n1] of string[20];                                      

                             c2:array[1..n1] of integer; 

                             c3:array[1..n1] of integer;                                        

                             c4:array[1..n1] of integer;                                                 

                          end;

       var f1:file of student2; f2:file of student3;

           v1: student2;  v2: student3;   bf: string[6];

                b1 : string[30]; r,k,j,i,n,m : integer;   

       procedure kuru;          {файл элементт.реттеп жазу}

       begin assign(f1,bf);  rewrite(f1);

             with  v2  do

             for k := 1 to n do

             begin

               write ('аты-жөнi-?');  readln (c1[k]);

               write ('мат.бағасы-?');readln (c2[k]);

               write ('физ.бағасы-?');readln (c3[k]);

               write ('инф.бағасы-?');readln (c4[k])

             end;  i:=0 ;

 b1:='АӘБВГFДЕЖЗИЙККЛМНҢОӨПРСТУФХЦЧШЩЫЬЭЮЯ';                                             

           L=Length (b1);

           for j:=1 to L do   for k:=1 to n do

           begin       

           if copy (v2.c1[k],1,1)=copy (b1,j,1) then

            begin  i:=i+1;  v1.a1[i]:=v2.c1[k];

                     v1.a2[i]:=v2.c2[k];

                     v1.a3[i]:=v2.c3[k]; v1.a4[i]:=v2.c4[k];

                  write (f1,v1)

            end

          end; close (f1)

       end;

       procedure ekran;                      {файлды экранға шығару}

       begin assign(f1,bf); reset(f1);

          with v1 do

          for k:=1 to n do

           begin read (f1,v1);

                 write (a1[k],' ':21-length(a1[k]));

                 writeln(a2[k]:5, a3[k]:5, a4[k]:5)

           end; close (f1)

       end;                                                                                     

       procedure jazular;            {таңдап алынған белгi бойынша}                                      

                                          {жазуларды экранға шығару }                                     

       begin assign (f1,bf);  reset (f1);  r:=0;

         with v1 do

         for k:=1 to n do   begin  read(f1,v1);

         if (a2[k]=5) and (a4[k]=5)  then

            begin r := r+1;

               write (a1[k], ' ':21 -length(a1[k]));

               writeln (a2[k]:5, a3[k]:5, a4[k]:5)

            end                end;

         if r=0 then  begin

         writeln ('Ондай жазу табылған жоқ.'); close (f1); 

                      end

       end;

       procedure prbasu;                     {файлды принтерде басу}

       begin assign (f1,bf); reset (f1);

        writeln (lst,' ':10,bf,'-топ студенттерi');

        writeln(lst);  with  v1 do

        for k:=1 to n do                                              

          begin   read (f1,v1);

             write(lst, a1[k], ' ':21-length(a1[k]));

             writeln(lst, a2[k]:5 , a3[k]:5, a4[k]:5) 

          end

       end;

       begin clrscr;                                    {негiзгi программа}

          while true do 

          begin       writeln;

           write ('Жазылатын не оқылатын файл атауы-?');

           readln (bf);  writeln;

           write ('Студенттер саны:n=?'); readln (n);

           writeln ('1:файл құру');

           writeln ('2:файлды экранға шығару');

           writeln ('3:белгi бойынша файл жазуларын көру');

           writeln ('4:файлды қағазға басу');

           writeln ('5:программадан шығу'); writeln;

           write ('Кай режим керек :m=?'); readln(m);                                       

           writeln; clrscr;

             case m of

               1: kuru;                                             

               2: ekran;

               3: jazular;                                     

               4: prbasu;                                      

               5: halt             

             end                                                             {case}

          end                                                               {while}

       end.                                                 {программа соңы}

 

 

       Турбо Паскальдағы   PRINTER - стандартты  модуль  (кi­тап­­хана) атауы.  (Бұл  модульде  принтерде  басуды  бiлдiретiн  LST файлдық  айнымалысы  орналастырылған).   Uses  printer- printer модулiн пайдалану, prbasu процедурасына  енген  пара­метрсiз writeln (Lst) қағазда бiр жолды тастап кету нұсқаулары.

       4-мысалда  берiлген  тiзiм   kuru   процедурасы  бойынша student3  файлы түрiнде жадқа ендiрiледi де, ол тiзiмдi студент­­тердiң аты-жөндерi бойынша  реттеу үшiн пайдаланылады. Реттелген жолдар дискiге  student2  файлының элементтерi ретiнде тиеледi.

       ЕскертуJazular процедурасы бойынша  сыртқы файлдың a2[k]=5  және  a4[k]=5  белгiсi бар  жазулары экранға шығарылады. Белгiнi басқа түрде алу қажет болса, процедураға енген if операторын сәйкес түрде өзгертiп алса болғаны.

       Тапсырма 

1.Студенттер   саны  кез  келген  сан  болатын жағдай үшiн (5)-программаны қайта құрып шығыңыз. 

2.(4)-программаға prbasu (файлды басып шығару) процедурасын ен­гiзiңiз.      

                                                                                                                     

  

     қарастырылған тiзiмнен тұратын '1719'

атаулы  файл  дискiде жазулы. Осы файлға мынадай өңдеу жұмыстарын жүргiзу керек:                                                                               

      1) екiншi жазуын

         1012 Тассейiтұлы Айтжан 1976 қазақ   жазуына өзгерту;                                      

      2) файл соңына (4-жазу етiп)

          1014 Нұрланқызы Маржан 1977  қазақ   жазуын қосу;

      3) үшiншi  жазудың   төртiншi  өрiсiнiң мәнiн   өзбек   деп     жөндеу.

       өңдеу жұмысына  (4) - программаны пайдалануға  болады, тек оның  jazu  атты процедурасын мынадай етiп  өзгертiп алса болғаны:

 

       Procedure jazu;                                                      (6)

       {Файл жазуын экранға шығару, өңдеу}

       { не файл соңына кезектi жаңа жазу қосу}

       begin assign (f,bf); reset (f);

         n:=filesize (f);

         write ('Файл жазуларының саны=',n); writeln;

         writeln ('Файлға жазу қосу керек болса,');

         write ('К үшiн 'n+1' саны ендiрiлуi тиiс!');

         write ('Қажеттi жазу нөмiрi : k-?');  readln (k);    

         seek (f, k-1);  read(f, v);      

         with v do

         begin  writeln;

           writeln (a1:6, ' ', a2:18, a3:5, a4:6); writeln;

           writeln ('Жазу экранға шықса, онда');

           writeln ('жөнделетiн өрiстердi өзгертiп ендiрiңiз,');

           writeln ('қалған өрiстердi өзгерiссiз қайта ендiрiңiз');

writeln ('Файлға жазу қосу үшiн k саны ендiрiлген  болса,');

         writeln ('берiлген сұрақтарға жауап берiп, КК клавишiн басыңыз);

         writeln;

         write ('шифры-? '); readln (a1);

         write ('аты - жөнi-?'); readln (a2);

         write ('туған жылы -?'); readln (a3);                                              

         write ('ұлты-?'); readln (a4);

         seek (f,k-1); write (f,v)

        end; 

        close(f)

       end;               

       Read(f, v)  операторы  орындалған  соң  көрсеткiш  келесi жазудың  басына  барып тоқтайды.   Cондықтан жазу  экранға шығарылғаннан  кейiн, оның  кейбiріне  барлық элементтерiн өзгертiп,  бұрынғы  орнына  қайта  жазу үшiн  көрсеткiштi cол жердiң  басына  қайтып әкелу керек.  (6) - процедураға енген екiншi  seek  операторы осы жұмысты атқарады.

       Ескерту. 1. (6)-процедура бойынша жазудың кейбiр өрiстiк мәндерiн өзгерту қажет болса,  өзгерiссiз қалдырылуға  тиiс мәндердi  де клавиатурадан қайта  терiп,  жадқа  ендiрiп отыру керек. Әйтпесе олар дискiге жазылмай өшiп қалады.

         2. Көрсеткiштi файл соңына орналастыру үшiн Seek(filesize(f)) операторын пайдалану да мүмкiн.                     

 

 Әдебиеттер

1. Н.С. Заурбеков, Б.Ж.Жумажанов. Алгоритмдеу және программалау тілдері. Экономика баспасы. Алматы-2008.

2. Ж.Қ. Масанов, Б.А.Белгибаев, А.С.Бижанова, Қ.Қ.Мақұлов «Turbo Pascal». Алматы 2004.

3. Фаронов В.В.  Тurbo Pascal 7.0. Практика программирования.  Оку құралы.- М.: Нолидж, 2000ж. 416 бет.

Мәлімет сізге көмек берді ма

  Жарияланған-2014-06-03 21:24:33     Қаралды-1816

ГАЛАКТИКА ДЕГЕНІМІЗ НЕ?

...

Ежелгі гректер бұл жұлдыздар шоғырын Галактика деп атаған, ол Құс жолы дегенді білдіреді.

ТОЛЫҒЫРАҚ »

ҒАЛАМ ҚАЛАЙ ПАЙДА БОЛДЫ?

...

20 ғасырдың бірінші ширегіне дейін Әлемнің өзгермейтін, тұрақты және мәңгілік нәрсе ретіндегі идеясы болды.

ТОЛЫҒЫРАҚ »

ДҮНИЕЖҮЗІЛІК МҰХИТ ТУРАЛЫ НЕ БІЛЕМІЗ?

...

Дүниежүзілік мұхиттар – гидросфераның негізгі бөлігі

ТОЛЫҒЫРАҚ »

ЭЛЕКТР ҚУАТЫН КІМ АШТЫ?

...

Бенджамин Франклин есімді адам бірінші болып электр тоғының не екенін толық түсіндіруге тырысты.

ТОЛЫҒЫРАҚ »

ВЕЛОСИПЕДТІ АЛҒАШ КІМ ОЙЛАП ТАПТЫ?

...

Бұл скутер педальсыз велосипедке көбірек ұқсады...

ТОЛЫҒЫРАҚ »

КОФЕНІ ҚАШАН ЖӘНЕ КІМ ОЙЛАП ТАПТЫ?

...

Кофені кім және қашан ойлап тапқанын нақты айту мүмкін емес - бәрі аңыздан басталды.

ТОЛЫҒЫРАҚ »

ӘЛЕМДЕГІ АЛҒАШҚЫ СМАРТФОН

...

Сенсорлық экраны бар ең алғашқы смартфон IBM Simon болды.

ТОЛЫҒЫРАҚ »

СІЗ АУАНЫ КӨРЕ АЛАСЫЗ БА?

...

Ауаның мөлдір, түссіз, иіссіз екенін бәрі біледі.

ТОЛЫҒЫРАҚ »

ЕҢ БИІК ТАУ ҚАЙ ЖЕРДЕ?

...

Планетамыздағы ең биік тау құрлықта емес, Тынық мұхитының түбінде тұр

ТОЛЫҒЫРАҚ »