| Цитата | народ,решите задачу.вопрос жизни и смерти.
|
Пусть лучше жизни:
| Код | program WordC; function WordCount(strFileName,strWord:string):integer; {ф-ция возвращает сколько раз слово strWord встретилось в файле с именем strFileName или -1 если произошла ошибка} var ch:char;{очередной считываемый символ} res:integer;{результат} F:text;{файловая переменная} strTemp:string;{здесь будем хранить очередное считанное слово} begin res:=0;{инициализация} assign(F,strFileName);{связывание файловой переменной с конкретным файлом} {$I-} reset(F); {$I+} if IOResult=0 then{если нет ошибок} begin while not eof(f) do begin read(f,ch);{чтение символа} strTemp:='';{инициализация считанного слова} while (not eof(f)) and ((ch<'A') or (ch>'z')) do{пропуск "небукв"} read(f,ch); while (not eof(f)) and (ch>='A') and (ch<='z') do{а теперь пошли буковки} begin strTemp:=strTemp+ch;{добавление символа} read(f,ch);{чтение следующего символа} end; if strTemp=strWord then inc(res);{если считанное слово = нужному то увеличиваем результат} end; close(F);{закрытие файла} end else res:=-1;{произошла ошибка} WordCount:=res;{возвращение результата} end; var result:integer;{здесь будем хранить результат} strFileName,strWord:string;{ну здесь все понятно} begin writeln('Please enter file name:'); readln(strFileName);{ввод имени файла} writeln('Please enter word:'); readln(strWord);{ввод слова} result:=WordCount(strFileName,strWord); if result<>-1 then writeln('Result = ',result) else writeln('FileIO error'); readln; end.
|
Стоит еще добавить вариант:
| Код | program WordC; function WordCount(strText,strWord:string):integer; {ф-ция возвращает сколько раз слово strWord встретилось в строке strText} var i,len,res:integer;{i-счетчик, len-длина строки, res-результат} strTemp:string;{здесь будет храниться слово} begin res:=0;{инициализация} len:=Length(strText);{вычисляем длину текста} i:=1;{счетчик в начало} while i<=len do{пока не конец строки} begin strTemp:=''; while (i<=len) and ((strText[i]<'A') or (strText[i]>'z')) do{пока "небуква"} inc(i); while (i<=len) and (strText[i]>='A') and (strText[i]<='z') do{пошли буковки} begin strTemp:=strTemp+strText[i];{добавление символа} inc(i);{увеличение счетчика} end; if strTemp=strWord then inc(res);{если слова совпадают то увеличить результат} end; WordCount:=res;{возврат значения} end; var strText,strWord:string; begin writeln('Please enter text:'); readln(strText);{ввод текста} writeln('Please enter word:'); readln(strWord);{ввод слова} writeln('Result = ',WordCount(strText,strWord));{вывод результата} readln; end.
|
|