Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Delphi » Строки в Delphi 7 (Дан текст)
Строки в Delphi 7
Помогите сделать задания.
Задания:
1) Дан текст. Найти множество всех слов, которые встречаются во всех предложениях текста.
2) Для каждого из слов заданного предложения указать, сколько раз оно встречается в предложении.
Заранее Спасибо.

Добавлено (13.04.14, 23:28)
---------------------------------------------
Вот код для первого задания, конечно не знаю правильный ли, но хоть даже и правильный, то отладить у меня его не получилось:


Код
ConstNums = ["0","1","2","3","4","5","6","7","8","9"];

Letters = [
  "q","w","e","r","t","y","u","i","o","p",
  "a","s","d","f","g","h","j","k","l","z",
  "x","c","v","b","n","m","Q","W","E","R",
  "T","Y","U","I","O","P","A","S","D","F",
  "G","H","J","K","L","Z","X","C","V","B",
  "N","M","й","ц","у","к","е","н","г","ш",
  "щ","з","х","ъ","ф","ы","в","а","п","р",
  "о","л","д","ж","э","я","ч","с","м","и",
  "т","ь","б","ю","Й","У","К","Е","Н","Г",
  "Ш","Щ","З","Х","Ъ","Ф","Ы","В","А","П",
  "Р","О","Л","Д","Ж","Э","Я","Ч","С","М",
  "И","Т","Ь","Б"];

  NumsAndLetters = Nums + Letters;

  WordChars = NumsAndLetters+["-"];

Procedure ParseWords(const s:String;p_nMinWordLength:Integer);
Var
c,r:String;
cn,l,n,k:Integer;
wrds:TStringList;

Function _ReadWord:Boolean;
Label m;
Begin

  m: Result:=False;  c:="";
  If n>(l+1) Then Exit;
  While True Do
   Begin
    If s [n]In WordChars Then Break;
    If n=l Then Break;
    Inc(n);
   End;

  c:=s[n];  Inc(n);
  While True Do
    
Begin

    If s [n]In WordChars Then c:=c+s [n]Else Break;
    If n=l Then Break;
    Inc(n);
   End;
  If Length(c)<=p_nMinWordLength Then GoTo m Else Result:=True;

End;

Begin

If Trim(s)="" Then Exit;
wrds:=TStringList.Create;
wrds.Sorted:=True;
l:=Length(s); n:=1;
While _ReadWord Do If c<>"" Then
  Begin
   r:=AnsiLowerCase(c);
   k:=wrds.IndexOf(r);
   If k=-1 Then wrds.AddObject(r,TObject(0)) Else wrds.Objects[k]:=TObject(Integer(wrds.Objects[k])+1);
  End;
Form1.Memo2.Lines.Add("Строка ""+s+""");
For k:=0 to wrds.Count-1 Do
  Form1.Memo2.Lines.Add("  Количество слов ""+wrds[k]+"":"+IntToStr(Integer(wrds.Objects[k])+1));
Application.ProcessMessages;
wrds.Free;
End;

procedure TForm1.sButton1Click(Sender: TObject);
Var i:Integer;
begin
   For i:=0 to Memo1.Lines.Count-1 Do ParseWords(Memo1.Lines[i],2);
end;

Добавлено (13.04.14, 23:30)
---------------------------------------------
Вот код для второго задания, конечно не знаю правильный ли, но хоть даже и правильный, то отладить у меня его не получилось: 


Код
program Project1;{$APPTYPE CONSOLE}

//uses crt;

var s,sl:string;
     k,i:integer;
begin write('Vvedite tekst:');
       readln(s);
       write('Vvedite slovo: ');
       readln(sl);
       k:=0;
       while pos(sl,s)>0 do
         begin k:=k+1;
               delete(s,pos(sl,s),length(sl));
         end;
       writeln('Slovo v danom tekste vstre4aetsia ->',k, 'raz');
end.
1 | Автор: anton94by | 2014-04-13, 23:30   |  Репутация: [ + 1 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Delphi » Строки в Delphi 7 (Дан текст)
  • Страница 1 из 1
  • 1
Поиск: