Искусство программирования на Си (984073), страница 76
Текст из файла (страница 76)
.0; Н ( р[1рйепп1ЕРгесгпйоп 1 ИОЬЬ ) бопЫе Е1рЬоса1Яесопбргесбпзоп 0.0; 1оп0 бопЫе 21рьоса1йеппгпча1пе = 0.0; *РЕ1рйепп12ргесйагоп = ( ( ПРРЕгппйп121Р1[сапбйгес[пьоа * ЕаЬв [ Е1рЯесопбйп1ПР11сапб ) ) Н ( РЕ1рйепп12ргесЕыоп 1а ИОЬЬ ) + ( 21рБесопбйп1ИрИсапбргесбыоп ( * Еапп [ Е1рРЕгппип121РИсапб ) 1 ); Е1рЬоса1РЕгпЕРгесгпбоп = ОВЬ ЕР5ЕЬОИ ) ЕаЬВ( 21РРггпЕАббЫапб ); Е1рьоса1йеппгпча1пе = (1оп0 бопЫе) Прчггппйп1ИР11сапб * Н ( ОВЬ ЕРЯЕЬОИ > ПРЬо 1РЕгппргесьпьоп (1опч бопЫе) Е1рБесопбйп12гр1зсапб; Прьоса1РЕгпСРгесьпьоп = ОВЬ ЕРБЕЬОИ; Н ( Е1рьоса1йепп1ЕРгес[п[оп < ОВЬ ЕРЯЕЬОИ Н ( 21РРггпЕАИИЫапбргесгабоп > Е1рЬоса1РНВЕРгесаа1оп ) Еапп ( Е1рьосаьйеьпгпча1пе ] ) Прьоса1РЕгпьргес151оп = 21РРЕгппйббЫапбргесЕа1оп; 21рЬоса1йевпИРгесЕвзоп = ОВЬ ЕРЯЕЬОИ 21рьоса15есопбргес15[оп = ОВЬ ВРЯПОИ * Еаье [ Е1рьоса1йепогпра1пе ) * Еаьп ( Е1ряесопбАббЫапб ); гЕ ( Еапе ( 21Рьоса1йеппгпча1пе ) > ОВЬ ИАХ ) Н ( ОВЬ ЕРЯЕьои > ЕЕРЬоса15есопбргес151оп ( ЕЕРЬоса15есопбргесьегоп = ОВЬ ЕРЯЕЬОИ; Н ( РЕ1рйепп12ргесье1оп 1= ИОЬЬ ) зЕ ( 21РБесопбйббЫапбРгесьезоп > Допили и тельное тема пш ие скис Раздели 1 Часть <П ) ) тейигп ( <1рвегитпча1ие ) ) боиые (1ряа(еабб (боиые (1РР1гвскббгбапб, боиЫе (1рвесапбкбб1бапб) ( боиЫе (1рветигпча1ие = 0.0; ) 1нт <1рвесв«)и1ча1епг( боиЫе «бк, боиЫе *бВ ) ( гпг 15гагив " РАЬЯЕз 15тагив = (1рсвр< «бв, '== , *бВ (1рвайевббвепв111че ( (1рР1гвсвбб1бапб, 0.0, 11рвесопбвбб1бапб, 0.0 ВОЬЬ, РАЬЯЕ, ВО11)1 (1рвейитпча1ие 1( < РКОЕ = 151агиа ) ( гетега ((1рвейигпча1ие) ) зв ( (авв( «бА ) > йапв( *бВ ) ) *бВ = «бв) е1ве *бА = *бВ; гетигп 151атиа 1пт КагвеВггог, 1пс * рвггогва1веб ) ) боиЫе (1рва<евиптгассвепв111че ( боиЫе ба иЫе боиЫе бонЫе боиЫе (1рР1гвсЯиЫгаЬепб, <1РР1гвтвивтгавепбргесзв1ап, 11рвесоабЯиЫгаЬепб, (1рвесонбвиптгавепбРгес1в1ои р(1рвеви11ргес1в1ои, е)ве з( ( 0 всгсвр( Бсапб с ) ! 15татив = ( 11АЬаг0егТЬапв ) ВВ ( Ь15«)иа1 )1 е1ве 1( ( 0 = вггсвр( вСопб, ">* ) ] 15гатив = 1АЬатЧетгпапВ ВВ ( ьтввиа1 )1 е1ве татке[ Я1С1ЬЬ ); тегигп 15гативь АРифметика произ«ильи оп то«иоспзи Глава 24 детине«за«нные тенатн«ескне на здеаы Часть И! регат(( е = '); Написать ФУнкпшо аЕопЯР[т)йе, котоРаа бы лели- Таблица 24Л2.
Константы в программе вычист!( а(.14. ,ааепп11[!))! ла два больших числа, содержащихся в массиве типа ения ч„сла (1«2!(1<ИОНВяв И1Ота);к++) !опя [и(. Это уже не так просто, поэтому на %еЬ-сай( те издательства ДиаСофт в файле СЬ24АОК.с даны Имл константы Описание константы озй (Отов 1И Влад==э) некоторые подсказки (возможно, ошибочные), а в н()мВея ВАяе Основание нашего представления ргтпсг," 5.5 файлах СЬ24АОК.< и СЬ24АОК2.с приведено решсчисел Оепая( (отоя ти ваяв 1) нис.
Если вы не захотите пользоваться привсденны- 0)ВЗ )и ВАЗЕ Количество десятичных позиций в р [птт( а1.14',авевп1С[1!)! ми подсказками, то выполнение этого задания мо- числе йЦМВЕН ВАЗЕ-! зг ((!. $ 5! =1) жег стоить вам целого бассейна кофе и большого ой)МВЕН Ийюти Количество элементов в массиве, ргйпт1(" ); расстройства. представляющем число Оепияг 14 ззя а !О)=-0) йзМП Максимальное количество итераций в цикле проведения вычислений рг1пт(( 1п ); 14 ((з а )ОО)==О) Листинг 24.6.
Программа вычисления числа е с точностью до !0000 знаков после десятичной точки. рггптг( 1п )! ) з* коммептармв к этой программе првведеем ва иеЬ-сайте двасойт в Займе сЬ2(в10я.с *з ) 01пс1пде <подво.Ь> рг1пт!( 1п )! Е[пс1пае <11мгтв.ь> гетпгп 1! Оаеййпе 1ЫН1Т 1300 др нонн<та на ела и звал«нет та«насти ! ! Глава 24 Дои изи от ел ызте тем а от ее ее ие разделы Часть Гй Арибззытииаароизтыытй точиоети Глава 24 ыьз1е (а> ЕВИВЕВ ВАВЕ) ( в -- евивее вдве) Х += 1; ) Ваааиег)32 = а) гетега 1ВЕасаа) 50054 51326 38354 40001 86323 99149 07054 79778 05669 78533 58048 96690 62951 19432 47309 95876 55236 81285 90413 83241 16072 26029 98330 53537 08761 38939 63917 79574 54016 13722 Какой же ответ мы получим в результате выполнения приведенной програмлзы? Начало ответа приведе- но ниже, а полностью он содержится на йееЬ-сайте из- дательства "ЛиаСофт" в файле Оз24В)ВЕ.с. Резюме В данной главе рассмотрены способы, с помощью ко торых при использовании стандартного языка С мож но добиться высокой точности арифметических вычис 53696 77078 54499 69967 94686 44549 05987 93163 68892 30098 лений и создать программы для выполнения операпий вы хотите уметь делать то зке самое, то вам необхолимо е 2.71828 69995 95749 64274 27466 95260 59563 01901 15738 06680 82264 92069 55170 29760 67371 01416 92836 18284 66967 39193 07381 34187 80016 27618 13200 81902 59045 62772 20030 32328 93070 84774 38606 70932 55151 23536 40766 59921 62794 21540 11853 26133 87091 08657 02874 30353 81741 34907 89149 74234 13845 27443 46377 71352 54759 35966 63233 93488 54424 83000 74704 21112 66249 45713 29043 82988 41675 37107 75204 72306 52389 77572 82178 57290 07531 09244 53907 49338 96977 78442 47093 52516 03342 95251 76146 77449 26560 20931 50569 36187 89365 35128 43961 09586 31382 58459 25126 99376 91704 29435 23661 71807 76360 52189 08740 66327 12549 30096 41270 26053 81558 29460 35291 68329 14771 99465 57248 19777 80085 25572 50881 34624 59278 19660 90665 63990 85491 48943 90397 41587 18692 33259 42794 16396 33709 39186 56420 36273 09417 47792 23151 77846 58506 18035 16501 44200 01457 17719 51806 55386 06164 90433 72990 24003 16894 97526 85082 10163 43490 97477 80605 56050 78084 79250 46195 47608 19302 99086 99860 77983 40254 85731 58029 58636 06064 30754 42545 76964 23722 69672 53801 42115 29697 01366 58543 21206 60243 в е.я.
ся ошибки. И в качестве заключительного примера было вычислено число е с несерьезной точностью — всего лишь до десяти тысяч знаков после десятичной точки. Несерьезной? И число е, и число и уже известны с точностью до сотен миллионов знаков после точки, и, если В ЭТОЙ ГЛАВЕ ° Синтаксис и семантика естественных языков ° Сложности ввода естественных языков Обработка ееннкмеенных ко ы кое г Глава 25 О вался, что его умышленные двусмысленные выражения иметь систему синтаксических обозначений, и Папини бработка естественных языков были потеряны при переводе. Программы могут и не разработал такую систему. Она не так уж отличается от иметь двусмысленностей, но данные для этих программ нормальной формы Бэкуса (Вй) г) — очень мощная и могут их иметь.
очень неудобная. В школе вы, наверное, изучали английские суше- Синтаксис естественных языков ствительные, прилагательные и глаголы, а также пути определения подлежащего и сказуемого в предложении. Можно ли составить полную описательную грамматику такого языка, как английский? Нет, нельзя. Можно Вам известны такие термины, как "единственное чиссоставить и написать описательную грамматику некоЯи А'ильи торых частей английского языка, на котором говорят даточное предложение".
Вы также, может быть, знаете, что предложение в английском языке строится, как (или пишут) в отдельных районах. Но полная ~рамма- поавило, по поинципв "подлежащее-глагол-дополне- тика должна позволять использование таких выражений ° Сложности вывода естественных языков ние" Но встречали ли вы когда-нибудь диаграмму сле- дующего вида: же время указывать, что такие выражения употреблять не следУет.
Наблюдениа за РазговоРным Языком (в от- ((((т)н( (еа~ ) ) (( ( (( ) Лв ( (, личие от более официального письменного языка) показывают, что большую часть часть выражений, кото- которая разбирает один возможный вариант синтаксиса предложения Тбе саг гаг ол гле таг.(кот сидел на коврые мы употребляем, в действительности нельзя назвать рике)? Эта диаграмма в точности соответствует диаграм- Допалкнтельние мематнкескнерлтдени Обработка естественник лэикле Часть 1П Глава 25 Грамматические правила, приведенные в табл. 25 1, жение подтг1лаогг пееегрип яю~ петегуже абсолютно вне Глагол позволяют создавать такие предложения, как где Ьоу йвжел всякого понимания, но, тем не менее, по приведенным 1 а дгг1, а с!од пенек Ьагй ь где Ьоу юоп д!ет а Ьеаеу саг Го а грамматическим правилам оно возможно.
Получается, 1 1 уоипдд!ГЬ Эти прелложения обычны и корректны, они что это неправильная грамматика? верны с точки зрения английского языка. Но приведен- Нет, правильная. 1 ные правила позволяют создавать и такие странные Приведенные выше предложения на самом деле Сущестиг- 1 Срнестел- предложения, как где деееп Дод ййлел а уоипд гаЫе, а Ьеаеу вполне соответствуют правилам английского языка, а темнее предлог тел ьнсе 1 слте Ьаейл, север оЫ сйа!г лооп Бел оп гйе дгееп са!. Эти причиной, по которой они считаются ошибочными, \ 1 Ъ 1 Ъ предложения верны с точки зрения грамматики англий- является то, что в этом реальном мире у нас никогда бы Ъ ! 1 1 1 Ъ ского языка, но маловероятны с точки зрения реально- не возникла необходимость в их использовании. Эти Ъ 1 1 Ъ го мира (собаки не зеленые, стулья не лают).
Но, с дру- прелложения являются следствием наблюдений за этой Лртнаь 1 ! Лгттгкль Ъ гой стороны, это неплохо, что грамматика позволяет вселенной (" реальным миром"), но не за всеми возмож- Ъ 1 1 Ъ использовать такие предложения: в конде коннов, в ными вселенными.
Полезные обстоятельства, может Ъ 1 1 Ъ каких-нибудь огранных обстоятельствах они могут ока- быть, не так легко придумать, но это не означает, что р ваться полезными. они невозможны. С другой стороны, приведенная грамТЬе са? еа! Оп йе И Кроме того, приведенные грамматические правила матика не позволяет сказать то, что действительно не- допускают использование таких предложений, как влету возможно в английском языке, например, Ьаг)здгееп ннгй РИСУНОК 25.2.