Помощь - Поиск - Пользователи - Календарь
Полная версия: Выравнивание строки текста добавлением пробелов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
massjanja
Помогите люди добрые решить задачу:
Группы символов, разделенные пробелами и не содержащие пробелов внутри себя, будем называть словами. Выравнивание строки заключается в том, что между ее отдельными словами дополнительно вносятся пробелы так, чтобы длина строки стала равной заданной длине (предполагается, что требуемая длина не меньше исходной), а последнее слово строки сдвинулось к ее правому краю. Составить программу выравнивания заданной строки текста.

Я очень жду ваших ответов!!!! :molitva: :molitva: :molitva:
volvo
Цитата(massjanja @ 14.03.05 21:20)
Я очень жду ваших ответов!!!! :molitva:  :molitva:  :molitva:

Нет уж, это мы ждем вопросов, что именно не получается. Не может же быть, что совсем ничего... blink.gif
Altair
http://forum.pascal.net.ru/index.php?showt...indpost&p=16412

вот там я такое решал.
Студентка-комсомолка, а ты в каком городе живешь? может познакомимся? ты не против? smile.gif)
massjanja
Моя прога ставит пробелы между первам и вторым словом, а дальше никак!

Добавлено:
Кстати у меня не файл, а просто строка текста.
volvo
Цитата(massjanja @ 14.03.05 22:40)
Кстати у меня не файл, а просто строка текста.

Ну, если просто строка, то я думаю вот так подойдет?
Код
const
 maxLen = 50;
 s: string = 'start start start start start start';

var
 ix: byte;

begin
 writeln('before:')
 writeln(s);
 ix := 1;
 repeat
   while (ix <= length(s)) and
         (s[ix] <> ' ') do inc(ix);
   if ix < length(s) then
     begin
       insert(' ', s, ix);
       while (ix <= length(s)) and
             (s[ix] = ' ') do inc(ix);
       if ix = length(s) then ix := 1
     end
   else
     ix := 1

 until length(s) >= maxlen;

 writeln('after:');
 writeln(s)
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.