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

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

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

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

Несложно модифицировать таил () таким образом, чтобы она воспринимала несколько параметров командной строки, но похоже в этом нет неооходимостп, поскольку несколько выраькенпй можно передать одним параметром: дс "га1е=1.1934,!50(га1е,19 75!га1е;2! 77га1е" 51 использую двойные кавычки, потому .!то точка с запятой является разделителем команд в моей версии Пчр1Х. В других операционных системах могут быть другнс соглашения по поводу передачи параметров прп запуске. Модификация всех процедур ввода таким образом, чтобы онп испольэовали *!при1 вместо с!л дабы иметь возможность читать нз различных источников, является це самым элегантным решещгем, Этих изменений можно было бы избежать, если бы я предвидел такую ситуацию и реализовал бы что-нибудь типа ьпри1 с самого начала.

Более общим и полезным решением было бы задание источника ввода в качестве параметра для модуля калькулятора. Таким образом, главная проблема в нашем прпмс- Глава 6. Выражения и инструкции 160 ре с калькулятором заключается в следующем: то, что я называю «калькуляторомь— это только набор функций гл данных. Нет ни модуля Я 2.4), нгл объекта (% 2.5.2), который явно представлял бы собой калькулятор. Воли бы я разрабатывал модуль калькулятора или тип калькулятора, я бы, естественно, задумался над тем, какие должны быть параметры Я 8.5[3~, з 10.6[16]).

6.1.8. Замечание о стиле Программист, не знакомый с ассоциативными массивами, счел бы жульничеством использование стандартного библиотечного класса тар для реализации таблицы символов. Это не так. И стандартная, и другие библиотеки создаются для того, чтобы ими пользовалнсь. Очень часто библиотеки разрабатываются и реализуются с гораздо болыпей тщательностью, чем программист может позволить себе при написании кода, используемого только в одной программе. Взглянув на код калъкулятора, особенно в первой версии, мы видим, что в нем очень мало от традиционного низкоуровневого кода, присущего С. Многие традиционные трюки заменены библиотечными классами, такими как озсгеат, з1гтпд и тар (6 ЗА, з 3.5, ьч 3.7 йг, глава 17).

Обратите внимание, как редко встречаются арифметические операции, циклы и даже присваивания. Так и должно быть в коде, который не управляет непосредственно аппаратурой и пе работает с низкоуровневым представлением данных. 6.2. Обзор операторов Операторы разрешение области видимости разрешение области видимости глобально глобально сгазз-ггате с тегпЬег патеграсе-пате с тетЬег :: пате :: с)иаЦгесг-пате оЬгесг. тетЬег рогпгег -> тетЬег выбор члена выбор члена В этом разделе проводится обзор выражений и ряд примеров. Каждый оператор сопровождается именем (или несколькими именами), обычно нспользуемым(и) для его обозначения, и примером использования. В таблицах с!азз-пате означает имя класса, патезрас е-пате — имя пространства глмен, диаlг~гес)-пате — квалифицированное нмя, пате — какое-то нмя, тетЬег — нмя члена, об~есг — выражение, дающее объект класса, роггггет — выражение, дающее указатель (ротгег-го-тетЬег — указатель на член), сарг -- некое выражение (ехрг=Ъг —.

список выражений) и )гга)ие — выражение, обозначающее неконстантный объек~. гуре может быть полностью произвольным именем типа (возможно с *, [[ и т. л.) только тогда, когда он записан в скобках; в других случаях имеются огранглчення (з гс.5). Снцтакспс выражении не зависит от типа операндов. Смысл операторов таков, как описан ниже, только для встроенных типов Я 4.1,1). Вы можетс сами определить смысл операторов, применяемых к операндам типов, определяемых пользователем (6 2.5.2, глава 11). 161 6.2. Обзор операторов Операторы (продолжение) выбор члена выбор члена ехрг * ехрг ехрг / ехрг ехрг% ехрг сложение (плюс) вычитание (минус) ехрг+ ехрг ехрг- ехрт сдвиг влево сдвиг вправо ехрт «ехрг ехрт» ехрг ехрт < ехрт ехрт <= ехрг ехрг > ехрг ехрг >= ехрг меиыпе меныпе илн равно больше болыпе илп равно равно не равно ехрт == ехрг ехрг!= ехрг доступ по индексу вызов функции конструирование значения постфпксный инкремент ностфикспый декрсмент идентификация типа идентификация типа во время выполнения преобразование с проверкой во время выполнения преобразование с проверкой во время компиляции преобразование оез проверки константноепреобразованнс размер объекта размер типа префнксный иикремснт префиксный декремент дополнение огрипание унарный минус унарный плюс адрес разыменование создать (выделить память) создать (выделпть память и инициализировать) создать(разместить) создать(разместитьи инициализировать) уничтожить (освободить память) уничтожить массив приведение (преобразование типа) умножение деление остаток от делетшя (деление по модулю) рогп1ег [ехрт] ехрг( ехрт-бз1) туре ( ехрг-бе1 ) (оа(ие ++ 1оа(ие— 1уреЫ ( 1уре ) 1уреЫ ( ехрг ) с(упит(с сае1 < 1уре > ( ехр~ ) е(а11с сае1 < 1уре > (ехрг) ге(п1егрге1 сае1 <1ире > ( ехрг) сопе1 сае( < 1уре > ( ехрг ) е)хеот ех)н е)ген 1уре ) ++ )па)ие — 1оа1ие — (па)ие ! ехрг — ехрг + ехрг & Й а)ие * ехрк пего суре пею 1уре ( ехрг-)нт ) пего( ехрг-11е1 ) 1уре пев ( ехрг-11е1 ) 1уре ( ехрг-Ы ) с(е1е1еро1п1ет с(е(е(е[] рогпгег (1уре ) ехрг о1уес1 *ро1п1ег-1о-тетоет рот1ег->*рогп1ег1о-тетуег Глава 6.

Выражения и инструкции 162 Операторы (продолжепие) побитовое И (АХ1)) ехрт & ехрт побитовое исключающее ИЛИ (ОК) ехрт ехр>. побитовое ИЛИ (Ог«) ехр>,'ехр> логическое И (ЛХ1)) ехр> && ехрт ехрт)) ехрт вхрт «ехр>". етрт логическое И.'! И (ОК) ус.тонное выражение генерация исключения ЬЬто и езрт запятая (последовательность) ехр>, ехрт В каждом блоке расположены операторы с одинаковым приоритетом. Операторы в блоке, расположенном вьппе, имеют более высокий приоритет.

Например; а+Ь*с означает а»)Ь*с), а не (а+Ь)*с, потому что * имеет более высокий прнорнтет, чем +. Унарные операторы и операторы присваивания правоассоциативны, а все остальные левоассопиативны. Например, а=Ь"с означает а=)Ь=с), а+Ь+с означает )а+Ь)»с. 11есколько грамматических правил нельзя выразить в терминах приоритетов (называемых также силой связывания) и ассоциативное~и. Например, а=Ь<с З г(=е: ~=д означает а=))Ь<с) з )г( е): ~=у)), но для того чтобы об этом догадаться, нужно обратиться к правилам грамматики (Ч Л 5). Перед использованием грамматических прави.л из символов составляются лексические обозначения (лексемы, ч А.З).

Для получения каждой лексемы выбирается самая длинная пз возможных послеловательностей символов. 6.2.1. Результаты Тип результата арифметических операций определяется набором правил, известных как «стандартные арифметические преобразования» (г) В.6.3). Общая цель, которая прп этом преследуется, — получить результат «напболыпсго» типа операнда.

Например, если бпнарньп| оператор имеет операнд с плавающей точкой, вычисления производятся с плавающей точкой и результатом является число с плаваюгцей точкой. Если он имеет операнд (опа, вычисления производятся с использованием арифметики длинных целых чисел и результат имеет тип 1опд, Операнды, которые меныпе >п( (такие как Ьоо1 п сйат) преобразуются в >п( до применения оператора. простое присванвание умножение н прнсваива>и>е деление и присваивание остаток и прис вапванпе сложение и присвапванне вычитание и прпсваиванпе сдвиг влево п прис ваивание сдвиг вправо и прг>сва>>ваш>е И н присваивание ИЛИ н присваивз>ше псключаюгцее ИЛИ и присвапвание (г>а(ие (г>а(ие Й а1ие (г>а(ие !г>а(ие (па(ие (г>п(ие (г а(ие (г'а(ие (па(ие 1> а1ие = ехрт *= ехрт >>= вхр> »>»= едрт += ехрт — — ехрт «= ехрт »= ехрт &= ехрт )= ехрт = ехрт 163 6.2.

Обзор операторов Результатом применения опера~оров сравнения ==, <= и т. д. является. логическое значение. Смысл и тпп результата для операторов, вводимых пользователем, определяется исходя из их объяв.пения (6 11.2). Там где это приемлемо с точки зрения логики, результат применения оператора к операнду [ча[це являстся !на[не, обозначаюшим этот операнд. Например: ооЫЯп[ х, супу[ ( [п!/=х=у; тр р = й»»х; !пр у=ах.н.[. // значением х=у является значение х после присна ~тания //р указывает на х // ошибка; х н- не явля ется рзауие // (зто не значение, хранпмое ах) // адрес целого с большим значением сп~'рр=Ъ!х>у ах у[; ) иоЫ Я ( [п[[= 1 гв/све 10<6 с»»; сои[ « "переменная [ стала отрицательной у «[ « '1п'; Эта функпия со временем попытается прибавить единицу к наиболыпему возможному целому.

Что при этом произойдет — не определено, но, как правило, значенпс «перескакивает на другую сторону» и становится отрицательным (на моей машине — 2 [4 с 48364с[). Аналогично, результат деления на ноль не определен, но при этом обычноо происходит аварийное завершение программы. В частности, при переполнении (когда число становится либо слишком маченьким, либо слишком болыпнм) и делении на ноль не генерируются стандартные исключения Я 14.10).

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

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

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

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