Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.

Читайте также:
  1. CRM - как идеология
  2. I. Программирование на CF Pascal
  3. I. Языки программирования
  4. Lt;variant>язык программирования высокого уровня
  5. Lt;variant>Языки программирования высокого уровня
  6. PPUZKK 4230-программирование и прогнозирование урожаев зерновых культур и картофеля
  7. PPUZKK 4230-программирование и прогнозирование урожаев зерновых культур и картофеля
  8. VII.Модульное программирование.
  9. Алгоритмизация и основы программирования: А5
  10. Базовые конструкции структурного программирования

 

На основании ранее выполненной группировки по ОПФ (задание 2) необходимо проверить правило сложения дисперсий по объему выпуска продукции. Прежде всего необходимо выписать по выделенным группам значения объема выпуска продукции по каждому предприятию совокупности (таблица 4.1).

 

Таблица 4.1.

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

 

Группы предприятий по ОПФ Индивидуальные значения показателя объема производства xi, млн.р.
2,9 … 4,7 2,9 3,7 4,1 4,2        
4,7 … 6,5 4,9 5,9 6,2 6,2        
6,5 … 8,3 6,5 6,7 6,8 6,9 6,9 7,9 8,1 8,1
8,3 … 10,1 8,8 8,9 9,2          
10,1 … 11,9 10,1 10,3 10,3 10,6 11,8 11,9    

 

Вначале определяется общая дисперсия σ2, отражающая суммарное влияние всех возможных факторов на общую вариацию объема выпуска продукции.

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

 

Таблица 4.2

Вспомогательная таблица для расчета общей дисперсии σ2

Индивидуальные значения признака – объема производства xi Частота повторения индивидуальных значений f Вспомогательные расчеты величин для определения дисперсии
xf
2,9   2,9 -4,62 21,31 21,31
3,7   3,7 -3,82 14,56 14,56
4,1   4,1 -3,42 11,67 11,67
4,2   4,2 -3,32 11,00 11,00
4,9   4,9 -2,62 6,84 6,84
5,9   5,9 -1,62 2,61 2,61
6,2   12,4 -1,32 1,73 3,46
6,5   6,5 -1,02 1,03 1,03
6,7   6,7 -0,82 0,67 0,67
6,8   6,8 -0,72 0,51 0,51
6,9   13,8 -0,62 0,38 0,76
7,9   7,9 0,38 0,15 0,15
8,1   16,2 0,58 0,34 0,68
8,8   8,8 1,28 1,65 1,65
8,9   8,9 1,38 1,92 1,92
9,2   9,2 1,68 2,84 2,84
10,1   10,1 2,58 6,68 6,68
10,3   20,6 2,78 7,75 15,50
10,6   10,6 3,08 9,51 9,51
11,8   11,8 4,28 18,35 18,35
11,9   11,9 4,38 19,22 19,22
Итого   187,9     150,91

 

Предварительно определяем общую среднюю арифметическую:

 

x= (

 

Затем рассчитываем дисперсию по объему выпуска продукции:

σ2 = ()2 f /

 

Далее найдем среднее квадратичное отклонение:

σ = = 2.46 млн. р.

 

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

 

Таблица 4.3.

Вспомогательная таблица для расчёта частных внутригрупповых дисперсий

Индивидуальное значение признака - объём производства xi Частота повторения индивидуальных значений f Расчетные величины Средняя арифметическая Xi Дисперсия по отдельным группам
Xi - Xi (Xi - Xi)2 (Xi - Xi)2f
1-ая группа
2,9   -0,83 0,68 0,68    
3,7   -0,02 0,00 0,00    
4,1   0,38 0,14 0,14    
4,2   0,48 0,23 0,23    
Итого       1,05 3,73 0,26
2-группа
4,9   -0,9 0,81 0,81    
5,9   0,1 0,01 0,01    
6,2   0,4 0,16 0,32    
Итого       1,14 5,80 0,29
3-я группа
6,5   -0,74 0,54 0,54    
6,7   -0,54 0,29 0,29    
6,8   -0,44 0,19 0,19    
6,9   -0,34 0,11 0,23    
7,9   0,66 0,44 0,44    
8,1   0,86 0,74 1,49    
Итого       3,18 7,24 0,40
4-ая группа
8,8   -0,17 0,03 0,03    
8,9   -0,07 0,00 0,00    
9,2   0,23 0,05 0,05    
Итого       0,09 8,97 0,03
5-ая группа
10,1   -0,73 0,54 0,54    
10,3   -0,53 0,28 0,57    
10,6   -0,23 0,05 0,05    
11,8   0,97 0,93 0,93    
11,9   1,07 1,14 1,14    
Итого       3,23 10,83 0,54

 

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

с последующей записью расчетных значений x и σ2 в графах 6 и 7 табл. 4.3.

 

После определения частных внутригруппировок дисперсий рассчитывается средняя из внутригрупповых дисперсий:

 

0,349

Далее рассчитывается межгрупповая дисперсия σ2:

σ2 = = 5,68

 

Таким образом, суммирование средней из внутригрупповых дисперсий и межгрупповой дает общую дисперсию:

2 = 2 + σ2 = 5,68+0,4 = 6,029

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

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

ᶯ = = 0,97

 

Величина 0,97 характеризует существенную связь между группировочным и результативным признаками.

Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.

Язык С# — это очередная ступень бесконечной эволюции языков программирования. Его создание вызвано процессом усовершенствования и адаптации, который определял разработку компьютерных языков в течение последних лет. Подобно всем успешным языкам, которые увидели свет раньше, С# опирается на прошлые достижения постоянно развивающегося искусства программирования.

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

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

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

Технология ООП обладает следующими преимуществами:

a. использование при программировании понятий, близких к предметной области (повседневные объекты);

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

c. возможность многократного использования кода за счет наследования;

d. сравнительно простая возможность модификации программ;

e. возможность создания и использования библиотек объектов;

f. создание более эффективного кода, модификация и расширение возможностей уже имеющихся систем.

Эти преимущества особенно явно проявляются при разработке программ большого объема и классов программ.

Однако ничто не дается даром:

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

b.Кроме того, идеи ООП не просты для понимания и в особенности для практического применения.

c. Чтобы эффективно использовать готовые объекты из библиотек, необходимо освоить большой объем достаточно сложной информации.

d. Неграмотное же применение ООП способно привести к созданию излишне сложных программ, которые невозможно отлаживать и усовершенствовать.

 

Основные понятия объектно-ориентированного программирования — класс, объект, поле, метод, свойство.

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

Объявление объекта типа Building:

Building house = new Building();

Это объявление выполняет две функции. Во-первых, оно объявляет переменную с именем house классового типа Building. Но эта переменная не определяет объект, а может лишь ссылаться на него. Во-вторых, рассматриваемое объявление создает реальную физическую копию объекта и присваивает переменной house ссылку на этот объект. И все это — "дело рук" оператора new. Таким образом, после выполнения приведенной выше строки кода переменная house будет ссылаться на объект типа Building.

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

Есть и другие трактовки термина "класс", показывающие, в частности, чем класс отличается от объекта. Считайте, что класс — это просто новый тип данных (как char, int или long), с которым связаны некие методы. Объект же — это экземпляр типа, или класса. Определение класса как чертежа объекта. На базе класса — "чертежа" набора функциональных возможностей — можно создать объект, обладающий всеми возможностями этого класса.

Поле — член-переменная, содержащая некоторое значение и описанная внутри класса. В ООП поля иногда называют данными объекта. К полю можно применять несколько модификаторов в зависимости от того, как вы собираетесь это поле использовать. В число модификаторов входят static, readonly и const. Поля характеризуют свойства объектов класса. Когда создается новый объект класса, то этот объект представляет собой набор полей класса. Два объекта одного класса имеют один и тот же набор полей, но разнятся значениями, хранимыми в этих полях. Каждое поле имеет модификатор доступа, принимающий одно из четырех значений: public, private, protected, internal(Его назначение — заявить о том, что некоторый член известен во всех файлах, входящих в состав компоновочного, но неизвестен вне его. Проще говоря, член, отмеченный этим модификатором, известен только программе, но не где-то еще).

Метод — элемент класса, кот реализует вычисления или другие действия, выполняемые классом или экземпляром. Метод — это фрагмент кода, к кот можно обратиться по имени. Он описывается один раз, а вызываться может столько раз, сколько необходимо. У метода также есть спецификаторы доступа: public, private, protected, virtual, override, abstract.

Методы — это процедуры (подпрограммы), которые манипулируют данными, определенными в классе, и во многих случаях обеспечивают доступ к этим данным. Обычно различные части программы взаимодействуют с классом посредством его методов. Любой метод содержит одну или несколько инструкций. Каждый метод имеет имя, и именно это имя используется для его вызова. В общем случае методу можно присвоить любое имя. Имена методов сопровождаются парой круглых скобок. Например, если метод имеет имя getval, то в тексте будет написано getval (). Это помогает отличать имена переменных от имен методов.

Запись метода: доступ тип_возврата имя (список_параметров) {// тело метода}

Свойства иногда называют "разумными" полями (smart fields), так как они на самом деле являются методами, которые клиенты класса воспринимают как поля. Они служат для организации доступа к полям класса. Свойство состоит из имени и пары аксессоров (get, set). Аксессоры используются для чтения содержимого переменной и записи в нее нового значения. Основное достоинство свойства состоит в том, что его имя можно использовать в выражениях и инструкциях присваивания подобно обычной переменной, хотя в действительности здесь будут автоматически вызываться get- и set-аксессоры.

[спецификатор] тип имя_свойства

{ get{return();}//получатель значения поля

set{}//установщик поля служит для его изменения

}

 

3. Класс. Синтаксис объявления класса. Ссылка на самого себя

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

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

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

[атрибуты][модификаторы]class имя_класса [:список_родителей]

{// Объявление переменных экземпляров.

доступ тип переменная1; доступ тип переменнаяN;

доступ тип_возврата метод 1 (параметры) // Объявление методов

{ // тело метода}

доступ тип_возврата методN (параметры) {// тело метода}




Дата добавления: 2014-12-18; просмотров: 79 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.016 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав