• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Обработка данных литерного типа

  • Автор темы Автор темы yulia90
  • Дата начала Дата начала

yulia90

Ученик
Регистрация
4 Апр 2011
Сообщения
5
Реакции
0
Баллы
0
Обработка данных литерного типа

Здраствуйте,если есть у кого время,помогите сделать задание)



Для произвольного текста вывести слова в порядке невозрастания их длин.

заранее спасибо)
 
1)
Для произвольного текста вывести слова в порядке невозрастания их длин
Это как? В порядке убывания, что ли?
2) Какой язык программирования нужно использовать?
 
Это как? В порядке убывания, что ли?
Нет, тут всё верно: означает, что совпадающие по длинам слова не рассматривать, как ошибку, а просто располагать одно за другим.
Вообще-то нудная такая задачка: нужно вычленить из строки все слова командой copy (либо, как я это иногда делаю, "выбрасыванием" во вспомогательный файл командой writeln, чтобы каждое слово было на своей строке, затем считыванием командой readln), образовать из этих слов массив их длин, каковой упорядочить методом пузырька.
Довольно много работы.
 
В Pascal'e,мальчики помогите)
 
В Pascal'e,мальчики помогите)
Да ладно, без проблем:
Код:
VAR
 S,Dummy:String;
 i,j,Nw,i1,i2:Byte;
 W:Array[1..128] of String;
BEGIN
 WriteLn('Enter the string:');
 ReadLn(S);
 i:=0;
 Nw:=0;
 Repeat
  Repeat
   Inc(i);
  Until S[i]<>' ';
  i1:=i;
  While (S[i]<>' ') and (i<Length(S)) do
   Inc(i);
  If i=Length(S) then i2:=i else i2:=i-1;
  Inc(Nw);
  W[Nw]:=Copy(S,i1,i2-i1+1);
 Until i=Length(S);

 For i:=1 to Nw-1 do
  For j:=1 to Nw-i do
   If Length(W[j])<Length(W[j+1]) then
    begin
     Dummy:=W[j];
     W[j]:=W[j+1];
     W[j+1]:=Dummy;
    end;

 For i:=1 to Nw-1 do Write(W[i]+' ');
 WriteLn(W[Nw]);

 ReadLn;
END.
 
Назад
Сверху