выбрать 3 вопроса из списка

Заказать уникальный реферат
Тип работы: Реферат
Предмет: Программирование
  • 24 24 страницы
  • 7 + 7 источников
  • Добавлена 03.06.2016
748 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание

1. Индустрия искусственного интеллекта. 3
2. Экспертные системы. 10
3. Основные понятия объектно-ориентированного программирования 18
Список источников. 24




Фрагмент для ознакомления

На сегодняшний уже нет особой необходимости убеждать кого-то в преимуществах объектно-ориентированного подхода к разработке программ. Не только создание крупных проектов, а также понимание того, как работают современные операционные системы, невозможно без досконального знания принципов объектно-ориентированного программирования. Более того, объектный стиль разработки программ стал своеобразным правилом "хорошего тона" в мире программистов. Как известно, все компьютерные программы состоят из двух элементов: кода и данных. Соответственно любая программа может быть концептуально организована или вокруг ее кода, или вокруг ее данных. Иными словами, некоторые программы концентрируют свое внимание на том, "что происходит с данными", а другие – на том, "на что этот процесс влияет".Существует несколько парадигм (ключевых подходов), которые управляют конструированием программ. Первый подход считает программу моделью, ориентированной на процесс (process-oriented model). При этом программу определяют последовательности операторов ее кода.Первые компиляторы (например, FORTRAN) поддерживали процедурную модель программирования, в основе которой лежит использование функций. Следующий этап развития связан с переходом к структурной модели программирования (к ней относятся компиляторы ALGOL, Pascal, C), в основе которого лежат следующие положения: программы представляются в виде совокупности взаимосвязанных процедур и данных, которыми эти процедуры (или блоки) оперируют. Здесь широко используются процедурные блоки и минимальное использование GOTO. Эти программы являются более простые. Такие языки программирования, как Pascal, C успешно используют эту модель. Но здесь часто возникают проблемы, когда растет размер и сложность программ.[2]Другой подход, названный объектно-ориентированным программированием (ООП), был создан для управления возрастающей сложностью программ. ООП организует программу вокруг ее данных (т.е. вокруг объектов) и набора четко определенных интерфейсов с этими данными. Объектно-ориентированную программу можно характеризовать как доступ к коду, который управляется данными (data controlling access to data). Такой подход имеет некоторые организационные преимущества, а именно:1. Можно повторно использовать код программы и таким образом экономить время на разработку;2. Программы с использованием ООП хорошо структурированы, что позволяет хорошо понимать, какие функции выполняют отдельные подпрограммы;3. Программы с использованием ООП легко тестировать и модифицировать. Можно разбить программу на компоненты и тестировать работу каждой из них.[1]Все языки ООП обеспечивают механизмы, которые помогают реализовать объектно-ориентированную модель. К ним относят абстракцию, инкапсуляцию, наследование и полиморфизм. Также их часто называют основными принципами ООП.Абстракция данных – введение типов данных, определенных пользователем и отличных от базовых. Эта концепция заключается в возможности определять новые типы данных, с которыми можно работать так же, как и с основными типами данных. Кроме того, абстракция имеет место и при применении шаблонов, то есть введении абстрактных типов данных, которые в зависимости от условий их применения принимают тот или иной тип.Инкапсуляция – это механизм, который связывает код с данными, которые им обрабатываются, и сохраняет их как от внешнего воздействия, так и от ошибочного использования. Инкапсуляцию можно представить как защитную оболочку, которая предотвращает доступ к коду и к даннымиз другого кода, находящегося снаружи этой оболочки. Доступ к коду и данным внутри оболочки происходит через четко определенный интерфейс. Мощность такого подхода заключается в том, что каждый знает, как получить доступ к инкапсулированному коду, и может пользоваться им независимо от деталей его реализации и без боязни неожиданных последствий.[2]Основой абстракции и инкапсуляции есть класс. Класс определяет структуру и поведение (данные и код) некоторого набора объектов. Каждый объект заданного класса содержит как структуру (данные), так и поведение, определяется классом. Поэтому объект иногда еще называют экземпляром класса. Таким образом, класс – это логическая конструкция, а объект – это физическая реальность.Наследование – это процесс, посредством которого один объект получает свойства другого объекта. Оно важно, так как поддерживает концепцию иерархической классификации. Большей частью знаний можно управлять только с помощью иерархических (т.е. организованных "сверху вниз") классификаций. Без применения классификаций каждый объект нуждался бы явного определения всех своих характеристик. Благодаря использованию наследования объект требует определения только тех качеств, которые делают его уникальным в своем классе. Поэтому именно механизм наследования позволяет одному объекту быть специфическим экземпляром общего случая.В окружающем мире мы видим объекты, связанные между собой иерархически, например, животные, млекопитающие, собаки. Если мы хотим описать животных абстрактным образом, нам необходимо определить некоторые их атрибуты, например, размер, вес, пол, возраст и т. Животным также присуща определенная поведение – они едят, дышат, спят. Такое описание атрибутов и поведения и определяет класс животных.Если мы захотим описать более специфический класс животных, такой как млекопитающие, они должны были бы иметь более специфические атрибуты, такие как тип зубов и молочные железы. Такой класс известен как подкласс животных, тогда как класс животных называют суперклассом (родительским классом, классом-предком).[5]Поскольку млекопитающие – это более точно специфицированные животные, то говорят, что они наследуют все атрибуты животных. Подкласс, что находится на более глубоком уровне иерархии, наследует все атрибуты каждого своего родительского класса в иерархии классов.Наследование плотно связано с инкапсуляцией. Если данный класс инкапсулирует некоторые атрибуты, то любой подкласс будет иметь те же атрибуты плюс атрибуты, которые он добавляет как часть своей специализации. Это ключевая концепция, которая позволяет объектно-ориентированным программам, расти по сложности в арифметической, а не геометрической прогрессии. Новый подкласс наследует все атрибуты всех своих родителей. Он не имеет непредвиденных связей с остальной частью кода в программе.[6]Кроме того, в производном классе унаследованные функции могут быть переопределены. Таким образом, строят иерархии классов, связанных между собой. Если объект наследует атрибуты от одного базового класса, это будет простое наследование. Если объект наследует атрибуты от нескольких родителей, это будет множественное наследование. Полиморфизм (греч "polymorphos" – множественность форм) – свойство, которое позволяет использовать один интерфейс для общего класса действий. Специфическое действие точно определяется в зависимости от конкретной ситуации. Например, рассмотрим стек (список типа LIFO – Last-In, First-Out; последним вошел, первым вышел). Программа может потребовать три типа стеков. Один стек используется для целых чисел, второй – для чисел с плавающей точкой, третий – для символов. Алгоритм, реализующий каждый стек, один и тот же, хотя данные, хранящиеся разные. Не объектно-ориентированный язык требовала бы создание трех различных стековых подпрограмм, каждая из которых имела бы свое собственное имя. Благодаря полиморфизма можно определить общий для всех типов данных набор стековых подпрограмм, использующих одно и то же имя.Вообще суть концепции полиморфизма можно выразить фразой "один интерфейс, много методов". Это означает, что можно спроектировать общий интерфейс для группы связанных родственными связями объектов. Это позволяет уменьшить сложность, предполагая использование одного и того же интерфейса для общего класса действий. Задача компилятора – выбрать специфическое действие (т.е. метод) для его использования в каждой конкретной ситуации. Программист не должен делать это "вручную". Ему необходимо только помнить и использовать общий интерфейс.Итак, полиморфизм – это свойство кода вести по-разному в зависимости от ситуации, возникающей в момент исполнения.[5]Если провести аналогию с собакой, можно сказать, что обоняние у собаки полиморфный. Если он слышит кильку, то лает и бежит за ней. Если слышит пищу, выделяет слюну и бежит к миске. В обеих ситуациях работает одно и то же чувство – обоняние. Разница заключается в том, что именно он нюхает, то есть в типе данных, с которыми оперирует нос собаки.При правильном применении приведены принципы ООП – абстракция, инкапсуляция, полиморфизм и наследование – взаимодействуют таким образом, чтобы создать некоторое среда программирования, которое должно обеспечить более устойчивые и масштабируемые приложения по сравнению с моделью, ориентированной на процессы. Удачно спроектированная иерархия классов является базисом повторного использования кода, для создания и тестирования которого было потрачено много времени и усилий. Инкапсуляция позволяет реализациям путешествовать во времени без разрушения кода, доступ к которому осуществляется с помощью public-интерфейса классов. Полиморфизм позволяет создавать ясный и читаемый код.Список источников.Вайсфельд Мэтт. Объектно-ориентированное мышление СПб.: Питер, 2014. — 304 с.Гамма Э., Хелм Р. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования СПб.: Питер, 2015. — 368 с.Ездаков А.Л. «Экспертные системы САПР. Учебное пособие. Гриф УМО вузов России. Издательство: "Форум", 2014 160 c.Кульцова М.Б., Жукова И.Г., Литовкин Д.В. Инженерия знаний Волгоград: ВолгГТУ, 2015. — 94 с.Куренкова Т.В., Светозарова Г.И. Основы алгоритмизации и объектно-ориентированного программирования Учеб. пособие. — М.: Изд. Дом МиСИС, 2011. — 197 с.Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java 2-е изд., испр. и доп. – Казань: РИЦ «Школа», 2010.-444 c.Финн В.К. Искусственный интеллект: методология применения, философия. – М.: КРАСАНД, 2011. – 448 с.

