par - Онлайн у хмарі

Це командний параметр, який можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних онлайн-робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн емулятор Windows або онлайн емулятор MAC OS

ПРОГРАМА:

ІМ'Я


par - фільтр для переформатування абзаців

СИНТАКСИС


номінальний [ допомога ] [ версія ] [ Bзасмучений ] [ Pзасмучений ] [ Qзасмучений ] [ h[вішати] ] [ p[префікс] ]
[ r[повторювати] ] [ s[Суфікс] ] [ T[таб] ] [ w[ширина] ] [ b[тіло] ] [ c[кришка] ] [ d[DIV] ]
[ E[Помилка] ] [ e[вигнати] ] [ f[відповідати] ] [ g[здогадуватися] ] [ j[просто] ] [ l[останній] ] [ q[цитувати] ]
[ R[доповідь] ] [ t[торкатися] ]

ОПИС


номінальний є фільтром, який копіює вхідні дані на вихідні, змінюючи всі білі символи
(крім нового рядка) до пробілів і переформатування кожного абзацу. Абзаци відокремлюються
захищені, порожні та безтільні рядки (визначення див. у розділі ТЕРМІНОЛОГІЯ), а також
за бажанням, розділені відступом (див d опцію в розділі ОПЦІЇ).

Кожен вихідний абзац генерується з відповідного вхідного абзацу наступним чином:

1) Додатковий префікс та/або суфікс видаляється з кожного рядка введення.

2) Залишок поділено на слова (відокремлені пробілами).

3) Слова об’єднуються в рядки, щоб утворився приємний оку абзац.

4) Префікси та суфікси приєднуються.

Якщо є суфікси, перед ними вставляються пробіли, щоб усі вони закінчувалися однаково
.

QUICK Почати гру


номінальний є обов'язково складним. Для тих, хто бажає використати його негайно і зрозуміти
пізніше призначте ПАРИНІТ змінна середовища має таке значення:

rTbgqR B=.,?_A_a Q=_s>|

Пробіли, знак питання, знак "більше" і вертикальна смуга, ймовірно, повинні бути
escape або цитовані, щоб ваша оболонка не могла їх інтерпретувати.

Документація, хоча й точна, на жаль, написана погано для кінцевого користувача.
Найкраще, мабуть, швидко прочитати ОПИС, ТЕРМІНОЛОГІЮ, ВАРИАНТИ та
розділи СЕРЕДОВИЩЕ, потім уважно прочитайте розділ ПРИКЛАДИ, повертаючись до
розділи OPTIONS і TERMINOLOGY за потребою.

Для «досвідченого користувача», повне розуміння номінальний вимагатиме багаторазового читання
Розділи ТЕРМІНОЛОГІЯ, ОПЦІЇ, ДЕТАЛІ та ПРИКЛАДИ.

ТЕРМІНОЛОГІЯ


Різні терміни:

синтаксис набору символів
Спосіб представлення набору символів у вигляді рядка. У комплект входить
саме ті символи, які з'являються в рядку, за винятком того, що
символ підкреслення (_) є екрануючим символом. Щоразу, коли вона з’являється, її треба починати
одна з наступних escape-послідовностей:

__ = підкреслення

_s = пробіл

_b = зворотна коса риса (\)

_q = одинарні лапки (')

_Q = подвійні лапки (")

_A = всі великі літери

_a = всі малі літери

_0 = всі десяткові цифри

_xhh = символ, представлений двома шістнадцятковими цифрами hh (котрий
може бути верхнім або нижнім регістром)

Символ NUL не повинен з'являтися в рядку, але він може бути включений
набір із послідовністю _x00.

помилка Умова, яка викликає номінальний перервати. Дивіться розділ ДІАГНОСТИКА.

IP Input абзац.

OP Вихідний абзац.

параметр
Символ, який може приймати цілі беззнакові значення. Є декілька
параметри, значення яких впливають на поведінку номінальний. Параметри можуть бути
призначені значення за допомогою параметрів командного рядка.

Типи персонажів:

буквено-цифровий символ
Літера верхнього, нижнього регістру або десяткова цифра.

характер тіла
Член набору символів, визначеного ПАРБОДІ навколишнє середовище
змінної (див. розділ СЕРЕДОВИЩЕ) та/або B варіант (див. ОПЦІЇ
розділ)

захисний характер
Член набору символів, визначеного PARPROTECT навколишнє середовище
змінна та/або P варіант.

символ цитати
Член набору символів, визначеного ПАРКОТ навколишнє середовище
змінна та/або Q варіант.

термінальний символ
Крапка, знак питання, знак оклику або двокрапка.

білий характер
Пробіл, подача форми, новий рядок, повернення каретки, табуляція або вертикальна вкладка.

Функції:

comprelen
Задано непорожню послідовність S рядків, нехай c бути їхнім найдовшим загальним префіксом.
Якщо параметр тіло дорівнює 0, розмістіть роздільник відразу після провідного нетіла
символи в c (на початку, якщо їх немає). Якщо тіло є 1, місце
роздільник одразу після останнього непробілу нетільного символу c (біля
починаючи, якщо такого немає), а потім переміщуйте роздільник на будь-який одразу
наступні простори. Comprelen of S - кількість символів перед
роздільник.

комсуфлен
Задано непорожню послідовність S рядків, нехай p бути компонентом S. Дозволяє T
бути набір рядків, які є результатом видалення першого p символи з
кожен рядок S. Дозволяє c бути найдовшим загальним суфіксом рядків у T. Якщо
тіло дорівнює 0, розмістіть роздільник безпосередньо перед кінцевими нетілесними символами c
(в кінці, якщо їх немає), потім перемістіть роздільник на всі, крім
останній із пробілів, що йдуть безпосередньо за ними. Якщо тіло дорівнює 1, розмістіть роздільник
безпосередньо перед першим непробілом нетілесним символом, а потім створіть резервну копію роздільника
над одним пробілом, що безпосередньо передує, якщо він є. Комуфлен з S is
кількість символів, що слідують за роздільником.

запасний прелен (суфлен)
Резервним преленом (suflen) IP є: comprelen (comsuflen) для
IP, якщо IP містить принаймні два рядки; інакше, comprelen
(comsuflen) блоку, що містить IP, якщо блок містить принаймні
дві лінії; в іншому випадку довжина довша з префіксів (суфіксів).
безтілесні лінії трохи вище та під блоком, якщо сегмент містить
блок має будь-які безтілесні лінії; інакше 0. (Див. нижче для
визначення блоку, сегмента та безтілесної лінії.)

доповнений запасний прелен
Дозволяти fp бути резервним преленом IP. Якщо IP містить більше одного
рядок, або якщо цитувати дорівнює 0, тоді розширений резервний прелен IP-адреси дорівнює
просто fp. В іншому випадку це так fp плюс кількість символів лапки
відразу за першим fp символи рядка.

префікс лапок
Префікс лапок рядка — це найдовший рядок символів лапок
з’являється на початку рядка після того, як цей рядок було видалено
будь-яких кінцевих пробілів.

Типи ліній:

порожній рядок
Порожній рядок або рядок, перший символ якого не є захисним
містить лише пробіли.

захищена лінія
Рядок введення, перший символ якого є захисним.

безтілесна лінія
Лінія, яка є порядком k для деяких безтілесний k.

порядок k безтілесна лінія
Не існує такого поняття, як безтілесна лінія порядку 0. Припустимо S є aa
безперервна підпослідовність відрізка (див. нижче), що містить принаймні два
рядків, які не містять порядку k-1 безтілесні лінії, обмежені зверху і знизу
порядок k-1 безтілесна лінія та/або початок/кінець сегмента. Дозволяє p та
s бути comprelen і comsuflen of S. Будь-який учасник S які, якщо роздягнути
свого першого p і остання s символів буде порожнім (або, якщо параметр
повторювати відмінний від нуля, буде складатися з того самого символу, що повторюється принаймні
повторювати разів), це порядок k безтілесний. Перший p персонажі безтілесних
рядок містить його префікс; останній s символи складають його суфікс. The
символ, який повторюється в середині, називається його повторюваним символом. Якщо
середина порожня, пробіл береться за символ повторення.

вакантна лінія
Безтілесний рядок, символом повторення якого є пробіл.

зайвий рядок
Зайвими можуть бути лише порожні та вільні рядки. Якщо суміжні вільні лінії
лежать на початку або в кінці відрізка, всі вони зайві. Але якщо
вони лежать між двома невільними лініями в межах сегмента, тоді всі є
зайвий, крім одного — того, що містить найменшу кількість непробілів. в
у разі нічиї вибирається перша із зав’язаних ліній. Аналогічно, якщо
суміжні порожні рядки лежать за межами будь-яких сегментів на початку або в кінці
вхідних даних, вони всі зайві. Але якщо вони лежать між двома
сегменти та/або захищені лінії, то всі зайві, крім першої.

Групи ліній:

сегмент
Безперервна послідовність вхідних рядків, що не містить захищених або порожніх рядків,
обмежені зверху та знизу захищеними рядками, пустими рядками та/або
початок/кінець введення.

block Суцільна підпослідовність сегмента, що не містить безтілесних ліній, обмежена
зверху та знизу безтілесними лініями та/або початком/кінцем відрізка.

Типи слів:

слово з великої літери
Якщо параметр кришка дорівнює 0, слово з великої літери – це слово, яке містить принаймні
один буквено-цифровий символ, перший буквено-цифровий символ якого не є a
мала літера. Якщо кришка дорівнює 1, кожне слово вважається написаним з великої літери
слово. (Див c опцію в розділі OPTIONS.)

цікаве слово
Слово, яке містить кінцевий символ c такі, що їх немає
буквено-цифрові символи в слові після c, але є принаймні один
буквено-цифровий символ у передньому слові c.

ВАРІАНТИ


Будь-який аргумент командного рядка може починатися з одного знака мінус (-), який ігнорується. загалом,
в одному аргументі командного рядка може з’являтися більше ніж одна опція, але є
винятки: допомога, версія, B, P та Q Варіанти повинні мати цілі аргументи
самі

допомога Спричиняє ігнорування всіх інших аргументів. Жоден вхід не читається. Використання
повідомлення друкується на виході з коротким описом параметрів, які використовує номінальний.

версія Спричиняє ігнорування всіх інших аргументів. Жоден вхід не читається. "параграф 1.52" є
надруковано на виході. Звичайно, це зміниться в майбутніх випусках Par.

Bзасмучений op це один символ, або знак рівності (=), знак плюс (+) або мінус
знак (-), і комплект це рядок із синтаксисом набору символів. Якщо op є знаком рівності,
набір основних символів встановлюється на набір символів, визначений комплект. Якщо op це
знак плюс/мінус, символи в наборі визначені комплект додаються/вилучаються
до/з існуючого набору основних символів, визначених за допомогою ПАРБОДІ навколишнє середовище
змінна та будь-які попередні варіанти B. Можна додати символи, які є
вже в наборі або для видалення символів, яких немає в наборі.

Pзасмучений Так само, як B варіант, за винятком того, що це стосується набору захисних
символів.

Qзасмучений Так само, як B параметр, за винятком того, що він застосовується до набору символів лапок.

Усі інші параметри використовуються для встановлення значень параметрів. Значення, встановлені командним рядком
параметри зберігаються для всіх абзаців. Невстановленим параметрам надаються значення за замовчуванням. Будь-який
параметри, значення за замовчуванням яких залежать від IP (а саме префікс та Суфікс), якщо залишити
не встановлені, перераховуються окремо для кожного абзацу.

Тут описано приблизну роль кожної змінної. Дивіться розділ ДЕТАЛІ
решта історії.

Перші шість параметрів, вішати, префікс, повторювати, Суфікс, таб та ширина, можна встановити будь-який
десяткове ціле без знака менше 10000.

h[вішати] В основному впливає на значення за замовчуванням префікс та Суфікс. За замовчуванням 0. Якщо
h параметр дається без числа, значення 1 виводиться. (Див. також p
та s варіанти.)

p[префікс] Перший префікс символи кожного рядка ОП копіюються з першого
префікс символів відповідного рядка IP. Якщо їх більше ніж
вішати+1 рядки в IP-адресі, значення за замовчуванням — це сукупність усіх рядків у
IP, крім першого вішати їх. В іншому випадку значенням за замовчуванням є
розширений резервний прелен IP. Якщо p варіант дається без номера,
префікс не встановлено, навіть якщо його було встановлено раніше. (Див. також h та q
варіанти.)

r[повторювати] Якщо повторювати відмінний від нуля, безтілесні лінії мають кількість їх екземплярів
повторення символів збільшується або зменшується, поки довжина рядка не стане ширина.
Точне значення повторювати впливає на визначення безтілесної лінії. За замовчуванням
0. Якщо r Опція дається без числа, виводиться значення 3. (Побачити
також w варіант.)

s[Суфікс] Останній Суфікс символи кожного рядка ОП копіюються з останнього
Суфікс символів відповідного рядка IP. Якщо їх більше ніж
вішати+1 рядки в IP, значення за замовчуванням - це comsuflen всіх рядків
IP, крім першого вішати їх. В іншому випадку значенням за замовчуванням є
резервний суфлен IP. Якщо s варіант дається без номера, Суфікс is
не налаштовано, навіть якщо воно було встановлено раніше. (Див. також h варіант.)

T[таб] Символи табуляції у вводі розгортаються до пробілів, припускаючи кожну зупинку табуляції таб
колонки. Не має бути 0. За замовчуванням 1. Якщо T варіант дається без a
число, виводиться значення 8.

w[ширина] Жоден рядок в ОП не може містити більше ніж ширина символів, не включаючи
кінцеві нові рядки. За замовчуванням 72. Якщо w варіант дається без номера,
виводиться значення 79.

Решта тринадцять параметрів, тіло, кришка, DIV, Помилка, вигнати, відповідати, здогадуватися, invis, просто,
останній, цитувати, доповідь та торкатися, можна встановити як 0, так і 1. Якщо число відсутнє в
опціон, значення 1 виводиться.

b[тіло] Якщо тіло дорівнює 1, префікси не можуть містити жодних символів кінця тіла, і
суфікси не можуть містити провідних символів. (Насправді, ситуація
ускладнюється пробілами. Дивіться comprelen і comsuflen в
Розділ термінології.) Якщо тіло дорівнює 0, префікси та суфікси не можуть містити жодних
характери тіла взагалі. За замовчуванням 0.

c[кришка] Якщо кришка дорівнює 1, усі слова вважаються написаними з великої літери. Наразі це стосується лише
застосування g варіант. За замовчуванням 0.

d[DIV] Якщо DIV дорівнює 0, кожен блок стає IP. Якщо DIV дорівнює 1, кожен блок розділений
в IP-адреси таким чином: Нехай p бути компонентом блоку. Нехай стан лінії
бути 1, якщо його (p+1)-й символ є пробілом, інакше 0. Кожен рядок у блоці
статус якого збігається зі статусом першого рядка, почнеться новий
параграф. За замовчуванням 0.

E[Помилка] Якщо Помилка дорівнює 1, повідомлення користувачеві (викликані допомога та версія варіанти, або за
помилки) надсилаються в потік помилок замість вихідного потоку. За замовчуванням
0.

e[вигнати] Якщо вигнати дорівнює 1, зайві рядки вилучаються з виводу. За замовчуванням 0.

f[відповідати] Якщо відповідати становить 1 та просто становить 0, номінальний намагається зробити рядки в ОП як майже
такої ж довжини, наскільки це можливо, навіть якщо це означає звуження ОП. За замовчуванням
0. (Див. також j варіант.)

g[здогадуватися] Якщо здогадуватися дорівнює 1, тоді коли номінальний вибирає розриви рядків, коли він зустрічає a
цікавого слова, за яким слідує слово з великої літери, потрібно одне з двох спеціальних
дії. Якщо два слова розділені одним пробілом у вхідних даних, вони
буде об’єднано в одне слово з вбудованим нерозривним пробілом. Якщо двоє
слова розділені більш ніж одним пробілом або розривом рядка, номінальний буде страхувати
що вони розділені двома пробілами або розривом рядка у виводі.
За замовчуванням 0.

i[invis] Якщо invis дорівнює 1, то вільні рядки вставлено, тому що цитувати є 1 невидимі; що
тобто вони не виводяться. Якщо цитувати становить 0, invis не має ефекту. За замовчуванням 0.
(Див. також q варіант.)

j[просто] Якщо просто становить 1, номінальний виправдовує ОП, вставляючи пробіли між словами, щоб усі
рядки в ОП мають довжину ширина (крім останнього, якщо останній дорівнює 0). За замовчуванням
0. (Див. також w, l та f варіанти.)

l[останній] Якщо останній становить 1, номінальний намагається зробити останній рядок ОП приблизно такої ж довжини, як
інші. За замовчуванням 0.

q[цитувати] Якщо цитувати дорівнює 1, то перед скануванням кожного сегмента на предмет безтілесних ліній, номінальний
постачає вільні рядки між різними рівнями вкладення пропозицій наступним чином:
Для кожної пари суміжних рядків у сегменті (відскановано зверху вниз)
які мають різні префікси лапок, виконується одна з двох дій. Якщо invis становить 0,
і будь-який рядок повністю складається з лапок і пробілів (або порожній),
цей рядок обрізається до найдовшого спільного префікса з двох рядків (обидва є
скорочено, якщо обидва відповідають вимогам). В іншому випадку рядок, що складається з найдовшого загального
між ними вставляється префікс двох рядків. цитувати також впливає на
значення за замовчуванням префікс. За замовчуванням 0. (Див. також p та i варіанти.)

R[доповідь] Якщо доповідь дорівнює 1, вважається помилкою, якщо вхідне слово містить більше ніж
L = (ширина - префікс - Суфікс) символи. Інакше такі слова рубаються
після кожного Lй символ у коротші слова. За замовчуванням 0.

t[торкатися] Не впливає, якщо Суфікс дорівнює 0 або просто є 1. Інакше, якщо торкатися дорівнює 0, усі рядки
в ОП мають довжину ширина. Якщо торкатися дорівнює 1, довжина рядків дорівнює
зменшувався до тих пір, поки суфікси не торкнулися тіла ОП. За замовчуванням логічне
АБО відповідати та останній. (Див. також s, j, w, f та l варіанти.)

Якщо аргумент починається з числа, вважається, що це число належить до a p варіант, якщо є
становить 8 або менше, а до a w варіант інакше.

Якщо значення будь-якого параметра встановлено більше одного разу, використовується останнє значення. Коли вимкнено
параметрам присвоюються значення за замовчуванням, вішати та цитувати призначаються раніше префікс та відповідати
та останній призначаються раніше торкатися (через залежності).

Це помилка, якщо ширина <= префікс + Суфікс.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ


ПАРБОДІ Визначає початковий набір символів тіла (які використовуються для визначення
comprelens і comsuflens), використовуючи синтаксис кодування. Якщо ПАРБОДІ не встановлено,
набір основних символів спочатку порожній.

ПАРИНІТ Якщо встановлено, номінальний читатиме параметри командного рядка ПАРИНІТ перед тим, як воно їх прочитає
з командного рядка. У межах вартості ПАРИНІТ, аргументи розділені за допомогою
білі символи.

PARPROTECT
Визначає набір захисних символів, використовуючи синтаксис набору символів. Якщо
PARPROTECT не встановлено, набір захисних символів спочатку порожній.

ПАРКОТ Визначає набір символів лапок, використовуючи синтаксис набору символів. Якщо ПАРКОТ is
не встановлено, набір символів лапок спочатку містить лише більше ніж
знак (>) і пробіл.

Якщо у значенні змінної середовища з’являється символ NUL, він і решта
рядок не буде видно номінальний.

Зауважте, що ПАРИНІТ змінна разом з B, P та Q варіанти, надає інше
змінні середовища непотрібні. Вони включені для зворотної сумісності.

ПОДРОБИЦІ


Рядки закінчуються символами нового рядка, але символами нового рядка не вважаються
включені в рядки. Якщо останній символ введення не є символом нового рядка, новий рядок
буде виведено відразу після нього (але якщо введення порожнє, новий рядок не буде
висновок; кількість вхідних рядків буде 0). Таким чином, вхід завжди можна розглядати як a
послідовність рядків.

Захищені рядки копіюються без змін з входу на вихід. Усі інші вхідні рядки,
під час їх читання видаляйте будь-які символи NUL і кожен білий символ (крім
новий рядок) перетворився на пробіл. Фактично, кожен символ табуляції перетворюється на таб - (n %
таб) пробіли, де n – кількість символів, що передують символу табуляції в рядку
(оцінюється після того, як попередні символи табуляції були розгорнуті).

Порожні рядки на вході перетворюються на порожні рядки на виході.

If повторювати дорівнює 0, усі безтілесні лінії вакантні, і всі вони просто позбавлені
кінцеві пробіли перед виведенням. Якщо повторювати не дорівнює 0, лише вільні рядки, суфікси яких
мають довжину 0, розглядаються таким чином; інші безтілесні лінії мають кількість екземплярів
їх повторювані символи збільшуються або зменшуються, поки довжина рядка не буде ширина.

If вигнати дорівнює 1, зайві рядки не виводяться. Якщо цитувати та invis обидва 1, може
бути невидимими лініями; вони не виводяться.

Вхід розбивається на сегменти, які розбиваються на блоки, на які поділяються
IP-адреси. Точний процес залежить від значень цитувати та DIV (Див. q та d у ПАРАМЕТРах
розділ). Решта цього розділу описує процес, який застосовується
незалежно кожному IP для створення відповідної ОП.

Після визначення значень параметрів (див. розділ ОПЦІЇ) перше
префікс персонажів і останнього Суфікс символи кожного рядка введення видаляються і
запам'ятався. Якщо рядок містить менше ніж, це помилка префікс + Суфікс символів.

Решта тексту розглядається як послідовність символів, а не рядків. Текст зламаний
на слова, розділені пробілами. Тобто слово є максимальною підпослідовністю
непробіли. Якщо здогадуватися дорівнює 1, деякі слова можуть бути об’єднані (див g в розділі ОПЦІЇ).
Перше слово включає будь-які пробіли, які передують йому в тому ж рядку.

Дозволяти L = ширина - префікс - Суфікс.

If доповідь дорівнює 0, деякі слова можуть бути розрізані в цей момент (див R у ПАРАМЕТРах
розділ)

Слова знову збираються, зберігаючи порядок, у рядки. Якщо просто дорівнює 0, сусідній
слова в рядку розділяються одним пробілом (а іноді двома if здогадуватися дорівнює 1), і
розриви рядків вибираються таким чином, щоб абзац задовольняв наступним властивостям:

1) Жоден рядок не містить більше ніж L символів.

2) Якщо відповідати дорівнює 1, різниця між довжинами найкоротшого та найдовшого
рядки якомога менші.

3) Найкоротша лінія максимально довша, з урахуванням властивостей 1 і 2.

4) Нехай мета be L if відповідати дорівнює 0, або довжина найдовшого рядка, якщо відповідати є 1. The
сума квадратів різниць між мета і довжини
рядки якомога менші, з урахуванням властивостей 1, 2 і 3.

If останній дорівнює 0, останній рядок не вважається рядком для цілей властивостей
2, 3 і 4 вище.

Якщо всі слова поміщаються в одному рядку, властивості, сформульовані вище, не мають великого значення
сенсу. У цьому випадку розриви рядків не вставляються.

If просто дорівнює 1, сусідні слова в рядку відокремлюються одним пробілом (а іноді двома if
здогадуватися дорівнює 1) плюс нуль або більше додаткових пробілів. Значення відповідати ігнорується, а рядок
розриви вибираються таким чином, щоб абзац задовольняв наступним властивостям:

1) Кожен рядок містить точно L символів.

2) Найбільший міжслівний проміжок якомога менший, з урахуванням властивості 1. (Ан
проміжок між словами складається лише із зайвих пробілів, а не із звичайних пробілів.)

3) Сума квадратів довжин міжслівних проміжків дорівнює як
можливо, з урахуванням властивостей 1 і 2.

If останній дорівнює 0, останній рядок не вважається рядком для цілей властивості 1,
і він не вимагає і не містить жодних додаткових пробілів.

Зайві пробіли розподіляються якомога рівномірніше між проміжками між словами в
кожен рядок.

У вирівняному абзаці кожен рядок має містити щонайменше два слова, але це не так
завжди можливо виконати. Якщо абзац не може бути обґрунтованим, це так
вважали помилкою.

Якщо кількість рядків в результуючому абзаці менше ніж вішати, додаються порожні рядки
в кінці, щоб збільшити кількість рядків до вішати.

If просто становить 0 та торкатися становить 1, L змінюється на довжину найдовшої лінії.

If Суфікс не дорівнює 0, кожен рядок доповнюється в кінці пробілами, щоб збільшити його довжину
L.

До кожного рядка стоїть перед префікс символів. Дозволяє n - кількість рядків в IP, нехай
пфпі бути розширеним запасним преленом IP, і нехай fs бути запасним суфленом
IP. Символи, які стоять перед iий рядок вибирається таким чином:

1) Якщо i <= n, символи копіюються з тих, які були видалені з
початок nй рядок введення.

2) Якщо i > n > вішати, символи копіюються з тих, які були видалені з
початок останнього рядка введення.

3) Якщо i > n та n <= вішати, перша хвилина(пфпі,префікс) символів скопійовано з
ті, які були вилучені з початку останнього рядка введення, а решта
це всі простори.

Потім до кожного рядка додається Суфікс символів. Символи, які додаються до
iий рядок вибирається таким чином:

1) Якщо i <= n, символи копіюються з тих, які були вилучені з кінця
в nй рядок введення.

2) Якщо i > n > вішати, символи копіюються з тих, які були видалені з
кінець останнього рядка введення.

3) Якщо i > n та n <= вішати, перша хвилина(fs,Суфікс) символів скопійовано з
ті, які були вилучені з початку останнього рядка введення, а решта
це всі простори.

Нарешті, рядки виводяться на вихід як OP.

ДІАГНОСТИКА


Якщо немає помилок, номінальний Умови повернення EXIT_SUCCESS (Див. ).

Якщо є помилка, на виводі буде надруковано повідомлення про помилку, і номінальний повернеться
EXIT_FAILURE. Якщо помилка локальна для одного абзацу, попередні параграфи будуть
були виведені до виявлення помилки. Номери рядків у повідомленнях про помилки є локальними
на IP-адресу, на якій сталася помилка. Усі повідомлення про помилки починаються з "par error:" на a
лінія сама по собі. Повідомлення про помилки, що стосуються командного рядка або синтаксису змінної середовища
супроводжується тим самим повідомленням про використання, яке створює параметр довідки.

Хіба що варіант E встановлено, спроба надрукувати повідомлення про помилку буде марною, якщо виникне помилка
є результатом вихідної функції, от номінальний не турбує перевірку помилок на виводі
функції якщо E є 0.

ПРИКЛАДИ


Перевага в номінальнийАлгоритм динамічного програмування 's над жадібним алгоритмом (наприклад
той, яким користується fmt) можна побачити на наступному прикладі:

Оригінальний абзац (зверніть увагу, що кожен рядок починається з 8 пробілів):

Ми, народ Сполучених Штатів,
щоб утворити більш досконалий союз,
встановити справедливість,
забезпечити домашній спокій,
забезпечити спільну оборону,
сприяти загальному добробуту,
і отримати благословення свободи
собі і нащадкам,
вирішувати та встановлювати Конституцію
Сполучених Штатів Америки.

Після жадібного алгоритму з шириною = 39:

Ми, народ Сполучених
держав, щоб утворити більш
ідеальний союз, установ
справедливості, страхування внутр
спокій, забезпечувати
спільної оборони, сприяння
загального добробуту та забезпечення
благословення свободи до
ми і наші нащадки, робимо
висвячувати та встановлювати
Конституція Об'єднаних
штати Америки.

після "номінальний 39":

Ми, народ Сполучених
держави, щоб сформувати a
більш досконалий союз, установ
справедливості, страхування внутр
спокій, забезпечувати
спільної оборони, сприяння
загальний добробут і безпека
благословення свободи до
нас самих і наших нащадків,
висвятити та встановити
Конституція Об'єднаних
штати Америки.

Рядок розривається, вибраний номінальний явно приємніші для очей.

номінальний є найбільш корисним у поєднанні з функціями фільтрації тексту редактора, такими як
! команди vi. Ви можете додати наступні рядки до свого .exrc Файл:

" використовуйте оболонку Борна для швидкості:
встановити shell=/ Бен / ш
"
" переформатувати абзац без аргументів:
карта ** {!}par^M}
"
" переформатувати абзац з аргументами:
карта *^V {!}пар

Зауважте, що провідні пробіли потрібно видалити, а те, що показано як ^M і ^V, насправді
потрібно ctrl-M і ctrl-V. Також зауважте, що остання команда map містить два пробіли
після ctrl-V плюс один у кінці рядка.

Щоб переформатувати простий абзац, розділений порожніми рядками в vi, можна поставити курсор
будь-де в ньому та введіть "**" (зірочка). Якщо вам потрібно надати аргументи до номінального значення, ви можете
введіть "* " (пробіл), а потім введіть аргументи.

Решта цього розділу – це серія зображень до і після, які показують деякі типові
використання номінальний. У всіх випадках змінні середовища не встановлюються.

До:

/* Ми, народ Сполучених Штатів, */
/* щоб утворити більш досконалий союз, */
/* встановити справедливість, */
/* забезпечити домашній спокій, */
/* забезпечувати спільну оборону, */
/* сприяти загальному добробуту, */
/* і забезпечити благословення свободи */
/* собі та нащадкам, */
/* висвятити та встановити Конституцію */
/* Сполучених Штатів Америки. */

після "номінальний 59":

/* Ми, люди Сполучених Штатів, у */
/* щоб утворити більш досконалий союз, встановити */
/* справедливість, забезпечити домашній спокій, забезпечити */
/* для спільної оборони, сприяти генералу */
/* благополуччя та забезпечуй благословення свободи */
/* собі і нащадкам, посвяти */
/* і встановити Конституцію Об'єднаних */
/* Штати Америки. */

Або після "номінальний 59f":

/* Ми, народ Сполучених Штатів, */
/* щоб утворити більш досконалий союз, */
/* встановити справедливість, застрахувати домашнє */
/* спокій, забезпечити спільне */
/* захист, сприяння загальному добробуту, */
/* і забезпечити благословення свободи */
/* нас самих і наших нащадків висвятіть */
/* і встановити Конституцію */
/* Сполучені Штати Америки. */

Або після "номінальний 59l":

/* Ми, люди Сполучених Штатів, у */
/* щоб утворити більш досконалий союз, встановити */
/* справедливість, забезпечити домашній спокій, */
/* забезпечувати спільну оборону, сприяти */
/* загальний добробут і гарантувати */
/* благословення свободи для нас самих і наших */
/* нащадки, висвятіть і встановіть */
/* Конституція Сполучених Штатів Америки. */

Або після "номінальний 59lf":

/* Ми, народ Сполучених Штатів, */
/* щоб утворити більш досконалий союз, */
/* встановити справедливість, застрахувати домашнє */
/* спокій, забезпечити спільне */
/* захист, сприяння загальному добробуту, */
/* і забезпечити благословення свободи */
/* собі і нащадкам, зроби */
/* висвятити та встановити Конституцію */
/* Сполучених Штатів Америки. */

Або після "номінальний 59lft0":

/* Ми, народ Сполучених Штатів, */
/* щоб утворити більш досконалий союз, */
/* встановити справедливість, застрахувати домашнє */
/* спокій, забезпечити спільне */
/* захист, сприяння загальному добробуту, */
/* і забезпечити благословення свободи */
/* собі і нащадкам, зроби */
/* висвятити та встановити Конституцію */
/* Сполучених Штатів Америки. */

Або після "номінальний 59j":

/* Ми, люди Сполучених Штатів, у */
/* щоб утворити більш досконалий союз, встановити */
/* справедливість, забезпечити домашній спокій, забезпечити */
/* для спільної оборони, сприяти генералу */
/* благополуччя та забезпечуй благословення свободи */
/* собі і нащадкам, посвятіть і */
/* заснувати Конституцію Об'єднаних */
/* Штати Америки. */

Або після "номінальний 59jl":

/* Ми, народ Сполучених Штатів, */
/* щоб сформувати більш досконалий */
/* союз, встановити справедливість, застрахувати домашнє */
/* спокій, забезпечити спільну оборону, */
/* сприяння загальному добробуту та безпека */
/* благословення свободи для нас самих і */
/* наші нащадки, висвятіть і встановіть */
/* Конституція Сполучених Штатів Америки. */

До:

Преамбула Ми, народ Сполучених Штатів,
до США, щоб сформувати
Конституція більш досконалий союз,
встановити справедливість,
забезпечити домашній спокій,
забезпечити спільну оборону,
сприяти загальному добробуту,
і отримати благословення свободи
собі і нащадкам,
висвятити і встановити
Конституція
Сполучених Штатів Америки.

після "номінальний 52h3":

Преамбула Ми, народ Сполучених
до США, щоб сформувати a
Конституція більш досконалий союз, установ
справедливості, страхування внутр
спокій, забезпечувати
спільної оборони, сприяння
загальний добробут і безпека
благословення свободи до
нас самих і наших нащадків,
висвятити та встановити
Конституція Об'єднаних
штати Америки.

До:

1 Ми, люди Сполучених Штатів,
2, щоб утворити більш досконалий союз,
3 встановити справедливість,
4 забезпечити домашній спокій,
5 забезпечують спільну оборону,
6 сприяти загальному добробуту,
7 і отримати благословення свободи
8 собі і нащадкам,
9 вирішувати та встановлювати Конституцію
10 Сполучених Штатів Америки.

після "номінальний 59p12l":

1 Ми, народ Сполучених Штатів, щоб
2 утворити більш досконалий союз, встановити справедливість,
3 забезпечити домашній спокій, забезпечити
4 загальна оборона, сприяння загальному добробуту,
5 і забезпечити собі благословення свободи
6 і наші нащадки, висвятіть і встановіть
7 Конституція Сполучених Штатів Америки.

До:

> > Ми люди
> > Сполучених Штатів,
> > щоб утворити більш досконалий союз,
>> встановити справедливість,
>> забезпечити домашній спокій,
>> забезпечити спільну оборону,
>
> Сприяти загальному добробуту,
> і отримати благословення свободи
> собі та нащадкам,
> висвятити та встановити
> Конституція Сполучених Штатів Америки.

після "номінальний 52":

> > Ми, люди Сполучених Штатів, в
> > щоб утворити більш досконалий союз,
> > встановити справедливість, забезпечити внутрішнє
> > спокій, забезпечте спільне
> > оборона,
>
> Сприяти загальному добробуту та забезпеченню
> благословення свободи для нас самих і
> наші нащадки, висвятіть і встановіть
> Конституція Сполучених Штатів Російської Федерації
> Америка.

До:

> Ми люди
> Сполучених Штатів,
> щоб утворити більш досконалий союз,
> встановити справедливість,
> забезпечити домашній спокій,
> забезпечити спільну оборону,
> Сприяти загальному добробуту,
> і отримати благословення свободи
> собі та нащадкам,
> висвятити та встановити
> Конституція Сполучених Штатів Америки.

після "номінальний 52d":

> Ми, народ Сполучених Штатів,
> щоб утворити більш досконалий союз,
> встановити справедливість, забезпечити внутр
> спокій, забезпечити спільне
> оборона,
> Сприяти загальному добробуту та забезпеченню
> благословення свободи для нас самих і
> наші нащадки, висвятіть і встановіть
> Конституція Сполучених Штатів Російської Федерації
> Америка.

До:

№ 1. Ми, народ Сполучених Штатів.
# 2. Для того, щоб утворився більш досконалий союз.
№ 3. Встановити справедливість, забезпечити домашнє
#спокій.
№ 4. Забезпечте спільну оборону
№ 5. Сприяти загальному добробуту.
№ 6. І забезпечте благословення свободи
# собі та нащадкам.
№ 7. Висвятіть і встановіть Конституцію.
№ 8. Сполучених Штатів Америки.

після "номінальний 37p13dh":

№ 1. Ми люди Росії
# Сполучені Штати.
№ 2. Для того, щоб сформувати більше
# ідеальний союз.
№ 3. Встановіть справедливість,
# забезпечити внутр
#спокій.
№ 4. Забезпечити спільне
#захист
№ 5. Підвищуйте генерала
# добробут.
№ 6. І забезпечте благословення
# свободи для себе
# і наші нащадки.
№ 7. Посвятіть і встановіть
# Конституція.
№ 8. З Сполучених Штатів
# Америка.

До:

/*********************************************/
/* Ми, народ Сполучених Штатів, */
/* щоб утворити більш досконалий союз, */
/* встановити справедливість, застрахувати домашнє */
/* спокій, */
/ * * /
/ * * /
/* [ забезпечувати спільну оборону, ] */
/* [ сприяти загальному добробуту, ] */
/* [і забезпечити благословення свободи] */
/* [ собі та нащадкам, ] */
/* [ ] */
/ * * /
/* висвятити та встановити Конституцію */
/* Сполучених Штатів Америки. */
/*********************************************/

після "номінальний 42r":

/***********************************/
/* Ми, люди */
/* Сполучені Штати, щоб */
/* утворюють більш досконалий союз, */
/* встановити справедливість, застрахувати */
/* домашній спокій, */
/ * * /
/ * * /
/* [ передбачити загальне ] */
/* [ захист, просування ] */
/* [ загальний добробут і ] */
/* [ отримати благословення ] */
/* [свобода для себе] */
/* [ і наші нащадки, ] */
/* [ ] */
/ * * /
/* висвятити та встановити */
/* Конституція Сполучених Штатів */
/* Штати Америки. */
/***********************************/

Або після "номінальний 42re":

/***********************************/
/* Ми, люди */
/* Сполучені Штати, щоб */
/* утворюють більш досконалий союз, */
/* встановити справедливість, застрахувати */
/* домашній спокій, */
/ * * /
/* [ передбачити загальне ] */
/* [ захист, просування ] */
/* [ загальний добробут і ] */
/* [ отримати благословення ] */
/* [свобода для себе] */
/* [ і наші нащадки, ] */
/ * * /
/* висвятити та встановити */
/* Конституція Сполучених Штатів */
/* Штати Америки. */
/***********************************/

До:

Джо Паблік пише:
> Джейн Доу пише:
>>
>>
> > Я не можу знайти джерело для uncompress.
> О ні, не знову!!!
>
>
> Хіба немає відповіді на поширені запитання?
>
>
Це не дуже допомогло, Джо. Джейн,
просто створіть посилання від розпакування до стиснення.

після "номінальний 40q":

Джо Паблік пише:

> Джейн Доу пише:
>
>
> > Я не можу знайти джерело
> > розпакувати.
>
> О ні, не знову!!!
>
>
> Хіба немає відповіді на поширені запитання?
>

Це не дуже допомогло, Джо.
Джейн, просто створи посилання
розпакувати стиснути.

Або після "номінальний 40qe":

Джо Паблік пише:

> Джейн Доу пише:
>
> > Я не можу знайти джерело
> > розпакувати.
>
> О ні, не знову!!!
>
> Хіба немає відповіді на поширені запитання?

Це не дуже допомогло, Джо.
Джейн, просто створи посилання
розпакувати стиснути.

Або після "номінальний 40qi":

Джо Паблік пише:
> Джейн Доу пише:
>>
>>
> > Я не можу знайти джерело
> > розпакувати.
> О ні, не знову!!!
>
>
> Хіба немає відповіді на поширені запитання?
>
>
Це не дуже допомогло, Джо.
Джейн, просто створи посилання
розпакувати стиснути.

Або після "номінальний 40qie":

Джо Паблік пише:
> Джейн Доу пише:
> > Я не можу знайти джерело
> > розпакувати.
> О ні, не знову!!!
>
> Хіба немає відповіді на поширені запитання?
Це не дуже допомогло, Джо.
Джейн, просто створи посилання
розпакувати стиснути.

До:

Я сподіваюся, що ще є місце
у розділі археології доктора Джонса.
Я чув, що він найкращий. [sic]

після "номінальний 50g":

Я впевнений, що там ще є місце
Розділ археології доктора Джонса. я маю
чув, що він найкращий. [sic]

Або після "номінальний 50г":

Я впевнений, що там ще є місце
Розділ археології доктора Джонса. я маю
чув, що він найкращий. [sic]

До:

Джон пише:
: Марія пише:
: + Анастасія пише:
: + > Всім привіт!
: + Привіт Ана!
: Привіт, Ана та Мері!
Будь ласка, відпишіть мене на alt.hello.

після "номінальний Q+:+ q":

Джон пише:

: Марія пише:
:
: + Анастасія пише:
: +
: + > Всім привіт!
: +
: + Привіт Ана!
:
: Привіт, Ана та Мері!

Будь ласка, відпишіть мене на alt.hello.

До:

amc> Параметр b був доданий в першу чергу для роботи з ним
amc> цей новий стиль цитування
amc>, який став популярним після випуску Par 1.41.
amc>
amc> Par все ще звертає увагу на символи тіла.
amc> Par не повинен помилково "Par" за частину префікса.
amc> Par не повинен помилятися "." для суфікса.

після "номінальний B=._A_a 50 бг":

amc> Опція b була додана в першу чергу до
amc> мати справу з цим новим стилем цитування
amc>, який став популярним після Пар. 1.41
amc> було звільнено.
amc>
amc> Par все ще звертає увагу на тіло
amc> символів. Пар не повинен помилятися
amc> "Par" для частини префікса. пар
amc> не повинен помилятися "." для суфікса.

Використовуйте пар онлайн за допомогою служб onworks.net



Найновіші онлайн-програми для Linux і Windows