Аналитические показатели изменения уровней ряда

Название показателя

Базисные

Абсолютный прирост

;

Темп роста, %

;

Темп прироста, %

Абсолютное значение

1-го % прироста

Для иллюстрации расчетов статистических показателей, представленных в таблице 1.10.3, рассмотрим динамический ряд производства цемента в экономическом регионе за 1991 – 2002 гг. (табл. 1.10.4.).

Абсолютный прирост () - это разность между последующим уровнем ряда и предыдущим (или базисным). Если разность между последующим и предыдущим, то это цепной абсолютный прирост:

если между последующим и базисным, то базисный :

Подставив значения выпуска цемента из графы 1 (табл. 1.10.4) в формулу (1.10.1), получим абсолютные цепные приросты (графа 2 табл. 1.10.4), в формулу (1.10.2) - базисные приросты (графа 3 табл.1.10.4).

Средний абсолютный прирост исчисляется двумя способами:

1) как средняя арифметическая простая годовых цепных приростов:

Подставив в формулу (1.10.3) значения из графы 2 (табл. 1.10.4) в числитель и n =11 (количество сравниваемых лет или число периодов) в знаменатель, получим:

2) как отношение базисного прироста к числу периодов:

Цепной темп роста - это отношение последующего уровня к предыдущему, умноженному на 100%, если исчисление идет в процентах, как в нашем случае:

(1.10.5)

Подставив в формулу (1.10.5) соответствующие данные графы 1 табл. 1.10.4, получим значения цепного темпа роста, см. графу 4 табл. 1.10.4.

Базисный темп роста - это отношение каждого последующего уровня к одному уровню, принятому за базу сравнения:

(1.10.6)

Подставив в формулу (1.10.6) те же данные, что и в предыдущую, получим значения базисного темпа роста, см. графу 5 табл.1.10.4.

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

Средний темп роста исчисляется по формуле средней геометрической из цепных коэффициентов роста:

(1.10.7)

Для этого показатели графы 4, выраженные в процентах, переведем в коэффициенты, подставив в формулу (1.10.7), получим:

Средний темп роста может быть исчислен вторым способом , исходя из конечного и начального уровней по формуле:

Из этого расчета можно сделать вывод, что среднегодовой темп роста составил за 1991-2002 г. - 100,75%.

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

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

Определяется как разность между темпами роста и 100% , если темпы роста выражены в процентах:

цепной -
(1.10.8)

базисный -
(1.10.9)

Для определения темпа прироста цепного берем разность между темпом роста цепным (графа 4 табл. 1.10.4) и ста процентами, для базисного - между темпом роста базисным (графа 5 табл. 1.10.4) и ста процентами.

Подставив все соответствующие данные в формулы (1.10.8 и 1.10.9), получим значения темпов прироста цепных (графа 6 табл. 1.10.4) и базисных (графа 7 табл. 1.10.4).

Среднегодовой темп прироста исчисляется подобно темпу прироста по формуле:

Таким образом, производство цемента за исследуемые годы увеличивалось в среднем за год на 0,75%.

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

Подставив данные графы 1 за предыдущий год, деленные на 100% (1942:100=19,4) в формулу (1.10.10), получим абсолютное значение 1% прироста (см. графу 8 табл. 1.10.4).

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

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

(1.10.11)

(1.10.11)

где - уровень ряда динамики;

n - число уровней;

Так, в таблице 1.10.4 приведен интервальный ряд динамики с равноотстоящими уровнями. По этим данным можно рассчитать среднегодовой уровень производства цемента за 1991-2002 гг. Он будет равен:

Средний уровень моментного ряда динамики так исчислить нельзя, так как отдельные уровни содержат элементы повторного счета.

Средний уровень моментного равноотстоящего ряда динамики находится по формуле средней хронологической:

(1.10.12)

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

где , - уровни ряда динамики;

Длительность интервала времени между уровнями.

Методы выравнивания рядов динамики

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

Методы анализа основной тенденции в рядах динамики разделяются на две основные группы:

1) сглаживание или механическое выравнивание отдельных членов ряда динамики с использованием фактических значений соседних уровней;

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

Рассмотрим методы каждой группы.

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

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

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

