Читаем Учись программировать полностью

AABBCCDDEE

aabbccddee

AaBbCcDdEe

Aabbccddee

a

aAbBcCdDeE

Довольно обычные средства. Как видно из строки puts 'a'.capitalize, метод capitalize переводит в заглавную только первый символ, а не первую букву. И также, как мы уже видели раньше, при вызове всех этих методов, значение letters остаётся неизменным. Мне не хотелось бы слишком вас мучить этим, но это важно понимать. Есть ещё несколько методов, которые действительно изменяют ассоциированные с ними объекты, но мы их пока что не видели и не увидим ещё некоторое время.

[Чтобы преобразовывать строки с русскими буквами потребуется установить одну из дополнительных библиотек, например, active_support, и тогда можно будет воспользоваться методами «cTpoKa».chars.downcase, «cTpoKa».chars.upcase, «cTpoKa».chars.capitalize. – Прим. перев.]

Остальные из этих забавных строковых методов, рассматриваемых нами, предназначены для визуального форматирования. Первый из них, center, добавляет пробелы в начало и в конец строки, чтобы отцентрировать её. Однако, также как вам требовалось указать методу puts, что вы хотите напечатать, а методу +, что вы хотите сложить, вам нужно указать методу center, какой ширины должна быть ваша отцентрированная строка. Так, если бы мне захотелось расположить по центру строки стихотворения, я бы сделал это примерно так [вместо оригинального английского шестистишия приводится другой подходящий лимерик Эдварда Лира в переводе Е. В. Клюева – Прим. перев.]:

lineWidth = 50

puts (

'Вот вам юная мисс из России:'

.center(lineWidth))

puts (

'Визг её был ужасен по силе.'

.center(lineWidth))

puts (

'Он разил, как кинжал, – '

.center(lineWidth))

puts (

'Так никто не визжал,'

.center(lineWidth))

puts('Как визжала та Мисс из России.'

.center(lineWidth))

Вот вам юная мисс из России:

Визг её был ужасен по силе.

Он разил, как кинжал, – так никто не визжал,

Как визжала та Мисс из России.

Хммм… Не думаю, что этот детский стишок звучит именно так, но мне просто лень уточнить по книге. (Кроме того, я хотел выровнять части строк программы, где встречается.center(lineWidth), поэтому я вставил эти лишние пробелы перед строками. Это сделано просто потому, что мне кажется, что так красивее. У программистов часто вызывает сильные чувства обсуждение того, что в программе является красивым, и они часто расходятся во мнениях об этом. Чем больше вы программируете, тем больше вы следуете своему собственному стилю.) Что касается разговоров о лени, то лень в программировании – это не всегда плохо. Например, видите, что я сохранил ширину стихотворения в переменной lineWidth? Это для того, чтобы, если я захочу позже вернуться к программе и сделать стих шире, мне нужно будет изменить только самую верхнюю строку программы вместо того, чтобы менять каждую из строк, где есть центрирование. При достаточно длинном стихотворении это может сэкономить мне немало времени. Вот такая разновидность лени – это действительно добродетель в программировании. [Однако автор не поленился назвать эту переменную достаточно длинным, но зато осмысленным именем lineWidth, так как он сознаёт, насколько важно для читающего программу правильно понимать назначение переменных. – Прим. перев.]

Так вот, о центрировании… Как вы могли заметить, оно не столь прекрасно, как его мог бы сделать текстовый процессор. Если вы действительно хотите идеальное центрирование (и, возможно, более симпатичный шрифт), тогда вы просто должны использовать текстовый процессор! Ruby – это удивительный инструмент, но нет ни одного инструмента идеального для любой работы.

Два других метода форматирования строк – это ljust и rjust, названия которых обозначают left justify (выровнять влево) и right justify (выровнять вправо). Они похожи на center за исключением того, что они добавляют к строке пробелы соответственно с левой или с правой стороны. Давайте посмотрим все три метода в действии:

lineWidth = 40 str = '–-> текст <--' puts str.ljust lineWidth puts str.center lineWidth puts str.rjust lineWidth

puts str.ljust (lineWidth/2) + str.rjust (lineWidth/2)

–>

текст

<–

–-> текст <--

–- >

текст

< –

–>

текст

<–

–- >

текст

< –

Попробуйте ещё кое-что

• Напишите программу «Злой Начальник». Он должен грубо спрашивать, чего вы хотите. Что бы вы ему ни ответили, Злой Начальник должен орать вам это же самое в ответ, а затем увольнять вас. Например, если вы введёте: Я хочу повышения зарплаты.,

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных