Упорядочить текст по длине слов - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

В файл записать некоторый текст, заканчивающийся знаком ";". Все слова текста упорядочить по количеству букв в порядке возрастания длины слов методом вставки.Вывести полученную последовательность слов. Для сравнения результатов обработки текста обязательно присутствие исходного текста на экране.Прошу помочь срочно
up срочно
up срочно
Up срочно
Помогите пожалуйста срочненько!!!

Решение задачи: «Упорядочить текст по длине слов»

textual
Листинг программы
const delim=' :,.;?!'+#9;
var
  a:array[1..128] of string;
  i,j,k:integer;
  s,t:string;
begin
  s:='Etu stroku nado otsortirovati po dlinne slov';
  {write('Enter string:');readln(s);}
  s:=s+' ';t:='';k:=0;
  for i:=1 to length(s) do
    if pos(s[i],delim)=0 then t:=t+s[i] else
      if t<>'' then begin
       k:=k+1;
       a[k]:=t;
       t:=''
      end;
  for i:=1 to k-1 do
    for j:=i+1 to k do
      if length(a[i])>length(a[j]) then begin
        t:=a[i];
        a[i]:=a[j];
        a[j]:=t;
      end;
 for i:=1 to k do writeln(a[i],'-',length(a[i]));
end.

Объяснение кода листинга программы

  1. В начале кода объявляются необходимые переменные: s, t и k. Переменная s инициализируется строкой Etu stroku nado otsortirovati po dlinne slov, а переменная t и k инициализируются пустыми строками.
  2. Затем происходит чтение строки из терминала в переменную s с помощью функции readln().
  3. Далее строка s преобразуется в массив строк a[1..128] с помощью оператора присваивания.
  4. Затем идет цикл for, который проходит по каждому символу в строке s. Если текущий символ является границей (то есть не является пробелом или другим символом новой строки), то он добавляется в строку t. Если строка t не пустая, то она сохраняется в массиве a с индексом k. Затем переменная t сбрасывается на пустую строку.
  5. После этого идет еще один цикл for, который проходит по всем индексам от 1 до k-1. Внутри этого цикла сравниваются длины строк a[i] и a[j]. Если длина строки a[i] больше длины строки a[j], то строка a[i] заменяется на строку a[j] и наоборот.
  6. В конце выводятся все строки массива a с помощью функции writeln(). Каждая строка выводится с разделителем - и ее длиной.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы