div.main {margin-left: 20pt; margin-right: 20pt}
По поводу использования русских букв в C/C++
Юрий
Климант, www.cppwmeste.r2.ru/
Добрый день, мои дорогие ученики!
Вот уже и наступил Новый 2002 год. Если до Нового года мы все
спешим поздравить друг друга с Наступающим Новым годом, то с
наступлением Нового года мы должны поздравлять друг друга уже с
Наступившим Новым 2002 годом. Так я и сделаю. Я от всего сердца
поздравляю всех Вас, мои дорогие ученики, именно с Наступившим Новым
2002 годом !!! Конечно же я прежде всего желаю всем больших успехов
в освоении языка программирования C/C++, так как он нас всех
объединяет и вслед за этим я желаю всем Вам здоровья, счастья и
всяческих успехов в Новом 2002 году. В этот первый
день нового 2002 года я пишу свой 10-й по счету урок. Это
символично. Говорят, что как начнешь новый год, так и проведешь весь
год. Поэтому, если верить этой примете, я весь год буду писать уроки
по программированию на языке C/C++. Тогда и Вы весь начавшимйся
новый 2002 год тоже будете вместе со мною изучать язык C/C++. Таковы
народные приметы... Надеюсь, что в первый день Нового года, особенно
после просмотра нового фильма про вечера на хуторе Диканьки, такой
юмор не только допустим и понятен, но просто даже необходим для
того, чтобы начать писать в праздничный день новый урок по
программированию, а Вам для того, чтобы начать заниматься языком
C/C++. Итак, приступим к проведению урока 10 и
рассмотрим сегодня на уроке вопрос использования русских букв в
протоколе трансляции и в окне результатов решения задачи на
компьютере. На прошлом уроке 9 мы только слегка затронули эту тему.
И вот 31 декабря 2001 года, то есть в канун Нового года, ко мне
пришло новое письмо, посвященное этому вопросу. Не могу не упомянуть
о нем и не поместить его в материалы урока 10, так как оно освещает
несколько другой подход, которого придерживается автор этого письма,
относительно использования букв русского алфавита в программе на
языке C/C++.
Только что, то есть 1 января 2002 года примерно в 18
час 48 минут я получил второе письмо от того же автора на затронутую
мною на уроке 9 тему. Оба письма написаны Mike Koshelev'ым. Я
опробовал рекомендации Mike Koshelev'a. Помещаю здесь результаты
этого опробования. Ниже на рисунках Вы можете сами все увидеть, как
оно будет, если придерживаться методики Mike. Сегодня я хочу дать
Вам материалы опробования, провести анализа и сделать некоторые
выводы по результатам этого анализа. Прежде всего познакомимся с
упомянутыми письмами.
Вот первое письмо от 31
декабря 2001 года.
Письмо было получено от Mike Koshelev'a так кстати.
Большое ему за это СПАСИБО !!!
Hello Юрий, Русские буквы в
окне редактора фиксятся очень просто
- Options->Environment->Editor->Display поле Font
заменить на Courier New Cyr. Удобно писать комментарии на
русском. А вот как сделать консольный вывод в нормальной
кодировке и чтобы в редакторе наблюдать нормальные сообщения я не
знаю. Поэтому комментарии пишу на русском а сообщения на
английском.
Asta la vista Mike
Вызовем вначале программу Borland C/C++
5.2. Далее войдем в раздел "Option" во второй строке программы - в
строке меню команд. Откроется ниспадающее меню (окно) программы.
Выберем в нем строку "Environment" и щелкнем по ней дважды левой
кнопкой манипулятора "мышь". Все вышесказанное показано ниже на
рисунке.
Перед нами откроется окно "Environment Option".
Выберем в левой части окна строку "Editor", помеченную плюсом, и
щелкнем по ней дважды левой кнопкой мыши. Плюсик заменится на минус
и перед нами предстанет детальное содержание строки "Editor".
Выберем далее в детализированом списке, полученном
из строки "Editor", строку "Display" и щелкнем по ней, как прежде,
левой кнопкой мыши. Получим окно, в котором будем переустанавливать
наименование шрифта со знаками кириллицы. Ниже на рисунке показано
это окно.
В правой части окна выберем FONT и, щелкнув по
треугольнику, обращенному острием вниз, найдем наименование
переустанавливаемого нами шрифта Courier New Cyr и переустановим
новый шрифт.
Это позволит нам иметь русские буквы в двойных
кавычках в протоколе трансляции ( в тексте нашей программы в окне
компилятора Borland C/C++ 5.2 ).
Далее выполним решение по программе, полученной
после выполнения трансляции. В этой программе на этапе трансляции
присутствовали буквы русского алфавита. Но они исчезли в полученном
решении, что подтверждают приведенные ниже рисунки.
Русские буквы желательно иметь на
всех этапах работы в С/C++. Однако, как показывает проверка,
методика Mike этого не обеспечивает. По моему разумению самое
главное, чтобы они, то есть русские буквы, присутствовали на этапе
решения задачи. Но они или выдаются в протоколе трансляции, и тогда
их нет в самом решении, или их нет в протоколе трансляции, но зато
они есть в распечатке ( или вернее в окне решения задачи ), что
важнее, как мне кажется, не так ли? Вначале я
обрадовался, когда получил русские буквы в протоколе трансляции моей
учебной программы, предназначенной для испытания наличия русских
букв. Потом я с превеликим огорчением обнаружил, что в этом случае
после трансляции русские буквы не просматриваются в окне процесса
решения задачи. Вот как обстоит дело. Так что
методика руссификации, которой пользуется Mike, вполне приемлема, но
она, к сожалению, не дает все же полной возможности использовать
русские буквы на всех этапах работы в языке С/C++. Аналогично и та
методика, о которой рассказывалось на предыдущем уроке 9, тоже не
дает русских букв на всех этапах работы с транслятором. Но самое
главное, что она дает их в решении задачи. А это куда важнее. То
есть это самое главное для тех пользователей, которые работают с
русским алфавитом, как, например, мы - входящие в постсоветское
пространство СНГ. Итак, подведем итог нашим
исследованиям. Как следует из проведенного эксперимента, согласно
полученным от Mike рекомендациям, в самом решении нет русских
букв... Пожалуйста, проделайте все это сами, и тогда Вы еще лучше
поймете наши выводы. Если кто-то из учеников знает, как сделать
полную руссификацию транслятора Borland C/C++ 5.2, то есть чтобы
одновременно и протокол трансляции, и решение задачи после
трансляции отображались русскими буквами, прошу поделиться этими
знаниями со всеми слушателями и читателями моих уроков. Пока же
предложенное Mike решение пригодно и может быть использовано, но оно
все же не решает проблему русских букв на всех этапах работы в языке
С/C++. Так что мои рекомендации остаются, как я полагаю, в силе.
Ниже я привожу второе письмо Mike Koshelev'a, в
котором он разъясняет свою позицию и приводит свои аргументы "за" и
"против" по данному вопросу.
Hello Юрий! Tuesday, January
01, 2002, 6:48:11 PM. Как я и писал данный способ работает только
в окне редактора кода, т.е. можно писать комментарии на русском
языке. Но вывод в консольное окно происходит похоже в другой
кодировке, и я не знаю как это пофиксить. Поэтому комментарии я пишу
на русскома, а выводимые сообщения на английском, благо я хорошо
знаком с этим языком. :) На сопутствующем скрин-шоте видно окно
редактора с комментариями. Мне просто совершенно не нравится идея
готовить текст в отдельном редакторе, там ведь нет выделения
синтаксиса и вообще...
Asta la
vista Mike
3. Углубляйте свои знания:
Рекомендуемая
литература: |
Нейбауэр Алан. Моя первая
программа на Си/Си++. Перевод с англ. - СПб.: Питер, 1996. -
368 с.: ил.
Березин Б.И., Березин С.Б.
Начальный курс С и С++. - М,: ДИАЛОГ_МИФИ, 1996. - 288 с.
Подбельский В.В., Фомин С.С.
Программирование на языке Си: Учеб. пособие. - М.: Финансы и
статистика, 1998. - 600 с.: ил.
Джонс Р., Стюарт Я.
Программируем на Си/Пер. с англ. и предисл. М.Л. Сальникова,
Ю.В. Сальниковой. - М.: Компьютер, ЮНИТИ, 1994. - 236 с.:
ил.
Скляров В.А. Программирование
на языках Си и Си++: Практ. пособие. - М.: Высш. шк., 1996.
-240 с.: ил.
Пашенков В.В. Язык
программирования Си. - М.: Центр НТТМ "Алгоритм", 1990. - 76
с.
УинерР Р. Язык Турбо Си: Пер.
с англ. -М.: Мир, 1991. - 384 с.: ил.
|
На этом урок закончен. Приглашаю Вас на
следующий урок. Предварительно все хорошо разберите и освойте новый
материал.
|