Недостаток метода простой скользящей средней состоит в том, что сглаженный ряд динамики сокращается ввиду невозможности получить сглаженные уровни для начала и конца ряда. Этот недостаток устраняется применением метода аналитического выравнивания для анализа основной тенденции.

Аналитическое выравнивание предполагает представление уровней данного ряда динамики в виде функции времени - y=f(t).

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

полином первой степени:

полином второй степени:

полином третьей степени:

полином n-ой степени: Реферат >> Маркетинг

... СТАТИСТИЧЕСКОЕ ИЗУЧЕНИЕ ДИНАМИКИ СОЦИАЛЬНО -ЭКОНОМИЧЕСКИХ ЯВЛЕНИЙ ПОНЯТИЕ И КЛАССИФИКАЦИЯ РЯДОВ ДИНАМИКИ Процесс развития, движения социально -экономических явле­ний ... - число элементов статистической совокупности, вариация которых свободна (неограничена...

  • Статистическое изучение взаимосвязи социально -экономических явлений

    Курсовая работа >> Экономика

    ... "Статистика" на тему: "Статистическое изучение взаимосвязи социально -экономических явлений" Введение Сущность исследования взаимосвязей признаков... () – показывает какая часть вариации результата обусловлена вариацией исследуемого фактора. (73%) Коэффициент...

  • Статистическое изучение взаимосвязи социально -экономических явлений и процессов

    Учебное пособие >> Экономико-математическое моделирование

    И менеджмент" А.В. Чернова И.А. Краснобокая СТАТИСТИЧЕСКОЕ ИЗУЧЕНИЕ ВЗАИМОСВЯЗИ СОЦИАЛЬНО -ЭКОНОМИЧЕСКИХ ЯВЛЕНИЙ И ПРОЦЕССОВ Методические указания по выполнению... показывает, какая часть общей вариации результативного признака (y) объясняется влиянием...

  • Статистические данные о социально -экономических явлениях и процессах

    Контрольная работа >> Социология

    Сущность социально -экономических явлений и определенные статистические закономерности. Статистическая сводка... 1) выделение социально -экономических типов явлений ; 2) изучение структуры явления и структурных... по характеру вариации значений изучаемого...

  • Регрессионный анализ в статистическом изучении взаимосвязи показателей

    Реферат >> Маркетинг

    Тюмень, 2010 СОДЕРЖАНИЕ Введение 3 1.Статистическое изучение взаимосвязи социально -экономических явлений и процессов 5 2.Характеристика регрессионного... α и числом степеней свободы вариации . В социально -экономических исследованиях уровень значимости α обычно...

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

    Рассчитываем коэффициент роста, умножаем на 100 и получаем темп роста

    Может быть рассчитан по формулам:

    Также темп роста может определяться так:

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

    Абсолютный прирост

    Абсолютный прирост характеризует увеличение (уменьшение) уровня ряда за определенный промежуток времени. Он определяется по формуле:

    где уi - уровень сравниваемого периода;

    Уi-1 - Уровень предшествующего периода;

    У0 - уровень базисного периода.

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

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

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

    Темп прироста можно получить из темпа роста:

    Коэффициент прироста может быть получен таким образом:

    Абсолютное значение 1%-го прироста

    Абсолютное значение 1% прироста (А%) - это отношение абсолютного прироста к темпу прироста, выраженный в процентах и показывает значимость каждого процента прироста за тот же период времени:

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

    Примеры расчетов показателей динамики

    Перед изучением теории по теме показатели динамики Вы можете посмотреть примеры задач по нахождению: темпа роста, темпа прироста, абсолютного прироста, средних величин динамики

    О показателях динамики

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

    Анализ интенсивности изменения во времени происходит с помощью показателей, которые получаются вследствие сравнения уровней. К этим показателям относят: темп роста , абсолютный прирост, абсолютное значение одного процента прироста. Для обобщающей характеристики динамики исследуемых явлений определяется : средние уровни ряда и средние показатели изменения уровней ряда. Показатели анализа динамики могут определяться по постоянной и переменным базам сравнения. Здесь принято называть сравнимый уровень отчетным, а уровень, с которого производится сравнение, - базисным.

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

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

    Определение

    Темп роста призван показать, сколько процентов составляет один показатель от другого, то есть с его помощью можно сравнить исследуемый показатель с базисным или предыдущим значением. Если полученное значение меньше 100%, то наблюдается темп уменьшения исследуемого показателя в соотношении с базисным или предыдущим.

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

    Сравнение

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

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

    Выводы сайт

    1. Темп роста показывает, сколько процентов составляет один показатель от другого, а темп прироста показывает, на сколько процентов один показатель отличается от другого.
    2. Темп роста можно использовать для расчета темпа прироста, а наоборот – нельзя.
    3. Если наблюдается не темп роста, а его противоположность, то значение результата будет меньше 100%; если же наблюдается не темп прироста, а темп снижения, то значение результативного показателя будет отрицательным.

    Liked:
    26



    Did not like: 12

    В этой статье я покажу как написать простой плагин на jQuery, который будет строить из обычной HTML-разметки симпатичное динамическое меню. Первое, с чего мы начнём, - определимся, что именно будет делать плагин и какова наша цель. Итак:

    1. Плагин назовём dynamenu (от английского Dynamic Menu ). Короткое, неплохое название в духе jQuery. Динамика меню будет представлена изменением "прозрачности" пунктов меню и изменения позиции элемента меню при наведении мышью - пункт меню будет немного "уезжать" вправо.
    2. Структуру меню мы зададим статично в виде HTML-разметки. Это будет последовательный набор DIV-элементов. Внутри каждого div-а - гиперссылка с названием пункта меню. Для каждого div-a зададим атрибут class="dynamenu" для того, чтобы затем можно было обратится к набору div-ов и превратить их в меню.
    3. Для анимации меню будем использовать стандартный метод jQuery - animate(). Его вполне хватит для реализации задачи "динамичности". С помощью этого метода мы изменим свойства opacity и left в момент наведения мышью на элемент и убирания мыши с элемента меню.

    Теперь определим, какие файлы нужно создать, чтобы проверить работу рассматриваемого примера. Вот они:

    2. jquery.dynamenu.js - код плагина, помещенный в отдельный файл.

    3. dynamenu.css - стиль нашего меню. Сюда помещаем весь CSS

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

    Начинаем писать плагин. Поехали!

    1. Готовим HTML разметку страницы

    Зададим самую простую разметку для нашего меню. Пусть это будут несколько пунктов меню для нашего будущего сайта:

    Новости сайта
    Уроки Photoshop
    Кисти для Photoshop
    Красивые шрифты

    Тут всё просто - 4 div-элемента, у каждого задан класс dynamenu для того, чтобы потом передать его в качестве селектора нашему будущему плагину. Внутри каждого div-а гиперссылка с названием пункта меню.

    2. Задаём CSS-стили

    Чтобы стилизовать наше меню, используем всего два CSS-стиля. С их помощью мы сделаем фон каждого пункта меню серым, ширину меню в 300 пикселей с внешними и внутренними отступами по 5 пикселей, а все ссылки меню - чёрного цвета:

    a.mlink { color:#000; text-decoration:none; } .dynamenu { background-color: #aaaaaa; width:300px; margin:5px; padding:5px; font-family: "Tahoma"; font-size: 9pt; }

    3. Пишем "каркас" плагина

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

    (function($) { // список методов нашего плагина var methods = { init: function(options) { // сюда можно помещать инициализацию плагина. в нашем случае // для простоты здесь ничего не будет }, sliding: function () { // метод sliding нашего плагина будет непосредственно строить меню } }; // "регистрируем" наш плагин в пространстве имен jQuery. $.fn.dynamenu = function(method) { // здесь вызываем нужный метод внутри плагина } })(jQuery);

    Ничего сложного в каркасе, как видите, нет. Зато он несёт в себе полезную информацию. Первый важный момент, который нужно понять в каркасе - мы собираем все методы, добавляемые к нашему плагину (init, sliding) в один объект - methods. Это позволяет не забивать пространство имен $.fn лишними функциями. Правильное указание пространства имен нашего плагина - очень важная часть процесса разработки плагинов как такового. Использование пространства имен гарантирует, что наш плагин с минимальной долей вероятности будет переписан другими плагинами или кодом, расположенными на одной и той же HTML-странице. Пространство имен также делает жизнь проще, т.к. помогает лучше следить за методами, событиями и данными.

    Всегда используйте сокрытие методов внутри плагина, например в объекте methods. Помимо того, что это хороший стиль программирования, данный приём поможет вам избежать конфликтов с другими сторонними библиотеками и плагинами, а также позволит не засорять пространство имен jQuery

    Следующий момент, на который стоит обратить внимание - конструктор нашего плагина. Это строка $.fn.dynamenu = function (method) {...}. Как видим, конструктор принимает один параметр - method . В качестве значения для параметра мы будем передавать строку, содержащую имя метода внутри объекта methods, который мы собираемся вызвать. Давайте заполним конструктор следующим кодом:

    $.fn.dynamenu = function(method) { if (methods) { methods.init.apply(this, arguments); return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1)); } else { $.error("Метод" + method + " не существует!"); } }

    Разберем, что мы сделали. Сначала мы проверяем, есть ли метод с именем, переданным в параметре конструктора, в объекте methods нашего плагина. Если метод есть, то мы вызываем сначала метод init - для инициализации нашего плагина, а затем вызываем тот метод, имя которого передали в параметре конструктора, причем передаем ему все оставшиеся аргументы. Если же метода с таким именем нет, то мы выдадим ошибку и плагин прекратит свою работу.

    На данном этапе уже многое сделано! Уже теперь мы можем обращаться к нашему плагину и вызывать его методы, хоть и никакой полезной работы они пока не выполняют,. Я рекомендую поместить код нашего плагина в отдельный файл и назвать его jquery.dynamenu.js . Размещение кода плагина в отдельном файле является логичным - ведь плагин должен быть по своей сути универсальным и давать нам и другим разработчикам подключать его в готовом виде к своему сайту.

    Теперь, когда наш каркас наполнен кодом, способным вызывать внутренние методы плагина, пора нарастить "мясо", то есть написать код, который будет непосредственно превращать наши div-блоки в красивое динамическое меню. Приступим...

    4. Пишем код, создающий динамическое меню на jQuery

    Весь полезный код нашего плагина будет размещён в функции sliding , которая является внутренним методом плагина и находится в объекте methods . Давайте кратко опишем последовательность действий по превращению статичной разметки с нашими div-блоками в динамическое меню на jQuery:

    1. Сначала изменим всем div-блокам прозрачность, установив её в 0.4 пункта. Это позволит сделать каждый пункт меню сероватым. Потом, при наведении мышкой на него мы будем менять opacity до 1, таким образом создавая эффект выделения пункта меню
    2. Далее мы создадим обработчики "входа" мышью в область пункта меню и "выхода" из неё. При наведении на пункт меню будем менять стиль шрифта на полужирный и менять цвет фона на более тёмный. Также, при помощи стандартного метода jQuery animate мы сделаем эффект "выдвигания" меню немного вправо. При уходе мыши из области пункта меню просто будем возвращать все параметры в начальное состояние.

    Вот, собственно, и вся логика. А теперь посмотрим, как это реализовать:

    return this.each(function() { $(this).css({"opacity":"0.4"}); $(this).hover(function() { $("a.mlink", this).css({"font-weight":"bold"}); $(this).animate({ opacity:1, "margin-left":"+=5" }, 100, "linear"); }, function() { $("a.mlink", this).css({"font-weight":"normal"}); $(this).animate({ opacity:0.4, "margin-left":"-=5" }, 100, "linear"); }); });

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

    $(".myelm").dynamenu("sliding").css({"border" : "1px solid red"});

    В приведенном выше куске кода мы видим, что такое цепочка вызовов: сначала мы выбираем все элементы на странице с классом myelm, затем используем наш плагин dynamenu и затем снова по цепочке применяем уже стандартный метод jQuery css() для изменения стиля элементов. Если бы мы не возвращали из метода конструкцию return this.each(function() { ... }) , то использовать метод css() в "цепочке" уже бы не смогли.

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

    Едем дальше, внутри оператора each(), где мы пробегаем по всем нашим div-блокам идет как раз начальная установка свойства "прозрачность" (opacity) элемента в 0.4. пункта. Максимальное значение opacity - это 1 (100%), поэтому мы делаем "прозрачность" в 40%. После этого мы ставим два обработчика на "наведение" (hover) мыши и "уход" мыши из области div-блока. В первом обработчике мы устанавливаем название пункта меню полужирным шрифтом и используем метод animate(), чтобы добиться "полной непрозрачности" пункта меню, а также делаем сдвиг вправо на 5 пикселей. В обработчике "ухода" мыши мы просто возвращаем элемент в начальное состояние - меняем снова шрифт на обычный (normal) и делаем сдвиг влево снова на 5 пикселей.

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

    Успехов в написании хороших плагинов! Комментарии, вопросы и отзывы всегда приветствуются;)

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

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

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

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

    Я раз десять пробовал модернизировать меню "Документы", но особо путного ничего не получилось. Могу предложить другой вариант. Представьте себе, что в системном меню на первом его уровне имеется один или несколько пунктов, открывающих доступ к системе подменю, соответствующей принятому вами разбиению документов на группы (по теме, времени, типу и т.п.), причем в подменю содержатся все находящиеся в вашем распоряжении файлы документов, их состав обновляется по мере создания или удаления, они переводятся из одного меню в другое, автоматически следуя за перемещениями файлов на диске.

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

    Но чтобы все выглядело тик-так, придется еще повозиться. Надо использовать длинные имена, тогда ваше пользовательское меню с документами получит человеческий вид. Это потребует от вас отказаться от милых сердцу DOS"овских каракатиц наподобие Docs, Doc1 и т.п. Ничего, надо привыкать называть вещи своими именами и забыть про восьмибуквенные подпольные клички.

    Над именами придется подумать. Как я уже говорил, количество вложенных директорий не должно превышать 3, ну максимум 4 уровней. Их названия не следует делать слишком пространными, как и имена содержащихся в них документов. Иначе ваше меню будет гулять по экрану сначала слева направо, потом загибаться обратно и снова вперед. Замучаетесь гонять мышку. Избегайте дублирования слов. Если директория и, соответственно, подменю называются "Договоры", то не надо входящие в него документы называть "Договор №139-45 от...". Совершенно очевидно, что это договор, раз он лежит в папке с договорами. Старайтесь также с помощью нескольких слов, отведенных судьбой (или шириной экрана, если вам так больше нравится) на описание документа, отразить его содержание. Номер и дата - сведения прекрасные, но навряд ли вы с ходу вспомните, о чем был этот документ.

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

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

    Скрытые элементы меню

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

    В меню Windows 95 полным-полно вещей, которыми при нормальной работе пользоваться не приходится. К ним относятся ярлыки от программ деинсталляции приложений, различные файлы Readme и прочая текстовая информация от производителей, программы регистрации и формы для отправки по электронной почте. Сюда же можно зачислить и утилиты служебного плана, которыми вы пользуетесь только тогда, когда софт начинает хныкать или вести себя подозрительно. Для выполнения ежедневных процедур компьютерной гигиены удобнее всего (и достаточно) прибегнуть к услугам утилиты автоматического выполнения System Agent из комплекта Plus, вместо того чтобы запускать сканирование диска и дефрагментацию вручную. А раз так, то и постоянно держать эти программы в меню нет резона.

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

    В Windows 95, как и в DOS, есть понятие скрытых файлов и директорий. При обычной работе вы не видите их на экране, так как система не показывает те файлы и каталоги, у которых установлен флажок "Скрытый". Флажок этот взводится и сбрасывается в окне свойств файла. Чтобы увидеть такие объекты, надо в "Проводнике" зайти через меню в "Вид"/"Параметры" и включить режим "Отображать все файлы".

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

    Если меню стало проще и удобнее, значит вам удалось внести в интерфейс Windows 95 еще одну полезнейшую настройку. Когда же придется заняться ковырянием в системных неполадках (а такое, увы, случается нередко), просто включите в "Проводнике" отображение всех файлов и получите в свое распоряжение полный набор элементов меню.

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

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

    Роман Соболенко