Список источников.

1. Вайсфельд Мэтт. Объектно-ориентированное мышление СПб.: Питер, 2014. — 304 с.
2. Гамма Э., Хелм Р. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования СПб.: Питер, 2015. — 368 с.
3. Ездаков А.Л. «Экспертные системы САПР. Учебное пособие. Гриф УМО вузов России. Издательство: "Форум", 2014 ¬ 160 c.
4. Кульцова М.Б., Жукова И.Г., Литовкин Д.В. Инженерия знаний Волгоград: ВолгГТУ, 2015. — 94 с.
5. Куренкова Т.В., Светозарова Г.И. Основы алгоритмизации и объектно-ориентированного программирования Учеб. пособие. — М.: Изд. Дом МиСИС, 2011. — 197 с.
6. Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java 2-е изд., испр. и доп. – Казань: РИЦ «Школа», 2010.-444 c.
7. Финн В.К. Искусственный интеллект: методология применения, философия. – М.: КРАСАНД, 2011. – 448 с.

Контрольный список вопросов по внедрению программ вирусного маркетинга

Контрольный список вопросов по внедрению программ вирусного маркетинга

Эмануил Розен (Emanuel Rosen), вице-президент по маркетингу компании Niles Software — одна из самых крупных компаний в Силиконовой долине.

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

если у вас есть право на товар?

Люди будут давать позитивную оценку — а именно такого рода слухи вам нужны — только в случае, если товар или услуга, на самом деле они на них сильное впечатление. Невозможно, чтобы стимулировать распространение слухов до тех пор, пока товар не прошел испытание.

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

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

Это продукт моего зрения и, что еще я могу сделать? "Заразительные" продукты часто находятся на виду, они привлекают внимание людей. Если вы можете что-то сделать, чтобы ваш продукт (или пользователи) стал более заметным?

Я предлагаю что-то новое? Слухи отражают интерес. Старые идеи, знакомые подходы и товаров, которые имеют все, не вызывает никакого интереса. В вашем предложении должно быть что-то свежее и необычное.

это мой товар? Если слухи начинают циркулировать даже теперь, может быть, слишком рано?

Действую, если я честно и прямо? Открытость и честность являются ключом к развитию прочных, долгосрочных отношений.

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