Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

Билет 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. ЛАБОРАТОРНАЯ РАБОТА 2 ТЕМА- Создание многоуровневого списка
3. Проектування ітераційних алгоритмів
4. Оформление бухгалтерской документации за месяц на предприятии AO Софт Премиум
5. Отчет по лабораторной работе 2
6. СТАТИСТИКА для студентов обучающихся по специальностям 080114 Экономика и бухгалтерский учет 100701 Ком
7. Сказка Досуг для младших дошкольников Паровозик из Ромашково
8. Предмет науки истории ее место в системе исторических наук Изучение гуманитарных дисциплин составляет в.1
9. Тема- Універсальність світогляду Марії Сазонової її поетична творчість
10. Спаситель. Как писал Дали в своем шокирующе
11. Реферат- Житлове право України
12. тема. По Страшнову- понятие Ж.
13. Система элективных курсов по информатике для предпрофильной подготовки Компьютерная и информационная безопасность
14. г. именуем в дальнейшем
15. 20р. ПРОГРАМА навчальної практики для студентів І~ІІІ курсів за напрямом під
16. исследовательского института питания РАМН академик РАМН Координаторы программы.
17. Проектирование производственной инфраструктуры МУПБО Бодрость
18. Лекція- 5.7. Підпрограми функції та процедури у мові Pscl BC
19. Двойственность мировоззрения ФМДостоевского
20.  Атрезия пищевода- классификация клиника диагностика лечение 2