Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2014, 22:54   #1
Imamieva
Новичок
Джуниор
 
Регистрация: 16.06.2014
Сообщений: 2
По умолчанию Обработка символьных строк. Дан текст на русском языке.

Дан текст на русском языке. Записать в выходной файл слова в порядке возрастания длины слов.
Imamieva вне форума Ответить с цитированием
Старый 17.06.2014, 08:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

во-первых, задание Вы написали. и что дальше? Вы что, ничего делать по решению данной задачи не собираетесь? Тогда Вам во фриланс лучше обратиться!

во-вторых, примеров разбора строки на отдельные слова на форуме было множество. Берите любой алгоритм и - вперёд!!

в-третьих, алгоритм решения задачи может быть таким:
- прочитали текст (в строковую переменную например).
- Разобрали текст на отдельные слова (распарсили строку) и слова записали в массив.
- отсортировали массив (любым способом, хоть методом "пузырька"/простых обменов)
- вывели массив в выходной файл.
профит!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2014, 14:03   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,602
По умолчанию

Код:
uses
  crt;
const
  limits = [#0..#32,'.',',',':',';','!','?','"'];
  MaxWords = 100;
  MaxLimitWords =1000000;
type
  TWords = array[1..MaxWords] of string[80];
  AllWords = array[1..MaxLimitWords] of string[80];
var
  text : string[80];
  words : TWords;
  mywords:allwords;
  f,g : textfile;
  nwords:word;
  i,count:dword;

{ (C) Serge_Bliznykov }
procedure SortArray(var Arr : allwords; SizeN : dword);
var
  i, j : dword;
  tmp : string;
begin
  for i:=1 to SizeN-1 do
   for j:=i+1 to SizeN do
    if Length(Arr[i])>Length(Arr[j]) then
     begin
      tmp:=Arr[i];
      Arr[i]:=Arr[j];
      Arr[j]:=tmp;
     end;
end;

{ (С) klem4 }
function GetWords(s : string; var w : TWords) : Word;
var
  i,back,n : word;
begin
  i := 1;
  n := 0;
  while(i<=length(s)) do
    begin
      while(i<=length(s)) and (s[i] in limits) do
        inc(i);
      if i<=length(s) then
        begin
          back := i;
          while(i<=length(s)) and not(s[i] in limits) do
            inc(i);
         inc(n);
         w[n] := copy(s, back, i-back);
       end;
    end;
  GetWords := n;
end;

begin
  clrscr;
  assignfile(f,'input.txt');
  assignfile(g,'output.txt');
  reset(f);
  count:=0;
  while not eof(f) do
    begin
      readln(f,text);
      writeln(text);
      nwords:=getwords(text,words);
      for i:=1 to nwords do
        mywords[i+count]:=words[i];
      count:=count+nwords;
    end;
  closefile(f);
  rewrite(g);
  sortarray(mywords,count);
  for i:=1 to count do
    write(g,mywords[i],' ');
  closefile(g);
  readln;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст на русском языке. Напечатать в алфавитном порядке все согласные буквы, которые не повторяются в данном предложении. Olzhakesh C# (си шарп) 5 12.05.2014 00:28
Дан файл, содержащий текст на русском языке. Выяснить входит ли данное слово в указанный текст,и если да, то сколько раз. NataliaShipaeva Помощь студентам 2 28.05.2013 18:07
[c++]Дан файл, содержащий текст на русском языке. Составить в алфавитном порядке список всех слов, встречающихся в этом тексте. Jlovenpk1 Помощь студентам 0 25.01.2013 03:16
Дан файл, содержащий текст на русском языке. Figushkin Помощь студентам 1 10.06.2010 16:20
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05