Консультация № 95128
14.07.2007, 12:53
0.00 руб.
0 3 3
доброго времение суток, уважаемые эксперты. опять нужна Ваша помощь. нужна прога, подсчитывающая количество слов в тексте, содержащих заданную букву. заранее СПАСИБО

Обсуждение

Неизвестный
14.07.2007, 13:08
общий
это ответ

<i>Здравствуйте, <b>Deimos25</b>!</i>

См. пример в приложении.

Принцип прост:
1. Ищем букву в тексте
2. Если нашли, то переходим к следующему слову (определяем его по стоящему пробелу перед ним), увеличиваем значение num, переходим к п.1
3. Выводим результат.

<i>Удачи!</i>

Приложение:
program Q95128;uses Crt; var fText: String; fChar: Char; i, num: Integer;begin {Очистка экрана} ClrScr; {Ввод данных} WriteLn(‘Vvedite text:‘); ReadLn(fText); Write(‘Vvedite bukvu: ‘); ReadLn(fChar); {Инициализация} i:= 0; num:= 0; {Поиск} while (i < Length(fText)) do begin Inc(i); if (fText[i] = fChar) then begin Inc(num); repeat Inc(i); until ((fText[i] = ‘ ‘) or (i >= Length(fText))); end; end; {Вывод результата} WriteLn; WriteLn(‘Kol-vo slov s bukvoj "‘, fChar, ‘" = ‘, num); {Ожидание нажатия пользователем любой кнопки} WriteLn; WriteLn(‘Press any key...‘); ReadLn;end.
Неизвестный
14.07.2007, 13:34
общий
это ответ
Здравствуйте, Deimos25!
Привожу код решения Вашей программы в приложении. В директорию с программой нужно поместить текстовый файл и переименовать его text.txt, можно сделать обработка любого файла:

......
Writeln(‘Введите имя файла‘);
Read(St);
Assign(F,St);
Reset(F);
.....

Приложение:
var F: Text; St,Tmp: string; Srch: Char; p,count: integer;begin Write(‘Введите букву для поиска - ‘); Read(Srch); Assign(F,‘text.txt‘); Reset(F); count:=0; While Not Eof(F) do begin Readln(F,St); While Pos(‘ ‘,St)<>0 do begin p:=Pos(‘ ‘,St); Tmp:=Copy(St,1,p-1); St:=Copy(St,p+1,Length(St)-p); if Pos(Srch,Tmp)<>0 then Inc(Count); end; end; Close(F); Writeln(‘Всего слов, содержащих ‘,srch,‘ - ‘,count); ReadKey;end.
Неизвестный
14.07.2007, 15:11
общий
это ответ
Здравствуйте, Deimos25!
Вот примерное решение Вашей задачи. Думаю, основную идею поймёте.

прога, подсчитывающая количество слов в тексте, содержащих заданную букву.
__________________________________________________________________________

var text, slovo: string;
i, count: integer;
a: char;

begin
// Ввести строку (text) - маленькие латинские буквы. Резделитель слов - один знак препинания.
// Ввести заданную букву (a)
count := 0;
mn := [‘a‘..‘z‘];
Repeat
slovo := ‘‘;
i:=0;
while not (text[i] in mn) do
Begin
inc(i);
slovo := slovo + text[i];
end;
delete(text, i+1, 1);
for i:=1 to length(slovo) do
begin
if slovo[i]=a then inc(count);
break;
end;
Until text=‘‘;
end.

В тексте будет содержаться COUNT слов с заданной буквой

УДАЧИ!
С Ув. SHERRY
Форма ответа