Funkcja zliczania spojnikow

0

Witam, srednio sobie radze z programowaniem, wrecz jestem w tym zielony ;x
a musze napisac projekt, bylby ktos w stanie napisac mniej wiecej funkcje zliczania spojnikow z tekstu ? w sensie mam wszystko z assignfile(f, 'tekst.txt') i reset(f), caly trzon programu i pare innych funkcji napisanych ale na tą w ogóle nie mam pomysłu. 10 spojników typu i, albo, lub itditd

0

wrzuć to co już masz

0

http://ideone.com/BoD9dX
Problem jeszcze mam ze zliczaniem zdań które zaczynaja sie od samogloski (f3), wiec jakby dalo rade zerknac dlaczego to nie wychodzi to prosiłbym :D
cala reszte wyrzucilem do tego wklejonego kodu bo w sumie jest dobra a nie ma za bardzo znaczenia

dobra to z samogłoskami ogarnąłem już, kwestia jeszcze tego ze zliczaniem spojnikow

1

spróbuj tak

Function f5(zlicz: string): integer;
const
  arrSpojniki: array [0 .. 9] of string = //
    ( //
    ' i ', //
    ' lub ', //
    ' albo ', //
    ' lecz ', //
    ' ale ', //
    ' na ', //
    ' zatem ', //
    ' bo ', //
    ' dlatego ', //
    ' oraz ');
var
  i: integer;
  j: integer;
  strSpojnik: string;
begin
  Result := 0;
  for i := 1 to length(zlicz) do
    for j := 0 to high(arrSpojniki) do
    begin
      strSpojnik := arrSpojniki[j];
      if uppercase(midstr(zlicz, i, length(strSpojnik))) = uppercase(strSpojnik) then
        inc(Result);
    end;
end;
2
{$mode objfpc}
uses Classes, SysUtils, StrUtils;
 
function ReadLine(): String;
begin
  ReadLn(Result);
end;

function OnlyLetters(Str: String): String;
var Element: Char;
begin
  Result := '';
  for Element in Str do
  begin
    if Element in ['a'..'z', 'A'..'Z'] then
    begin
      Result += Element;
    end;
  end;
end;

var Line: String;
var Tokens: TStringList; 
var Token: String;
var ConjuctionsCounter: Integer;
begin
  Tokens := TStringList.Create;
  Tokens.Delimiter := ' ';
  
  while not EOF() do
  begin
	Tokens.DelimitedText := ReadLine();
	for Token in Tokens do
	begin
	  if  AnsiMatchStr(LowerCase(OnlyLetters(Token)), 
	        ['i', 'lub', 'albo', 'lecz', 
	         'ale', 'na', 'zatem', 'bo', 
	         'dlatego', 'oraz'
	        ]) then
	  begin
	    Inc(ConjuctionsCounter);
	  end;
	end;
  end;
  WriteLn(ConjuctionsCounter);
end.

http://ideone.com/Cq3mk9

0

działa, bardzo dziękuję ! :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1