-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в only123

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 13.05.2005
Записей: 245
Комментариев: 1584
Написано: 2037





Memento mori

Четверг, 24 Ноября 2005 г. 19:58 + в цитатник
Это цитата сообщения Richard_Arden [Прочитать целиком + В свой цитатник или сообщество!]

В колонках играет - Delight, Naamah, Via Mistica, Artrosis, Closterkeller
Настроение сейчас - Memento mori

"Memento mori,
Мой милый друг" -
Прошепчет в горе,
Очертит круг.
Целуя крестик
Утрет слезу:
"Мы снова вместе,
В одну грозу..."
Могильный камень,
Сонливый вяз.
Тихонько:"Amen",
Не пряча глаз.
"Не отрицаю,
Господь с тобой,
Вино лакает
И на убой
Шлет сотни, тыщи
Таких, как ты"
И ветер свищет
Из пустоты:
"Memento mori,
Ночной король,
В небесном море
Есть своя соль..."
00158.jpg (449x700, 102Kb)

*****

Понедельник, 03 Октября 2005 г. 17:07 + в цитатник
Это цитата сообщения Пасумыч [Прочитать целиком + В свой цитатник или сообщество!]

Глаза на мгновенье закрой, загляни на миг в мою душу.
Не тревожься сейчас ни о чём, скажи слово, чтоб я Тебя слушал.
Если хочешь – устало молчи. впрочем, делай то, что захочешь.
я хочу быть сегодня с Тобой и забыться, в Твои глянув очи…

Без заголовка

Вторник, 30 Августа 2005 г. 17:47 + в цитатник
Это цитата сообщения Heid [Прочитать целиком + В свой цитатник или сообщество!]

среда. 12:02.

взгляд налево.
балкон. прохлада.
меня держит здесь что-то.
может быть сестра.
которая нежится в постели.
может быть кошка.
свернувшаяся на коленях.
может быть паук на стене.
помогающий мне засыпать.
может быть миссия по спасению бабочки.
может быть radiohead - like spinning plates.
играющий в комнате.
не хочу умирать.
и жить тоже.
мне нужен друг.
ты.
в гости ко мне под одеяло.
чтобы провести надо мне очередной эксперимент.
.
отсутствие присутствия.



четверг. 21:55.

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

Без заголовка

Понедельник, 25 Июля 2005 г. 01:29 + в цитатник
Это цитата сообщения ††NiGhT_eLf†† [Прочитать целиком + В свой цитатник или сообщество!]


Министерство образования
Российской федерации

УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ








Т.В.Афанасьева



Основы визуальной алгоритмизации

Учебное пособие








Ульяновск 2002




УДК 681.3 (075)
ББК 32.81я73

Т.В.Афанасьева
Основы визуальной алгоритмизации: Учеб. пособие для студентов спец. 5102, 5525, 5501/ Под ред. С.Г.Валеева. - Ульяновск , 2002. - с.
Учебное пособие разработано на кафедре прикладной математики и ин-форматики в соответствии с учебными программами для студентов технических и математических специальностей. Содержание включает изложение методиче-ских приемов по практическому составлению визуальных алгоритмов, которые могут быть использованы для подготовки к выполнению практических заданий по курсу "Информатика" и "Программирование".
В данной работе определено место проектирования алгоритмов при ре-шении задач на ЭВМ, рассмотрена технология проектирования и способ про-верки несложных визуальных алгоритмов, приведено множество примеров и заданий для самостоятельного выполнения, алгоритмическое решение некото-рых из них (эти задания отмечены звездочкой ) имеется в конце данного учеб-ного пособия. Для проверки полученных знаний можно воспользоваться тесто-выми заданиями, приведенными в приложении.
Учебное пособие предназначено для студентов вузов дневной, вечер-ней, заочной и дистанционной форм обучения.

УДК 681.3 (075)
ББК 32.81я73

Рецензенты:
доцент ульяновского филиала С Г И Иванов В.С.


Утверждено редакционно-издательским советом
Ульяновского государственного технического
университета в качестве учебного пособия.

@ Оформление УлГТУ, 2001
@ Афанасьева Т.В., 2001
ISBN 5-7695-0330-0
Оглавление
ВВЕДЕНИЕ 4
1. АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ И ЕЕ ПРЕДМЕТНОЙ ОБЛАСТИ 5
2.ФОРМАЛЬНОЕ РЕШЕНИЕ ЗАДАЧИ 7
3.ОСНОВЫ АЛГОРИТМИЗАЦИИ 9
4.ОСНОВНЫЕ СРЕДСТВА ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ 10
5.ВИЗУАЛЬНЫЕ АЛГОРИТМЫ 11
6.РАЗВЕТВЛЕННЫЕ АЛГОРИТМЫ 13
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 19
7.ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ 19
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 22
8.АЛГОРИТМЫ ОБРАБОТКИ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ЧИСЕЛ 25
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 27
9.АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ 27
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 37
10. АЛГОРИТМЫ СОРТИРОВКИ ОДНОМЕРНЫХ МАССИВОВ 37
10.1. СОРТИРОВКА МОДИФИЦИРОВАННЫМ МЕТОДОМ ПРОСТОГО ВЫБОРА 38
10.2.СОРТИРОВКА МЕТОДОМ ПАРНЫХ ПЕРЕСТАНОВОК 41
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 42
11. АЛГОРИТМЫ ОБРАБОТКИ УПОРЯДОЧЕННЫХ МАССИВОВ 42
11.1.ПОИСК ЭЛЕМЕНТОВ В УПОРЯДОЧЕННОМ МАССИВЕ 42
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 44
12.АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРННЫХ СИМВОЛЬНЫХ МАССИВОВ 44
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 48
13.АЛГОРИТМЫ ОБРАБОТКИ ДВУМЕРНЫХ МАССИВОВ 48
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 53
ЗАКЛЮЧЕНИЕ 53
ПРИЛОЖЕНИЕ 1. ТЕСТОВЫЙ САМОКОНТРОЛЬ 54
ПРИЛОЖЕНИЕ 2.ТАБЛИЦА СООТВЕТСТВИЯ АЛГОРИТМИЧЕСКИХ И ПРОГРАММНЫХ ФРАГМЕНТОВ 57
СЛОВАРЬ ОСНОВНЫХ ПОНЯТИЙ И ТЕРМИНОВ 59
ЛИТЕРАТУРА 63
ОТВЕТЫ И РЕШЕНИЯ 63

ВВЕДЕНИЕ

Решение любой задачи является творческим процессом, кото-рый состоит из нескольких последовательных этапов. К ним отно-сятся :
А. Анализ постановки задачи и ее предметной области
1. понимание постановки и требований исходной задачи, определе-ние предметной области, для которой поставлена задача,
2. анализ предметной области, выявление данных, которые фикси-руют входную и выходную информацию (определение их струк-туры и свойств ),
определение отношений между данными, условий и ограничений, накладываемых на эти отношения,
Б. Формальное моделирование решения задачи
3. выбор и применение формальной системы для описания модели предметной области и решения задачи,
4. формирование основной идеи, выбор методов решения задачи,
5. определение технологий, средств и исполнителя решения задачи, построение алгоритмов, реализующих выбранные методы,
В. Практическое решение
6. применение выбранных методов и средств для решения ,
7. анализ полученных результатов.
Эти этапы ориентированы для получения решения не отдельно взятой, конкретной задачи, а некоторого класса задач данного типа. Этап построения алгоритмов , реализующих выбранные методы ре-шения задачи, детализирует и визуализирует процесс ее решения. Алгоритмизация позволяет уже на этом этапе оценить эффектив-ность решения, уточнить методы решения для различных потоков входных данных и выявить некоторые ошибки.
В этой последовательности наиболее трудоемким и рутинным явля-ется этап применения выбранных методов и средств для решения за-дачи. В настоящее время наиболее распространенным средством для решения задач является ЭВМ. Применение выбранных методов и алгоритмов для решения на ЭВМ включает дальнейшую детализа-цию ее решения за счет описания последовательности применяемых операций в виде программы для ЭВМ. Это придает процессу реше-ния не только визуальные качества, но и качества интерактивности.
Не все задачи, решаемые с помощью ЭВМ, требуют составле-ния сложных программ. Например, задачи вычислений в электрон-ных таблицах или задачи поиска и выборки данных в базах данных. Решение некоторых задач благодаря внедрению новых информаци-онных технологий вообще не требуют программирования, что рас-ширяет сферу применения ЭВМ. Однако, и при решении этих за-дач необходимо выполнение вышеприведенных этапов.
Целью данной работы является рассмотрение этапов реше-ния задачи с использованием ЭВМ, при этом наибольшее внимание уделяется составлению алгоритмов или алгоритмизации, так как, на мой взгляд, этот этап является достаточно трудоемким и важным. Любые ошибки, возникающие при построении алгоритмов, приводят к серьезным погрешностям при решении задач.
Эта работа предназначена для тех, кто не умеет, но стремится научиться использовать ЭВМ при решении задач, составлять кор-ректные алгоритмы и на их основе правильные программы. Умение составлять алгоритмы позволит получить детальное решение и мо-жет быть использовано при любых технологиях проектирования программ от структурного программирования до объектно-ориентированной и компонентно-ориентированной технологии.

1. АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ И ЕЕ ПРЕДМЕТНОЙ ОБЛАСТИ

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

Классификация данных по структурному признаку




Простые Структурированные



Нечисловые Числовые Однородные Неоднородные

Рис. 1. Классификация данных

На рис.1 представлена классификация данных.
Данное относят к простому типу, если в любой момент времени оно определяет одно и только одно значение. Диапазон изменения возможных значений определяется типом данных. Например, требу-ется вычислить площадь поверхности некоторого тела. Очевидно, что для представления информации о вычисляемой площади по-верхности некоторого тела достаточно использовать данное просто-го числового типа. Простые данные определяют такое отношение: одно имя - одно значение.
Структурированные данные отличаются от простых тем, что к ним применимо другое отношение: одно имя - много значений. Если все элементы, входящие в такую структуру, однотипны, то такая структура называется однородной, в противном случае - неоднород-ной. Классическим примером однородной структуры является мас-сив, являющийся последовательностью однотипных значений, та-ких как, например, (2,51,3,7,88). Неоднородная структура в отличие от однородной содержит значения различных типов, относящихся к одному понятию или объекту, и, значит, такое структурированное данное несет в себе больше информации. Для представления неод-нородных структур используют запись. Запись - это структура, предназначенная для представления данных различного типа. Запись состоит из поименованных полей, каждое из которых должно со-держать значение определенного типа.
Рассмотрим простой пример. Задача заключается в определе-нии в некоторой стране города с максимальным количеством жите-лей. Данные, которые необходимо проанализировать, это нечисло-вые данные, содержащие информацию о названии города, и число-вые данные, содержащие информацию о численности населения в этом городе. В качестве структуры, содержащей данные о названии города и количестве в нем жителей, следует выбрать неоднородную структуру - запись, пример которой изображен в таблице 1.

Таблица 1.Пример записи

Имя поля: Город Имя поля: Количество жителей
Тип поля: Строка символов Тип поля: Число
Значение: Москва Значение: 8 578 676

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

2.ФОРМАЛЬНОЕ РЕШЕНИЕ ЗАДАЧИ

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

Пример 1.Постановка задачи. Требуется определить пригодность данной ауди-тории для проведения учебных занятий.
Решение.
Этап 1. Анализ постановки задачи и ее предметной области.
В результате анализа предметной области, выявляем, что эта предметная область связана с образовательным процессом. И постановка задачи может быть переформулирована следующим образом. Определить, подходит ли некоторая аудитория для проведения занятий группы учеников при некоторой норме площади для каждого ученика. Введем обозначения для входных и выходных данных. Исходные данные должны быть представлены простыми переменными значениями числового типа: А - ширина аудитории, B - ее длина, К - количество учеников в группе, N - допустимое минимальное количество квадратных метров для одного ученика (норма ), M - количество парт в аудитории. В качестве вы-ходных данных будут выступать сообщения: " Аудитория может быть исполь-зована для поведения учебных занятий " и " Аудитория не может быть исполь-зована для поведения учебных занятий ".
Этап 2. Формальное решение.
Определим отношения между входными и выходными данными. Для это-го введем промежуточные данные числового типа : S - площадь аудитории, C - требуемая по нормам площадь для проведения занятий для группы из К учени-ков, D - требуемое количество парт для обучения группы, состоящей из К уче-ников. Опишем соотношения между входными и выходными данными, исполь-зуя математические зависимости. Математическая модель:
S = A*B,
C=N*K, S>=C, K<=2*D.


3.ОСНОВЫ АЛГОРИТМИЗАЦИИ

Слово "алгоритм" появилось в 9-м веке и связано с именем ма-тематика Аль-Хорезми, который сформулировал правила выполне-ния четырех арифметических действий над многозначными числа-ми.
В настоящее время понятие алгоритма - одно из фундаменталь-ных понятий науки информатика. С одной стороны алгоритм явля-ется предметом изучения такой отрасли математики как теория ал-горитмов (Марков [1]), с другой стороны в информатике существует неформальное определение алгоритма, и алгоритмизация выступает в качестве общего метода информатики.
Объектом приложения алгоритмов являются самые различные науки и области практической деятельности (Хохлюк[3],Ахо [2]). Широкое применение алгоритмов для решения практических задач не только при использовании ЭВМ позволяет рассматривать эту об-ласть информатики как отдельную дисциплину - алгоритмику.
Алгоритм - это точно определенная последовательность дейст-вий для некоторого исполнителя, выполняемых по строго опреде-ленным правилам и приводящих через некоторое количество шагов к решению задачи.
Исполнитель алгоритмов определяет элементарные действия, из которых формируется алгоритм. Отдельные действия, составляющие алгоритм, называются операциями. При этом под операцией пони-мается как какое-то единичное действие, например, сложение, так и группа взаимосвязанных действий.

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

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

4.ОСНОВНЫЕ СРЕДСТВА ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ

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

5.ВИЗУАЛЬНЫЕ АЛГОРИТМЫ

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



Рис.2. Основные блоки визуальных алгоритмов


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





Рис. 3. Пример линейного визуального алгоритма




6. РАЗВЕТВЛЕННЫЕ АЛГОРИТМЫ

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








а) ветвление б)неполное ветвление в) многоальтернативный выбор

Рис. 4. Структуры ветвления


Каждая управляющая структура ветвления имеет один вход и один выход. Ветвления содержат блок условия, в котором записы-вают логические условия, такие как А >С , X<= Y. В зависимости от значений переменных А,С в управляющей структуре ветвления на рис. 4 а) условие А >С принимает значение "истина" или "ложь" и процесс вычислений включает блок действия Z=A или Z=C. Анало-гично происходит и в управляющей структуре неполного ветвления (рис. 4 б)). Только в этом случае , если условие X<= Y истинно, то выполняется действие С=Х, в противном случае никаких действий не выполняется.
В управляющей структуре многоальтернативный выбор в блоке условия записывается переменная, в данном случае Х, которая мо-жет принимать различные значения (рис. 4в)). Если значение пре-менной Х совпадет с одним из значений в блоке действия, то вы-полняется действия , записанные в этом блоке. Например, если Х=1, то выполнится действие У=1. Если значение Х не совпало ни с од-ним из значений, указанных в блоках справа, то выполняется дейст-вие в блоке слева, которого также как и в неполном ветвлении мо-жет и не быть.

Пример 2.Составить алгоритм нахождения минимального значения из 3-х чисел. Решение. Для определения минимального значения будем использовать провер-ку пары значений. Визуальные разветвленные алгоритмы приведены на рис.5,6,7. Эти алгоритмы использует для обозначения чисел переменные значе-ния А,В,С и вложенные структуры ветвления.






Рис. 5. Поиск минимального значения из трех чисел A,B,C при помощи двойного сравнения.













Рис. 6.Поиск минимального числа из трёх А,В,С.
Метод последовательного сравнения .




Пример 3. Составить алгоритм определения находится ли точка М с координа-тами Х,У на окружности радиуса R.
Решение. Визуальный алгоритм приведен на рис. 8.Для решения в нем используется математическая модель в виде формулы окружности R2 = X2+Y2.




Рис. 7.Поиск минимального Рис. 8. Определить находит-
числа из трёх А,В,С. Метод ся ли точка М с координа-
сравнения с промежуточной ми Х,У на окружности
переменной М. радиуса R.




Пример 4. Составить алгоритм определения корней уравнения (X2+B*X+C=0).
Решение. При составления этого алгоритма надо рассмотреть случаи, когда уравнение не имеет корней и когда имеется только один корень.Обозначим корни уравнения через переменные Х1,Х2. D - промежуточная переменная для вычисления дискриминанта. Алгоритм вычисления корней уравнения заданного вида приведен на рис. 9.





Рис.9. Алгоритм вычисления корней уравнения X2+B*X+C=0

Задания для самостоятельного выполнения
Составить визуальные разветвленные алгоритмы для следующих за-дач.

1.Для двух чисел Х,У определить, являются ли они корнями уравнения А*Р^4+D*P^2+C=0
2.Если среди трех чисел А,В,С имеется хотя бы одно четное вычислить макси-мальное, иначе - минимальное
3.Ввести положительное А>=1. Найти наибольшее из выражений вида 1\А и SIN(A).
4.Ввести два числа . Меньшее заменить полусуммой, а большее - удвоенным произведением.
5.Ввести три числа А,В,С . Удвоить каждое из них , если А>=В>=С, иначе по-менять значения А и В.
6.Определить является ли точка с координатами X,Y точкой пересечения диа-гоналей квадрата со стороной R ,одна вершина которого расположена в начале координат.
7.* Определить значения функции в зависимости от значения аргумента

а*х2 , если х > 10
у= 1/х , если -10 х 10
Sin(х) , если х < 10


7. ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ

Циклические алгоритмы являются наиболее распространенным видом алгоритмов, в них предусматривается повторное выполнение определенного набора действий при выполнении некоторого усло-вия. Такое повторное выполнение часто называют циклом.
Существуют два основных видов циклических алгоритмов: циклические алгоритмы с предусловием, циклические алгоритмы с постусловием. Они отличаются друг от друга местоположением ус-ловия выхода их цикла.
Цикл с предусловием начинается с проверки условия выхода из цикла. Это логическое выражение, например I<=6. Если оно истин-но, то выполняются те действия, которые должны повторяться. В противном случае, если логическое выражение I<=6 ложно, то этот цикл прекращает свои действия.
Цикл с постусловием функционирует иначе. Сначала выполня-ется один раз те действия, которые подлежат повторению, затем проверяется логическое выражение , определяющее условие выхода из цикла, например, I>6 .Проверка его осуществляется тоже по-другому. Если условие выхода истинно, то цикл с постусловием прекращает свою работу, в противном случае - происходит повторе-ние действий, указанных в цикле. Повторяющиеся действия в цикле
называются "телом цикла". Разновидности циклов приведены на рис. 10а),б).



а) Цикл с постусловием б) Цикл с предусловием

Рис. 10. Виды циклических алгоритмов


Классическим примером циклического алгоритма служит алгоритм для вычисления степени числа Y=X? . Этот алгоритм может быть реализован на основе операции умножения. Таб-личное представление такого алгоритма, отражающего зависи-мость У от Х при изменении показателя степени n от 1 до 3, представлено в табл.3. В этой таблице показанны также рекку-рентные соотношения между У и Х, определяющие как на каж-дом шаге зависит значение У от значения Х и от значения У, вычисленного на предыдущем шаге.
Таблица 3.Реккурентные соотношения при вычислении Y=X?

n Y Реккурентные соотно-шения

1 Y[1]=X
Y=X

2 Y[2]=X*X или Y[2]=Y[1]*X Y=X*X или Y=Y*X
3 Y[3]=X*X*X или Y[3]=Y[2]*X
Y=X*X*X или Y=Y*X



Рис.12. Алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n


Пример 5.Пусть требуется составить алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n.
Решение. Исходные данные для алгоритма это переменные x и n. На каж-дом шаге будем вычислять очередной член суммы Y и прибавлять его к предыдущему значению суммы S.Для этого используем реккурентную формулу вычисления степени Х (см. таблицу 3) Y=Y*Х, тогда сумма ряда на каждом шаге итерации будет вычисляться по формуле S=S+Y. Количе-ство итераций K изменяется от 1 до n и равно количеству членов ряда. Начальное значение суммы ряда S равно 0. На рис. 12 представлен цикли-ческий алгоритм с предусловием для вычисления заданной суммы ряда.

Пример 6. Требуется составить алгоритм получения на отрезке
[-15,15] множества значений функции Y= SIN(X) в виде таблицы значений (X,Y) при изменении аргумента Х по формуле X[k]=X[k-1]+h, где h=1,5.

Решение. Такие задачи относят к задачам табулирования функций. Из условия задачи определяем, что начальное значение отрезка табулирова-ния X= -15, конечное значение - X=15. Процесс получения множества пар Х,Y) является итерационным, значит проектируемый алгоритм будет цик-лическим. Условие выхода из цикла Х>15. На рис. 13 представлен цикли-ческий алгоритм с предусловием вычисления табличного значения функ-ции Y= SIN(X) на отрезке -150 S N
0 125
125>0 да 0+5=5 12
12>0 да 5+2=7 1
1>0 да 7+1=8 0
0>0 нет

9. Составить визуальную и табличную формы алгоритма по его текстовому представлению, а также определить конечное значение S .

А) I=0; S=0; В) I=1; S=0;
ПОКА I<3 ПОКА I >1
I=I+3 S=S+1/I
S=S+I*I I=I-1
ВЫВОД S ВЫВОД S

10. Составить визуальную и текстовую форму представления алгоритма, задан-ного в табличной форме.

I J S

0
1 2 0+1+2=3
3 3+1+3=7
2 2 7+2+2=11
3 11+2+3=16

11. Определить является ли данный фрагмент алгоритма циклом, если да, то ка-кого вида и какое действие является телом цикла?
12. * Протабулировать функцию Y=tg(X), при изменении X на отрезке [A,B] с шагом K и определить количество точек разрыва(M) этой функции.
13. Определите местонахождение ошибок в алгоритмическом решении сле-дующей задачи. Найти минимальное значение функции Y=A*X2+Sin(X)*X0,5 , для Х изменяющемся на отрезке [C,D] с шагом 0,01.




8. АЛГОРИТМЫ ОБРАБОТКИ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ЧИСЕЛ

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

Пример 7. В числовой последовательности определить сумму положительных и произведение отрицательных чисел. Решение представить с использованием циклического алгоритма с предусловием. Признак конца последовательности - значение 0.
Решение. Обозначим за Х переменную, содержащую очередное значение после-довательности, за S - сумму положительных значений , за Р - произведение от-рицательных значений. Полученный алгоритм приведен на рис. 14. Условие


Рис.14. Алгоритм вычисления суммы положительных и произведе-ния отрицательных значений числовой последовательности

для выбора вычислений Х>0. Для вычисления суммы значений воспользуемся реккурентной формулой S=S+X с начальным значением S=0, для вычисления произведения - реккурентной формулой P=P*X с начальным значением Р=1. Условие выхода из цикла неравенство Х<>0.

Пример 8.Составить циклический алгоритм с постусловием для определения в последовательности целых чисел количества четных чисел.
Решение. Обозначим за Х переменную, содержащую очередное значение после-довательности, за K - количество четных значений (рис. 15). Условие для выбо-ра четных значений Х mod 2=0 (остаток при делении Х на 2 равен 0). Для вы-числения количества значений воспользуемся реккурентной формулой К=К+1 с начальным значением К=0.




Рис. 15. Алгоритм определения количества четных чисел в последова-тельности значений


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

1. В последовательности чисел подсчитать произведение чисел, кратных 3.
2. В последовательности чисел сравнить ,что больше сумма положительных или произведение отрицательных.
3. В последовательности чисел определить предпоследнее отрицательное число.(При решении введите дополнительную переменную для хранения предпоследнего отрицательного числа).
4. В последовательности целых положительных чисел определить
максимальное число (Рекомендуем реализовать такой алгоритм :
Вводим Х
mах=Х
Цикл с постусловием
а. Если элемент Х > max
то max:=Х (значение этого элемента);
б. Вводим новый элемент последовательности Х.
Условие выхода из цикла Х=0 )
5. В последовательности целых чисел определить третье положительное число и подсчитать количество цифр в нем.
9. АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРНЫХ ЧИСЛОВЫХ МАССИВОВ

Под структурой данных типа массив понимают однородную структуру однотипных данных, одновременно хранящихся в по-следовательных ячейках оперативной памяти. Эта структура должна иметь имя и определять заданное количество данных (элементов). Однотипность данных определяет возможность использования цик-лических алгоритмов для обработки всех элементов массива. Ко-личество итераций цикла определяется количеством элементов мас-сива. Одновременное хранение в памяти всех элементов массива по-зволяет решать большой набор задач, таких как, поиск элементов, упорядочение и изменение порядка следования элементов.
Доступ к любому элементу массива осуществляется по его номеру ( индексу ). Поэтому для обращения к элементу массива ис-пользуют имя_массива(номер элемента), например, А(5).
Массив называется одномерным , если для получения доступа к его элементам достаточно одной индексной переменной.
Рассмотрим простой алгоритм ввода элементов одномерного число-вого массива A из 9 элементов. В этом циклическом алгоритме ус-ловие выхода из цикла определяется значением специальной
переменной К, которая называется счетчиком элементов мас-сива А (рис.16), эта же переменная К определяет количество итера-ций циклического алгоритма ввода элементов массива. На каждом шаге итерации переменная К(значение номера элемента массива А) изменяется на 1, то есть происходит переход к новому элементу массива.В дальнейшем, при рассмотрении алгоритмов обработки одномерных массивов в целях устранения дуб-лирования алгоритм ввода элементов массива будем заменять одним блоком, подразумевая, что он реализуется по схеме, циклического алгоритма, представленного на ри- сунке 16.
Пример 9. Составить алгоритм определения в одномерном числовом массиве А из N элементов суммы положительных элементов.
Решение. Алгоритм представлен на рисунке 17. В этом алгоритме переменная К - является счетчиком элементов массива, S - сумма элементов массива, она вычисляется по реккурентной формуле S=S+A(K). Ввод количества и значений элементов массива осуществляется вначале в отдельном блоке ввода, который реализуется по
схеме алгоритма ввода элементов массива, изображенного на рис.16.




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

Пример 10. Составить алгоритм поиска элемента с максимальным значением в
одномерном массиве А(1..n) и его таблицу трассировки для значений (3, 7, 0, 9).
Решение. Введем обозначения K- текущий номер элемента, A[K] - текущее зна-чение элемента массива, N=4 количество элементов одномерного массива, M- номер максимального элемента массива, A[M] - значение максимального эле-мента массива. Основной идеей алгоритма является выполнение сравнения те-кущего элемента массива A[K] и элемента с максимальным значением A[М],
определенным на предыдущем шаге итерации. По алгоритму изображенному на рис.18 получено максимальное значение для массива (3, 7, 0, 9), процесс и правильный результат поиска которого показаны в таблице 4.

Рис.18. Алгоритм поиска максимального значения в массиве

Таблица 4. Таблица трассировки алгоритма примера 10.
Номер элемен-та массива К Значение эле-мента А (К) Номер макси-мального М Значение мак-симальнго А(М) Проверка А(К)>А(М)
1 3 1 3 Нет
2 7 1 2 3 7 да
3 0 2 7 нет
4 9 2 4 7 9 да

Рассмотрим несколько более сложных алгоритмов, в которых осуществляется изменение порядка следования элементов в одно-мерном массиве. К таким алгоритмам относят алгоритмы с переста-новкой элементов местами, алгоритмы удаления некоторых элемен-тов или циклического переноса некоторых элементов в начало или конец массива.
Основным требованием при составлении алгоритмов обработки массивов является использование минимально необходимых пере-менных.
Чтобы точнее уяснить постановку задачи следует сначала рас-смотреть частные решения для некоторых значений входных данных (провести анализ) , затем обобщить полученное решение и опреде-лить набор решаемых задач. Составив визуальный алгоритм, его следует проверить на различных наборах исходных данных. Эти на-боры исходных данных требуется подбирать таким образом, чтобы при заполнении таблиц трассировок проверить все пути вычислений данного алгоритма от начальной вершины до конечной.
Пример 11.Составить алгоритм решения и таблицу трассировки следующей за-дачи. В одномерном массиве поменять местами 2-ой нулевой элемент и послед-ний положительный элемент. Применить нисходящее проектирование алгорит-ма.
Решение. Пусть одномерный массив содержит 9 элементов: (5, 0, 4, -3, -7, 0, -2, -4, 0). Среди этих элементов имеются три нулевых значения, отрицательные и положительные значения. Второй нулевой элемент имеет порядковый номер 6, а последний положительный элемент - номер 3, его значение равно 4. Если по-менять местами 2-ой нулевой элемент и последний положительный в исходном массиве (5, 0, 4, -3, -7, 0, -2, -4, 0) то получим новый массив, в котором изменен порядок следования элементов 5, 0, 0, -3, -7, 4, -2, -4, 0 .
Основными операциями алгоритма будут: поиск второго нулевого эле-мента массива, поиск последнего положительного элемента массива и переста-новка найденных элементов. Отметим, что для перестановки элементов необхо-димо знать номера переставляемых элементов. На рис. 19 изображен обобщен-ный алгоритм решения задачи, который в дальнейшем будет детализирован.

Рис. 19. Обобщенный алгоритм к примеру 11
Ввод количества и значений элементов массива осуществляется вначале в отдельном блоке ввода, который реализуется по схеме алгоритма ввода эле-ментов массива, изображенного на рис.16.
Поиск второго нулевого элемента массива будем осуществлять в цикле, проверяя значение очередного элемента на 0. Если очередной элемент равен 0, то для подсчета количества таких элементов используем реккурентную форму-лу M=M+1. В тот момент времени, когда значение М=2, нам необходимо за-помнить номер текущего элемента массива, так как это и есть искомый второй положительный элемент исходного массива. На рис.20 приведен фрагмент ал-горитма, реализующего поиск второго нулевого элемента в некотором массиве А из N элементов.


Рис. 20. Фрагмент алгоритма поиска второго нулевого элемента в массиве А, состоящем из N элементов. Здесь К- номер очередного элемента, А(К) - значение очередного элемента, m -количество нулевых элементов, Р- номер второго нулевого элемента в массиве

Поиск последнего положительного элемента массива будем осуществ-лять аналогично в цикле, запоминая номер очередного элемента, значение кото-рого больше нуля, в дополнительной переменной S. Учитывая тот факт, что по-сле того, как будут просмотрены и проверены на положительность все элементы массива, в переменной S будет храниться номер последнего положительного элемента массива. На рис. 21 представлен фрагмент алгоритма поиска послед-него положительного элемента в массиве А.


Рис. 21. Фрагмент алгоритма поиска последнего положительного элемен-та
Рассмотрим фрагменты алгоритма, приведенные на рис. 20 и 21. Можно заме-тить, что оба этих фрагмента выполняют поиск под управлением цикла, с оди-наковым числом повторений, равным количеству элементов исходного массива N. Поэтому в итоговом алгоритме решения задачи примера 11 вместо компози-ции этих двух фрагментов в виде двух последовательных циклов можно ис-пользовать параллельное выполнение операций поиска под управлением одного цикла, который приведен на рис. 22.






Рис 22. Алгоритм поиска второго нулевого и последнего положительного элементов массива А.


Напомним, что исходный одномерный массив содержит 9 элементов: (5, 0, 4, -3, -7, 0, -2, -4, 0).По условию задачи необходимо поменять местами 2-ой нуле-вой элемент и последний положительный элемент.
Так как задачи поиска необходимых для перестановки элементов алгоритмиче-ски решены (рис. 22), то рассмотрим задачу перестановки элементов.Для реали-зации перестановки найденных элементов достаточно воспользоваться управ-ляющей структурой следования. Для того, чтобы во время перестановки не по-терять переставляемые значения используем дополнительную переменную Q, временно хранящую одно из переставляемых значений элемента массива, в ча-стности, второе нулевое значение.На рис. 23 представлен универсальный алго-ритм перестановки двух элементов одномерного массива, имеющих порядковые номера P и S .



Рис. 23.Фрагмент перестановки двух элементов массива, с номерами S и P
Подводя итог для алгоритмического решения примера 11, приведем на рис. 24 алгоритм для вывода элементов преобразованного массива после перестановки найденных элементов.

Рис. 24. Алгоритм вывода элементов массива
Таким образом, процесс проектирование первоначального алгоритма пе-рестановки второго нулевого элемента и последнего положительного элемента в одномерном массиве завершен. Полученный алгоритм представлен на рис.25. Следует заметить, что целью решения примера 11 было показать процесс нис-ходящего проектирования алгоритма " сверху-вниз " с использованием деком-позиции и метода структурной алгоритмизации. Отметим, что с целью упроще-ния в полученном алгоритме не рассматриваются ситуации, когда в составе элементов массива отсутствуют положительные значения или нулевые значения в количестве большем одного.


Рис.25. Алгоритм перестановки второго нулевого и последнего положи-тельного элемента в одномерном массиве




Для проверки правильности работы полученного алгоритма составим таблицу трассировки для одномерного массива из 9 элементов: (5, 0, 4, -3, -7, 0, -2, -4, 0), приведенных в примере 11. Напомним, что заполнение таблицы происходит по строкам. Считаем, что все начальные значения числовых переменных равны 0.
В таблице 5 выполнена трассировка фрагмента поиска второго нулевого и по-следнего положительного элементов (их номеров), а в таблице 6 выполнена трассировка следующего фрагмента алгоритма по перестановке в массиве най-денных элементов, где K- текущий номер элемента, A[K] - текущее значение элемента массива, М- количество нулей, обнаруженных в массиве при анализе очередного элемента, P- номер второго нулевого элемента массива, S- номер последнего положительного элемента массива, A[S] - значение последнего по-ложительного элемента массива, A[P] - значение второго нулевого элемента массива.

Таблица 5.Таблица трассировки операций Таблица 6. Таблица трассировки
поиска второго нулевого элемента и перестановки найденных элемен-
последнего положительного тов массива

К Входной массив А(К) M М=2 Р S A(P)
А(6) Q А(S)
А(3) Выходной массив А(К)
1 5 0 Нет 1 0 0 4 1 5
2 0 1 Нет 4 0 4 2 0
3 4 3 4 0 0 3 0
4 -3 4 -3
5 -7 5 -7
6 0 2 Да 6 6 4
7 -2 7 -2
8 -4 8 -4
9 0 3 Нет 9 0


Пример 12. Составить алгоритм удаления в одномерном массиве элемента с максимальным значением.
Решение. Анализ постановки задачи позволяет выделить две последовательно решаемые задачи: поиск элемента с максимальным значением и удаление этого значения из массива. Алгоритм первой задачи был рассмотрен ранее в примере 10 (рис.18). В этом алгоритме был определен номер максимального значения М, а максимальное значение определялось как А(М). Удаление элемента из мас-сива приводит к уменьшению количества элементов массива за счет их переме-щения на позицию удаляемого. Например, требуется удалить максимальное значение в массиве (2,4,13,5,7). Максимальное значение в этом примере равно 13. После удаления количество элементов данного массива уменьшится на 1 и станет равным 4, а массив примет вид (2,4,5,7). Таким образом, можно сделать вывод , что для удаления элемента из массива необходимо знать его номер, на-пример М, удаление производится путем сдвига на одну позицию влево всех следующих за удаляемым элементов А(М)=А(М+1), этот сдвиг должен осуще-ствляться под управлением цикла. Цикл завершит свою работу, когда послед-ний элемент массива сдвинется на место предпоследнего элемента .
После приведенных рассуждений и используя алгоритмическое решение при-мера 10, изображенное на рис.18, составим алгоритм удаления элемента с мак-симальным значением из одномерного массива из N элементов (см. рис.26).



Рис. 26. Алгоритм удаления элемента с максимальным значением
К - номер очередного элемента, М- номер элемента с максимальным зна-чением, N-1 - уменьшенное в результате удаления одного элемента коли-чество элементов массива А, A [K]: =A [K+1] - удаление путем сдвига влево следующих за удаляемым элементов на одну позицию.






Задания для самостоятельного выполнения
Составить визуальные циклические алгоритмы и таблицы трасси-ровки для следующих задач обработки одномерных массивов.

1. *В одномерном массиве определить первый отрицательный элемент и его номер.
2. Исключить из массива А1..AN пеpвый отpицательный элемент.
3. Исключить из массива А1..AN пеpвый четный элемент, следующий за мак-симальным.
4. Дан массив целых чисел a1,..an.Выяснить, какая из трех ситуаций имеет ме-сто:все числа a1,..an равны нулю,в последовательности a1,...,an первое нену-левое число-положительное,первое ненулевое число-отрицательное.
5. Дан массив целых чисел a1,..an.Выяснить, какая из трех ситуаций имеет ме-сто:все числа a1,..an равны нулю,в последовательности a1,...,an первое нену-левое число-положительное,первое ненулевое число-отрицательное.
6. Даны целые числа a1,..,an.Определить количество целых чисел,входящих в последовательность a1,...,an по одному разу.
7. Даны действительные числа a1,..,an.Требуется найти В равное среднему арифметическому чисел a1,..,an,и наибольшее отклонение от среднего,т.е. max(/a1-b/,/a2-b/,../an-b/).
8. Дан массив действительных чисел a1,...,an.Найти максимальный элемент среди отрицательных элементов и поменять его местами с минимальным положительным.
9. *В одномерном массиве перенести в начало максимальный элемент.
10. Пеpенести в начало одномеpного массива втоpой нулевой элемент.
11. Ввести массив а1,...,а16. Получить новый массив по правилу (а1 + а16, а2+а15,...,а8+а9). Найти минимальный элемент полученного массива.
12. *В одномерном массиве перенести в конец минимальный элемент .
13. Пеpенести в хвост одномеpного массива все отpицательные элементы.
14. Пеpенести в начало одномеpного массива все нечетные элементы.
15. В одномерном массиве найти первую группу повторяющихся элементов.
16. Выполните примеры 10 и 11, реализуя ввод элементов массива в цикле, в котором производится их обработка.

10. АЛГОРИТМЫ СОРТИРОВКИ ОДНОМЕРНЫХ МАССИВОВ

Под сортировкой понимают процесс перестановки объектов дан-ного массива в определенном порядке. Целью сортировки являются упорядочение массивов для облегчения последующего поиска эле-ментов в данном массиве. Рассмотрим основные алгоритмы сорти-ровки по возрастанию числовых значений элементов массивов. Су-ществует много методов сортировки массивов. В этой работе будут рассмотрены алгоритмы двух методов: модифицированного метода простого выбора и метода парных перестановок.
10.1. Сортировка модифицированным методом простого выбора
Этот метод основывается на алгоритме поиска минимального элемента. В массиве А(1..n) отыскивается минимальный элемент, который ставится на первое место . Для того, чтобы не потерять элемент , стоящий на первом месте , этот элемент устанавливает-ся на место минимального . Затем в усеченной последовательно-сти, исключая первый элемент, отыскивается минимальный элемент и ставится на второе место и так далее n-1 раз пока не встанет на свое место предпоследний n-1 элемент массива А, сдвинув макси-мальный элемент в самый конец.
Рассмотрим алгоритмическое решение задачи на примере сор-тировки некоторого массива значений по возрастанию. В соответст-вии с вышеописанным методом нам необходимо несколько раз вы-полнять операции поиска минимального элемента и его перестанов-ку с другим элементом, то есть потребуется несколько раз просмат-ривать элементы массива с этой целью. Количество просмотров эле-ментов массива согласно описанию модифицированного метода простого выбора равно n-1, где n- количество элементов массива. Таким образом, можно сделать вывод, что проектируемый алгоритм сортировки будет содержать цикл, в котором будет выполняться по-иск минимального элемента и его перестановка с другим элементом.
Обозначим через i - счетчик (номер) просмотров элементов массива и изобразим обобщенный алгоритм сортировки на рис.27.

Рис.27. Обобщенный алгоритм сортировки массива модифицированным методом простого выбора
Отметим, что для перестановки элементов местами необходи-мо знать их порядковые номера, алгоритм перестановки элементов массива был рассмотрен ранее (см. рис. 23). Алгоритмы ввода ис-ходного массива и вывода этого же массива после сортировки изо-бражены на рисунках 16 и 24 соответственно. Алгоритм поиска в массиве минимального элемента и его номера будет аналогичен рас-смотренному в примере 10 алгоритму поиска максимального эле-мента, который представлен на рис.18. Однако, в этом алгоритме будут внесены изменения.Для того, чтобы определить какие изменения следует внести рассмотрим выполнение сортировки данным методом с акцентом на поиск минимального элемента на конкретном примере. Пусть исходный массив содержит 5 элементов
(2,8,1,3,7). Количество просмотров согласно модифицированному методу простого выбора будет равно 4. Покажем в таблице 7, как будет изменяться исходный массив на каждом просмотре.

Таблица 7. Пример сортировки


Номер
просмотра массива i Исходный
Массив Минимальный
Элемент Переставляемый элемент Массив после перестановки
Номер Значе-ние Номер Значе-ние
1 (2,8,1,3,7) 3 1 1 2 (1,8,2,3,7)
2 1,(8,2,3,7) 3 2 2 8 1,(2,8,3,7
3 1,2,(8,3,7) 4 3 3 8 1,2,(3,8,7)
4 1,2,3,(8,7) 5 7 4 8 1,2,3,7,8


Из данных, приведенных в таблице 7, следует, что поиск минимального значения в массиве на каждом просмотре осуществляется в сокращенном массиве, который сначала начинается с первого элемента,а на последнем просмотре массив, в котором ищется минимальный элемент начинается уже с четвертого (или n-1) элемента. При этом можно заметить, что номер первого элемента массива для каждого поиска и перестановки сов-падает с номером просмотра i.
Введем следующие обозначения :
К- номер минимимального элемента,
J - номер элемента массива,
М и А(К)- одно и тоже значение минимального элемента массива,
i - номер переставляемого с минимальным элемента,
А(i)- значение переставляемого элемента.
Тогда циклический алгоритм сортировки модифицированным мето-дом простого выбора будет выглядеть следующим образом (рис.28).





Рис.28. Алгоритм сотрировки массива модифицированным методом простого выбора

В этом алгоритме два цикла, внутренний цикл выделен цветом.




10.2.Сортировка методом парных перестановок

Самый простой вариант этого метода сортировки массива ос-нован на принципе сравнения и обмена пары соседних элементов.
Процесс перестановок пар повторяется просмотром массива с начала до тех пор , пока не будут отсортированы все элементы , т.е. во время очередного просмотра не произойдет ни одной переста-новки. Для подсчета количества перестановок целесообразно ис-пользовать счетчик - специальную переменную В. Если при про-смотре элементов массива значение счетчика перестановок осталось равным нулю, то это означает, что все элементы отсортированы (см.рис.29).

Рис.29. Алгоритм сортировки методом парных перестановок содержит два цикла, внутренний цикл выделен цветом

Задания для самостоятельного выполнения
Составить визуальные циклические алгоритмы и таблицы трасси-ровки для следующих задач сортировки одномерных массивов.

1. Ввести массив a1,a2,...,a15. Расположить ненулевые элементы по убыва-нию.
2. Ввести массив x1,x2,...,x20. Элементы, на нечетных местах, расположить в порядке возрастания, а на нечетных в порядке убывания.
3. Ввести массив a1,a2,...,a15. Требуется упорядочить его по возрастанию аб-солютных значений элементов
4. Ввести массив x1,x2,...,x20. Требуется расположить отрицательные элемен-ты в порядке убывания.
11. АЛГОРИТМЫ ОБРАБОТКИ УПОРЯДОЧЕННЫХ МАССИВОВ

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

11.1. Поиск элементов в упорядоченном массиве

Задача поиска значения Х в упорядоченном по возрастанию значений массиве A(1)Х, то все элементы, имеющие номера с S по n также больше Х в силу упорядоченности массива по возрастанию значений. Поэтому для дальнейшего поиска половину значений мас-сива можно исключить из рассмотрения. В первом случае - левую, во втором случае - правую половину. Рассмотрим пример. Допус-тим, что требуется определить совпадает ли значение Х=12 с каким-либо элементом в упорядоченном массиве А и если совпадает, то определить порядковый номер S этого элемента. Иллюстрация при-менения метода бинарного поиска для поиска элемента Х=12 в мас-сиве (2,3,4,6,10,12,20,30,35,45) приведена на рис. 30.
Элементы массива А (2,3,4,6,10,12,20,30,35,45).
Номера элементов 1 2 3 4 5 6 7 8 9 10.
Первое деление S=5, А(5)=10 А(5)<Х), исключаем левую половину.

Элементы массива А (2,3,4,6,10,12,20,30,35,45).
Номера элементов 1 2 3 4 5 6 7 8 9 10.
Второе деление S=8, А(8)=30 А(8)>Х), исключаем правую половину.

Элементы массива А (2,3,4,6,10,12,20,30,35,45).
Номера элементов 1 2 3 4 5 6 7 8 9 10.
Третье деление S=6, А(6)=12 А(6)=Х), элемент Х=12 найден.

Рис.30. Иллюстрация применения метода бинарного поиска

На рис.31 представлен алгоритм, реализующий метод бинарного по-иска в упорядоченном массиве.

Рис.31.Алгоритм поиска методом бинарного поиска
Задания для самостоятельного выполнения
Составить визуальные циклические алгоритмы для следующих задач обработки упорядоченных одномерных массивов.

1. Ввести упорядоченный по неубыванию массив Х(1) < = Х(2) < =…Х(n).
Найти количество различных чисел среди элементов этого массива.
2. Ввести два упорядоченных по возрастанию числовых массива
Х(1)<Х(2)<Х(3) <…Х(n) и Y(1)…Y(m) и
Z(1) < = Z(2) < = … Z(k).Найти одно из этих чисел.
4. Вставить значение Р в упорядоченный неубыванию массив Х(1) < = Х(2) < =…Х(n) так, чтобы упорядоченность не нарушилась.
5. Удалить значение Р в упорядоченный неубыванию массиве Х(1) < = Х(2) < =…Х(n).
6. Соединить два упорядоченных массива Х(1) < = Х(2) < =…Х(n) и Y(1)< =Y(2)< =…Y(m) в массив Z(1) < = Z(2) < = … Z(k), при этом каждый элемент должен входить в массив Z столько раз, сколько раз он входит в массивы
Х и Y.

12. АЛГОРИТМЫ ОБРАБОТКИ ОДНОМЕРНЫХ СИМВОЛЬНЫХ МАССИВОВ

Одномерные символьные масивы - это массивы, составленные из определенной последовательности символов, которые образуют тексты. Основными операциями, выполняемыми над текстами, являются операции по определению слов, выделению слова с максимальной длиной, удаление и перестановка слов,сортировка по алфавиту идр.
Для простоты будем считать, что символьный массив пред-ставляет одну строку произвольного текста, слово - любую после-довательность подряд идущих символов не содержащую пробела. Пробел - это специальный символ, используемый для отделения слов, он не может располагаться перед первым словом. Учитывая все эти допущения можно предложить для решения задачи опреде-ления количества слов использовать подсчет количества элементов массива, равных пробелу минус 1.
Рассмотрим алгоритмическое решение распространенной за-дачи определения в массиве символов слова с максимальной длиной.
Пусть исходный массив А содержит N символов. Для определения слова с максимальной длиной будем использовать сравнение длины текущего слова М с длиной предыдущего слова МАХ. Длина слова определяется как содержащееся в нем количество символов. Для то-го, чтобы вывести слово с максимальной длиной, необходимо за-помнить номер элемента S, с которого начинается это слово.
Алгоритм поиска в символьном массиве слова с максимальной дли-ной приведен на рис. 32, а его таблица трассировки для массива (Дул теплый ветер)- в таблице 8.







Рис. 32.Алгоритм поиска в символьном массиве слова с максимальной длиной





Таблица 8. Таблица трассировки алгоритма поиска слова с макси-мальной длиной при N= 16 в тексте : "Дул теплый ветер"



К

А(К)
К=N
А(К)=" "
М>МАХ
М
МАХ
S
НОВОЕ S
1 Д Нет Нет 1 0 1 1
2 у Нет Нет 2
3 л Нет Нет 3
4 " " Нет ДА Да 0 3 3 4
5 т Нет Нет 1
6 е Нет Нет 2
7 п Нет Нет 3
8 л Нет Нет 4
9 ы Нет Нет 5
10 й Нет Нет 6
11 " " Нет ДА Да 0 6 10 11
12 в Нет Нет 1
13 е Нет Нет 2
14 т Нет Нет 3
15 е Нет Нет 4
16 р Да Нет Нет 5


Рассмотрите результат, приведенный в таблице 8, для конкретного входного символьного массива "Дул теплый ветер" без последнего столбца. Однако, после выполнения приведенного на рис. 32 алго-ритма для предложения "Дул теплый ветер" будет выведено слово из 7 символов, начинающихся с пробела :" теплый". Значит, формулу определения номера символа S = K-1 , с которого начинается слово с максимальной длиной, следует изменить на S = K. При этом надо будет изменить содержание блока вывода результата: вместо A( S -MАХ), … A(S) следует использовать A( S -MАХ), … A(S-1). Таким образом, таблица трассировки показала наличие ошибок в алгорит-ме, изображенном на рис. 32. После внесения изменений этот алго-ритм будет работать правильно (см. модернизированный алгоритм поиска в символьном массиве слова с максимальной длиной на рис. 33).










Рис. 33. Модернизированный алгоритм поиска в символьном массиве слова с максимальной длиной



Задания для самостоятельного выполнения
Составить визуальные циклические алгоритмы для следующих задач обработки символьных одномерных массивов.

1.Найти и вывести слово , содержащее наибольшее количество гласных букв.
2.В слове , в котором обнаружено наибольшее количество шипящих букв , за-менить их на символ "*".
3.Вывести все гласные буквы , содержащиеся в слове наибольшей длины и вывести число повторений каждой этой буквы.
4.Подсчитать количество слов и количество символов во всех словах , отличных от заглавных латинских букв.
5.Вывести все слово , содержащее наибольшее количество цифр и вывести чис-ло цифр в каждом слове.
6. Слово с минимальной длиной удалить из данного предложения.
7. В предложении перенести в его конец все, встречающиеся в тексте цифры .
8. В предложении расставить все слова в алфавитном порядке.

13.АЛГОРИТМЫ ОБРАБОТКИ ДВУМЕРНЫХ МАССИВОВ

Двумерный массив - это структура однотипных элементов, расположенных в виде таблицы значений. Такое представление зна-чений соответствует математическому понятию двумерный массив. Каждый элемент в двумерном массиве идентифицируется номером строки и номером столбца, на пересечении которых он расположен. Например, в двумерном массиве А, изображенном на рис. 34, эле-мент со значением 5 расположен на пересечении третьей строки и второго столбца. Этот элемент будет обозначаться как А(3,2). А элемент А(1,4) имеет значение , равное нулю. Такое представление набора значений позволяет выполнять обработку как отдельных значений в двумерном массиве, так и последовательности значений, расположенных в строках или столбцах.
В дальнейшем будем считать, что для двумерного массива A(N,М) в обозначении элемента А(i,j) первое значение i соответст-вует номеру строки и изменяется от1 до N, а j - номеру столбца и изменяется от 1 до М. В отличие от одномерного массива, в котором использовался только один номер для определения местоположения элемента и требовался только один цикл для ввода элементов, в двумерном массиве для обработки элеменов необходимы два вло-женных друг в друга цикла. Внешний цикл предназначен для изме-нения номера строки i, а второй, внутренний, - для изменеия номера столбца j в текущей строке i.
На рис. 35 представлен простой алгоритм ввода элементов, постро-енный в виде структуры из вложенных циклов.



Рис. 35. Алгоритм ввода элементов двумерного массива

При рассмотрении в дальнейшем алгоритмов обработки элементов двумерного массива в целях сокращения их размера фрагмент ввода элементов будем заменять отдельным блоком ввода.

Пример 13. Составить алгоритм поиска максимального значения в двумерном массиве А(N,M).
Решение. Поиск максимального элемента в двумерном массиве осуществляется аналогично поиску в одномерном массиве. Отличие состоит в том, что для об-работки двумерного массива используем влож Обозначим максимальный эле-мент переменной МАХ. Значение этой переменной будет меняться на каждой итерации цикла, если очередной значение элемента массива окажется больше МАХ (см. рис.36).

Рис.36. Алгоритм поиска максимального значения в двумерном массиве
Пример 14.Составить алгоритм вычисления количества нечетных элементов в каждой строке двумерного массива А(1.. N, 1..М).
Решение. Для определения нечетных элементов будем использовать проверку на нечетность A[ I,J] mod 2 ? 0, для подсчета количества нечетных значений - формулу К=К+1и вывод значения К столько раз, сколько строк в массиве. Алго-ритм решения представлен на рис. 37.


Рис.37.Алгоритм вычисления в каждой строке двумерного массива коли-чества нечетных элементов
Пример 15.Составить алгоритм вычисления суммы элементов двумерного мас-сива А(1.. N, 1..М), расположенных выше главной диагонали.
Решение. Для определения условия расположения элементов выше главной диа-гонали рассмотрим двумерный массив в обобщенном виде на рис. 38. Обратим внимание на диагональные элементы: номер строки и номер столбца совпадают. Значит для определения элементов на главной диагонали достаточно использо-вать условие I=J, где I- номер строки, J -номер столбца.









Для для определения элементов выше главной диагонали достаточно использо-вать условие IJ. По условию задачи нам требуется найти сумму элементов двумерного массива А(1.. N, 1..М), расположенных вы-ше главной диагонали, значит применим условие Ij 3)A(i,j) mod 10 = 0 4) i>j and A(i,j) mod 10 = 0
5) ib then X: =a
else X:=b


_ _ _

+
Ветвление неполное.
Если значение пере-менной a больше b, то выполняется x=a.
If a>b then x:=a




_
+
+


Цикл с предуслови-ем. Пока значение ус-ловия i<6 истино вы-полняется тело цикла, то есть действия К=К+1 и i=i+2. Пере-менная i определяет количество повторе-ний и называется счетчиком цикла.
i: =1;
While i<6 do
Begin
K: =K+1;
i: =i+2;
End;
Write(K);










- +
_ + Цикл с постуслови-ем.
Пока значение условия
i>6 ложно в

Гороскоп... новая модефикация :)))

Среда, 20 Июля 2005 г. 10:32 + в цитатник
Это цитата сообщения Икс3 [Прочитать целиком + В свой цитатник или сообщество!]

заранее прошу прощения за язык - автор наверняка постарался с подбором лексики! )))



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

Близнецы
Все извращения мира собрались в этом знаке. За свою часто не долгую жизнь, эти извращенцы успевают перепробовать все виды ебли со всеми возможными партнерами. Те близнецы, которым не особо дают, впоследствии могут стать маньяками и насильниками, при этом свободно ориентируясь в Большой Советской Энциклопедии, неореализме, ультраконтрацептуализме, и прочих, непонятных другим, вещах. В общем, типичный портрет заурядного маньяка. Близнецы, никогда не сидят на месте, т.к. сидеть мешает очень качественное шило в жопе. Каждый завтрашний день этот знак не похож на себя вчерашнего. Могут часами шутковать о чем угодно, нередко забывая, с чего начали, но даже если и пиздят по черному, то им все верят, и даже иногда кивают. Близнецам лучше всего работать папараццi или вообще журналистами, либо же писаками мэйнстрима. Наркоту пробуют для смены ощущений, но, как правило, не привыкают.

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

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

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

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

Рак
Хрен знает, о чем этот знак постоянно думает, но по его меланхоличному хохотальнику ничего умного узреть нереально. Бобосы у него водятся всегда, но, несмотря на это, он постоянно будет гнать, что, мол, всё Ах и Ох, настала жопа. Рак часто сидит в уголке, тихонько занимаясь своими делами и никого не подъебывая, т.к. ему важно чтобы о нем не говорили плохо - этого он не выносит. Представители этого знака очень сильно привязаны к шнуркам и семье, хорошо чувствуют настроения и болезни, поэтому среди них много экстрасексов, шарлатанов и аферистов. Главные проблемы в жизни - лишний вес. Рак любит, чтобы ему всегда говорили что-либо приятное, и, по возможности, сосали хуй. Профессию старается выбирать на дому, т.к. здесь, по крайней мере, никто не стоит над душой и не срет на уши. Когда жизнь не удается, рак склонен искать ее смысл на дне бутылки или на кончике косяка.


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

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

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

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

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


и не принимайте близко к сердцу... )

В помощь знакомящимся юношам

Вторник, 14 Июня 2005 г. 20:57 + в цитатник
Это цитата сообщения yulenka [Прочитать целиком + В свой цитатник или сообщество!]

Появилась Hастя -
Знай, пpишло несчастье.
Все Маpины и Маpишки -
Склоки, сплетни и интpижки.

В голове y всякой Вали
До фига деpьма и швали.
Постоянно все Татьяны
Hе обкypены, так пьяны.

Знай, любая Катеpина -
Это спyтница кpетина.
Всем известно: где Елены,
Там гyлянки и измены.

И всегда, где Вики -
Ссоpы, дpаки, кpики.
Согласитесь, что Hаташкy
Hеспpоста зовyт "какашка".

Если повстpечалась Жанка -
Значит, чья-то содеpжанка.
И известно, все Анютки
Где-то, как-то пpоститyтки.

Для мyжчины Иpы -
Что в каpманах дыpы.
Поголовно Веpы
Тихи, глyпы, сеpы.

А Галины или Галки -
Беспаpдонные нахалки.
Собеpи всех в кyчy Люб -
Вот тебе ypодок клyб!

И, понятно, Оли -
Блеклые, как моли.
А попалась Юля -
Повезло: гpязнyля!

Hy а встpетилась Тамаpа -
Бyдет жизнь полна кошмаpа.
Факт известный, что Лаpисы
Все пpожоpливы, как кpысы.

Hо подлее Светы
Человека нетy!

Вторник, 07 Июня 2005 г. 10:53 + в цитатник
Это цитата сообщения Richard_Arden [Прочитать целиком + В свой цитатник или сообщество!]

Как много девушек хороших,
Как много ласковых имен...
Но скалкой ебанет по роже,
И сразу вылетишь ты вон...

Наврятли кто-то слышал эту группу - она

Суббота, 04 Июня 2005 г. 16:42 + в цитатник
Это цитата сообщения Спасусь_таблетками [Прочитать целиком + В свой цитатник или сообщество!]

Наврятли кто-то слышал эту группу - она неизвестная, но песня мне очень нравится!!!!
"Диалект" - Самоубийца.

Тебя разбудили среди ночи,
Тебе больше не надо бежать...
Сказали: "Бери всё, что хочешь!",
Но ведь они тоже умеют врать!
Теперь не надо больше пить,
Теперь не надо воровать...
Да и вообще не нужно жить
И автомат в руке деражать!

Припев:
Теряя мысли на полу,
Я понимаю, что умру,
Делаю последний рывок
И сердце бьётся у ног.
Я понимаю, это дрожь,
Я понимаю, это боль..
Но как её не назовёшь,
он всегда с тобой!

Твои ботинки уже не жмут,
Ведь кровь вся в голове.
Верёвку на шее - жгут.
Весишь, теряясь в глубине.
Ты самоубийца - от и до.
Видел себя со стороны.
Не рожа, а е**о,
Залитое в крови...

припев: пов-ся!
Чуланная_человечка

После... Полная версия

Четверг, 26 Мая 2005 г. 19:53 + в цитатник
Это цитата сообщения Richard_Arden [Прочитать целиком + В свой цитатник или сообщество!]

В колонках играет - Lacuna Coil
Настроение сейчас - Да!

ПОСЛЕ...


После тонкого ядовитого разговора с Мертвой Принцессой Пустынник вышел на порог Дома и задумался. "Кем стать бы мне сегодня?" - подумал он. И теплая пряная ночь вне миров охватила его, и, потащив за собой трупы своих страхов, он ринулся по звездной дороге на запад, если есть запад в небесном хаосе. По крайней мере, компас показывал, что запад есть в том направлении, куда бежал Пустынник. Вытащив из-за спины кроваво-красные крылья, он на ходу закинул их на спину. Через мгновение крылья вросли в обнаженную спину и подняли его над сверкающими жемчужными чудесами. "Ищу ли я чего-то? - спросил себя Пустынник. - Нет, я просто бегу за Судьбой. Только любовь к Ней греет мое сердце. А вне миров меня никогда не щемило, не клинило. Я слишком привык... Может даже я здесь умру и окажу этим честь богам, создавшим меня." Так думал Пустынник, несомый своими крыльями на Запад, которого не было.

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

Медвежонок видел, как погибала Каменная Химера. Оторванная голова чудовища лежала в ста метрах от обмякшего тела. Один выстрел! Бесподобное оружие. Медвежонок коротко хмыкнул, глядя туда, куда только что вошел Пустынник. Нет, он подождет. Там не его территория. Там враг силен. И, усевшись рядом с головой Химеры, Медвежонок принялся ждать, изредка почесывая между огромными стальными когтями.


"Зачем ты пришел?" - прошелестел низкий мелодичный голос. Голос чуть подрагивал и будто растворялся в темноте ночи вне миров. Сакральная составляющая этого голоса заставила Пустынника несколько похолодеть, но он быстро взял себя в руки. Глядя в пустоту, абсолютное Ничто, открывшееся перед ним, после того, как он прошел через вторые врата замка Психопатической, Пустынник заговорил: "Здравствуй, шлюха вне миров. Твоя дохлая сестричка прислала меня к тебе. Я припас вопросы. Я заготовил варианты ответов. Я знаю,что ты - слепа и глуха."
"Так просто?! - саркастически ответствовал голос. - А твой враг, что ждет тебя на пороге? Или ты думаешь, я ничего не скажу ему? Ты притащил с собой мертвые страхи... Зачем? Они мертвы, а ты таскаешь их за собой! Дурак!.."
Пустынник искривил тонкие свои губы в отвратительной усмешке и достал из кармана плаща продолговатый, светящийся красноватым цветом, предмет.
"А это ты не узнаешь,Психо? - он сознательно употребил ее популярное прозвище. - Нет? А это ТВОИ страхи! То чего, ты страшишься и избегаешь. Это концентрированная свобода."
Психопатическая явилась ему внезапно. В первый раз за всю существующую существенность, отличную от просто Хаоса. Женщина, высокая и стройная, с белейшей кожей и ослепительно прекрасным лицом. Казалось, она ступает по пустоте как по обыкновенной земле, твердой и надежной. Одетая в белоснежное платье, она являлась ему как богиня истинной любви, порочность и невинность вне миров.
Пустынник сплюнул вникуда и проговорил жестким, металлическим голосом:
"Ответы. Потом я отдам тебе это, - он потряс вещичкой в руке. - Если нет - ты умрешь. Я выпущу ее." И снова он сплюнул, глядя, как она, покачивая бедрами, обходит его кругом.
Улыбка, появившаяся на губах Психопатической, была олицетворением улыбок всех блудниц мира, затягивающе-мудрой и искристой, как весенний ручей в лесу. Без предупреждения Пустынник выхватил пистоль и выстрелил Психопатической в лицо. Теперь в центре головы зияла огромная дыра, через которую проглядывала бездна позади Психо.
Прошло пять секунд, Пустынник смотрел на неподвижно стоящую Психопатическую. Потом дыра затянулась, лицо моментально восстановилось, и Психо расхохоталась.
"Да ты боишься меня, ищущий Судьбу!.. - она захлебывалась смехом. - Ты, великий Пустынник! Как? Как так могло получиться?"
Пустынник поднял повыше красноватую вещь и прохрипел:
"Психопатическая, ты ответишь - и можешь сохранить это. Можешь вечно жить как ранее. Итак, Судьба?"
Психопатическая отвела рубиновые глаза и пршептала; "Да!"
"Смерть?"
"Нет."
"Миры?"
"Да."
"Кровь?"
"Да."
"Путь?"
"Да."
"После?.."
"До."
Пустынник ухмыльнулся. Он получил все ответы. И незачем было тянуть.
"Возьми, - закричал он. - Возми, тварь!"
И швырнул ей фиал со свободой. Полет его, отмеченный красноватой дорожкой, так и не завершился. Вот уже женщина-мечта миллионов Богов протягивает из своего клубящегося Ничто руку, распахнутая ладонь готова поймать свою заточённую смерть... Грохот бьет по ее перепонкам, которых и нет вовсе. И она думает, что не бывает так, что просто вечность есть ее надежда, что все скоро утрясется - и осколки камня режут ее хаотическую плоть...

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

Медвежонок встал. Он видел все. Он понимал все. Про себя он думал: "Хорошо, что это сделал он. Я бы долго думал бы над тем, чтоб устроить такой фейрверк." Пробормотав что-то, он просочился сквозь вздыбленные и крошашиеся камни площади перед замком Психопатической. Он должен был уничтожить гниль. И он последует за этим ее осколком даже в Миры.

В небе вспыхнул невиданный дотоле свет. Кто-то принял его за северное сияние, кто-то - за начало ядерной войны.
А потом на Землю упал метеорит...


Пустынник огляделся. Лес. В мире, куда его занесло, пахло сырой древесиной и протухшими тенями. И еще, втянув воздух в себя и задержав, просмаковав его, он ощутил знакомый до боли, пряно-хлористый запах. Судьба.
Аккуратно ступая по шелестящим, влажно-зеленоватым листьям, Пустынник прошел несколько метров и снова остановился. Это место неуловимо напомнило ему дом."Живет ли здесь кто-нибудь? - спрашивал себя он. - Разумны ли те, кто населяют эту сферу? Найден ли их душами покой? Возможно, они все сошли с ума и перебили друг друга. Возможно, и нет." Пустынник сорвал с дерева листочек и засунул его в рот. Пожевал. Лист оказался травянисто-горьковатым. Но не неприятным.
Неожиданно Пустынник отстегнул от пояса карабинчик, который крепил веревочку, на конце которой болтался мечочек с его страхами. Сейчас он валялся перед ним на листьях, и Пустыннику так хотелось бросить его здесь, позади. То были мертвые страхи, страхи прошлого, уродство и наивность настоящего. Но нельзя... Вдруг кто подберет, развяжет, и они будут гнить здесь, в этом таком прекрасном, радостном мире, пока не разрушат его до основания. Этого Пустыннику не хотелось.

Медвежонок рухнул в какую-то зловонную кучу отбросов посреди некоего огромного замка, населяемого исключительным количеством похожих на его нынешнюю цель существ. Он успел разглядеть в полете только это, а потом влетел в отвратный ящик с отбросами. "Даже на ноги не приземлился!" - со злостью подумал Мастер. Настроение было отвратительным, и Медвежонку захотелось крови. "Никуда ты, лорд Пустынник от меня не денешься. А пока я подкреплюсь." Медвежонок выпрыгнул из мусорного бака и, почесав меж когтями, неторопливою походкой направился к выходу из почти неосвещенного городского переулка. Глаза его горели синим цветом. Он был похож на некоего сказочного демона. Но для некоторых он сказкой не показался. Странно как устроен этот глупый мир.

Пустынник брел по лесу. Он почти не издавал звуков, и лесные твари потихоньку начали интересоваться его персоной. Угрозы с его стороны они не чувствовали. Пистоль спокойно лежал в кобуре на поясе, страхи в мешочке при каждом шаге упруго ударялись о его бедро. Он шел за запахом. Судьба была его мечтой, жизненной энергией, слабостью и властью. Она была всем, что он помнил с того момента, когда миры для него перестали быть домом. Когда он ушел во внемировую пелену. Зеленый цвет. Он видел эти прекрасные растения, которые были живы. Живы по настоящему, без бутафории.. Свет падал на его широкие плечи сквозь отверстия в кронах деревьев. Влажно, тепло и уютно. Пустыннику хотелось отдохнуть. Но позже... После того, как он закончит то, что начал. Принц вне миров. Так назвала его Мертвая Принцесса. Но от нее было мало толку. Она была озабочена лишь властью и сексуальным влечением. Она искренне считала, что он - ее. И только поэтому он не стал заметать этот след. Расстрогался. А жаль. Пустынник с удовольствием посмотрел бы на личико Принцессы, когда она будет умирать во второй раз. Хотя нет, он же убил ее! "Память, ты слишком много выпускаешь. Тебя нужно подлатать... Как-нибудь." Но позже. Лес сгустился, и стало темновато. Пустынник подумал - а не включить ли фонарь, но потом решил, что это ни к чему. Глаза его видели великолепно, он же был из внемирья. Он же был Принцем. Пустынник громко расхохотался. Вспугнутые его смехом, огромные бабочки заверещали и улетели прочь, глухо хлопая фосфоресцирующими крыльями. Пустынник побежал вперед. На запах.

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

Перед ним мерно колыхались и вспыхивали какие-то странные иллюзорные видения. Было темно, ветви проносились рядом, норовя ухватить за одежду. Но все же, каким-то образом деревья расступались перед ним, и он несся будто по коридору. Густой сладкий воздух рвал его ноздри, волосы неслись по ветру, на худощавом лице застыла маска блаженной верности, сдобренная жаждой. Возможно, крови или убийства. Это было не важно. И тут вдруг неслышный гром рванул его уши и застрял в барабанных перепонках. Мгновенно остановившись, Пустынник выдернул из кобуры пистоль и, не целясь, пальнул во тьму. Впереди стояли огромные деревья, не похожие на что-либо, виденное им раньше. Они окружали маленькое зеленое озерцо, над которым витало темно-зеленое сияние. Черная природная сила. Пустынник едва успес увернуться от пули, внезапно вылетевшей откуда-то спереди. Своей же пули. Он разглядел клеймо, когда, немыслимым образом изворачиваясь, пропускал ее в пяти миллиметрах от своей шеи. Воздух резанул по ней не хуже ножа, и Пустынник мысленно поблагодарил себя за скорость и хороший слух. Тут же раздался угрюмый басовитый голос:
"Иномирец, еще раз выстрелишь в дерево, и ты труп. Я отдам тебя хищным лианам, и ты будешь умирать тысячелетие. Ты будешь мучиться и страдать..."
"Пошел на хер!" - процедил Пустынник. Руки непроизвольно сжались в кулаки.
"Иномирец, я не желаю тебе зла, - произнес Лесной Дух, как про себя окрестил его Пустынник. - Но убить могу. А тебе ведь нужна та шлюха, пробегавшая здесь недавно? Так ведь? И умирать ты, небось, не хочешь?" Пустынник не мог не согласиться с логикой своего собеседника, тем более, что запах Судьбы явственно имел своим источником озеро, находящееся перед ним.
"Великолепно. Мы сможем договориться. Ты говоришь мне, куда она побежала, а я не трогаю тебя." Пустянник решил рискнуть. Давить на такую мощную сущность дорогого стоило, но разве есть цена у Цели.
"Глупый, - ласково проговорил Лесной Дух. - Она переменчивая дрянь. Она погубит тебя, Пустынник. Но это твоя боль. Не моя. Ступай в озеро. И прошу тебя, не делай глупостей."
"Откуда он знает меня? что он? Как он узнал? Или внемирье перестало быть закрытым для миров?!" Он шагнул к зеленоватой воде.
"Иди, иди, Пустынник, - голос Духа гремел словно был соткан из грома. - И запомни: здесь, в мирах, ты никогда более не будешь своим. Ты стал частью Хаоса вне миров. Иди. Прочь!" Вода, холодная как лед, облепила его со всех сторон, и зеленое свечение выжгло ему глаза. Он закричал. Из его тела начали проростать корни Древа Жизни. Упорядоченное перенесение частиц в другую область. Телепортация. И в зеленом огне безумия Пустынник рухнул в ничто.





Он открыл глаза. Дрожь во всем теле раздирала его на куски. Боли не было, но это ничего не значило. Боль не могла помешать ему двигаться. Дрожь могла. "Будь проклят этот сукин сын!" Пустынник вспомнил Духа Леса. Кое-как поднялся на ноги. Усмехнулся. Он стоял на вершине желтовато-коричневой, бледной скалы, вроде бы каменной, хотя время от времени она подрагивала как кусок желе. Пустыннику уже было все равно, в какой из миров он попал, но тут он задумался, а не родина ли это? Не дом ли? И сразу отбросил эту мысль. Потому что скала была частью круга, кратера, скальной долины, и внизу плескалась вода, ровное зеркало воды. Такого не было дома. И башни из обсидиана тоже. А здесь - была. Высокая, черная, как смоль, башня возносилась к синему плывущему волнистому небу. Форма ее все время изменялась, но при этом оставаясь стройной и устремленной ввысь. Где-то он уже слышал о таком. Портал. Дрожь прошла, Пустынник распрямил спину. "Мне туда - подумал Пустынник. - Это моя цель. Это мой страх, из тех, что я не сумел упрятать в мешок на поясе. Запах. Я чувствую запах." И он достал свои красные, уже потертые крылья и , закрепив их на спине, ринулся к башне. К самому подножию. К своей Судьбе.В прозрачную, стерильно-синюю, под цвет неба, воду. И башня отозвалась на его рывок каким-то тяжелым каменным вздохом.

Пустынник завис над водой, не долетев до нее сантиметра. В последний момент нырять он передумал. Крылья трепыхались, держали его, но уже начали уставать. Тишина вокруг башни давила на воспаленное сознание Пустынника и грозила размазать его мозги по черепным костям. "Нет, так я не смогу ничего сделать, слишком тихо", - подумал Пустынник. Солнце светило ярко, котлован, в котором находилась башня, как будто впитывал тепло желтых лучей, температура росла. Становилось все хуже и хуже. Пустынник искал. Но вход в башню был надежно спрятан. Не под водой. Это очевидно с первого взгляда. Ах, вот! Пустынник подлетел к совершенно гладкой стене башни и прижался сухими потрескавшимися губами к обсидиановой, оказавшейся неожиданно холодной, поверхности. Втянул в себя воздух. Из маленькой, еле заметной даже при разглядывании в микроскоп дырочки вылетело шильце, тут же растворившееся от действия слюны Пустынника. Раздался странный протяжный звук, похожий на скрип полусотни раскачивающихся старых деревьев. Часть стены, примерно два на два метра, отъехала в сторону, буквально вплавившись в принявший "дверь" камень. Пустынник немедленно ринулся внутрь. Мгновение - и он очутился в обширном круглом зале, очень темном. Снова тишина. "Что ж, это внутренности старого дракона. Я либо дойду до его мозга, либо застряну в кишечнике, и меня высрут." Последние минуты отсчитывались в его мозгу. Сейчас все должно решиться. Запах Судьбы был очень силен. Пустынник вдыхал его, осязал, почти пил этот великолепный запах. Виктория! Сегодня, сейчас! А лестница вела наверх, к самому шпилю, к вершине. И время поработать пистолем. Потому что последняя битва не должна быть безкровной. Пустынник прошел к центру огромного зала, откуда начиналась лестница. И ступил на ступеньку...

