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
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.
0
działa, bardzo dziękuję ! :)