Разработка программно-технологического обеспечения статистического описания объектов посредством Visual Basic for Application Excel
Статистическая аппроксимация законов распределения. Основные теоретические сведения теории классификации. Алгоритмы параметрической аппроксимации функции плотности распределения вероятностей. Апробация и применение средств автоматизации в виде макросов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 23.08.2009 |
Размер файла | 5,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Рисунок 4.2 - Кнопка «Рабочие расчеты»
Рисунок 4.3 - Результат работы кнопки «Рабочие расчеты»
Как видно из рисунка 4.3 исходные объекты заносятся в ячейки А2:А21, В2:В21, С2:С21. После нажатия кнопки «Рабочие расчеты», полученная информация занесена в ячейки I3:G22, M3:N22, O3:P22.
Таким образом, при помощи макроса получены необходимые рабочие расчеты, нужные для определения матриц расстояний и совершения классификации объектов.
Для дальнейших исследований, предусмотренных алгоритмом прямой классификации, необходимо произвести расчет матриц линейного и евклидового расстояний. С этой целью на форму помещена кнопка «Матрицы расстояний» и к ней написан макрос.
Рисунок 4.4 - Кнопка «Матрицы расстояний»
После нажатия на данную кнопку на рабочий лист выводится необходимая информация.
После расчета матриц расстояний производится классификация объектов, т.е. разделение элементов выборки на два непересекающиеся классы. Эти действия выполняет макрос, написанный для кнопки «Выделение 2 классов, вывод промежуточных результатов» (см. рисунок 4.5).
Для визуализации процесса классификации автоматически строится график начального и конечного разбиения на классы (см. рисунок 4.6).
Таким образом, с помощью построенных макросов заданные совокупности объектов классифицируются методом K - ближайших соседей.
Рисунок 4.5 - Кнопка «Выделение 2 классов, вывод промежуточных результатов»
Рисунок 4.6 - Графики начального и конечного разбиения на классы
4.1.2 Апробация программного обеспечения параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги. При обработке данных на практике, после того, как исходная совокупность данных разбита на однородные группы, осуществляется оценка параметров соответствующего распределения по каждой группе. Описанию решения задачи оценки параметров нормального распределения с помощью нормальной вероятностной бумаги посвящен этот пункт.
В лабораторной работе «Оценка функции распределения с помощью нормальной вероятностной бумаги» из курса «Пакеты статистической обработки данных» требуется проверить с помощью вероятностной бумаги гипотезу о том, что статистические данные - случайная выборка из нормального распределения (с параметрами и ) и оценить значения и . Для этой цели в Excel разработана кнопка «Вычислить», а также написан макрос, который выполняет поставленную задачу (см. рисунок 4.7).
Рисунок 4.7 - Кнопка «Вычислить»
Как видно из рисунка 4.7, исходные данные размещены в ячейки А2:А22. После нажатия кнопки «Вычислить», полученная информация о функции распределения размещается в ячейки D2:D22, о порядковом номере элемента вариационного ряда в ячейки С2:С22, о функции V - в ячейки Е2:Е22. Максимальный и минимальный элементы занесены в ячейки G2:G3, соответствующие им значения функции V - в ячейки G4:G5. Оценки для значений и занесены в ячейки G7:G8. На рабочем листе также помещен график прямой, вдоль которого ложатся точки (x(i), Vi) и сглаживающий эту прямую тренд.
Таким образом, при помощи макроса получены оценки для значений математического ожидания м и стандартного отклонения у, которые соответствуют генеральной совокупности, из которой взят исходный ряд наблюдений.
4.1.3 Апробация программного обеспечения непараметрических методов статистической аппроксимации законов распределения. Первоначально перед пользователем стоит выбор решаемой задачи: гистограмма и полигон частот для статистических данных с разбиением на интервалы равной длины (задача 1), гистограмма и полигон частот для статистических данных с разбиением на равнонаполненные интервалы (задача 2), непараметрическая оценка функции плотности распределения вероятности для статистических данных методом прямоугольных вкладов (задача 3).
При выборе задачи 1 на рабочий лист выдаются результаты работы макроса, а именно значения длины и высоты интервалов для гистограммы и полигона частот при разбиении интервалов на участки равной длины. После этого по найденным данным автоматически построены графики гистограмма и полигон частот (см. рисунок 4.8).
Рисунок 4.8 - Равноинтервальная гистограмма и полигон частот
При выборе задачи 2 на рабочий лист выдаются результаты работы макроса, а именно значения длины и высоты интервалов для гистограммы и полигона частот при разбиении на равнонаполненные интервалы. После этого по найденным данным автоматически построены графики гистограмма и полигон частот (см. рисунок 4.9).
Рисунок 4.9 - Равнонаполненная гистограмма и полигон частот
При выборе задачи 3 на рабочий лист выдаются результат работы макроса, а именно выходной массив значений для функции ядерного типа. После этого по найденным данным автоматически построен график функции ядерного типа (см. рисунок 4.10).
Рисунок 4.10 - «Ядерная» аппроксимация
Таким образом, при помощи ряда макросов проведена первичная статистическая обработка по описанию эмпирических данных: построены равноинтервальные и равнонаполненные гистограммы и полигоны частот, а также функция ядерного типа заданной совокупности объектов.
ЗАКЛЮЧЕНИЕ
В ходе выполнения дипломной работы изучены:
ѕ краткие теоретические сведения о типах методов кластерного анализа, об алгоритмах прямой классификации;
ѕ сведения об оценке функции распределения с помощью нормальной вероятностной бумаги;
ѕ теоретические сведения о статистической аппроксимации законов распределения, гистограмме и полигоне частот, оценке плотности распределения вероятностей «ядерного» типа.
С целью более глубокого изучения задач статистического описания объектов разработаны алгоритмы и программные обеспечения посредством Visual Basic for Application в среде встроенного пакета анализа данных EXEL.
В ходе выполнения дипломной работы на основе теоретических сведений и разработанных алгоритмов программного обеспечения разработаны и реализованы в среде встроенного пакета анализа данных Microsoft Excel средства автоматизации, которые позволяют быстро и эффективно получить требуемую информацию о классификации выборки упрощенным методом К - ближайших соседей, о правильности выполнения лабораторной работы на тему «Оценка функции распределения с помощью нормальной вероятностной бумаги» из курса «Пакеты статистической обработки данных», а также аппроксимировать неизвестную функцию плотности распределения непараметрическими методами.
Таким образом, созданы обучающие средства, позволяющие
ѕ преподавателю упростить процедуру проверки правильности выполнения работ;
ѕ студентам упростить решение задачи статистического описания;
ѕ студентам предоставить наглядные обучающие средства для изучения влияния нормировки, начального разбиения выборки, выбора расстояния на результаты классификации.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1 Айвазян С.А., Бухштабер В.М., Енюков И.С и др. Прикладная статистика: Классификация и снижение размерности. - М.: Финансы и статистика. 1989. -605с.
2 Айвазян С.А., Енюков И.С., Мешалкин Л.Д. Прикладная статистика: основы моделирования и первичная обработка данных. - М.: Финансы и статистика. 1983. -472c.
3 Афифи А., Эйзен С. Статистический анализ. Подход с использованием ЭВМ. - М.: Мир.1982. -405с.
4 О формировании эмпирического образа данных/ Осипенко А.Н., Осипенко Н.Б.// -M.: НТИ. Сер. 2. 1990. -С.30-35.
5 Пособие для лабораторных занятий по спецкурсу «Обработка экспериментальных данных на ЭВМ» (для специальностей Н.01.01 и Н.08.01)/ Максимей И.В., Осипенко Н.Б., Осипенко А.Н. Гомель: ГГУ, 1998. -54с.
6 Мандель И.Д. Кластерный анализ. - М.: Финансы и статистика, 1988. -172с
Приложение А
Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных STATISTICA
Краткая характеристика пакета STATISTICA
Для анализа данных исследователь может воспользоваться готовыми пакетами анализа данных. Одним из таких пакетов статистической обработке является пакет STATISTICA.
Пакет STATISTICA является одним из наиболее мощных пакетов по статистической обработке.
Статистика - это наука, которая позволяет увидеть закономерности в хаосе случайных данных, выделить в них устойчивые связи и определить наши действия с тем, чтобы увеличить долю правильно принятых решений. Как все математические науки, статистика родилась из потребностей практики: подобно тому, как древние египтяне после разливов Нила вынуждены были заново измерять свои участки и для этого разработали начала геометрии, так и мы, окруженные хаотическими данными, вынуждены анализировать их. Конечно, мы стремимся интуитивно сузить пределы случайного, максимально сократить рамки неопределенности, но сделать полностью это редко когда удается. Применяя статистические методы, мы стремимся найти закономерности в случайных данных и воспользоваться найденными закономерностями.
STATISTICA - это универсальная интегрированная программная система, предназначенная для статистического анализа и визуализации данных, управления базами данных и разработки пользовательских приложений, содержащая широкий набор процедур анализа для применения в научных исследованиях, технике, бизнесе, а также специальные методы добычи данных. Помимо общих статистических и графических средств в системе имеются специализированные модули, например, для проведения социологических или биомедицинских исследований, решения технических и, что очень важно, промышленных задач: карты контроля качества, анализ процессов и планирование эксперимента. Работа со всеми модулями происходит в рамках единого программного пакета, для которого можно выбирать один из нескольких предложенных интерфейсов пользователя.
С помощью реализованных в системе STATISTICA мощных языков программирования, снабженных специальными средствами поддержки, легко создаются законченные пользовательские решения и встраиваются в различные другие приложения или вычислительные среды.
STATISTICA представляет собой интегрированную систему статистического анализа и обработки данных. Она состоит из следующих основных компонент, объединенных в рамках одной системы:
ѕ электронных таблиц для ввода и задания исходных данных, а также специальных таблиц для вывода численных результатов анализа;
ѕ мощной графической системы для визуализации данных и результатов статистического анализа;
ѕ набора специализированных статистических модулей, в которых собраны группы логически связанных между собой статистических процедур;
ѕ специального инструментария для подготовки отчетов;
ѕ встроенных языков программирования SCL (STATISTICA Command Language) и STATISTICA BASIC, которые позволяют пользователю расширить стандартные возможности системы.
В ряде случаев для проведения законченного статистического исследования не требуется дополнительное программное обеспечение - все этапы статистического анализа, начиная от ввода исходных данных и их преобразований и заканчивая подготовкой отчета или написания собственных процедур обработки, можно выполнить, используя только систему STATISTICA.
STATISTICA предоставляет пользователю уникальную среду экспериментирования, разведки, графического отображения и углубленного анализа данных, в которой статистическая обработка становится не рутинным занятием, а увлекательным исследованием с использованием новейших компьютерных технологий и современных приемов и методов.
Опишем основные модули пакета STATISTICA, используемые в работе:
ѕ модуль диалога
ѕ модуль построения/выполнения технологических цепочек
ѕ модуль управления данными.
ѕ модуль статистических функций
ѕ модуль визуализации
1 Модуль диалога. С помощью данного модуля пользователь производит выбор необходимого ему метода обработки информации или технологической цепочки методов и выполняет настройку соответствующих параметров. Данная компонента обеспечивает удобный интерфейс с пользователем в системе Windows. Предлагается широкий спектр диалоговых окон для настройки как параметров предоставляемого набора функций (статистической обработки, визуализации результатов и т.д.), так и параметров среды общения, что позволяет настроить модуль под конкретного пользователя. Также обеспечивается возможность справки по текущей ситуации.
2 Модуль построения/выполнения технологических цепочек. Данный модуль позволяет описывать часто используемую цепочку действий по обработке информации в виде пакета команд предлагаемого SCL-языка (STATISTICA Command Language), синтаксис которого очень похож на распространенный язык Basic или Pascal. Практически все возможности пакета STATISTICA продублированы соответствующими командами-функциями, на вход которых подаются продекларированные параметры настройки. Заметим, что возможности расширены вплоть до имитации работы пользователя (запись и воспроизведение команд пользователя и имитация работы органов управления посредством SCL-команд). Модуль реализован в виде двух Windows-программ: sta_com.exe (конструктор) и sta_run.exe (процессор). Созданные технологические цепочки хранятся в базе знаний в виде текстового файла с расширением SCL и могут выполняться посредством процессора sta_run из других Windows-приложений. Эта возможность позволяет строить проблемно-ориентированный программный инструментарий, который будет более понятен и прост в использовании для специалиста, что значительно повысит эффективность его работы.
3 Модуль управления данными. STATISTICA обеспечивает широкие возможности импорта/экспорта из различных стандартных типов баз данных как Windows, так и DOS версий (Symphony, Quattro, dBASE III+, dBASE IV, Paradox и ASCII формат). При импорте данные переводятся во внутренний формат (STA-формат), поддерживающий 32,000 переменных (признаков) и обеспечивающий более быструю обработку данных. Предлагаются возможности верификации (попадание в интервал), различные варианты ранжирования, кодировки данных (соотнесение значений по заданным категориям), создание переменных по уравнению связи признаков, нормировки, смещения значений признаков, замена пропусков на медианное значение, а также стандартные возможности редактирования данных (выделения подвыборки, копирования, удаления, добавления, перемещения, транспонирования и сортировки). Для автоматизации выполнения небольшого объема действий по управлению данными имеется встроенная версия SCL-языка - QMML (Quick Megafile Manager Language). Имеется также возможности установления DDE-связи с другими Windows-приложениями (такие как Excel, MS Word, Ami Pro, Quattro Pro), а также поддержка OLE. Модуль реализован в виде Windows-программы: sta_dat.exe.
4 Модуль статистических функций. Здесь предлагается широкий спектр возможностей статистического анализа данных. Из-за большого объема информации по предлагаемым методам анализа ограничимся краткой характеристикой каждого из них:
ѕ Basic Statistics - базовый статистический анализ: описательная статистика; описательная статистика для групп; t-тест для зависимых и независимых выборок; построение матрицы парных корреляций, частотных таблиц (гистограмм) и другое (реализован в виде Windows-программы sta_bas.exe);
ѕ Nonparametrics - непараметрический анализ (внутри и межгрупповые различные тесты, корреляции), обычная описательная статистика (процентили, медиана и т.д. (sta_non.exe);
ѕ Linear Regression - множественная линейная регрессия (различные методы определения), фиксированная нелинейная регрессия (полиномиальная) (sta_lin);
ѕ NonLinear Estimation - построение нелинейной регрессии (определенного пользователем вида: фиксированной экспоненциальной, ломанной линейной и др. ) с помощью различных аппроксимаций (Симплекс, Квази-Ньютона, Хук-Риверса и др.) (sta_log);
ѕ Time Series and Forecasting - анализ временных рядов и прогноз, а также различного рода сглаживания, трансформации, определение сезонных колебаний и т.д. (sta_tim);
ѕ Cluster Analysis - кластерный анализ, позволяющий выделять однородные группы с помощью метода К-средних, попарного объединения и иерархического метода (sta_clu).
ѕ Factor Analysis - факторный анализ методом выделения главных компонент, максимального правдоподобия факторов, центроидный метод, метод главных аксцис (sta_fac);
ѕ Canonical Analysis - оценка взаимосвязи признаков методом главных компонент (sta_can);
ѕ Multidimensional Scaling - многомерное шкалирование, анализ расстояний или однородности/разнородности, восстановление расстояний (sta_mul)
ѕ Reliability & Item Analysis - методы построения и анализа тестов, построения различных корреляций (Кронбач-альфа, часть-целое, множественные) (sta_rel);
ѕ Discriminant Function Analysis - дискриминантный анализ (sta_dis);
ѕ Survival Analysis - анализ процессов гибели и размножения: описание и сравнение развития; анализ таблиц развития; тест Каплан-Мейера и тесты для двух и более выборок, определение типа распределения (Вейбул, Гомпертц, ...), построение регрессионных моделей (лог-нормальная, экспоненцияльная и другие формы) (sta_sur);
ѕ Quality Control - контроль качества, анализ различных диаграмм (X, R, S, Si, CUSUM, Парето и др.) (sta_qua);
ѕ Process Analysis - анализ процессов: расчет плана по среднему, по пропорциям и Пуассоновским частотам, анализ совместности процессов и интервалов толерантности и другое (sta_pro);
ѕ Experimental Design - планирование экспериментов, построение ДФП, ЦКП и др. (sta_exp);
5 Модуль визуализации. Данный модуль обеспечивает отображение результатов работы статистических процедур. Предлагается два режима отображения - табличный и графический. Для графического отображения предусмотрены следующие возможности:
ѕ 2-мерная графика: гистограмма, XY-проекция, вероятностная бумага (нормальная, полунормальная), ящики с “усами”, круговые диаграммы и другое;
ѕ 3-мерная графика: проекции, гистограммы, ящики с “усами” и т.д.;
ѕ различные 3-мерные проекции;
ѕ отображение многомерной выборки в виде “лиц Чернова”, графиков Кивиата, полигонов, профилей и т.д.
Имеется возможность сохранения результатов в виде файлов данных (для таблиц), STG-файлов (для графики) либо в виде твердой копии с помощью функций печати. Используя стандартные OLE-операции можно также вставлять результаты в документы и электронные таблицы (Word, PageMaker, Exсel и другие приложения Windows, поддерживающие стандарт OLE).
Технология статистического анализа данных пакета STATISTICA
Данная работа в пакете Statistica апробирована среди студентов математического факультета группы ПОИТ-36.
Для начала работы с пакетом Statistica необходимо подготовить данные измерений в виде файла формата dBase или в Excel. Дальнейшее выполнение технологических цепочек с использованием пакета Statistica предполагает предварительный импорт данных во внутренний формат данных пакета. Для этого необходимо выполнить следующую цепочку действий:
1 Вызов пакета Statistica из Windows: \Пуск \Программы \Statistica. После этого пользователю будет предложено выбрать раздел, с которым он будет работать.
2 Выбор раздела управления данными: \Data Management MFM \Switch To \Cancel.
3 Выбор операции импорта исходных данных: \File \Import \ODBC.
4 Выбор типа импортируемого файла: \dBase Files \OK;
5 Указание пути к данным: \Выбор диска \Выбор папки \OK.
6 Указание импортируемой таблицы: \Tables \<выбор>.
7 Выбор списка рабочих полей: \Fields \<выбор> \ADD.
8 Импорт данных: \OK \<ввод имени: data > \OK. Если появиться окно диалога `File exist...', то нажать кнопку `OK'.
9 Выход: \File \Exit.
Методы автоматической классификации требуют предварительной нормировки данных. Технологическая цепочка нормировки данных имеет вид:
1 Нормирование данных: \Statistica \Data Management MFM \<выбор всех признаков> \Edit \Fill/Standardize Block \Standardize Columns. При этом осуществляется стандартная нормировка , где - среднее по признаку (столбцу) х, - стандартное отклонение по признаку х.
2 Сохранение нормированной выборки: \File \Save As \File Name: normir \OK.
3 Выбор раздела кластерного анализа: \Statistica \Cluster Analysis \Switch To.
Таким образом, следующие методы классификации ориентированы на рабочий файл `normir.sta'.
Алгоритмы прямой классификации методом иерархической классификации и методом К-средних приведены в пунктах 1.2.5 и 1.2.6.
Технологическая цепочка автоматической классификации методом иерархической классификации имеет вид:
1 Выбор метода иерархической классификации: \Joining (tree clustering).
2 Выбор признаков для классификации: \Variables \<выбор> \OK \OK.
3 В результате будет предложено графическое отражение процесса иерархической классификации. График можно распечатать (\File \Print Graph \OK) или сохранить в файле (\File \Save as). С помощью комбинации клавиш Ctrl+Ins, график можно сохранить в буфере обмена Windows и далее с помощью вставки данных буфера обмена (Shift+Ins) использовать его в редакторах отчетов.
4 По полученной графической проекции визуально определяется состав классов, который заносится в общий отчет в виде таблицы.
5 Выход: \Ctrl+F4 \Cancel \Cancel.
Технологическая цепочка автоматической классификации методом К-средних имеет вид:
1 Выбор метода К-средних: \K-means clustering.
2 Выбор признаков для классификации: \Variables \<выбор> \OK.
3 Указание возможного количества классов: \Number of clusters: <ввод количества> \OK.
4 Просмотр признакового состава классов: \Members of each cluster & distances.
5 В результате будут выведены таблицы, отражающие состав признаков по классам.
6 Формирование выходного отчета с использованием операций обмена с буфером Windows (полученные таблицы вставляются в выходной документ).
7 Выход: \File \Exit.
Апробация программного обеспечения алгоритма прямой классификации средствами пакета анализа данных Statistica
В ряде практических случаев для проведения законченного статистического исследования не требуется разрабатывать дополнительное, а достаточно использовать стандартное программное обеспечение, например, систему STATISTICA. Все этапы статистического анализа, начиная от ввода исходных данных, их преобразования и заканчивая подготовкой отчета или написания собственных процедур обработки, можно выполнить, используя только систему STATISTICA.
Для сравнения результатов, полученных при помощи разработанных в среде пакета анализа данных EXCEL макросов для алгоритма прямой классификации упрощенным методом K - ближайших соседей, используются средства Statistica. С этой целью разработана методика и рекомендации по работе в Statistica.
В пакете анализа данных для экспериментальных данных выбран инструмент исследования Kluster analis/K - means klustering. Получены следующие результаты.
Рисунок 5.1 - Определение классов
Как видно из полученных отчетов (см. рисунки 5.1, 5.2, 5.3) к первому классу отнесены элементы выборки под порядковыми номерами 1,2,4,5,6,7,9,10, ко второму классу - 3,8,11,12,13,14.!5,16,17,18,19,20. После сравнения этих данных с результатами работы макросов, разработанных в Excel, можно заметить, что наиболее близкие результаты были получены при первоначальном разбиении выборки на две части путем присвоения к первому классу первой половины элементов, ко второму классу - второй половины выборки, независимо от выбора расстояния.
Рисунок 5.2 - Состав первого класса и расстояние для классового центра
Рисунок 5.3 - Состав первого класса и расстояние для классового центра
Приложение Б
Текст программы макроса для параметрической аппроксимации функции плотности распределения вероятностей на основе нормальной вероятностной бумаги
Function RndN(ByVal a As Single, s2 As Single) As Single
'возвр. число, нормально распределенное со средним a и дисперсией s2
Dim usum As Single
Dim i As Integer
usum = -6
For i = 1 To 12
usum = usum + Rnd
Next i
RndN = a + usum * Sqr(s2)
End Function
Private Sub CommandButton1_Click()
Dim i As Integer
Dim min As Double
Dim max As Double
Dim imax As Integer
Dim imin As Integer
Dim x084 As Double
Dim x05 As Double
Cells(7, 2) = "Ждите..."
'Очистка ячеек
n = Cells(2, 2)
For i = 2 To n + 2
Cells(i, 3) = ""
Cells(i, 4) = ""
' Cells(i, 5) = ""
Cells(i, 7) = ""
Cells(i, 8) = ""
Next i
'генерация элементов выборки 2
m = InputBox("Введите количество элементов выборки", "Ввод")
For i = 1 To m
Randomize
Cells(i + 2, 1) = RndN(0, 1)
Next i
For i = 1 To n
Application.Cells(i + 1, 3) = i
Next i
For i = 1 To n
Application.Cells(i + 1, 4) = i / n
Next i
'Построение прямой
min = Cells(2, 1)
For i = 3 To n + 1
If Cells(i, 1) < min Then min = Cells(i, 1)
Next i
max = Cells(2, 1)
For i = 2 To n
If Cells(i, 1) > max Then max = Cells(i, 1)
Next i
Cells(2, 7) = min
Cells(3, 7) = max
imin = 1
min = Application.Cells(2, 1)
For i = 3 To n
If Application.Cells(i, 1) > min Then imin = i - 1
If Application.Cells(i, 1) > min Then min = Application.Cells(i, 1)
Next i
imax = 1
max = Application.Cells(2, 1)
For i = 3 To n
If Application.Cells(i, 1) < max Then imax = i - 1
If Application.Cells(i, 1) < max Then max = Application.Cells(i, 1)
Next i
vmin = Application.Cells(imin + 1, 5)
vmax = Application.Cells(imax + 1, 5)
Application.Cells(4, 7) = vmax
Application.Cells(5, 7) = vmin
'Уравнение прямой имеет вид:
'x=(y-vmin)*(max-min)/(vmax-vmin)+min
x05 = (0.5 - vmin) * (max - min) / (vmax - vmin) + min
Cells(7, 7) = x05
x084 = (0.84 - vmin) * (max - min) / (vmax - vmin) + min
Cells(8, 7) = x084 - x05
Cells(7, 2) = "Готово."
End Sub
Приложение В
Текст программы макроса для алгоритма
прямой классификации
Private Sub CommandButton2_Click()
Dim i, j As Integer
Dim SUM As Integer
Dim flag As Integer
Dim max As Integer
Dim maxi As Double
Dim maxu As Double
Dim sr As Double
Dim sri As Double
Dim sru As Double
Dim l As Integer
Dim m As Integer
Dim jmin As Integer
Dim imin As Integer
Dim k(20) As Integer
SUM = 0
flag = 0
If OptionButton1.Value = True Then
Cells(19, 4) = "Ждите..."
n = Cells(1, 5)
' среднее по выборкам
For i = 1 To n
sr = sr + Cells(i + 1, 1)
Next i
Application.Cells(4, 4) = sr / n
For i = 1 To n
sri = sri + Cells(i + 1, 2)
Next i
Application.Cells(4, 5) = sri / n
For i = 1 To n
sru = sru + Cells(i + 1, 3)
Next i
Application.Cells(4, 6) = sru / n
'Максимальное значение
max = Cells(2, 1)
For i = 2 To n
If Cells(i, 1) > max Then max = Cells(i, 1)
Next i
Cells(7, 4) = max
maxi = Cells(2, 2)
For i = 2 To n
If Cells(i, 2) > maxi Then maxi = Cells(i, 2)
Next i
Cells(7, 5) = maxi
maxu = Cells(2, 3)
For i = 2 To n
If Cells(i, 3) > maxu Then maxu = Cells(i, 3)
Next i
Cells(7, 6) = maxu
maxu = Cells(2, 1)
For i = 2 To n
If Cells(i, 3) > maxu Then maxu = Cells(i, 1)
Next i
Cells(7, 4) = maxu
'Нормировка по формуле(6)
n = Cells(1, 5)
For i = 1 To n
Application.Cells(i + 2, 7) = Cells(i + 1, 1) / Cells(7, 4)
Next i
For i = 1 To n
Application.Cells(i + 2, 8) = Cells(i + 1, 2) / Cells(7, 5)
Next i
For i = 1 To n
Application.Cells(i + 2, 9) = Cells(i + 1, 3) / Cells(7, 6)
Next i
'по формуле (4)
n = Cells(1, 5)
For i = 1 To n
Application.Cells(i + 2, 10) = Cells(i + 1, 1) / Cells(4, 4)
Next i
For i = 1 To n
Application.Cells(i + 2, 11) = Cells(i + 1, 2) / Cells(4, 5)
Next i
For i = 1 To n
Application.Cells(i + 2, 12) = Cells(i + 1, 3) / Cells(4, 6)
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
If OptionButton5.Value = True Then
'по формуле (6)формируем матрицу расстояний
Cells(19, 4) = "Ждите..."
n = Cells(1, 5)
For i = 1 To n
For j = 1 To n
Application.Cells(j + 2, 18 + i) = Abs(Cells(j + 2, 7) - Cells(i + 2, 7)) + Abs(Cells(j + 2, 8) - Cells(i + 2, 8)) + Abs(Cells(j + 2, 9) - Cells(i + 2, 9))
Next j
Next i
'по формуле (4)формируем матрицу расстояний
n = Cells(1, 5)
For i = 1 To n
For j = 1 To n
Application.Cells(j + 24, 18 + i) = Sqr((Cells(j + 2, 10) - Cells(i + 2, 10)) * (Cells(j + 2, 10) - Cells(i + 2, 10)) + (Cells(j + 2, 11) - Cells(i + 2, 11)) * (Cells(j + 2, 11) - Cells(i + 2, 11)) + (Cells(j + 2, 12) - Cells(i + 2, 12)) * (Cells(j + 2, 12) - Cells(i + 2, 12)))
Next j
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
If OptionButton6.Value = True Then
Cells(19, 4) = "Ждите..."
'Выделение классов разделением на две части
n = Cells(1, 5)
For i = 1 To n / 2
k(i) = 1
Application.Cells(26 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(26 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(26 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(26 + i, 1) = i
Next i
For i = n / 2 + 1 To n
k(i) = 2
Application.Cells(26 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(26 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(26 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(16 + i, 2) = i
Next i
'формируем класс 1
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(25 + l, 7) = jmin
Next l
'формируем класс 2
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(30 + l, 7) = jmin
Next l
'Вывод классов на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(26 + l, 13) = i
Application.Cells(26 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(26 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(26 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(26 + m, 14) = i
Application.Cells(36 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(36 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(36 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
'Выделение классов по признаку четность
n = Cells(1, 5)
l = 1
For i = 1 To n
If i Mod 2 = 0 Then
k(i) = 1
Application.Cells(76 + l, 1) = i
Application.Cells(76 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(76 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(76 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
l = 1
For i = 1 To n
If i Mod 2 <> 0 Then
k(i) = 2
Application.Cells(76 + l, 2) = i
Application.Cells(86 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(86 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(86 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
'формируем класс 1 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(75 + l, 7) = jmin
Next l
'формируем класс 2 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(2 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(2 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(80 + l, 7) = jmin
Next l
'Вывод классов по признаку четность на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(76 + l, 13) = i
Application.Cells(76 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(76 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(76 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(76 + m, 14) = i
Application.Cells(86 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(86 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(86 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
'Работа с матрицей по евклидовому расстоянию
n = Cells(1, 5)
For i = 1 To n / 2
k(i) = 1
Application.Cells(126 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(126 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(126 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(126 + i, 1) = i
Next i
For i = n / 2 + 1 To n
k(i) = 2
Application.Cells(126 + i, 3) = Application.Cells(1 + i, 1)
Application.Cells(126 + i, 4) = Application.Cells(1 + i, 2)
Application.Cells(126 + i, 5) = Application.Cells(1 + i, 3)
Application.Cells(116 + i, 2) = i
Next i
'формируем класс 1
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(24 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(24 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(125 + l, 7) = jmin
Next l
'формируем класс 2
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(24 + j, i + 18) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(24 + j, i + 18)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(130 + l, 7) = jmin
Next l
'Вывод классов на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(126 + l, 13) = i
Application.Cells(126 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(126 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(126 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(126 + m, 14) = i
Application.Cells(136 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(136 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(136 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
n = Cells(1, 5)
l = 1
For i = 1 To n
If i Mod 2 = 0 Then
k(i) = 1
Application.Cells(176 + l, 1) = i
Application.Cells(176 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(176 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(176 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
l = 1
For i = 1 To n
If i Mod 2 <> 0 Then
k(i) = 2
Application.Cells(176 + l, 2) = i
Application.Cells(186 + l, 3) = Application.Cells(1 + i, 1)
Application.Cells(186 + l, 4) = Application.Cells(1 + i, 2)
Application.Cells(186 + l, 5) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
'формируем класс 1 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(26 + j, i + 1) < min Then
If i <> j Then
If (k(i) = 1) And (k(j) = 2) Then
imin = i
jmin = j
min = Application.Cells(26 + j, i + 1)
End If
End If
End If
Next j
Next i
k(jmin) = 1
Application.Cells(175 + l, 7) = jmin
Next l
'формируем класс 2 по признаку четность
For l = 1 To n / 4
imin = 1
jmin = 2
min = 1000
For i = 1 To n
For j = 1 To n
If Application.Cells(26 + j, i + 1) < min Then
If i <> j Then
If (k(i) = 2) And (k(j) = 1) Then
imin = i
jmin = j
min = Application.Cells(26 + j, i + 1)
End If
End If
End If
Next j
Next i
k(jmin) = 2
Application.Cells(180 + l, 7) = jmin
Next l
'Вывод классов по признаку четность на рабочий лист
l = 1
For i = 1 To n
If k(i) = 1 Then
Application.Cells(176 + l, 13) = i
Application.Cells(176 + l, 15) = Application.Cells(1 + i, 1)
Application.Cells(176 + l, 16) = Application.Cells(1 + i, 2)
Application.Cells(176 + l, 17) = Application.Cells(1 + i, 3)
l = l + 1
End If
Next i
m = 1
For i = 1 To n
If k(i) = 2 Then
Application.Cells(176 + m, 14) = i
Application.Cells(186 + m, 15) = Application.Cells(1 + i, 1)
Application.Cells(186 + m, 16) = Application.Cells(1 + i, 2)
Application.Cells(186 + m, 17) = Application.Cells(1 + i, 3)
m = m + 1
End If
Next i
Cells(19, 4) = "Готово"
GoTo metka
End If
metka:
End Sub
Private Sub CommandButton3_Click()
'Очистка ячеек
Cells(19, 4) = "Ждите..."
Cells(4, 4) = ""
Cells(4, 5) = ""
Cells(4, 6) = ""
Cells(7, 4) = ""
Cells(7, 5) = ""
Cells(7, 6) = ""
For i = 2 To 20 + 2
Cells(i, 1) = ""
Cells(i, 2) = ""
Cells(i, 3) = ""
Next i
For i = 2 To 20 + 2
Cells(i + 1, 7) = ""
Cells(i + 1, 8) = ""
Cells(i + 1, 9) = ""
Next i
For i = 2 To 20 + 2
Cells(i + 1, 10) = ""
Cells(i + 1, 11) = ""
Cells(i + 1, 12) = ""
Next i
For i = 1 To 20
For j = 1 To 20
Cells(i + 2, j + 18) = ""
Next j
Next i
For i = 1 To 20
For j = 1 To 20
Cells(i + 24, j + 18) = ""
Next j
Next i
For i = 1 To 20 / 2
Cells(26 + i, 1) = ""
Cells(26 + i, 2) = ""
Cells(40 + i, 1) = ""
Cells(40 + i, 2) = ""
Cells(54 + i, 1) = ""
Cells(54 + i, 2) = ""
Cells(68 + i, 1) = ""
Cells(68 + i, 2) = ""
Cells(25 + i, 7) = ""
Cells(39 + i, 7) = ""
Cells(53 + i, 7) = ""
Cells(68 + i, 7) = ""
Next i
For i = 1 To 10
Cells(26 + i, 1) = ""
Cells(26 + i, 2) = ""
Cells(26 + i, 13) = ""
Cells(26 + i, 14) = ""
Cells(76 + i, 1) = ""
Cells(76 + i, 2) = ""
Cells(76 + i, 13) = ""
Cells(76 + i, 14) = ""
Cells(126 + i, 1) = ""
Cells(126 + i, 2) = ""
Cells(126 + i, 13) = ""
Cells(126 + i, 14) = ""
Cells(176 + i, 1) = ""
Cells(176 + i, 2) = ""
Cells(176 + i, 13) = ""
Cells(176 + i, 14) = ""
Cells(25 + i, 7) = ""
Cells(75 + i, 7) = ""
Cells(125 + i, 7) = ""
Cells(175 + i, 7) = ""
Next i
For i = 1 To 20
Cells(26 + i, 3) = ""
Cells(26 + i, 4) = ""
Cells(26 + i, 5) = ""
Cells(76 + i, 3) = ""
Cells(76 + i, 4) = ""
Cells(76 + i, 5) = ""
Cells(126 + i, 3) = ""
Cells(126 + i, 4) = ""
Cells(126 + i, 5) = ""
Cells(176 + i, 3) = ""
Cells(176 + i, 4) = ""
Cells(176 + i, 5) = ""
Cells(26 + i, 15) = ""
Cells(26 + i, 16) = ""
Cells(26 + i, 17) = ""
Cells(76 + i, 15) = ""
Cells(76 + i, 16) = ""
Cells(76 + i, 17) = ""
Cells(126 + i, 15) = ""
Cells(126 + i, 16) = ""
Cells(126 + i, 17) = ""
Cells(176 + i, 15) = ""
Cells(176 + i, 16) = ""
Cells(176 + i, 17) = ""
Cells(19, 4) = "Готово."
End Sub
Private Sub CommandButton4_Click()
UserForm1.Hide
End Sub
Private Sub CommandButton5_Click()
'генерация элементов выборки 2
m = InputBox("Введите количество элементов второй подвыборки", "Ввод")
If m > 20 Then
MsgBox "Количество элементов более 20 не обрабатывается!", 48, "Ошибка!"
GoTo metka
End If
Cells(19, 4) = "Ждите..."
For i = 1 To m
Randomize
Cells(i + 11, 1) = RndN(2, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 11, 2) = RndN(2, 1)
Next i
For i = 1 To m
Randomize
Cells(i + 11, 3) = RndN(2, 1)
Next i
Cells(19, 4) = "Готово."
metka:
End Sub
Приложение Г
Текст программы макроса для непараметрических методов статистического описания выборки
Dim task As Integer
Private Sub CommandButton1_Click()
Dim n As Integer, k As Integer, i As Integer, j As Integer, _
c() As Double, t As Double
For i = 18 To 500
For j = 3 To 7
Cells(i, j) = ""
Next j
Next i
If Cells(16, 3) = "" Then
Cells(17, 5) = "Введите объем выборки в ячейку C8"
End If
If Cells(17, 3) = "" Then
Cells(17, 5) = "Введите число интервалов в ячейку C9"
End If
n = Cells(16, 3)
k = Cells(17, 3)
ReDim c(n)
For i = 1 To n
c(i) = Cells(18 + i, 1)
Next i
For i = 1 To n - 1
For j = 1 To n - i
If c(j) > c(j + 1) Then
t = c(j)
c(j) = c(j + 1)
c(j + 1) = t
End If
Next j
Next i
Select Case task
Case 1: f = EIGistPol(k, n, c)
Case 2: f = EFGist(k, n, c)
If f = -1 Then
Cells(23, 4) = "Невозможно построить равнона-"
Cells(24, 4) = "полненную гистограмму"
End If
Case 3: f = NuclAppr(k, n, c)
End Select
End Sub
Private Sub OptionButton1_Click()
task = 1
End Sub
Private Sub OptionButton2_Click()
task = 2
End Sub
Private Sub OptionButton3_Click()
task = 3
End Sub
Function EIGistPol(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, m As Integer, _
h As Double, f() As Double
h = (c(n) - c(1)) / k
ReDim f(k)
Cells(18, 3) = "EIGdeltk"
Cells(19, 3) = c(1)
Cells(18, 6) = "EIGist"
For i = 1 To k
m = 0
For j = 1 To n
If c(j) >= c(1) + (i - 1) * h And c(j) <= c(1) + i * h Then m = m + 1
Next j
f(i) = m / (n * h)
Cells(19 + i, 3) = c(1) + i * h
Cells(18 + i, 6) = f(i)
Next i
Cells(18, 4) = "EIPdeltk"
Cells(19, 4) = c(1) - h / 2
Cells(19, 7) = 0
Cells(18, 7) = "EIPol"
For i = 1 To k
Cells(19 + i, 4) = c(1) + i * h - h / 2
Cells(19 + i, 7) = f(i)
Next i
Cells(20 + k, 4) = c(n) + h / 2
Cells(20 + k, 7) = 0
EIGistPol = 1
End Function
Function EFGist(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, s As Integer, m As Integer, _
f() As Double, p() As Double
ReDim f(k)
If n Mod k = 0 Then
m = n / k
Else
Cells(20, 4) = "Множество значений выборки "
Cells(21, 4) = "нельзя разбить на указанное "
Cells(22, 4) = "число равнонаполненных интервалов"
EFGist = -1
Exit Function
End If
If c(1) = c(n) Then
Cells(20, 4) = "Построить равнонаполненные гистограмму"
Cells(20, 4) = " и полигон частот по данной выборке "
Cells(20, 4) = "нельзя, так как выборка однородна"
End If
ReDim p(k, 3)
s = 0
For i = 0 To k - 1
For j = 0 To n - i * m + s - 1
If c((i + 1) * m) <> c(i * m - s + 1) Then
p(i + 1, 1) = c(i * m - s + 1)
p(i + 1, 2) = c((i + 1) * m + j) - c(i * m - s + 1)
p(i + 1, 3) = (m + j + s) / (n * k * p(i + 1, 2))
s = -j
GoTo ni
Else
j = j + 1
End If
Next j
ni: Next i
Cells(18, 4) = "EPxGist"
Cells(18, 5) = "EPhGist"
Cells(18, 6) = "EPxPol"
Cells(18, 7) = "EPhPol"
s = 0
For i = 1 To k
Cells(18 + 4 * i - 3, 4) = p(i, 1)
Cells(18 + 4 * i - 2, 4) = p(i, 1)
Cells(18 + 4 * i - 1, 4) = p(i, 1) + p(i, 2)
Cells(18 + 4 * i, 4) = p(i, 1) + p(i, 2)
Cells(18 + 4 * i - 3, 5) = 0
Cells(18 + 4 * i - 2, 5) = p(i, 3)
Cells(18 + 4 * i - 1, 5) = p(i, 3)
Cells(18 + 4 * i, 5) = 0
Cells(18 + i, 6) = p(i, 1) + p(i, 2) / 2
Cells(18 + i, 7) = p(i, 3)
Next i
EFGist = 1
End Function
Function NuclAppr(k As Integer, n As Integer, c() As Double) As Integer
Dim i As Integer, j As Integer, _
f As Double, x() As Double, _
d As Double, cof As Double
ReDim x(n, 2)
d = (c(n) - c(1)) / k
Cells(18, 5) = "x"
Cells(18, 7) = "NAp"
For i = 1 To n
x(i, 1) = c(i) - d / 2
x(i, 2) = c(i) + d / 2
Cells(18 + 2 * i - 1, 5) = x(i, 1)
Cells(18 + 2 * i, 5) = x(i, 2)
Next i
For i = 1 To n
cof = (k - 1) / (n + 1) / (c(n) - c(1)) / k
f = 0
For j = 1 To n
If c(j) >= x(i, 1) And c(j) <= x(i, 2) Then f = f + 1
Next j
f = cof + n / (n + 1) * f / d
Cells(18 + i, 7) = f
Next i
NuclAppr = 1
End Function
Подобные документы
Решение экономических задач с помощью Microsoft Excel и инструментария Visual Basic For Application. Способы запуска редактора Visual Basic, правила его синтаксиса. Создание автоматических макросов по сортировке и выборке. Создание управляющих кнопок.
курсовая работа [852,0 K], добавлен 24.09.2010Описание работы ЭВМ при выполнении программы по указанной блок-схеме и исходным данным. Составление линейной программы на языке Basic в виде подпрограммы-функции для вычисления заданной величины. Разработка в ЭТ Excel макроса для указанной функции.
контрольная работа [765,6 K], добавлен 16.10.2011Visual Basic for Application. Объекты и коллекции. Использование VBA в среде Access. Основы современной технологии проектирования АИС. Автоматизированное проектированиеCASE-технологий. Реинжиниринг бизнес-процессов и проектирование корпоративной ИС.
курсовая работа [2,1 M], добавлен 22.02.2008Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.
реферат [29,9 K], добавлен 28.06.2011Рождение и развитие Basic. Краткое описание Visual Basic for Applications. Новые возможности Visual Basic 5.0. Пример взаимодействия Excel и Visual Basic. Программирование табличных функций. Встраивание, применение функций. Формы, средства управления OLE.
реферат [20,7 K], добавлен 11.03.2010Напівфункціональна мова програмування, складова частина Access - Visual Basic for Applications (VBA). Створення коду VBA за допомогою майстрів елементів управління. Модулі, створення процедур обробки подій. Редагування у вікні модуля, аргументи процедури.
реферат [144,8 K], добавлен 31.08.2009Примеры использования макросов в текстовом редакторе Microsort Word. Создание ведомости с помощью таблиц. Выполнение математических расчетов и их оформление при помощи редакторов MS Word и MS Excel. Создание модуля с функциями в редакторе Visual Basic.
контрольная работа [2,3 M], добавлен 24.12.2010Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.
контрольная работа [12,3 K], добавлен 07.10.2012Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.
контрольная работа [36,4 K], добавлен 23.07.2014Свойства объектов и проверка расчетной зависимости на основании экспериментальной выборки. Построение графической зависимости экспериментальных и расчетных значений от x для их сравнения. Выполнение работы в среде Visual Basic, Excel и MathCAD.
курсовая работа [261,9 K], добавлен 20.05.2011