Первым его противником стала змея. Около пятнадцати метров в длину, тошнотворно розового цвета. Сверху на нее упал луч прожектора. Пустынник вошел в этот луч и встал перед змеей. Бросок был неуловим и дик, огромная пасть раскрылась, готовясь заглотить вставшего перед ней человеческого сына. Выстрелы, стакатто выстрелов, бессчетное количество выстрелов. Запахло пороховым дымом, и всю нутрь башни озарил электрический свет. Словно для того, чтобы герой мог насладиться делом рук своих. Разорванная на части змея уже начала таять, и через пару мгновений на обсидиановых ступенях бурлила розовая лужа. Аккуратно перешагнув через нее, Пустынник начал подниматься дальше. Все вверх и вверх, по широкой черной лестнице, в желтоватых отсветах и блеске полупрозрачных ступеней.
Кукла. Истрескавшееся личико, мерзкая похотливая ухмылка. Огромный нож в дрожащих ручонках. Кукла метнулась к нему, и даже его сверхреакция не помогла предотвратить порез. Левую руку обожгло, закапала кровь. Пустынник завертелся в пируэте, окружив себя стеной вспышек и грохота. В разные стороны полетели пули. Но кукла не пострадала. Только проглотила пару кусочков свинца, отрыгнула их на ступени лестницы и механическим голосом проскрипела:
"Мама."
"Сука, какая же ты сука, - усмехнулся Пустынник. - Что ж ты делаешь. Я же все равно уничтожу тебя." Кукла с потрясающей скоростью ринулась вперед и взлетела в головокружительном прыжке. Нож описал дугу и врезался в шею Пустынника. Что-то звякнуло. "Ах, мама, спасибо за вшитую пластинку из
титана, - хрюкнул про себя "Принц". - Ты всегда стремилась исправить мою кривую шею, и спасибо тебе за это." Он поднял пистоль. Направил его прямо между тупых застывших глаз куклы и выстрелил. Шестеренки разлетелись в разные стороны, тельце дернулось и с душераздирающим криком "Мама!!!!" сделало несколько шагов к краю лестницы и полетело вниз. Пустынник находился в четырех оборотах от вершины.
Следующий. Его отец. Улыбаясь он шел к нему, раскинув руки для дружеского объятия. Пустынник смотрел в его глаза. Печаль. Радость. Ничего ненатурального. "Да, она научилась делать классные муляжи. Интересно, где у него иголка с каплей яда." И Пустынник выстрелил отцу в сердце. На лице отца отразилось абсолютное изумление, он так натурально, так живо изогнулся... и рухнул на ступени. Его кровь испачкала белую рубаху, которая была на нем надета, пролилась вниз, на черный камень. Пустынник обощел тело, сплюнул на него и продолжил подъем. А позади отец еще долго хрипел и повторял:
"О Господи, мальчик, это же я, я, я..."

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

Она завораживала его своим прекрасным, идеально высеченным лицом. Он любил ее. Он знал ее всю жизнь и прощал ей все. Даже это бегство. А она говорила:
"Любимый, ты прошел столько ради того, чтоб найти меня. Догнать меня. Я должна наградить тебя за это. Один поцелуй. Один."
Она подошла к нему. Он задрожал. Объятия, шелковые объятия, мягкость и податливость ее тела. Запах. Их губы соприкоснулись, и постепенно они втягивались в вихрь наслаждения. Все менее целомудренно, все более жестко они целовались. Она... Ее зубы впились в его верхнюю губу. Он вскрикнул, попытался отпрянуть, но она держалась за него, она обнимала его так крепко. Она отрывала от его лица куски кожи и мяса и то глотала, то сплевывала их. Пустынник не мог ничего сделать. Кровь заливала его с ног до головы, боль была единственным, что он чувствовал. И страх. Еще, наверное, страх...
Она отбросила его от себя. Вытерла кровь синеньким платочком и прошипела:
"Теперь наконец ты поймешь, что не надо было преследовать меня?"
Потом развернулась и зашагала прочь. А Пустынник лежал в луже собственной крови, среди частей своего лица, и стонал. Ни одной слезы не прокатилось по его лицу. Только кровь. Боль резала его трескучие нервы. Но в красной пелене и смрадном безумии он осознал одно: яростное желание поквитаться. Злоба огнем прошлась по его искалеченному сознанию, а потом наступила тьма.
И в этот же момент солнце исчезло. Башню окутал мрак. И на небе заблестели звезды.








Медвежонок рвал уже шестидесятую глотку. Вокруг него гремели выстрелы, взрырвались гранаты, и голос, усиленный мегафоном, предлагал сдаться. "Идиоты, - думал Медвежонок, - неужели они не видят, что я неуязвим для их пуль. Я кромсаю их тела, а они даже танков еще не привезли. Идиоты." Еще один человек выскочил из-за полицейской машины и ,подняв автомат, выпустил по нему длинную очередь. Пули останосились аккурат в десяти сантиметрах от шерсти Медвежонка, сдерживаемые его заклинанием. А потом просто попадали на асфальт, залитый кровью. Красные ручейки текли в канализацию, и на поверхности канализационной жидкости, если бы кто-нибудь заглянул, мог увидеть расцветающие багрово-дерьмового цвета пятна. Медвежонок молниеносным движением когтей сорвал голову с тщедушного тела, фонтан крови облил его с ног до головы, от жидкостей заклинание не защищало. Медвежонок знал - пора заканчивать бойню и следовать своей дорогой, но очень уж давно он не развлекался. И, говоря себе, что еще парочку, и все, он продожал вспарывать животы, рассекать лица, отрезать конечности. Воздух вокруг него из черновато-ночного превращался в ярко алый. Он перевернул автомобиль, придавив спрятавшихся за ним людей. Их крики обласкали его душу мрачным теплым удовлетворением. "Да! - в экстазе мыслил он. - Да! Идите ко мне, куски мяса! Я покажу вам Рай! Да!"

Через полтора часа прибыли военные. И, после уничтожения пары танков и одного бронетранспортера, Медвежонок решил - хватит. Он подумал о Пустыннике. Он подумал о том, что не чувствует его следа. Он подумал о том, что он дурак. Да, они оказались в разных Мирах. Да, он потерял свою главную цель. Его осенило. Он чуть не вытошнил тем, что съел недавно. "Твою мать, я прошляпил такую простую вещь. Он может уйти навечно." И, расшвыряв окруживших его огнеметчиков он взлетел в небо. Во внемировую реальность. Только оттуда он мог еще отыскать Пустынника. Только оттуда.

Пустынник очнулся в полной темноте. Сквозь приоткрытые веки он различил только одну единственную звезду, светящую через тусклое огромное окно на вершине башни. Боли больше не было. Сверхрегенерация заживила раны, нанесенные зубами этой грязной суки, Судьбы. Пустынник медленно приподнялся на одной руке. Ненависть выжгла все, душа его более не могла здраво соотноситься с разумом. И потихоньку, на подсознании, подчинила разум себе. Он был готов продолжать свое путешествие. Теперь с другой целью. Отомстить. Его оголенная челюсть состроила подобие усмешки. Пустынник наклонился, нашарил выпавший из кобуры пистоль и в полной темноте отправился искать лестницу. Ему, для начала, нужно было выбраться отсюда, а потом уже строить планы на будущее.
После пяти минут поисков в кромешной тьме, где даже он не мог ничего разглядеть, Пустынник наконец спускался вниз. Вскрыв дверь в башню парой выстрелов он вывалился в холодную воду. Рядом с ним плавали расплавленные, но пока довольно цельные звезды. Опять крылья. Он чувствовал запах Судьбы, он знал, куда ему нужно идти. И, взлетая во внемирье, Пустынник думал только о той мести, которая будет ему дана в награду за прожитое. Ведь будет?! И ветер свистел, проникая в его горло сквозь оголенные зубы. "Как она смеет указывать мне, что делать?! - возмущался Пустынник. - Она - лживая убогая тварь. Просто красивое внемировое создание. И она должна умереть."
Глаза его были безумны, в них сверкала ненависть подростка, когда кто-то что-то ему запрещает или смеется над ним, только у подростков такая ненависть быстро проходит... Да, здесь, сейчас это было в нем запаяно. Он знал...

Медвежонок летел среди сотен миров и нюхал. "Ушел, ушел, - корил себя он, - а я ни хрена не делал, я жрал как последний ублюдок. Ах, Пустынник уже мог встретиться с ней. Он не отступает. Он быстр и уже мог ее догнать." И Медвежонок с новым рвением продолжал внюхиваться в миры, в надежде уловить хоть мизерный след Пустынника.

Он уже видел ее спину. Она бежала - быстро, но недостаточно быстро, чтобы Пустынник не смог ее настичь. За ней клубился туман, скрывая движения. Тени взметали подол ее плаща, встречный ветер развевал черные длинные прямые волосы. А он шел за ней, летел за ней, взрезая глазами морок, который она разбрасывала вокруг себя. И когда до нее оставалось несколько тысяч лет, Судьба остановилась. Пустынник подошел к ней.
"Зачем?" - спросила Судьба.
Пустынник не ответил. Никаких разговоров, время ушло... Она неожиданно кинула ему меч. Серебристо-золотой, с великолепной резьбой и до безумия острым лезвием. Пустынник поймал его одной рукой, другой сжимая пистоль.
"Если ты хочешь, это единственный способ"
Ее слова пронеслись по дикому темному лесу. Гигантские сосны подпирали желто-серый небосвод, замаранный кое-где чернильными тучами. Место показалось Пустыннику знакомым. Он вспомнил почему-то, как убил Мертвую Принцессу. Просто, она ведь и так была не совсем живая. Ха!
Пустынник и Судьба стояли друг против друга с Мечами Судьбы в дрожащих руках. И скоро эти мечи скрестятся... И кто-то победит...

Тем временем Великий Медвежонок в бешенстве и волнении метался туда сюда. И вдруг... Запах устойчивый запах!
"Это он, - Медвежонок уже летел вниз, - он вернулся домой."

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

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

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






плакаю

Воскресенье, 22 Мая 2005 г. 15:46 + в цитатник
Это цитата сообщения BiTcH [Прочитать целиком + В свой цитатник или сообщество!]

Идет по улице девушка в коротенькой юбочке и колготках, на колготках стрелка от колена и выше, под юбку. Навстречу ей идет парень. Заметив стрелку на колготках, спрашивает у девушки:
- Девушка, а куда ведет ваша стрелочка?
Девушка, немного подумав, отвечает:
- В пекарню.
Парень:
- А можешь мне запечь два яйца и сосиску?
Девушка:
- Не, дорогой, там сегодня борщ!

Искренне жалею, что в моём мозгу нет диктофона,

Суббота, 21 Мая 2005 г. 12:07 + в цитатник
Это цитата сообщения Psychopolymorff [Прочитать целиком + В свой цитатник или сообщество!]

Искренне жалею, что в моём мозгу нет диктофона, особенно если начинаю мыслить сплошной лирикой.....

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



...
Осколками небо стекает к ногам,
Размытые лица к беззвучным словам.
Не сбывшихся снов непрочная нить
Не держит меня к желанию жить.
Черный провал хрусталиков глаз
Воспримет реальность, как страшный рассказ.
Зацепится мысль за краешек разума,
Затем ещё сотня таких же несвязанных...
Качнувшись, срываюсь в пропасть безумия,
Я вижу двухмерность всего бытия.
...
DrugON






Поиск сообщений в only123
Страницы: [1] Календарь