Advertisement
nblknn

labik 3.1

Nov 9th, 2023 (edited)
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.25 KB | None | 0 0
  1. Program LAB3_1;
  2.  
  3. Uses
  4.     System.SysUtils;
  5.  
  6. Const
  7.     SPACE = ' ';
  8.     LETTERS = [#65 .. #90, #97 .. #122];
  9.  
  10. Var
  11.     SpaceCount, I, J, Len: Integer;
  12.     IsOdd, HasLetters: Boolean;
  13.     Text, Result, Word, OpenBrace, CloseBrace: String;
  14.     WordsArr: Array Of String;
  15.  
  16. Begin
  17.     Writeln('Данная программа в каждом четном слове текста заменяет все буквы на прописные,',
  18.       #10, 'а каждое нечетное слово заключает в круглые скобки.');
  19.     Writeln('Введите текст.');
  20.     Readln(Text);
  21.     Len := Length(Text);
  22.     I := 1;
  23.     SpaceCount := 0;
  24.     While I < Len + 1 Do
  25.     Begin
  26.         If Text[I] = SPACE Then
  27.             Inc(SpaceCount);
  28.         Inc(I);
  29.     End;
  30.     SetLength(WordsArr, SpaceCount + 1);
  31.     I := 1;
  32.     J := 0;
  33.     While I < Len + 1 Do
  34.     Begin
  35.         If (Text[I] = SPACE) Then
  36.             Inc(J)
  37.         Else
  38.             WordsArr[J] := WordsArr[J] + Text[I];
  39.         Inc(I);
  40.     End;
  41.     I := 0;
  42.     IsOdd := True;
  43.     OpenBrace := '(';
  44.     CloseBrace := ')';
  45.     While I < High(WordsArr) + 1 Do
  46.     Begin
  47.         HasLetters := False;
  48.         J := 1;
  49.         Word := WordsArr[I];
  50.         While (J < (Length(Word) + 1)) And Not HasLetters Do
  51.         Begin
  52.             If Word[J] In LETTERS Then
  53.                 HasLetters := True;
  54.             Inc(J);
  55.         End;
  56.         If HasLetters Then
  57.             If IsOdd Then
  58.             Begin
  59.                 J := 1;
  60.                 While (J < Length(Word)) And Not(Word[J] In LETTERS) Do
  61.                     Inc(J);
  62.                 Insert(OpenBrace, WordsArr[I], J);
  63.                 Word := WordsArr[I];
  64.                 Inc(J);
  65.                 While (J < (Length(Word) + 1)) And (Word[J] In LETTERS) Do
  66.                     Inc(J);
  67.                 Insert(CloseBrace, WordsArr[I], J);
  68.                 IsOdd := False;
  69.             End
  70.             Else
  71.             Begin
  72.                 WordsArr[I] := UpperCase(WordsArr[I]);
  73.                 IsOdd := True;
  74.             End;
  75.         Inc(I);
  76.     End;
  77.     For I := 0 To High(WordsArr) Do
  78.         Result := Result + WordsArr[I] + SPACE;
  79.     Writeln('Результат:', #10, Result);
  80.     Readln;
  81.  
  82. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement