Введение

Термин «частные алгоритмы действий врача» я впервые употребил в нескольких публикациях 1978-1980 годов. Два смысла вкладывалось в него с самого начала: во-первых, идеальное представление о способе действий, о поведении, о структуре поведения лечащего врача, во-вторых, наименование инструмента, который можно создать и использовать для логически обоснованных и даже безупречных врачебных решений. Впоследствии я не раз писал о том и другом в статьях, монографиях и публикациях в Интернете, так что эти очерки рассчитаны на читателя, уже знакомого с темой. Незнакомому проще всего обратиться к выпускам 57-70 рассылки «Зачем и как автоматизировать лечебно-диагностический процесс» (архив рассылки доступен для чтения и скачивания на сайте vmtavr2.narod.ru; там же можно познакомиться и с самими алгоритмами, и с соответствующей компьютерной программой: весь комплекс выложен для свободного использования).

Однако один аспект этой темы до сих пор не был детально представлен: не изложена методика разработки алгоритмов. Этими «очерками разработчика» я хотел бы ликвидировать оставшийся пробел. Они посвящены не обоснованию алгоритмизации, не содержанию алгоритмов, не результатам их применения, а способам и правилам их разработки. Думаю, это может быть интересно не только другим (предполагаемым) разработчикам, но и просто тому, кто вообще заинтересуется алгоритмами действий врача: известно ведь, что лучший способ понять, что заложено в предмете, - это узнать, как его создают. Кроме того, представление о том, откуда взялась сама идея вооружить врача алгоритмами, что породило ее и какие условия этому способствовали, тоже может дать пищу для размышлений. С последнего и начнем.

Часть 1. Как это случилось.

Случайность, не обещающая повторений. Это именно случилось: все главное произошло случайно и в одночасье. И потом на протяжении ряда лет повороты в развитии идеи определялись случайностями, которые следовали то одна за другой, то через огромные интервалы вплоть до последней, приключившейся через 37 лет от начала событий и подтолкнувшей меня к этим очеркам (об этом позднее). Счастливые случайности всегда любопытны: занятно и хочется понять, так ли уж они были ни с того, ни с сего. А ещё случайность события означает, что оно со всеми своими полезными последствиями может не повториться. Если оно не станет известным, а ценность его понятной, то все канет в Лету и второго раза не будет.

К тому, вообще-то говоря, идет, а я не все сделал, чтобы этому воспрепятствовать. Не рассказал с толком, чувством, расстановкой, как разрабатывались алгоритмы действий врача. Множество великолепных врачей из солидных учреждений Новокузнецка, Новосибирска, Тюмени, Перми, Барнаула, Красноярска, Улан-Удэ вложили в эти алгоритмы свой опыт и знания, но отображением этого богатства в виде алгоритмов занимался, к сожалению, лишь я один. Других желающих овладеть этим необычным ремеслом не было. Моим экспертам-клиницистам было вполне достаточно полученного с их помощью результата, а помощь состояла всего лишь в ответах на мои вопросы в ходе обычного диалога о знакомом каждому эксперту предмете, о его предмете. Как я потом выстраивал и распределял полученную информацию, выявлял пробелы, противоречия, неосознанные закономерности и неписаные правила, как придавал конечному результату форму, пригодную для использования в работе врача, - все это было моей собственной кухней. Иначе говоря, на мне начиналось и заканчивалось понимание того, как создается алгоритм. Я никому этого не передал. Не написал я и никакой инструкции на эту тему: что толку писать, если некому читать.

Но вот и еще одна, теперь уж последняя, случайность: вдруг появился продолжатель (как говорится, не прошло и сорока лет). В пору, когда я фактически отошел от дел, из другого города, в результате случайного знакомства с моим сайтом в Интернете. Понял идею, заразился, атаковал ею окружающих, изъявил готовность немедленно приняться за дело, включил телефон, электронную почту и скайп, наконец, явился лично и потребовал, чтобы его научили. Я взялся.

Первые же попытки подтвердили известную истину: одно дело – создавать что-то самому, подчиняясь интуиции, чувству меры и гармонии, собственному вкусу, совсем иное – внятно объяснить, почему надо поступать именно так, а не иначе. То, что казалось само собой разумеющимся, приходится формулировать. Сначала возникают вопросы «что» и «как», на которые легко отвечать точно и безапелляционно, как и полагается учителю. Но затем следуют «почему», «для чего», «а нельзя ли иначе», а там и возражения, собственные предложения и даже самочинные действия. Подавлять эту активность нельзя, остается глядеть в оба, чтобы тебя правильно поняли, чтобы из твоих утверждений не сделали ошибочных выводов. Заодно и утверждения эти пересматривать, проверять на прочность. Предлагаемые очерки – побочный результат именно такой работы: с алгоритмами, с последователем, с самим собой.

Но вернемся к истокам.

Нежданное приближение к идее. Был 1977-й год. Я работал над лекцией врачам-курсантам о тактике при округлых образованиях в легких. Содержание явно просилось в простую схему со стрелками: от симптомов – к предположениям, к способам выбора рабочей гипотезы, от гипотез – к действиям. Схема была нарисована на ватмане, но первоначальное наведение порядка в рассуждениях тут же побудило к детализации. От основных гипотез (опухоль, туберкулез, неспецифическое воспаление) нельзя было не спуститься на уровень ниже (рак или доброкачественная опухоль, туберкулома или туберкулезный инфильтрат, абсцесс или паразитарная киста) , нельзя было обойти вниманием и «соседние» области (лимфогрануломатоз, саркоидоз). От действий захотелось провести стрелки к результатам. От результатов, состоящих в ошибке или неудаче лечения, - к следующим гипотезам и следующим действиям. Одного ватмана для лекции не хватило, пришлось нарисовать переходящие друг в друга три схемы.

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

Осознание элементарной клинической ситуации. Деталей оказалось много. Первоначальные три схемы пришлось дробить на связанные между собою фрагменты. О ватманах уже не могло быть и речи, их заменили сначала простые листы бумаги, а потом – карты с краевой перфорацией формата К4 (половина листа формата А4). Карты пришлись кстати потому, что краевая перфорация позволяет их кодировать, а потом по коду быстро извлекать из картотеки с помощью спиц. Таким образом, каждая деталь разукрупненных схем получала свой код, связь одной детали с другими обозначалась на карте кодами этих других, а все детали собирались в картотеке, не вынуждая заботиться об их порядке благодаря кодированию.

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

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

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

Удивительные следствия. Случайное осознание сделанной находки сразу породило логичную систему понятий и соответствующих им терминов, систему, позволяющую лучше понять и описать врачебную работу вообще, как таковую. Переходящие друг в друга элементарные ситуации образуют линии. Движение по линии – это решение медицинской задачи по заранее описанной и обоснованной логике. Так как некоторые ситуации могут ставить перед врачом не одну задачу, а сразу две и более, то одновременно могут существовать несколько линий, параллелей. Параллели могут развиваться и завершаться независимо друг от друга, а могут противоречить друг другу (тогда одна из них закрывается в связи с противоречием параллелей) или дублировать друг друга (тогда используется поглощение параллели). Чем больше параллелей (относительно самостоятельных медицинских задач) возникает в ходе ведения пациента, тем сложнее работа врача. Сложность пациента, таким образом, может характеризоваться числом параллелей, из которых сложена клиническая картина.

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

Не менее удивительным, чем внезапное осознание поведения лекаря как последовательности элементарных клинических ситуаций, было восприятие алгоритмов врачами. Казалось бы, необычность предложенного им инструмента да еще для обязательного использования должна была вызвать сопротивление, но его практически не было, ни явного, ни скрытого. Конечно, реплики вроде «Я и без алгоритма все это знаю» были, но они прекращались, стоило только с помощью алгоритма показать оппоненту просчеты, недосмотры, а то и грубые ошибки в его собственной работе. Поразительно (или показательно?), что я не встретил непонимания со стороны своей ближайшей сотрудницы по кафедре – доцента Ларисы Петровны Чумаковой, человека с твердым характером и не менее твердыми клиническими правилами да еще терапевта, тогда как я – хирург. «С души воротит от перфокарт, но понимаю, что это здорово» - под таким девизом она сама участвовала в разработке алгоритмов «Пульмонология» и «Химиотерапия воспаления», а также вместе с ассистентом Аркадием Львовичем Ханиным провела сравнительный анализ работы врачей клиники до алгоритмов и после их внедрения.

Алгоритмы были разработаны и немедленно введены в практику первоначально только «для себя», в клинике, которой я руководил. Выход за ее пределы не был преднамеренным, он стал результатом нескольких случайностей. Сначала к моему нововведению проявил интерес профессор педиатрии Юрий Евгеньевич Малаховский (мы были с ним дружны и сопредседательствовали на городских клинико-анатомических конференциях). И уже очень скоро он сам и его доценты стали регулярно посещать меня для работы над алгоритмом «Педиатрия». Через несколько месяцев этот алгоритм был внедрен в детской клинической больнице № 4 Новокузнецка. Не меньшей случайностью был запрос на алгоритмы от главного врача больницы Новосибирского Академгородка Владислава Георгиевича Козлова. Его только что пригласили туда из Новокузнецка, так что он мельком видел мои алгоритмы и уловил, что их можно использовать для управления врачебной работой. Управление ему как раз и понадобилось на новом месте, где врачебный коллектив пребывал в состоянии разброда и шатаний (из-за чего и потребовалась звать на руководство варяга). Он поступил радикально: автобусом привез в Новокузнецк всех заведующих отделениями, показал им мои алгоритмы в действии и заразил идеей сделать то же самое у себя. Так последовали мои длительные командировки в Новосибирск. В результате контактов со специалистами этой больницы набор алгоритмов вскоре пополнился «Кардиологией», «Гастроэнтерологией» и «Акушерством и гинекологией». Между прочим, раздел «Роды и послеродовый период» последнего алгоритма, разработанный одним из первых после «Пульмонологии» именно в Академгородке с прекрасным специалистом Надеждой Николаевной Максимовой, оказался потом самым востребованным и долговечным в Новосибирске, Тюмени, Красноярске, Улан-Удэ и Барнауле.

Совсем уж неожиданным был визит руководителей Новокузнецкой станции скорой помощи Анатолия Захаровича Виноградова и Юрия Михайловича Янкина. Никогда никаких контактов не было у меня со скорой помощью, но они настаивали, что алгоритмы – это именно то, что им необходимо, и что вполне осуществимо в их специфических условиях. Результатом стало появление и немедленное внедрение алгоритмов для диспетчеров скорой помощи и врачей выездных бригад.

Последней случайностью была моя встреча с молодым заместителем заведующего Тюменским горздравотделом Александром Ивановичем Макаровым. Он ездил по городам и весям в поисках полезных организационных систем, а Новокузнецк в этом смысле тогда выделялся. Обо мне он услышал за несколько часов до своего поезда и зашел, благо я задерживался на работе. Так началась наша многолетняя творческая дружба, ближайшим результатом которой в следующие два года стало внедрение алгоритмов в крупных учреждениях Тюмени: на станции скорой помощи, в многопрофильной городской больнице № 2, в детской больнице и в родильных домах.

Дальнейшее уже не было случайным. Сработала особенность станций скорой помощи: их руководители в разных городах общаются между собою, по крайней мере, так тогда было на востоке страны. Поэтому на протяжении 4-5 лет я помогал главным врачам вводить алгоритмы для скорой помощи в Новосибирске, Барнауле, Перми, Красноярске, Улан-Удэ и Владивостоке. Скорая помощь всегда на виду у руководителей городского здравоохранения. Через самых активных из них поветрие распространялось на другие учреждения. Способствовали этому и появившиеся публикации, и две конференции по скорой помощи союзного масштаба (в Новосибирске и Тюмени).

Не перестаю и сейчас удивляться этому процессу, никак не инициированному сверху, никак специально не организованному, этой спонтанной активности руководителей институтских клиник, городских лечебных учреждений, органов здравоохранения, среди которых я вдруг обрел не только деятельных сторонников, но и личных друзей, в разных городах и на долгие, как оказалось, годы (редкий подарок, если тебе уже серьезно за пятьдесят).

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

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

Одно условие после только что приведенных описаний, напрашивается сразу: это свобода действия для руководителей медицинских учреждений и органов здравоохранения. В своей сфере ответственности они могли вводить организационные новшества, не испрашивая разрешения сверху. Главный врач тогда был более самостоятельной фигурой, чем сегодня, а хороший главный врач, пользующийся авторитетом в своем коллективе, нередко считался незаменимым, знал это и держался независимо. Это были зачастую инициативные и амбициозные люди, видевшие свою успешность в успешной деятельности своих учреждений, в доброй славе этих учреждений. О своих связях «наверху» они заботились лишь постольку, поскольку это было полезно для больницы, поликлиники или станции скорой помощи. К сожалению, социальные потрясения за 30 лет сказались на положении главного врача, на требованиях к нему, на степени его свободы. Амбициозности стало меньше, бюрократизация сделала инициативу наказуемой, финансовая зависимость вынуждает приспосабливаться к чиновникам. Так что одно из благоприятных условий для преобразований в организации врачебного дела зримо ослабевает, а, может быть, и вообще исчезает. Конечно, относительная независимость главного врача – это условие внешнее, никак не связанное с сущностью алгоритмизации, оно частично объясняет реализацию, распространение и развитие идеи, а хотелось бы узнать о предпосылках ее рождения. Были и такие, принципиально важные, личные и социальные. К сожалению, ныне тоже исчезнувшие.

Исчезнувшие предпосылки. Со студенческих лет меня привлекало представление различных процессов в виде схем, где квадратами с текстом обозначались последовательные этапы, а стрелками - переходы от причин к следствиям и превращения следствий в причины последующих событий. В далеком 1950 году профессор патофизиологии Днепропетровского мединститута Эммануил Яковлевич Стеркин с помощью таких схем завораживал студентов на своих лекциях, увлекался их логичностью сам и время от времени прерывал возбужденное изложение коротким обращением к нам: «Понятно, да?». Да, было замечательно понятно.

Понятностью, логичностью, точным выражением мысли привлекали меня схемы распознавания и лечения острых отравлений, этапной помощи в военно-полевой хирургии, удивительные «Очерки гнойной хирургии» В.Ф.Войно-Ясенецкого, замечательные книги по оперативной хирургии, где действия хирурга расписывались с предельной детализацией. К порядку, последовательности, обоснованности, конечно, побуждала профессия хирурга и ранняя самостоятельность в этой сфере. Что касается ранней самостоятельности в хирургии, то она особенно побуждала опасаться ошибочных решений и поступков, пытаться их предвидеть, продумывать альтернативы. В начале 60-х мне попалась редкая в своём роде книга «Ошибки, опасности и непредвиденные осложнения» Э.Гессе, С.Гирголава и В.Шаака (1936 г.). Впечатление от скрупулезности в описании возможных ошибок было очень сильным, наложило отпечаток на всю мою деятельность в медицине. Моя докторская диссертация была наполовину посвящена ошибкам и опасностям в легочной хирургии, а потом это стало содержанием отдельной книги (в соавторстве с Е.А.Вагнером).

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

Рост знаний, рост информации в тех же семидесятых остро ощущался во всех областях знания, не только в медицине. Не за горами маячила эра компьютеров. А пока притчей во языцех стали системный подход, системный анализ, системотехника, обратные связи, управление, кибернетика, – и все это иллюстрировалось схемами с квадратиками и стрелками («квадратология плюс стрелометание» - смеялись остряки). Естественно, я был готов к восприятию этих понятий, к тому, чтобы с их помощью найти приемы, хоть как-то гарантирующие оптимальность врачебных решений. Так возросшая личная озабоченность и личные пристрастия совпали с объективными проблемами быстро развивающейся медицины и с общим состоянием умов на подступах к информационной революции.

