У вас вопросы?
У нас ответы:) SamZan.net

Анализ текстовых файлов

Работа добавлена на сайт samzan.net: 2016-06-20

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.6.2025

Билет 11. Анализ текстовых файлов. Сортировка текстовых файлов. Одной из типичных задач анализа файла является вычисление объёма текстового файла. При этом, в понятие объёма может вкладываться различный смысл: от общего числа символов в файле, до более утонченных оценок, например учитывающих только информационные символы (без управляющих символов), специальным образом учитывающим пробелы, отдельно учитывающим русские и латинские символы, текст и формулы и др. Ниже приведён пример одной из программ вычисления объема текстового файла в авторских листах:

 program volume; { Расчет объема файла, где цепочки пробелов учитываются как один символ}

       uses CRT, DOS;

       const pg=#12;

       var total:pathstr;str:dirstr;fn:namestr;fr:extstr;

           ft:text;alfa,beta:Boolean;

           j,page:byte;a,symb:longint;author:real;

    procedure setdisc;

    var c:string;

    begin writeln(' Установите дискету с файлом ', fn,' и нажмите enter');

          readln(c);{$I-}reset(ft);{$I+}

          if IOResult<>0 then  begin writeln(' Файл ',fn,' не найден!');readln;halt end;  end{setdisc};

    procedure checknm;

    var i:byte;digit:set of '0'..'9';

    begin if str <>'' then

       begin for i:=1 to length(str) do if not (str[i] <>' ') then

             if (str[i]='-') and (str[i+1] in digit) then str:='';

             alfa:=false; end; end{checknm};

    BEGIN page:=1;symb:=0;a:=0;alfa:=false;beta:=false;

          writeln(' Введите полное имя анализируемого файла:');

          readln(total);assign(ft,total);fsplit(total,str,fn,fr);

          {$I-}reset(ft);{$I+}  if IOResult<>0 then

          begin for j:=(length(total)-length(fn)-length(fr)) downto 1 do

                     if total[j] in ['A'..'Z','a'..'z'] then

                       if not (total[j] in ['a','A','b','B']) then

                  begin writeln(' Файл ',fn,' не найден');readln;halt end

                    else begin setdisc;break end;  end;

                  repeat readln(ft,str);if str<>'' then

             begin symb:=symb+length(str);for j:=1 to length(str) do

                    begin if alfa then checknm;

              if str[j]=pg then begin page:=page+1;alfa:=true end;

              if not (str[j] in [pg,' ']) and (not alfa) then inc(a);

              if str[j]=' ' then beta:=true;

              if beta and not (str[j] in [pg,' ']) then

             begin inc(a);beta:=false end; end;  end;

                  until eof(ft);

             author:=a/40000; clrscr;gotoXY(10,10);

                write(' ОБЪЕМ ТЕКСТА ',fn);gotoXY(10,11);

                write(' Страниц: ',page);gotoXY(10,12);

                write(' Всего символов в тексте: ',symb);gotoXY(10,13);

                write(' Объем в авторских листах: ',author:2:3);

                gotoXY(10,14);for j:=20 to 80 do write('_');writeln; readln;

    END {volume}.

4. Сортировка текстовых файлов.

Сортировка файлов - весьма распространенная процедура, направленная на повышение эффективности многих важных процессов обработки файлов. Сортировка - ключевая процедура для всего цикла обработки. Распространенный метод сортировки - метод "трёх лент".

Сортировка файла  должна использовать дополнительные файлы для хранения промежуточной информации. Метод "трёх лент" использует для этих целей два дополнительных файла, а основной идеей сортировки является чередование фаз "разделения" и "слияния" файлов до получения полностью отсортированного файла.

Если столбцы заданной прямоугольной целочисленной матрицы расположены в порядке возрастания числа нулевых элементов в них, то подсчитать число нулевых элементов во всей матрице, иначе определить столбец с максимальным количеством нулей.

program z433_11;

uses Z12433_11;

Var A:matr;

   S:mass;

   i,j,ch,nmax:integer;

BEGIN

for i := 1 to n do

for j := 1 to m do

readln(A[i,j]);

NulS(A,S);

if Vozr(S) then

 Begin

 NulCh(S,ch);

 write('ch: ');

 writeln(ch);

 end

         else Begin

               Maximum(S,nmax);

               write('nmax: ');

               writeln(nmax);

               end;

END.

Unit Z433_11;

interface

Const n = 3;

     m = 4;

Type matr = array[1..n,1..m] of integer;

    mass = array[1..m] of integer;

procedure NulS(A:matr; Var S:mass);

{Записывает в массив S число нулей в каждом столбце}

function Vozr(S:mass):boolean;

{возвращает true, если в массиве S элементы расположены в порядке возрастания}

procedure NulCh(S:mass; Var ch:integer);

{ch - количество нулей в матрице}

procedure Maximum(S:mass; Var nmax:integer);

{nmax - номер столбца с максимальным количеством нулей}

implementation

procedure NulS(A:matr; Var S:mass);

Var i,j,k:integer;

Begin

for j := 1 to m do

 Begin

 k := 0;

 for i := 1 to n do

 if A[i,j] = 0 then k := k + 1;

 S[j] := k;

 end;

end;  {NulS}

function Vozr(S:mass):boolean;

Var i,k:integer;

   b:boolean;

Begin

k := 0;

for i := 2 to m do

if S[i] > S[i-1] then k := k + 1;

if k = m - 1 then b := true

            else b := false;

Vozr := b;

end;  {Vozr}

procedure NulCh(S:mass; Var ch:integer);

Var i:integer;

Begin

ch := 0;

for i := 1 to m do

ch := ch + S[i];

end;  {NulCh}

procedure Maximum(S:mass; Var nmax:integer);

Var i,max:integer;

Begin

max := S[1];

nmax := 1;

for i := 2 to m do

if S[i] > max then

 Begin

 max := S[i];

 nmax := i;

 end;

end;  {Maximum}

END.




1. реферат дисертації на здобуття наукового ступеня кандидата економічних наук ЛЬ
2. то на свете Плачет гдето на светеИ причины казалось бы нет Плачет он обо мне
3. голосова модуляція
4. Правовая статистика как научная дисциплина
5. Владимирский государственный университет БУХГАЛТЕРСКИЙ УЧЕТ В ОРГАНИЗАЦИЯХ Мето
6. Дослідження логічних елементів емітерно-звязаної логіки
7. Храмовое строительство на Руси в XVI-XVII вв
8. Реферат Одарённые дети в системе воспитания и обучения Кишинев 2004 План -1определе
9. Астрология и причины её популярности1
10. Политический риск понятие и классификация