Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 90 стр.

UptoLike

Составители: 

WriteLn('Новый текст: ', Text);
ReadLn
END.
Пример 7.4. Заданную последовательность слов переупорядочить в алфавитном
порядке (то есть выполнить лексикографическое упорядочение).
Тест
Данные Результат
Words=(''стул'', ''гора'', ''яма'', ''стол'') Words=("гора", "стол", "стул", "яма")
Школьный АЯ (АЯ расширен добавлением типа данных лит таб и операций отношения
для литерных переменных)
алг Расположить по алфавиту(арг цел NWords, арг рез лит таб
Words[1:NWords])
надо | Таблица Words упорядочена лексикографически
нач цел i, j, лит Tmp
нц для i от 1 до NWords-1
нц для j от i+1 до NWords
если Words[i]>Words[j] | условие перестановки слов
то Tmp:=Words[i]; Words[i]:=Words[j]; Words[j]:=Tmp
все
кц
кц
кон
Исполнение алгоритма
i j Words[i]>Words[j] Массив Words
''стул'', ''гора'', ''яма'', ''стол''
1
2
3
4
+
-
-
''гора'', ''стул'', ''яма'', ''стол''
2
3
4
-
+
''гора'', ''стол'', ''яма'', ''стул''
3 4 + ''гора'', ''стол'' , ''стул'', ''яма''
Turbo Pascal
Program LexOrder;
Uses Crt;
Var Words : Array[1..10] of String; {массив слов}
Tmp : String; {Tmp — вспомогательная
переменная}
i, j, NWords : Integer; {NWords — количество слов}
BEGIN
ClrScr;
Write('Количество слов в тексте — ');
ReadLn(NWords);
For i := 1 to NWords do
begin Write(i, '-ое слово : ');
ReadLn(Words[i])
end;
  WriteLn('Новый текст: ', Text);
  ReadLn
END.


  Пример 7.4. Заданную последовательность слов переупорядочить в алфавитном
        порядке (то есть выполнить лексикографическое упорядочение).
                                     Тест
                     Данные                                            Результат
    Words=(''стул'', ''гора'', ''яма'', ''стол'')   Words=("гора", "стол", "стул", "яма")
Школьный АЯ (АЯ расширен добавлением типа данных лит таб и операций отношения
для литерных переменных)
алг Расположить по алфавиту(арг цел NWords, арг рез лит таб
Words[1:NWords])
  надо | Таблица Words упорядочена лексикографически
нач цел i, j, лит Tmp
  нц для i от 1 до NWords-1
     нц для j от i+1 до NWords
        если Words[i]>Words[j]             | условие перестановки слов
           то Tmp:=Words[i]; Words[i]:=Words[j]; Words[j]:=Tmp
        все
     кц
  кц
кон
                              Исполнение алгоритма
         i    j      Words[i]>Words[j]             Массив Words
                                                         ''стул'', ''гора'', ''яма'', ''стол''
                2                     +
         1      3                     -                  ''гора'', ''стул'', ''яма'', ''стол''
                4                     -
                3                     -
         2                                               ''гора'', ''стол'', ''яма'', ''стул''
                4                     +
         3      4                     +                 ''гора'', ''стол'' , ''стул'', ''яма''

Turbo Pascal
Program LexOrder;
  Uses Crt;
  Var Words           : Array[1..10] of String; {массив слов}
       Tmp            : String;       {Tmp — вспомогательная
переменная}
       i, j, NWords : Integer;        {NWords — количество слов}
BEGIN
  ClrScr;
  Write('Количество слов в тексте — ');
  ReadLn(NWords);
  For i := 1 to NWords do
     begin Write(i, '-ое слово : ');
             ReadLn(Words[i])
     end;