Программа


Program BackToFront;
{ Переворот слов в тексте }
Const StringQuantity=10;                        { Количество сторок в тексте }
      Break=[' ',','];                          { Множество разделителей }
Var i:integer;                                  { Счетчик }
    Text:array [1..StringQuantity] of string;   { Текст }
Procedure WriteString(St:string);               { Процедура вывода строки }
  procedure WordWrite(Word:string);             { Процедура вывода слова }
    var i:integer;                              { Счетчик }
    begin
      for i:=Length(Word) downto 1 do Write(Word[i])
                                  { Вывод слова по символам, начиная с конца }
    end;
  function SeparatingFirstWord(var St:string):string;
                                 { Функция выделения первого слова из строки }
    var Buf:string;              { Буферная переменная для слова }
    begin
      Buf:='';                   { Сброс буфера }
      while (Length(St)>0) and not (St[1] in Break) do
                       { Просмотр строки до конца или до первого разделителя }
        begin
          Buf:=Buf+St[1];
                       { Запись первого символа строки к концу строки буфера }
          Delete(St,1,1)                { Удаление первого символа из строки }
        end;
      SeparatingFirstWord:=Buf          { Определение значения функции }
    end;
  Begin
    while Length(St)>0 do     { Обработка строки до окончания в ней символов }
      begin
        WordWrite(SeparatingFirstWord(St));            { Вывод первого слова }
        while (Length(St)>0)and(St[1] in Break) do   { Вывод разделителей }
          begin
            Write(St[1]);                     { Вывод первого символа строки }
            Delete(St,1,1)              { Удаление первого символа из строки }
          end
      end;
    WriteLn                             { Оформление конца выведенной строки }
  End;
BEGIN
  WriteLn;                              { Пропуск строки }
  WriteLn('Введите текст ');            { Вывод приглашения ввести текст }
  for i:=1 to StringQuantity do ReadLn(Text[i]);     { Цикл ввода текста }
  WriteLn;                                           { Пропуск строки }
  for i:=1 to StringQuantity do WriteString(Text[i]) { Цикл вывода текста }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию