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

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

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

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

Комсснлятор не понимает смысл комментариев, поэтому не существует способа проверить, что комментарий 11) содер>кателесс; [2] имеет какое-то отношение к программе; 131 не устарел. В большинстве программ можно найти труднопонимасмые, противоречивые и просто неверные комментарии. Плохой комментарий хуже его отсутствия. Если что-то может быть выражено непосредственно конгтрукциялпс языка, так оно и должно быть сделано, простого упоминания в комментарии недостаточно. Предыдущее замечание имеет в виду комментарии типа: О переменную "о" надо нроинициолизировать ,Ссс перелсенная "о' должна использоваптгя только функцией ",~1)" ссс перед вьаовоя любой другой функции из згпого фаила, вьсзовите функцшо "с т~ 1) ' сгсс вызовите функцию 'с1еатср Г) ' в конце васией програиисы ссс не пользуйтесь функцией "свесгд1)' сс~с у фуню1сш ",С 1) ' два аргуяен пса При ссравпльпом использовании Сч-л- такие комментарии часто становятся ненужныкси.

Например, чтобы избавиться от предыдусцих комментариев, можно полагаться на правила компоновки 1й 9.2) и области видимости, инициализации и очистки для классов (слс. 9 10А.1). Если что-либо ясно выражено в языке, не надо это повторять второй раз в комментарии. Например: а=Ь+с, сс'а приншчаесп зна'сение, равное Ььг соипсь+, сссс увели шли счетчик /В1 блб Советы И дело не только в том, что такие комментарии просто излишни, Оии увеличивают количество текста, который надо прочесть, часто затеняют структуру программы и не редко просто ошибочны.

Впрочем, обратите внимание: подобные комментарии часто встречаются в учебных пособиях типа того, что вы сейчас читаете. Это одна нз многих черт, которыми реальные программы отличаются от программ из учебника. Я предпочитаю использовать комментарии в следующих случаях: [1] Комментарий в на |аде каждого файла исходного кода, где поясняются основные об ьявлення, делаются ссылки на литературу и приводятся наиболее важные соображения по поводу сопровождения и т, п. [2] Комментарий для каждого класса, шаблона и пространства имен. [3] Комментарий для каждой нетрпвию!ьной функции, в котором указано ее назначение, использованный алгоритм (если он не очевиден) и, может быть, предположения, которые она делает об окружении.

[4] Комментарий лля каждой глобальной переменной, переменной из пространства имен и константы. [5] Небольшие комментарии в тех местах, где код неочевиден иуили непереносим, [6] Очень редко в друпгх случаях. Например: О Э!.с: реализация п~аблицы силволов р/гключелиел!елподол~ !йусса. олс йа/в/оп: «А?!а! гоигве.,э, стр. 4 ! !. *? !) вшар [1 по,ш гает, что сгпек устроен как в 5Я //б000. *«« ««« « «*«« Сирупу/!/ (с) /99? АХИЕ /пс.

АП г! у/!!в гееегоед *«««««* ««««* * Удачно подобранный и написанный набор комментариев является существенной частью хорошей программы. Написание < правильных комментариев может оказаться не менее сложной задачей, чем написание самой программы. Стоит развивать зто искусство. Обратите внимание, что если в функции используется только //'-стиль комментариев, то любой фрагмент функции может быть «закомментирован» (временно исключен) при помощи /" */ и наоборот. 6.5. Советы [1] Отдавайте предпочтение стандартной библиотеке по отношению к другим библиотекам и коду, написанному вручную; 6 6.1.8.

[2] Избегайте слшцком сложных выражений; 9 6.2.3. [3] Если вы сомневаетесь в порядке выполнения операторов, пользуйтесь скобками; з 6.2.3. [4] Избегайте явного преобразования типов (приведения); 6 6.2.7. Глава 6. Выражения и инструкции 182 [5) Если явное преобразование типов необходимо. отдавайте предпочтение явным операторам приведения по отношению к С-подобным преобразованиям; б 6.2.7. [б) Пользуйтесь формой Т (е) только тогда, когда четко известны правила конструирования значения; 9 6.2.8. [7) Избегайте выражений с неопределенной последовательностью вычислении; ~ 6.2 2. [Я] Старайтесь не использовать до(о; 9 6,3А.

[9) Старапгссь не использовать йо-инструкцию; и 6.3.3. [1О) Ие объявляйте переменную до тех пор, пока у вас нет значения для ее инициализации; ([ 6.3.1, () 6.3.2.1, 9 63.3.1. [11) Пишите ясные и лаконичные комментарии; з 6А. [12) Придерживайтесь согласованного стиля в отступах; 6 6А. [13) Лучше определить орега(огаеш() в качестве члена класса (9 15.6), чем заменять глобальный орега1ог ссеш (); 6 6.2.6.2. [14) Всегда имейте в виду возможность «неправильного» ввода; 9 6.1.3 6.6.

Упражнения 1 (*1) Перепишите следующий пример с инструкцией 7ог в виде зквивалентного кода с использованием инструкция шус11е: уог 6=0, 1<тах 1еиитЬ, 1"-, ) с~' ,'три1 11ие[1) == ти) <1иеег соиис««, Перепилим е так, чтобы переменной цикла был указатель. то есть, чтобы проверка выглядела как-нибудь так: »р=='з'. 2. ('1) Расставьте скобки в следующих выражениях; а =- Ь + с * с( «2 8 8 а 8077'=-5 а == Ь [ а =.= с дй с < 5 с=х~ = 0 0 =1<7 7'(1, 2! «. 5 а= — 1««Ь — — 5 а=ь==с++ и = Ь= с'= 0 а[4) [2) *=*Ь з с 'с(' 2 а — Ь, с = с( 3. ('2) Введите послеловательность (возможно с символами-разделителями) пар (имя, значение), где имя является словом, отделяемым символами-разделителямн, а значение — целым или числом с плавающей точкой.

Вычислите и выведите сумму и среднее как для каждого отдельного имени, так и для всех имен (см. ф 6,1.8). 4 ( 1) Выведите таблицу результатов битовых логических операций Я 6.2.4) для всех возможных комбинаций операндов О и 1. 5. (*1.5) Приведите 5 различных конструкцин С++, смысл которых не определен (6 В.2). (*1.5) Приведите 5 различный конструкций С-+, смысл которых зависит от рва ли зал ни (6 В. 2).

183 б.б. Упражнения (<1) Приведите 10 различных примеров непереносимого кода на С'-ь. (*2) Напишите 5 выражений, в которых не определен порядок вычислений. Вы- полните их и посмотрите, что делает ваша реализация (по возможности попро- буйте примеры на нескольких реализациях). (*1.5) Что происходит при делении на 0 в вашеи системе? Что происходит при переполнении с верху и снизу? ('1) Расставьте скобки в следуюгцих выражениях: (*2) Напишите следующие функции: я(г1еп (), которая возвращает длину С-строки; я( ору (), которая копирует одну строку в другую; я(гетр (), которая сравнивает две С-строки.

Определите, какими должны быть аргументы и возвращаемые типы. Затем сравните ваши функции со стандартными библиотечными функппямц, объявленными в <ся1ппр (<к(г?пд.й>) и описанными в 9 20А.1. (*1) Послютрнте, как реагирует ваш компилятор на следуюпгие ошибки; Придумайте несколько других простых ошпоок н посмотрите, как на них реаги- рует компилятор. (*2) Модпфицпруйте пример из 9 6.6[3) таким образом, чтобы он вычислял и ме- диану. 12 (*2) Напишите функцию са( (), принимающую в качестве аргументов две С-стро- кп, которая возврщцает строку, являющуюся их конкатенацией. Воспользуйтесь оператором пеш для выделения памяти под результат. (*2) Напипгите функцию геп (), берущую в качестве аргумента символьную С-стро- ку и переставляющую в пей.символы в обратном порялке.

То есть, после вызова гео (р) последний символ р становится первым и т. д. (1.5) Что делается в слелующем примере? по1д кепд [тд Го, Гпг 7гогп,!пя сои ля) ; / Черпни ящнн. Полезные нож цен тари ° уиьииленно удалены 6. 7. 9. 10. 11. 1с 15. *Рн-~- Р ++а— йпР)Р— ьт 'Р т 'а[1) ооГд7 (?ля а,?пг Ь) (? (а=В) 0... (7 (аЪ077 ==0)?,~ ... а =5+0 ?пя и =(соипяч7) 7 В, ятисЬ (сои пЯВ) ( саяе 0 до ( 'Гон-я саяе 7 '1о++ саяе б. 'го.нсаяе 5: "го- -ь саяе 4; 'Го+я = '?сот+ ~-; = "7гот.н-; = '~готя-н-; = 7Гот.н-, = '7гот++; Глава б.

Выражения и инструкции 184 саяе 3. *го«+ = '/гааз.Н-; саяе 2 'го.н- = "1голп.н-; сазе 7 "ло«« = 'Ггот«лз ) юб!(е) — п>0), ) 16 17 18 19 20 21 22 23 Зачем кому-нибудь мо»кет понадобиться подобный код? (*2) Напишите функцию а!о?)сопя! сбаг*), которая получает С-строку, состоя- щую из цифр, и возвращает соответствующее целое значение. Например, резуль- тазом вызова а1о! )'122") должно бьлть 122. Модифицнруйте а(о! )) таким обра- зом, чтобы она могла работать с восьмеричными и шестнадцатеричными пред- ставлениями в дополнение к обычным десятичным числам. Модифицируйте а!о?() таким образом, чтобы она могла работать с символьными константами С+о.

("2) Напишите функцию !!оа )!и! л, сбаг ЬД), которая создает строковое и релстав- ление л в Ь и возвращает Ь. (*2) Введите программу калькулятора и заставьте ее работать. Не пользуйтесь командамн редактора «скопировать и вставить» прп вводе повторяющихся фраг- ментов кода. Вы научитесь большему, отыскивая и исправляя разные «мелкие глупые ошибки >. (*2) Модифнцируйте калькулятор таким образом, чтобы он выводил номер стро- ки с ошибкой. (*3) Предоставьте пользователю возможность определять функции в калькуля- торе.

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

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

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

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