Главная » Просмотр файлов » Искусство программирования на Си

Искусство программирования на Си (984073), страница 24

Файл №984073 Искусство программирования на Си (Искусство программирования на Си) 24 страницаИскусство программирования на Си (984073) страница 242015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Она статическая, поэтому ле ЫИЕ, 1 * будет загромондать ване пространство вмев. ° / исправление кода программ //ересматренный нзык С Часто ! ГЛЗВЗ 7 ( ОаувЯЬпсе1999 + ТеагбЯ1псе1999 $ 400 ) 1((ур 1н бЫОПГ) Хс1ове((р) ) ) ОаувЯЬпсе1999 += Иов.св удау е 1 е1ве ( / ° Гаравтвруел, что чвсло содерввт ве более четврел двфр '/ Оауввгпсе1999 $= 10000) гу(соппсег < СРОЬЬОМ МАХЬХМЕ) ( Ррг1пту((рг '$0н10 $12в ($56) вргАВГХ(ОоГР11еМаве, С$04Ы$ОЫ$0Ы.$010$090 Оаув01псе1999, Иов.св Ьопг, Иов.св З1п / 10, Иов.тв З1п $ 10, Иов.тв вес)1 СопптегвгИЬЬ ++сонпгег, 1пР11еИазе, ЬАВВИпвьег); ) Рог(1 = 01 г < таьмжь * Оерсьд 1+4) ( Хрг1ЗГХ(ур, ); чоы СРо11оы(сЬаг * 1пу11ЗИаве, ) 1пт Ьупедпзьег, Хпс ОерсбдодШег, чХРг1пту((Р, Рогвагбсг1пд, АгдЬЬВГ)1 сЬаг * Рогвасбсг1пд, Ррг1псг(ур, "1п ); тгереемотреииый ииик С ЮЧасть > Ип рооееиые кодо ирограыи Глава 7 ИЙИ ными аргументами, как и при использовании Грпд>Г шннство проектов не удовлетворяют ни одному из пе- Ксрниган и Пайк (Кепнкйап, Рйае) нс придержива- в голову приходит и множество других возможностей.

обычным способом. Препроцессор проследит за исполь- рсчисленных критериев. Поэтому мы не можем сказать, ются метода Л>ГвеГ ВЕВ()О, считая, что это сделает те- В хорошо структурированном окружении может ока- зованием ну:кного числа аргументов в макросе, что нео- что мы никогда нс делаем ошибок. Если вы будете из- стирояание более проблематичным. Вместо этого они загася полезным.

если при каждом выполнении про- жиданно, но весьма приветствуется. начально предполагать, что ошибки будут иметь место, рекомендуют следующее: грамма будет вносить запись в базу данных, сохраняя Иногда удобно ввести трасснровочные циклы Если, то сможете планировать свой ответный удар н таким влыш ( Раввин = О ); такие детали, как номер версии программы, дата, вре- например, мы хотим вывести все содержимое массива, образом уменьшить их воздействие. Существует множе- мя, !В компьютера и пользователя, аргументы команд- бьшо бы хорошо использовать для этого цикл. Без со- ство полезных методов для возможно более раннего ГГ(ВЕВОС> ной строки, имя файла данных для теста, рабочие харак- мнения, и в этом случае мы предпочтем трассировоч- обнаруэксния ошибки: правильный выбор цели, макети- ргглге(....

теристики и тысячи других полезных вещей. Конечно, это ный код Поэтому я предлагаю простой макрос рованис, чувствнтельныс стратегии тестирования, экс- Опи утверждают, что многие компиляторы не создаогие ком о ы не созда не может быль сделано только вА)чб( С, поэтом) я не буду СЕ СОВЕ, который позволит заключить в него следу- пертная оценка, итеративные методологии разработки, ют прог амму операторов отладки если ВЕВ()О вдаватьса в подробности. Но пРедставьте себе созданные юший код: модульное строение программ, процедуры управления становчен в значение б но тем нс менее п оволят таким обРазом Удобства, когда, напРимеР, длЯ того, сь' сове ((> их изменениями, а также материальное стимулирование проверку синтаксиса (удо ство, которос вы тсрястс, б т о кот о вы тс я т чтобы сравнить эффективность Различных версий пропрограммисзов, создающих надежные программы, и т.д.

вы.о„,яя .,Овнов компилирование) Когда я стояк граммы, до"аточно про выпОлнить БОБ запрос в сг сове( г (' = в; ' < )в; '++» Все эти методы важны, но ни один из них не относитнулся с тако ' точкой зрения, то не нашел в стандарте й СГ СОВЕ( Г ЕОЬЬОИ2(*агг(ад> = (Ьд)'гв", 1, ся исключительно к программированию на языке С, д)ЧБ> с никаких гарантий того что компилятор нс бу- ЛаДОЧНОГО КОДа ОГРаНИЧЕНа ТОЛЬКО тРЕбОВаНИЯМИ Злра- ср сове(» ' агг(г>);) поэтому мы не будем их здесь рассматривать. Если вы дет и не должен создавать код лля недоступных о ласс зд в к д лля недоступных облас- вого смысла и вашим вообРажением. хотитс про юсть больше об общем качестве программ.

тей программы. Этот метод может хорошо работать на Вы можете написать ешс проще я настоятельно рекомендую прекрасную книгу Стива вашем компиляторе (в этом случае, конечно, используйспользование операторов контроля еггпвг сроььои ои Мак Копн<да (~гаге К(сСоппсл) Соверш<ними код те его).

тем не менее, если необхолимым требованием Операторы контроля проверяют логику вашей програм- йерееиитреииииязие С //егории ~ение ходи лригрики Яффа ! ЧзстЫ Глава 7 ИЙЙИ чается в том, чтобы найти симптом, и затем поискать патти значит, вы недостаточно хорошо изучили свою Архив Укаргона содержит четыре смешных названия танется отверстие. Я никогда не находил моль ни в одрядом непосредственную причину Например, мы ви- программу,ивтакомслучаеимеетсмыслперсписатьес, дтя различных типов ошибок, все они назва//ы в честь ной из своих маш~н, ню пауки часто вызывают проблемы (этим, возможно, объясняется отсутствие моли).

Я живу дим, что рг(в(Г записывает несуразицу в выходной по- используя более простой (возможно, более нудный) известных ученых (Нильса Бора, Вернера Гсйзснбсрга, в надежде, ито в один прекрасный день они обнаружат ток. В конце концов, мы отслеживаем его в отладчике путь. Бенуа Мандельброта и Эрвина Шредингера). Оци к/ас- мировую иву~пну тг/от/е) хг//е)е т//еЬ (здесь снова игра и находим, что это вывод строки.

Может ли указатель Успех отладки полное/ью определяется вашим по- сифицированы скорее по их симптомах/, чем по прнчи- слов; чегет(е) 'г/к(е 'Феб — всемирная паутина. — Примеч. на символ иметь значение )ъс)ЕЕ? Поэтому л/ы добав- ниманисм программы. Если вы прекрасно изучили свою нам, их вьыываюшим.

Если вы поняли, что где-то есть пер.) и исчезнут из оей жизни навсегда. лаем некоторый трассировочный код (или запрашива- программу, она нс будет иметь ошибок. Но, чтобы про- ошибка, намного вероятное, что вы знастс симгпол/, а ем в отладчике значение указателя) и определяем, что вести отладку, вы не должны ждать появления ошибок. не причину, поэтому это действительно вполне полсз- Ошибки Бора — это чаше всего простые ошибки лоэто нс ХСЕЬ. Но, тем не менее, выводятся явно иска- Почему бы пе выполнить в пошаговом режил/е новук ная ктасспфикация.

Рассмотрим каждый из них и изу гики приложений, простые ошибки на единицу, обычженныс данные. Проверка подпрограл/мы показывает, программу сразу после сс написания? Это хороший чим некоторые методы поиска различных причин, их но не связанные с границей массива, опечатки, привочто данный указатель передается в текущую ф)нкцию способ проверить тот факт, что ваша программа слсду- вызываюших. как параметр.

Слслуюший шаг — посмотреть в стеке, где ет намеченной путеводной нити выполнения, и выявить ш/учайно заломмснтированпыс части программы и друэта функция вызывается. Дви/аясь таким образом в об- проблемы на ранней стадии, еще до того, как они мо- Ошибки Бора (Волг Вод~) гис приземленные вещи. ратнол/ направлении, мы сможем достаточно быстро тут стоить вам реальных денег. Ошибка Бора — это ошибка, имею/цая простукт (хотя, определить причину искажения данных. Не позволяй- возможно, неизвестную) причину.

Если причина обнатс ошибкам запугивать вас. Их можно отследить, и в (ИПЫ ОШИ6ОК ружсна и )делена или внесены изменения нужным об- Гсйзснбаг — это прекрасное название для рассматривазтом состоит их уязвимость. емого здесь класса ошибок, и я бы хотел быть его авто- Если вам удалось откомпилировать программу, то ка- разом, ошибка пропалает. /акис детерхц/нистичсские емого здесь класса ошибок, и я бы хотел быть его ав Нс обязательно постоянно отслеживать выполнение ошибки проще всего найти и исправить. К счастью, Ром.

Каламбур очень улачсн; я не физик, но. насколь- каждой отдельной строки кода. Используйт~ возможноко по двум причинам: либо программа нс следует ваше- большинство ошибок попадает именно в зту категорию. ко " пол'ню принци" неопРедслснн с " ко я помню, п ип ип неон едслснности Гсйзенбе га Перес.нотренныингык С Испра ем ение кодо программ ! Часть! Глава 7 оессру(р, Ч); главе. Это долгая и н благодарная работа, но она дсй- Когда мы обнаружим сегмент программы, в котором, Как сделать так, чтобы сопровождающий вашу програмг е — некого ый оп стимый указатель казывакз- ствительно приносит РезУльтаты.

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

ной. Содержимое, находящееся по адресу, на который Лежащие в их основе причины представляются нспос- Можст быть, с небольшой натяжкой, но существуют ° Компьютер, работающий под управлением нузкной указывает переменная р, может быть произвольным, тнжимо сложными, как легендарное множество Ман- нссомненныс случаи ошибки Шредингера. В знамени- опсрационной системы Каковы шансы па то, что р указывает на безопасную дсльброта, в честь которого они и названы.

Кюкется, что том умозритсльнсгм экспеРименте Шредингера "Кот" ° Компилят кото ый был использован пе вонаомпилятор, которы область памяти". Их вычислить нельзя. Возможно, р вы не можстс последовательно воспроизвести се. Про- гипотетичсский кот помещается в закРытУю коРобкУ чально — никогда не выбрасывайте СП со старыми указывает на безопасную область, а может быть, и нет.

грамма работает в течение только 70% времени (для пРи обстоЯтельствах, которые приводат к Удивительно- к мпилято ам„, компиляторами. Точно сказать нельзя. конкретных входных данных) или работает только вне му выводу — кот оказывается живым и мертвым в одно Ошибка Гсйзенбсрга возникает, ссзи р нс указываст отладчика (в противоположность ошибки Гсйзснбсрга), и то зке время. на безопасную областьпамяти, вызывая ошибку выпол- или выдает ложныс результаты в среду, нли работает Заглянув в коробку, мы сводим две возможности к рые были использованы нсния программы. Поэтому вы запускастс отлалчик, что только на компькзтере Джоя, илн прерывает выполнс- одной определенности.

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

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

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

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