Основные элементы объектно-ориентированных языков программирования (на примере VBA)
Пусть производятся п независимых испытаний, в каждом из которых может произойти некоторое событие А (по традиции такой исход опыта называют успехом) с одной и той же вероятностью Р(А) = р или произойти противоположное событие ( такойисход называют неудачей) с вероятностью Р(А) = q = 1— р (такого рода схема испытаний называется схемой Бернулли). Тогда вероятность того, что событие А наступит ровно m раз находится по формуле Бернулли: , m = 0, 1, 2, …, n. Отсюда, в частности, следует, что вероятность того, что в п испытаниях, удовлетворяющих схеме Бернулли, событие А наступит: а ) менее m раз – равна : б) более т раз — равна . в) хотя бы один раз — равна ; г) не менее m1 раз и не более m2 раз равна Число m0 () называется наивероятнейшим числом наступлений события А (или наиболее вероятным числом успехов) в схеме Бернулли, если для всех т = 0, 1, 2, …, n. Если вероятности р и q отличны отнуля, то число m0 определятся из двойного неравенства Если в каждом из п независимых испытаний вероятность наступления события А равна pi (числа pi, вообще говоря, разные), то вероятность того, что в этойсерии испытаний событие А наступит m раз, равна коэффициенту при m -й степени (т. е. при zm) многочлена Функция при этом называется производящей функцией. 6.1. Игральную кость подбрасывают 10 раз. Найти вероятность того, чтошестерка выпадет: О Проводится 10 независимых испытаний, Каждое испытание имеет два исхода: шестерка выпадет и шестерка не выпадет. Вероятность выпадения шестерки в каждом испытании постоянна и равна 1/6, те. р = 1/6. Таки образом, мы имеем дело со схемой Бернулли. Для нахождения искомых вероятностей применим формулу Бернулли. а)Здесь п = 10, т = 2, р = 1/6, q = 1— 1/6 = 5/6. Отсюда б) Искомая вероятность равна Однако в этом случае проще найти вероятность противоположного события шестерка выпадет более 8 раз, т. е. выпадет 9 или 10 раз. Имеем: Итак, вероятность того, что шестерка выпадет не более восьми раз, равна в)Искомая вероятность равна Ее можно найти и так (что, конечно, гораздо сложнее): или 6.2. Всхожесть семян данного сорта растений составляет 70%. Найти наивероятнейшее число вcхожих семян в партии из 240 семян. О Наивероятнейшее число m0 всхожих семян находим из условия . Поскольку п = 240, р = 0,7 и q = 0,3 то т.е. Отсюда следует, что m0 = 168. 6.3. Прибор состоит из 3 независимо работающих элементов. Вероятности отказов элементов за время t различны и соответственно равны: р1 = 0,1, р2 = 0,2, р3 = 0,3. Найти вероятности того, что за время t откажут: а)все элементы; б) два элемента; в) один элемент, г) ноль элементов. О Так как р1 = 0,1, р2 = 0,2, р3 = 0,3, то вероятности того, что элементы не откажут, соответственно равны: q1 = 0,9, q2 = 0,8, q3 = 0,7. Составим производящую функцию: Отсюда следует, что: а) Р3(3) = 0,006; б) Р3(2) = 0,092; в) Р3(1) = 0,398; г) Р3(0) = 0,504. 6.4. По мишени произведено 3 выстрела. Вероятность попадания при каждом выстреле равна 0,7. Найти вероятность п попаданий в мишень, где n = 0, 1, 2, 3. 6.5. Тест содержит 10 вопросов, на которые следует отвечать, используя одно из двух слов: да, нет. Какова вероятность получения неменее 80% правильных ответов, если использовать «метод угадывания»? 6.6.Пусть вероятность того, что студент опоздает на лекцию, равна 0,08. Найти наиболее вероятное число опоздавших из 96 студентов. 6.7. В ящике находится 70% стандартных и 30% нестандартных де талей. Найти вероятность того, что из 5 взятых наудачу деталей не более одной окажется нестандартными. 6.8. Корабль выходит из строя, если получит не менее 5 попадания в надводную часть или 2 попадания в подводную часть. Найти вероятность выхода из строя корабля при 5 попаданиях, если вероятности попадания в надводную и подводную части при попадании в корабль относятся как семь к трем. 6.9. В семье 6 детей. Найти вероятность того, что в данной семье не менее двух мальчиков, но не более четырех. Считать вероятности рождения мальчика идевочки равными 0,5. 6.10. В помещении 6 электролампочек. Вероятность того, что каждая лампочка останется исправной в течение года равна 0,7. Найти: а) вероятность того что в течение года придется заменить 2 лампочки; б) наивероятнейшее число лампочек, которые будут работать в течение года.
Основные элементы объектно-ориентированных языков программирования (на примере VBA) VBA — относительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты.создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования. VBA применяет технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране. Объекты и их семейства Объект позволяет объединить данные в нечто целое, именуемое объектом. VBA не является объектно-ориентированном языком, однако объектный подход играет в нем большую роль. Все визуальные объекты, такие как рабочий лист (worksheet), диапазон (Range), диаграмма (Chart), форма (userForm), являются объектами. В VBA имеется более 100 встроенных объектов. Семейство представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объект workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. В VBA используется механизм OLE (ObjectLinkingandEmbedding — связывание и внедрение объектов), который позволяет взаимодействовать с любыми программами, поддерживающими OLE. С 1996 года фирма Microsoft ввела новую терминологию и теперь то, что раньше именовалось OLE-объект, называется объектом ActiveX, a OLE Automation называется ActiveXAutomation. классы Класс обычно описывается, как проект, на основе которого впоследствии будет создан конкретный объект. Таким образом, класс определяет имя объекта, его свойства и действия, выполняемые над объектом. В свою очередь каждый объект, в соответствии с описанным выше, является экземпляром класса. Объектная библиотека VBA располагает более 100 различных объектов, находящихся на различных уровнях иерархии. Иерархия определяет связь между объектами и показывает пути доступа к ним. Свойства Свойство представляет собой атрибут объекта, определяющий его характеристики, такие как размер, цвет, положение на экране и состояние объекта, например, доступность или видимость. Чтобы изменить характеристики объекта, надо просто изменить значения его свойств.
Основные понятия объектно – ориентированного программирования В основе объектно-ориентированного программирования управляемого событиями лежат понятия класс, инкапсуляция, объект, наследование, полиморфизм, событие и сообщение [].В качестве объектов могут рассматриваться конкретные предметы, а также абстрактные или реальные сущности. Например, объектами могут быть покупатель, фирма, производящая товары, банк, заказ на поставку и др.В частном случае, в VBA объектом являются элементы пользовательского интерфейса, которые создаются на Форме пользователя (UserForm) или на рабочем листе, а также рабочая книга и ее элементы.Объект является комбинацией состояния и поведения. Состояние описывается переменными экземпляра, а его возможное поведение характеризуется присущими ему методами.Каждый объект является представителем некоторого класса однотипных объектов, т.е. объект является экземпляром класса. Класс определяет общие для всех его объектов методы и свойства. Методы - это программные процедуры, реализующие некоторый алгоритм, который определяет взаимодействие объектов класса с внешней средой. Свойства представляют собой характеристики (атрибуты), присущие объектам (например, размер шрифта, название и др.). Инкапсуляция - это скрытие информации. При объектно-ориентированном программировании возможен доступ к объекту только через его методы и свойства. Внутренняя структура объекта скрыта от пользователя, т.е. объекты - это самостоятельные сущности, отделенные от внешнего мира. Инкапсуляция позволяет изменять реализацию объектов любого класса без опасений, что это вызовет нежелательные побочные эффекты в программной системе. Это мощное средство обеспечивает многократное использование одного и того же программного кода, позволяя собирать программу из готовых модулей, как здание из отдельных кирпичиков, но различной архитектуры и функционального назначения.Наследование - это возможность выделить свойства, методы и события одного объекта и приписать их другому объекту, иногда с их модификацией. С точки зрения программиста, новый класс должен содержать только коды и данные для новых или изменяющихся методов. Полиморфизм - это способность объектов выбирать операцию на основе данных, принимаемых в сообщении. Каждый объект может реагировать по-своему на одно и тоже сообщение. Например, команда Print будет по-разному воспринята черно-белым или цветным принтером.В заключение следует сказать, что ООП это новая технология программирования, позволившая перейти к индустриальным методам разработки программного обеспечения. 1.2 Общие сведения о VBA Существует целый ряд систем программирования, позволяющих в той или иной степени реализовать концепцию объектно – ориентированного подхода при разработке программных средств. Наиболее полные возможности имеют такие системы, как Си ++, Java, VisualBasic. В отличие от VisualBasic, VBA не является языком объектно–ориентированного программирования (ООП) в строгом смысле этого слова., тем не менее, в нем очень широко используется элементы объектно – ориентированного программирования и связанные с ним понятия. VBA положен в основу системы программирования VisualBasic. Корпорация Microsoft использует возможности VBA при разработке приложений Windows, осуществляя параллельное с разработкой тестирование приложений с помощью макроязыка.Система программирования VisualBasicforApplication (VisualBasic для приложений - VBA) занимает важное место в стратегии программных продуктов фирмы Microsoft. Другим подмножеством VBA является язык описания сценариев VBScript. Его основным назначением является создание интерактивных Web –страниц.Таким образом, изучив программирование в среде VBA, вы без больших усилий можете освоить программирование на VisualBasic или VBScript.Так что же такое VBA?VisualBasicforApplication - это подмножество VisualBasic (VB), которое включает почти все его средства создания приложений, структуры данных и управляющие структуры, возможность создания пользовательских типов данных. VBA, как и VB, является языком визуального и событийно управляемого программирования — в нем есть возможность создания форм со стандартным набором элементов управления и написания процедур, обрабатывающих события, которые возникают при тех или иных действиях системы и конечного пользователя. Кроме того, он позволяет применять элементы ActiveX. В общем, это полноценный язык программирования, хотя и не обладающий всеми возможностями последних версий VisualBasic. С другой стороны, VBA позволяет работать с огромным набором объектов - по существу, в нем определены все объекты приложений MS Office. Отметим одну, может быть главную, особенность программирования на VBA. Программист, создавая проект на каком-либо языке программирования, работает в соответствующей среде, где язык — главное средство, а создание кода — главная цель действия программиста. А при работе на VBA целью является создание документа в широком смысле (документа Word, рабочей книги Excel, презентации и т. д.). Проект на VBA-результат побочной деятельности по созданию документа. Более того, проект на VBA, независимо от какого-либо документа, создать нельзя, даже если никакие свойства этого документа не используются.Приступая к очередному сеансу работы, программист открывает одно из приложений MS Office, и в этот момент в языке VBA автоматически становится доступным объект Application, определяющий это приложение, а также все встроенные в него объекты. Можно определить и создать, объект Application для любого приложения MS Office, получив тем самым доступ ко всем его объектам.Итак, VBA отличается от VisualBasic и прочих языков программирования тем, что он предоставляет возможность непосредственной работы с объектами MS Office. Это позволяет эффективно использовать его для автоматизации деятельности, связанной с обработкой различных типов документов. Обычные средства VBA, унаследованные от VisualBasic, - важная, но не определяющая часть языка.VBA позволяет существенно расширить вычислительные возможности Excel. С помощью VBA можно легко и быстро создавать различные приложения, даже не являясь специалистом в области программирования. VBA имеет графическую инструментальную среду, позволяющую создавать экранные формы и управляющие элементы. С его помощью можно создавать свои собственные функции для Excel, вызываемые мастером функций, разрабатывать макросы, создавать собственные меню и многое другое. VBA придает документам элегантность и позволяет с легкостью решать многие задачи, о возможности выполнения которых средствами Excel можно только мечтать. Как и VisualBasic, VBA реализует концепцию визуального программирования, управляемого событиями.
|