Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.22 KB | None | 0 0
  1. program stroki;                       //п.1. - Напечатать все слова, отличные
  2.                                       //от последнего слова, в которые первая
  3. {$APPTYPE CONSOLE}                    //буква входит ещё раз.
  4.                                       //п.2. - Напечатать все слова, отличные
  5. uses                                  //от последнего слова, заменив все вхож-
  6.   SysUtils, system;                  //дения ph на f, если такие имеются.
  7.  
  8. Type TWords = array [1..100] of string;
  9. var s1, s, s2: String;
  10.     a: Integer;
  11.     word: TWords;
  12.  
  13. Function ToDivideIntoWords(s:string; var a: Integer): TWords;  //Разделяет строку на слова
  14. var i,j : Integer;
  15.     word : TWords;
  16. begin
  17. a:=1;
  18. i:=1;
  19. while (i<(length(s)-1)) do
  20.   begin
  21.   if (s[i]=' ') and (s[i+1]<>' ') then
  22.     begin
  23.     j:=i+1;
  24.     while s[j]<>' ' do j:=j+1;
  25.     word[a]:=copy(s,i+1,j-i-1);
  26.     inc(a);
  27.     i:=j-1;
  28.     end;
  29.   inc(i);
  30.   end;
  31. Result:=word;
  32. end;
  33.  
  34. procedure Punkt1(word: TWords; a: Integer; var  s1:string);     //п.1
  35. var i, j: Integer;
  36.     flag: Boolean;
  37. begin
  38. for i:=1 to a do
  39.   begin
  40.   if not (lowercase(word[i])=lowercase(word[a-1])) then      //Проверка на отличие от последнего
  41.     begin
  42.     j:=2;
  43.     flag:=true;
  44.     While (j<=length(word[i])) and (flag) do                //Проверка на вхождение первой буквы
  45.       begin                                                 //ещё раз в это слово
  46.       if (UpCase(word[i][j])=UpCase(word[i][1])) then
  47.         begin
  48.         s1:=s1+word[i]+' ';                                 //Если верно, то записываем в результат
  49.         flag:=false;
  50.         end;
  51.       inc(j);
  52.       end;
  53.     end;
  54.   end;
  55. end;
  56.  
  57. Function Punkt2(word:Twords; a: Integer):string;
  58. Var i,j: Integer;
  59.     s2: String;
  60. begin
  61. for i:=1 to a do
  62.   begin
  63.   if not (lowercase(word[i])=lowercase(word[a-1])) then        //Проверка на отличие от последнего
  64.     begin
  65.     j:=1;
  66.     While (j<=length(word[i])) do
  67.       begin
  68.       if (word[i][j] in ['p','P']) and (word[i][j+1] in ['h','H']) then    //Нахождение сочитания
  69.         begin                                                              //букв ph
  70.         word[i][j]:='f';
  71.         delete(word[i],j+1,1);                                       //Заменяем ph на f
  72.         end;
  73.       inc(j);
  74.       end;                                                          //Записываем результат
  75.     s2:=s2+word[i]+' ';
  76.     end;
  77.   end;
  78. Result:=s2;
  79. end;
  80.  
  81. procedure ShowResult(FirstResult,SecondResult:string);       //Выводит результат на экран
  82.   begin
  83.   writeln('p.1:');
  84.   writeln(FirstResult);
  85.   writeln;
  86.   writeln('p.2:');
  87.   writeln(SecondResult);
  88.   end;
  89.  
  90. begin
  91. writeln('Enter the string in English.');       // Ввод строки
  92. readln(s);
  93. word:=ToDivideIntoWords(s,a);
  94. writeln;
  95. Punkt1(word,a,s1);      //п.1
  96. s2:=Punkt2(word,a);     //п.2
  97. ShowResult(s1,s2);
  98. sleep(200000);
  99. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement