Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004

Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 215

Файл №1160791 Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004) 215 страницаБ. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791) страница 2152019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 215)

— Пословица Учет культурных различий — класс 1оса1е — именованные локализации— создание локализаций — копирование и сравнение локализаций— локализации й(оба1~) и с1авв1с() — сравнение строк — класс (псе1 — доступ " фасетам локализаций — простой определяем»ай пользователем фасет— стандартные фасеты — сравнение строк — ввод/вывод чисел — ввод/вывод денег — ввод/вывод дат и времени — низкоуровневые операции со временем— класс Па1е — классификация символов — преобразование кода символа— каталоги сообщений — советы — упражнения. Г.1. Учет культурных различий Объект 1оса1е (локализация) определяет набор культурных (нацпональных) особенностей, таких как способ сравнения строк, удобный для чтения формат вывода чисел и представление симврлов во внешней памяти. Понятие локализации расширяемо, так что программист может добавлять в локализацию новые фасеты' ((асе1) для отражения местных особенностей, не поддерживаемых стандартной библиотекой непосредственно, как, например, почтовые индексы и телефонные номера.

Основной задачей использования локализаций в стандартной библиотеке является управление отображением информации, записываемой в поток вывода (ов(геат), и форматамп, воспринимаемыми потоком ввода (1в1геат). В разделе ~ 2 В7 описано, как можно изменить локализацию для потока. В данном приложении рассказывается, как локализация конструируется из фасетов, и объясняются механизмы, посредством которых локализация воздействует на свой поток.

В приложении речь также идет об определении фасета, перечисляются стандартные фасеты, определяющие специфические свойства потока, изложены технологии реализации и использования локализаций и фасетов. При описании ввода~вывода ' Слово вфасет» означает грань яли аспект чего-либо, В контексте информационных технологий термин вфасет» означает совокупность сведений, которую при классификации удобно рассматривать как единое целое. Заинтересованный читатель может отыскать дальнейшие сведения о фасетной классификация пиформацци в Интернете илп в специализированной литературе. — Примеч, ред. 948 Приложение Г Локализация дат рассматриваются срелства стандартной библиотеки для представления даты н времени.

Обсуждение локализаций и их фасетов организовано следующим образом: 9 Г.1. Вводит основные илеи представления культурных различий с помощью локализаций. 6 Г.2, Описывает класс 1оса1е (локализация). Ь Г.З. Описывает класс )асе1 (фасет локализации), 6 Г.4. Содержит обзор стандартных фасегов с указанием деталей каждого из них: 9 ГА.1. Сравнение строк. з Г.4.2. Ввол н вывод числовых значений. 9 ГА.З. Ввод и вывод денежных значений.

9 ГАА. Ввод и вывод дат п времени. 9 Г.4.5. Класснфикацнялспмволов. 9 ГА.6. Преобразования кодов сигиволов, 8 ГА.7. Каталоги сообщений. Понятие локализапни не является «собственностью» С+» — в большинстве опе- рационных систем и сред разработки приложений имеются подобные понятия. В принципе, локализация используется в системе всеми программами совместно, неза- висимо от того, на каком языке программирования они написаны.

Таким образом. идею локализации стандартной библиотеки можно рассматривать в качестве стан- дартного и переносимого способа доступа из программ на С»«к информации, имею- щей существенно различное представление в различных системах. Среди прочего, класс 1оса1е С»+ является общим интерфейсом к системной информации, представ- ленной несовместимым образом в различных системах. Г.1.1. Программирование культурных различий Подумаем о написании программы, которой придется пользоваться в нескольких странах. Стиль написания подобных программ часто называют «ннтернационализацией» (делая акпент на использовании программы во многих странах) или «локализацией» (упирая на адаптацию программы к местным условиям).

Многие объекты, которыми манипулирует программа, в различных странах принято выводить по-разному. Мы можем написать процедуры ввода/вывода с учетом этих требований. Например: ооЫрппс аа/е(сопя()ла1ей ей // вывод в подходлщел~ форлате ( ящ/Гсд(тЬеге ат 7) ( // определенный пользователем индикатор с»пиля саяеВК: // например, 7. тиг)я/999 соиГ «й.дау() « '. ' «ЙЬ топгЬ(с( топеЬ()) « ' «ссуеагЦ Ьгеай; саяе с/К: //например, 7/3/ )999 соиГ «Ил(ау() « ' / «д.топ/Ь() « " / ' «д.уеаг(); Ьгеай; саяе (Л.

// например, 3/7/(999 соиЕ «д топГЬ() « /' «д.с(ау() « '/' «д уеас() Ьгеай; // -. Г1, Учет культурных различий 949 Такой подход решает задачу. Однако это скверный стиль, причем нам придется последовательно его придерживаться, чтобы корректно адаптнронать весь вывод к местным особенностям.

Хуже того, если мы захотим добавить новый способ записи даты, придется модифицировать код. Казалось бы, с проблемой можно справиться путем создания иерархии классов (9 12 2А). Однако сама информация в 0а1е не зависит от того, в каком виде мы хотим ее видеть. Поэтому нам пе подходит иерархия типов !ла1е, наподобие с!5 !ла1е, ЬК Юа1е и ЯР Ва1е. Мы хотели бы располагать разнообразными способами вывода дат: «вывод в американском стиле», «вывод н английском стиле».

«вывод в японском стиле» и т. дл см. 9 П4А,5. Подход «пусть пользователь пишет функции ввода/вывода, учитывающие культурные различия» порождает и другие трудности: [1[ Без помощи стандартной библиотеки программист, пишущий приложение, не может изменить «ннешний внд» встроенных типов достаточно простым, переносимым и эффективным способом. [2! Поиск каждой операции ввода/вывода (и каждой операции, готовящей данные для ввода/вывода с учетом местных особенностей) в большой программе не всегда осуществим. [3[ Иногда у нас нет возможности переписать программу с учетом новых соглашений, но даже если бы и была, мгя бы предпочли иное решение, не требующее переписывания кода.

[4[ Слишком накладно заставлять всех пользователей разрабатывать и реализовывать учет культурных особенностей. [5[ Различные программисты по-разному будут реализовывать низкоуровневые национальные особенности, и программы, работающие с одной и той же информацией, будут отличаться без существенных на то причин. Таким образом, программистам, сопровождающим код из различных источников, придется изучить множество программных соглашений. Довольно утомительно и сопряжено с ошибками.

Стандартная библиотека предоставляет расширяемый способ учета национальных соглашений. На эту схему работы опирается библиотека потоков ввода/вывода (9 21.7), обрабатывая как встроенные, так и определяемые пользователем типы. Например, рассмотрим простой цикл копирования пар (Ва1е, с(оиб!е[, которые могут представлять собой последовательные измерения нли транзакции: оо!д срд(!в!сват& ип ов1геат& ов( О копировамие потока пар (дата, число) ( !!аге с1, с!оид!е оо!ите, тол!! е (!в» д» оо! ите( ов «Ы « ' ' «оо!оте «за'; > Само собой разумеется, реальная программа выполнила бы какие-нибудь операции над записями н, в идеале, хоть чуть-чуть позаботилась бы об обработке ошибок.

Как заставить эту программу прочитать файл, соответствующий французским соглашениям (для отделения дробной части используется запятая; например, !2,5 означает «двенадцать с половиной»), и переписать его н американском формате? Мы можем определить локализации и операции ввода/вывода так, чтобы функцию срд(( можно было применить для преобразования между двумя форматами: Приложение Г Локализация 950 оо!а Я!з/геалпй/!гл, ое!геатй !ои! ( Яп.!тбие(!оса!е~'еп ((3 )1( )ои!, ни Ьие~!оса!юг" /1 сру//(п,тои!); !з!геатй71п2, оз!геатй~ои!21 О американский английскш/ О французский 7/ ипение на американском английсколь О запись на французскол~ ~т2 !гпбие~!оса!е/"~т" /1 !ои!2!тЬие(!оса!е/'еп ((3"/( сру///п2,7ои/21 77 французский 7/ американский английский 77 чтение на французскояс О запись на американскоял английском Пусть имеются потоки; Арг/2, 1999 Арг (3, (999 Арг(4, /999 1000.3 345.45 9б88.321 3 (и//е/ (950 10,3 Зри!!е/ 1951 /34,45 3/гй//е( (952 57,9 на выходе программы будет: /2 асьl 1999 /000,3 ! 3 аии! /999 345,45 /4 аип(1999 9б88.321 .(и(у 3, 1950 яи/у 3, 195/ .Ыу 3, 1952 (0.3 /34.45 б7.9 Оставшаяся часть данного приложения в основном описывает механизмы, делающие возможной подобную схему работы, и обьясняет, как их применять.

Отметим, что у болыпинства програмл!истов нет ни малейших причин разбираться в деталях локализаций. Многие программисты никогда явно не будут работать с !оса!е, а большинство из тех, что все-таки будут, просто извлекут стандартную локализацию и закрепят (пшЬце) ее за потоком (9 21.7). Механизмы создания локализаций и обеспечения простоты их использования представляют из себя небольшой язык программирования.

Если программа или система оказались успешны, они будут использованы людьми с потребностями и склонностями, которые проектировщики и программисты не предвидели. Большинство успешных программ будут исполнятся в странах, где (естественные) языки и наборы символов отличаются от тех, что знакомы проектировшикам и программистам. 1Пирокое использование программы является признаком успеха.

так что проектирование и программирование, нацеленные на преодоление языковых и культурных барьеров, являются подготовкой к успеху. Концепция локализации (интернационализации) проста. Но практические ограничения изрядно запутывают проектирование и реализацию !оса!е; (1~ В локализации пнкапсулированы культурные особенности, такие как форма отображения дат. Подобные соглашения неуловимым и несистематическим об- 951 Г2. Класс!оса)е разом отличаются друг от друга, Эти правила не имеют ничего общего с языками программирования, поэтому язык программирования не может их стандартнзовать. (2] Концепция локализации должна быть расширяемой, потому что невозможно перечислить все особенности, присущие разным культурам, н представляющие интерес для различных пользователей С+-ь.

Характеристики

Тип файла
DJVU-файл
Размер
10,02 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее