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

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

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

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

которую можно использовать рскурсивно. Убслитссгь 08 09 Примср корректной реализации программы (ой2 что у нсе нет "внутреннего состояния", которое может 10 (нггнрп(гнр, [бьь[0121456780,(бщ!) == нггьнп(Свр) 46 прсдсзавлсн пол илеснсле 1083.0. Эта программа исполь- проявиться.

Она должна полностью полагаться на пс- 11 нсгсьг(свр, ',')) ( зуст функцию, эквивалснтнукз бсрклисвской ф>нкции рсмснныс с автоматичсским выдслсннсм памяти и на 12 Спх(я, [бЫ),[ббь!); 5(гэср(В под новым имснсм веря!ГО. Прсдлагаю вам ис- свои арг>мснты и возвращать тс значения, которые вам 13 ) е1ве ) ве поль ювать эту ф>нкцию в своих программах; она, в нсобхолимо знать для послслуюшсго обращения к ной. 14 рг)пгг([бьь)Сохнпе Сн>п[бьь), Свр); 15 ) прннпнпс, эквивалсеина стандартнон, хотя, возможно, На тот случаи, сели у вас нот доступа к ечсЬ-сайт> 16 Свр - нггСох(деЬГч ан)ьн); нс столь изящна, как сс аналог в бсрклисвскон всрсии издательства "ДиаСофт", примср рсализапин ьерв(гО 17 оган;юртной библиозски С.

Почему она называется прсдстапзсн в листингс (О.! ! 18 ) вера!г, а нс 51гаеру Потому что в стандартс С зарсзсрви- Листинг 10.11. Функция аер61г(). Проследим за выполнснисм програмлпл. Начнем сна- ласт значение своего внутреннего слсдующсго указатс сваг * !!сргсноянр~ нннн яшя С ЯД Часть ! ласт на нулевой указшсль, функция нс может слслать лиотскс, то >видите, что достаточно поставить се на Резюме ничего полезного, поэзому она такмсе возврашает н>ле- место яерятг(), и больше ничего не надо л1снять. (Если вой указатель.

Помните, что опсраторлогического ИЛИ только вам не попадется система, в которой функция В этой главе вы узнали, чзо такое рекурсия, как опа в языке С подобен короткому замыканию; если при а!гаер() будет совсем не такой, как в др>гих системах. действует и лля решения каких проблем сс можно испсрвой жс проверке обнар>жена несостоятельность ар- Это может звучать нег|равлоподобно, но изредка !акое пользовать. Бь!ли рассмотрены примеры, демонстриругумснтов, вторая проверка даже нс начинасзся. Почто- происходит в расширениях языка.) юшис суть действия рекурсии, а также примеры нсцсму безопасно проверять *я, котла известно, что з нс яв- лссообразного использования рекурсии.

Мы показали ляется нулевым Указателем. После проведения этих ПрщТИЧЕО(ОЕ ПРИМЕНЕНИЕ рЕ)(урмии пару ловушек, ко!орые с>шествуют в рекурсивных копровсрок сохраняем возвращаемое значс1!ис. Вне зави- дах. Теперь вы сможете сделать разумный выбор мсжсимости от того, что произойдет, возврашасл!ая лексе- Рекурсии целесообразно применять в задачах, которые д> рекурсией и итерацией в конкретных задачах. Если ма всегда будет начинаться с нач;ша строки.

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

Иногда лучших~ способом является стандартной литерат>рс, такой как книга Кнута (Кпшп) чстания сотр1ен~енг храп (лополнитсльный диапазон): комбинация: рекурсивный алгоритм разбивает задач> на "Тйс Лг! о) Согпрц!сг Ргоягагппппа". она возврашаез длину на пльнон подстроки до первого чаши, с которыми работает итсраппонный код. Если у вас появится желание полробнее ознакомить- аргу'чснта, который определяет диапазон (т.с, полнос- Класснчсским примером использования рек>рсии ся с концепцией рекурсии, включая некоторыс нскомтью состо>ы из элементов, он1сунктнеуон!их во второи являсзся, вероятно, синтаксический анализ. Проще гоаргумснзс).

Если первый символ после этого диапазона вора синтаксический анализ по своей природе нялнесн пьютсрные ситуации, в хозорых она проявляется, прочитайтс книгу Дугласа Хофстазтсра (Е>овк)аз Но(масйсг) "Сог)е1, Еьс1>ег, ВасЬ". г)ел< л>чшс вы познастс суть рек>рсии, тем эффективнее сможете использовать се в программировании. Если вы хотитс еше поразмышлять о рекурсии, вот вам задача. Я дока~ад, что использовать рскхрсивн>ю функцию для чтения входных данных нецелесообразно, а лля синтаксичсского аназиза это самый полходяшии метод. Если ваша рекурсивная анализир>юшая программа вызывает функцию лля чтения вхолнь!х ланнь!х, это хорошо или плохо? Если цзохо, то чем этот способ действительно отличается от рекурсивного чтения входных данных? Я задавал эти вопросы некоторым достаточно опытным про!раммнстам и получил очень интсрссныс ответы.

Заявите зги вопросы своим друзьям Простые абстрактные структуры данных Организация данных в этой глдвк ° Мдссивы ° Односвязныс списки ЧАСТЬ Ричард Хэзфилд ° Двусвязные списки ° Циклические списки Е Стеки ° Очереди ° Очереди по приоритету ° Двусторонние очереди (век|О : ' "-:: '.у !::;",!:;,."з ф",.".;!'.,дт;. С; -: ч!;" т:се е *'„:",: с ея 'в',те'",~:,'''* д '... ц т'.,".:.;.'. «' .. '» *' з (" ...,ф / и / 1 ;"* ф ;: ". и„";",,"„'.„,':;е:"; д "с "-:": *',.' "!.',"*ы ";;" , 'д / ' '*'« ' »'*' » *'' «, ''е ;"в "',дс: В "";...,:„"" "'"' ..:. 'з,'...! .,* „„..::.*~;"т '... :"": - .::С:.:.'к:;.

"'."-.,:, т':~;;т: '".'":, ,"д* ",,"и,' -*,"" т "и т'„' р е д;; ' .. д "к; ' с",;.:.,д "', я;.,:д.*,.з ("''*, ',, *, ' ' с",;„*,з р '"д т;: ., ",ч";з "С :!:.;пес:ттч.::с: и'Ч " и!.,".я. " '":: "".... '"ч Нры ыыаобгырагтхыегарулыурыбилпыг Глава 11 В настоящей 0лаве рассматривается большинство Давайте жс теперь начнем с наиболее знакомоп, воря уже о том, умеют ли они вообще компилировать лпе свеогбегп(оввай ьгнв кчассичсскил структур данных, но деревья не влодят в мошной и в значительной степени нелооцениваемои программы. Таким образом, на вас возлагается задача плге Г нахкпгг)еа) это число, потому что они заслуживают отдельнои гла- структуры данных — с массива. сопровождения и молификации гной программы всякий ( вы (фактически даже нескольких глав). Здесь будут раз, когда пользователю булез мешать произвольно ус- влге е л; описаны способы обобщения понятий классичсскил ~Щ~Щ~ц тановлсннос ограничение размера л<ассива.

А это постав- 1пг соедпогдег = 1; структур данных, с тем чтобы отделить гтруктурл дан- ляет лишнис неудобства вашим заказчикам. (ог(1 = 01 л < нахнпгглеа лл согапогдег1 ных от реальных данных Действительно, ведь лолжна Массив — это не просто структура данных; это также (л+) жс существовать вгмможность составить список полу- механизм языка, который позволяет адресовать множс- Одномерные массивы фиксированного размера Соедпсгдег = Сееспвсгдвг(ьсгйегАггау[1))1 пок, нс объясняя списку, чзо такое печеные бобы, или ство подобных объектов в простом цикле.

Массивы зас- Олномерныс массивы, несомненно, являются самыми печеным бобам — что закос списки. Муя коснемся так- луживают пристального изучения по той причине, что распространенными. Нет необходимости рассматривать гегпгп же поншив инкапсуляции (объединения данных с их принципы работы с ними могут быть использованы лля их здесь очень полробно, поскольку они относительно 1 функциональным назначением), но нс получайте. по- реализации любви классической структуры данных. просты.

Но все же следуез, по-видимому, напомнить, Этот код уже лучше Здесь все еще остается цроблежалуйста, что эта глава об объектно-ориснтированнол~ Вас можст удивить тот факт, что массивы, состав- что язык С не позволяет програлзл~ист>' перелавать мас- ма связанная с фиксированным размером массива, но программировании (ООП).

Это нс так. Тел~ нс монсе, ляя одно из осно~юполагаюших понятии языка С, под- оив в функцию. Что можно перелаз ь в лсйствитсльнос- мы пока нс будем ею заниматься. нскоторыс принпнпы ООП исключительно хорошо под- робно рассматриваются в книге, которая самым опрс- ти, так это значение указателя на первый элемент мас- Поскольку компилятор знает размер типа ходят зщя проектирования структур данных на языке С, деленным образом предназначена нс для начинающил сива.

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

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

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

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