Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Pascal: Задача на функцию\процедуру и на файлы (http://www.tehnari.ru/f41/t35697/)

DemonGDC 03.05.2010 22:12

Pascal: Задача на функцию\процедуру и на файлы
 
Очень нужна помощь в выполнении двух задач:
1) написать функцию\процедуру поиска количества вхождений слова в текстовом файле, файл заполнен вручную
2) Дан текстовый файл. Получить из него два типизированных (в первом должны быть все цифры из исходного, во втором - все остальное)

Vladimir_S 04.05.2010 13:42

Цитата:

Сообщение от DemonGDC (Сообщение 330055)
Очень нужна помощь в выполнении двух задач:
1) написать функцию\процедуру поиска количества вхождений слова в текстовом файле, файл заполнен вручную
2) Дан текстовый файл. Получить из него два типизированных (в первом должны быть все цифры из исходного, во втором - все остальное)

Пожалуйста:
1.
Код:

VAR
 f:TEXT;
 i,j,n:INTEGER;
 Wrd:STRING;
 Ch:Char;
 b:boolean;
BEGIN
 Assign(f,'D:\x');
 ReSet(f);
 n:=0;
 WriteLn('Enter the word:');
 ReadLn(Wrd);
 j:=1;
 Repeat
  Read(f,Ch);
  If Ch=Wrd[j] then
  begin
    b:=true;
    i:=j;
    Repeat
    Inc(i);
    Read(f,Ch);
    If Ch<>Wrd[i] then b:=false;
    Until (i=Length(Wrd)) or (b=false);
    If (b=false) and (Ch=Wrd[1]) then j:=2 else j:=1;
    If b and (i=Length(Wrd)) then Inc(n);
  end;
 Until EoF(f);
 Close(f);
 WriteLn('n= ',n);
 ReadLn;
END.

Здесь исходный файл имеет наименование "х" и расположен в корневой папке диска D. Разумеется, имя и путь могут быть изменены. Программа отслеживает не только совпадение слова, как целого, но и ситуации, когда проверяемое слово является частью слова в файле. Это тоже считается вхождением. В условии, к сожалению, этот момент не прояснен.
2.
Код:

VAR
 f,f1,f2:TEXT;
 Ch:Char;
BEGIN
 Assign(f,'D:\x');
 ReSet(f);
 Assign(f1,'D:\x1');
 ReWrite(f1);
 Assign(f2,'D:\x2');
 ReWrite(f2);
 Repeat
  Read(f,Ch);
  If (Ord(Ch)>47) and (Ord(Ch)<58) then
  Write(f1,Ch,' ') else
  Write(f2,Ch);
 Until EoF(f);
 Close(f);
 Close(f1);
 Close(f2);
END.

Насчет имен и путей - то же, что и в предыдущей задаче. Файл f1 объявлен текстовым, однако в другой использующей его программе он может рассматриваться уже как типизированный. Можно, конечно, сразу через функцию Val его записать, как типизированный - если это необходимо, сделаю.

DemonGDC 04.05.2010 17:06

Большое спасибо, Vladimir_S


Часовой пояс GMT +4, время: 03:57.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.