Я думаю, что теперь этих предпосылок нет, они исчезли. Вскоре после того, как компьютеры взяли на себя функцию запоминания, расчеты и отчеты, утихли и разговоры о системном подходе в медицине, а значит – и о логичности врачебных действий, о предотвращении неточностей и ошибок за счет логичных и детальных схем. В качестве решения задачи на первый план выступили наперед составленные медицинские стандарты и протоколы. Не инструмент логического вывода, не навигатор, обеспечивающий пошаговое движение с учетом конкретных обстоятельств, а одномоментно заданный набор действий при однажды названном диагнозе или состоянии. Здесь врачу не предлагают рассуждать. Здесь требуется подчинение стандарту, который кем-то составлен. В алгоритме, напротив, предлагается рассуждение: возможности выбора, аргументы для выбора, логичные следствия сделанного выбора, оценка результатов сделанного выбора. Это – естественный способ в медицине: так умудренный опытом специалист помогает менее опытному, советует равному, обосновывает свое поведение перед старшим.

Медицина пропустила этот естественный для себя путь развития и вышла на простые, командные решения. А вот тут включилась новая сила: там, где правильность сводится к соблюдению команд, управление легко перехватывает чиновник. Чтобы следить за соблюдением стандартов, ни заведующий отделением, ни начмед, ни главный специалист, ни профессор медицины не нужны. Не нужны носители знаний и опыта. Простое решение найдено, закреплено официально, объективная потребность этим паллиативом будто бы удовлетворена, голод утолен. И спонтанного возврата к естественному решению задачи не будет нигде.

Остается предполагать, что уже высказанная и реализованная однажды идея алгоритмизации медицинской практики, подкрепленная описанием ее истории и изложением способов создания алгоритмов, вдруг да дождется своих энтузиастов, пожелающих с нею в руках противостоять общей тенденции. Опираясь на эту хрупкую надежду, продолжим.

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

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

Но оно существует. Представления об оптимальном поведении врача в конкретных и меняющихся условиях существуют объективно: в умах лекарей, в виде неосознанного идеала, идеала целенаправленной деятельности в условиях неопределенности. Его нельзя изложить, не владея врачебной специальностью, не вникая в технологические закономерности лечебно-диагностического процесса и не заботясь о соблюдении правил логики. Оно есть только у опытных врачей. Но, не выраженное в словах, в сформулированных правилах «на все случаи жизни», оно чаще всего существует аморфно, в виде пресловутой «интуиции» и уже поэтому не всегда используется даже самими их обладателями. А ведь есть ещё и проблема огромных объемов информации, которая наваливается на современного врача, из-за чего начинает действовать известный парадокс: богатство выбора затрудняет правильный выбор.

В повседневной работе врач не задумывается о своем положении в качестве основного звена системы «лечебное учреждение», не очень-то следит за логичностью своих действий и, конечно, ни один врач не владеет всей информацией даже в своей специальности так, чтобы не упустить ничего, относящегося к каждому моменту его работы с пациентом. Поэтому идеал не может реализоваться, врач движется поблизости от идеальной трассы, но не по ней.

Итак, идеальные представления о поведении врача существуют в умах, но в размытом, в раздробленном, в рассеянном виде. Их надо оттуда добыть и собрать. Алгоритмы действий врача – не сочинение разработчика, а его добыча: по зернам, по крупицам, хотя изредка попадаются и россыпи, и самородки. Все годится, все надо собрать во всей полноте, всему этому богатству придать такую форму, чтобы сделать его действенным, доступным каждому лекарю на его рабочем месте. Разработчик – не автор, не сочинитель, он старатель. А потом еще и ювелир, огранщик. Но не более.

Продолжение следует

Полностью материал доступен на сайте vmtavr2.narod.ru/algo_razrabotka.htm