Подсчитать количество вхождений заданного слова в строку - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Если вкратце то нужно в эту прогу добавить программу которая выведет сколько раз я ввел конкретное слово в строке.
program Dz2;
var
  //s: string[255 ];
  s:array[1..255] of char;
  i: integer;
  f: boolean;

begin
  writeln (#144#174#167#224#174#161#173#168#170,'  ',#196,'  ',#132#166#165#162#171#160#229,'  ',#140#46#144#46);
  i:=0;
  repeat
    i:=i+1;
    read(s[i]);
    until (s[i]='.') or (s[i]=',') or (s[i]='!') or (s[i]='?');
  for i:=1 to 255 do
  begin
if (s[i] = #175) and (s[i + 1] = #224) and (s[i+2] = #174) and (s[i + 3] = #163) and (s[i + 4] = #224) and (s[i + 5] = #160) and (s[i + 6] = #172) and (s[i + 7] = #160) then
    begin
      f := true;
      break;
    end;
  end;
  if f then writeln(#10#13#147#32#162#162#165#164#165#173#174#172#227#32#224#165#231#165#173#173#105#32#243#32#225#171#174#162#174#32#34#175#224#174#163#224#160#172#160#34#46)
  else writeln(#10#13#147#32#162#162#165#164#165#173#174#172#227#32#224#165#231#165#173#173#105#32#173#165#172#160#243#32#225#171#174#162#160#32#34#175#224#174#163#224#160#172#160#34#46);
  readln;
  readln;
 
end.

Решение задачи: «Подсчитать количество вхождений заданного слова в строку»

textual
Листинг программы
Function sum(s_in, s_find: string): integer;
Var
C: char;
X, I: integer;
S: string;
Begin
S:= '';
X:= 0;
For I:= 1 to length s_in do if s_in[i]<> ' ' then s:= s+ s_in[i] else begin s:= ''; if s = s_find then inc(x); end;
Sum:= x;
End;

Объяснение кода листинга программы

  1. В коде определена функция с именем sum, которая принимает два аргумента типа string - s_in и s_find.
  2. Внутри функции объявлены следующие переменные:
    • C типа char
    • X и I типа integer
    • S типа string
  3. Инициализируется переменная S пустой строкой (``).
  4. Инициализируется переменная X значением 0.
  5. В цикле For перебираются символы строки s_in с индексами от 1 до длины строки.
  6. Если текущий символ не равен пробелу (' '), то он добавляется в переменную S.
  7. Если текущий символ равен пробелу (' ') и переменная S не пустая, то проверяется равенство S строке s_find.
  8. Если равенство выполняется, то значение переменной X увеличивается на 1.
  9. После завершения цикла, значение переменной X возвращается из функции как результат.
  10. Значения переменных S и X не используются вне функции.

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы