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

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

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

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

Хппссиоп( 5115=1 201 >Хп */ рг1пст(" <ВН><ВН>)п"); Хгее(оору01япегу5сгьп9); рг1пят(" <1НРОТ ТХРЕ=Х ЯнЬв(11 >Хп'); 11(ИОЬЬ == ЬХЯС) ргьпят(" </СЕВТЕН>(п'); ( рг)пят( </РОНЕ>(п ); рг1пст("Сап'С рагве СО1 дата.ап"); ) геспгп ЕХ1Т РАХЬОНЕ/ рг1пст(" </ВООХ>)в )> рггпст("</ВтНЬ>1п"); /****а«**а*а«а*««*а****«*а** ) а * Щ$ мгн«а«литании тем « .

Згн Налигание Сбйлргниннге««и«З на Г «та«лите«ение темитинегнне раздели 1 — Глава 23 йц:~ айнем сит от вашей реализации, но вполне возможно, чзо по- Рассматривайте все так, как если бы это был откры- лучат. Это и является одной из возможностей взлома, тый код. Лкзбой вызов системного приложения необховремсни — вполне обычное дело, и для получения даты на которую следует обратить внимание в первую оче- димо проверять, чтобы убедиться, что он нс несет пои времени можно пользоваться нс только функциями рсдь. тснциальной опасности.

Нс думайтс, что ваш кол гппео и 1оса111шео, но и вувгегпо. А некоторые СО1- Как же можно обеспечить безопасность СО)-прило- является секретом только потому, что его будет видеть аьа «1 про~риммы лля отправки своих выходных данных по жений? только персонал вашей компании. Внутренние взлом- электронной почте вызывают функцию вепйшая. И если На самом дслс все довольно просто. Всегда считай- шики — вполне обычное дело в компьютерном бизневузгеш() используется непродуманно, то именно в таком те, что каждый блок данных содержит ошибки или даже се. Сможет ли ваша компания выдержать направленную является атакой на ваш сервер. Поэтому всегда все про- атаку взломшика, вооруженного внутренними данными, веряйте.

полученными от обиженного (или бывшего) работника Исходный НТМЕ-код не является секретом Не используйте метод ОЕТ лля отправки данных на вашей компании. сервер, пока нс будете вполне убеждены в том, что пс- Давайте будем осторожными. Почти любой браузср позволяет пользователю просмотреть наш НТ(нн -кол и/или сохранить его в файле.

Эта Помните, что вся строка запроса ( 11'Ейе' ЯТВВнб бу- рЯЗЯЦЕ инфориация может быть полезна лля взлонппика в его дет выводится в адресной ()В -строке браузера клиенпопытках на шить наш та, и сели подглялывание через плечо може~ принести В этой главе рассмотрено программирование в среде вред вашему СС«1-приложснггю, то лля отправки данных единого шлюзового интерфейса (СО1). Детально описан используйте метод РОЯТ. процесс создания линалгических нтсЬ-страниц с исполь,Зц Ы Е Киа Ы - , . <1НРПТ ТХРЕ=НГВОЕН МЛЗШтВВЛЕГЕО Всегда следитс за тем, какие данные раскрываетс в зованием стандартных языков программирования Арифиетинсс ероизоии,нои о очности Вассой) Глава 24 $ЛИ Ариф(иетика произвольной ТОЧНОСТИ Листинг 24.1.

Вычисление значения числа е почти правла, но нс совссм, поскольку, например, прн сложснии очень больших чисел получаемый результат !гвс1вде <вьдго Ь> гвг ва(в(1аг агвс, сваг * вгчч[)) ( доиЫе дкевв10; довЫе дяог)с; 1вс нс может быть представлен типом!п( пли )опя (п(. А лля нспслыл чиссл это совсем неправда, поскольку сушс- зги Ке ии гегвгв 0 ствуст ограниченно на точность прслставлсния в ком- В ЭТОЙ ГЛАВЕ пьютсрс чиссч с плавакзшсй точлои Поэгомт посзсдннс несколько битов результата можно поставить под содлев 010 = 1. 0; мнснис.

° Распространение ошибок при выполнении арифметических операций двогх = 1.0; Но сколько битов являются сомнительными? Если ° Пс сполнснис, р о. нс ис, потеря значимости и деление на нуль у вас есть два числа А и В н вы хотите получить значс° Порядок выполнения операций 1ог (1=1 П 1<20!(1++! ннс А ч В, то нсобхолимо имсть ввиду, что число А в ( ° Размеры цсльгх чисел двог)о Ги компьютере представляется в виде А 2 а, глс о — овиб- ддввв1г += двогК; ка числа А, а В прслставлястся в виде В+ Ь, гдс 0— е Размеры чисел с плаваюшсй точкой ) осиибга числа В. В результате сложения получается рс° Никогда нс делайте предположений относительно срспы выполнения кода рг1вве( е = всув",длевв10); зультат А + В Е Го ч бд слсдоватсльно, прн сложении ° Примеры высокой и низкой точности ошибки складываются.

Ошибки могут быть как есоиожительиьсмсс, зак и от° Разлнчныс методы представления сверхвысокой точности рияасоелоимми. Поскольку они являются ошибками, то ° Пример кода для действий над строкой символов мы нс знаем, завышсно наше прсдстююснис или зани Программа в листинге 24. ! (и на тисб-сайтс излатсль Часть 10 тзх(в ь Г, гер) тах(е и г, гер) тах((е * и) е (( *а), гвр) тах((а *В+ (Г'а), гвр) Ошибка деления ))о«о «ите эь«ые тем«то«еекиероэдеэы (А+ а)'(В б) и получастс А'В 1(А "Ь+В'а+а Ь).

Это выглялит крайне непривлекательно! Но что это значит? В качестве примера прсдстзвьтс себе, что значение А равно 5.3, но имеет ошибку + ! 0«10'", а значение В равно 6.9 и имеет немного большую ошибку +2.0х10 '4. Мы получим результат 36.57 ч: (5.3'2.0'1О мч6.9'1.0'1О "~- +1.0'2.0*!0 и'!О '4). Последнее произведение этого выражения можно нс учитывать ввиду его малости— 2.0*10". Это сводит ошибку вычисления к 17.5'10и. Данное значение намного больше ошибок исходных чисел.

И, как и в предыдущем случае, даже если одно из исходных чисел является абсолютно точным, вы все равна в результате получите ошибку из-за неточности другого числа, только на этот раз ошибка получится гораздо больше. Ошибка при делении возникает примерно так же, как и при умножении. Так, если вы хотите вычислить АээВ, Таблица 24.1. Ошибки арифметических опера- циЙ. Операция Ошибка операции В табл. 24.1 еер — точность типа результата или промежуточного типа, который использовался лля получения результата, в зависимости от того, точность какого типа ниже (больше ошибка).

Ошибка, получаемая в результате выполнения любой арифметической операции, всегда больше ошибок исходных чисел. Переполнение, потеря значимости и деление на нуль нс приведет, н булет получена ошибка деления на нуль Математикам, наверное, интересно узнать, как называется такая бесконечность. алеф-нуль или С-нуль. Всем жс остальным будет интересно знать, как заставить компьютеры выдавать правильныс результаты. Порядок выполнения операций В абстрактной математике не имеет значения, в какои последовательности выполнять вычисления — результат будет одним и тем же. Так, например, А-В+С-))ч ЕЕ вссгла равно А+С ьЕ-В-))-Е и всегда равно (А+С+Е)- (Вел+В), а (А 'В)/С всегда равно (АээС) 'В. Но порялок выполнения вычислений на компьютере имеет значснис— мы помним, что каэкдая арифметическая операция посвоему влияет на точность получаемого резульпэта, и один порялок вычислений может привести к потере значимости или существенному увеличению пропорциональной ошибки, в то время как лругой нс привслст к атому, Арифметика «рооэооль«оа то««ости $ Глава 24 Стандарт С четко нс устанавливает, сколько битов должен солержать каждый из этих типов, но он устанавливает некоторос минимальное их количество.

Так, тип сйаг должен содержать, по крайней мере, о битов. Тип зйогт 1пт лолжен быть не короче, чем сйаг, и иметь минимум 16 битов. !п! должен быть не короче, чсч зйпгг ьп1, и, как и айогг !пг, иметь минимум 16 битов. 1опе !п! должен быть не короче, чем !пг, и иметь, по крайней мере, 32 бита. Он мохеет быть длиннее, но стандарт не говорит, что он далэкен быть ллиннее. Еше один не указанный в стандарте момент — какому типу соответствует тип сйаг: ппяйпеа сйзг или Иапед сйаг. Он может соответствовать как одному, так и другому.

Тем нс менее, станлзрт указывает, что тип (п! соответствует типу з1явед !пг, а тип 1ппе !пт — типу Ийпед !овп «п1. Если вы все жс хотите, чтобы тип сйаг соответствовал гип> з!епед сваг, объявите его как налей сваг. Аналогично, если нужно, чтобы тип сйаг соответствовал типу впяапед сйаг, объявите его как впз)ппеб Дааататкссаые таиатаческзсаразде ~ы Арифметика араазаальааи тачааста г 1 Часть Ш Глава 24 $ Таблица 24.2. Представление отрицательных чисел в виде дополнения до единицы и в виде Поскольку целая часть результата деления равна в правой части имеет одну переменную типа (п1 и одну ДОПОЛНЕНИЯ До ДВУХ.

нулю, неудивительно, что и значение гА равно нулю. Но переменную типа довЫе. Приведение (довЫе) позволявсс ли остальные значения будут равны 0.6666667? ет преобразовать значение переменной КХео в тип доцЫе Расглсатрим десятичное чисю Т105, лазларае и 8-битовом дааиииам иредставлсиии (лак аравию, г(лвед сЬаг) раааа О!101001, д — 105. Для получения значения 0.666666... необходимо давыполнснияопсрациидслсния. Поэтомурсзультатом , и арсдсзиааим число — 05. слопать нскоторыс преобразования, т.с.

метод представ- этого выражения является 0.666667. Дааалиеиис да единицы Даиалигиие да двух пения чисел необходимо изменить с типа зв( (целое Но как обьяснить то, что выражение Правило для получения отрицательных чисел: Правило для получения отрицательных чисел. число) на тип ЬовЫе (число с плавающей точкой). В аце(аомихе) (ТТмо!з.ТЬкее) з "Поменяйте значения битов на противоположное", "Поменяйте значения битов ма противоположное н таким языке С определены несколько правил преобразования образом, 01101001 становится 10010110 добавьте единицу", таким образом, 01! 01001 сначала типов, кроме того, некоторые свои правила может иметь тоже ласт в ответе нуль? Мы жс преобразовали его к становится 10010110 н после добавления единицы и компилятор.

Точныс правила преобразования типов типу довв(е? получим 10010111 приведены в книге 7)зе С Ргалгатт1п8 6аахиабг (К~В) Ла мы его привели к допЫе но фактически был Рассмотрим десятичное мисю 1, которое и 8-битовом двоичном предстаалеаии равно 00000001: Эти правила сводятся к слелуюшим действиям: преобразован тип самого результата, т.с. тип выражения в скобках. Это выражение, которое содержит только Далолиеиие да единицы Дааалисииг да двух Если один из операндов имеет тип )овя довЫе, прсзначения типа!и(, преобразуется в тип доцЫе после выобраювать другой операнд в тип (опя довЫе. -1 соответствует 11111110 -! соответствует 11111111 полнения операции деления.

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

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

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

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