Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Как вы узнали о нашем сайте?

От друга, знакомого
Из печатных источников
Из поисковой машины
По ссылке с другого сайта
Случайно
Не знаю


Результаты
Другие опросы

Всего голосов: 1031
Комментарии: 4


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 7. Алгоритмы обработки символьной информации
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 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;
  For i := 1 to NWords-1 do {лексикографическое упорядочение слов}
    For j := i+1 to NWords do
      If Words[i]>Words[j] then
        begin
           Tmp := Words[i]; Words[i]:=Words[j]; Words[j]:=Tmp
        end;
  WriteLn;  WriteLn('О т в е т');
  WriteLn('Лексикографически упорядоченный массив слов:');
  For i := 1 to NWords do Write(Words[i], ' ');
  WriteLn; ReadLn
END.
 
QBasic
CLS : INPUT "Количество слов в тексте — ", NWords
DIM Words(NWords) AS STRING
FOR i = 1 TO NWords
  PRINT i; "-ое слово " ; : INPUT Words(i)
NEXT i
FOR i = 1 TO NWords - 1     'лексикографическое упорядочение слов
  FOR j = i + 1 TO NWords
    IF Words(i) > Words(j) THEN SWAP Words(i), Words(j)
  NEXT j
NEXT i
PRINT : PRINT "О т в е т"
PRINT "Лексикографически упорядоченный массив слов:"
FOR i = 1 TO NWords
  PRINT Words(i); " " ;
NEXT i
PRINT
END
 
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать