Информационно-образовательный портал для учителя информатики и ИКТ     вход :: регистрация
   

Информатика и информационно-коммуникационные технологии в школе

 
   

   23.09.2018г.

Добрый вечер!  

Разделы портала
 
  Планы, конспекты, презентации, методические находки, дидактический материал к уроку
 
  Настройка и использование школьной компьютерной сети
 
  Краткий теоретический материал, который можно применять на уроке...
 
  Разные полезности, программы, инструкции, советы...
 
  Как сохранить здоровье на уроках информатики
 
  Примерные экзаменационные билеты и ответы
 
  Программы для скачивания...
 
  Правила для пользователей портала
 
  Компьютерное тестирование знаний. Наш проект. Cправочное online руководство по программе
 
 
Сервисы портала
все новости...
поиск по статьям сайта...
вопросы, обсуждения, решаем проблемы вместе ...
отзывы, замечания, предложения...
проверить свои знания, пройдя тесты в режиме online...
образовательные сайты, друзья портала...
для связи с администратором портала
 
Внимание! Опрос!

ЕГЭ по информатике - ... ?

очень сложный
сложный
нормальный
лёгкий
не знаю


результаты

____________________

  Полная или частичная перепечатка каким бы то ни было способом материалов данного сайта допускается только с письменного согласия автора.
  При цитировании или ином использовании материалов ссылка на портал www.klyaksa.net обязательна.

____________________
 
Наши проекты:

MyTestX - лего и удобно

 
 
Афоризм дня
Будем сами дуть в свои паруса!

Ежи ЛЕЦ


Реклама:


 


Rambler's Top100

Рейтинг@Mail.ru
Яндекс цитирования
 
 

Начало » Конспекты школьника » Часть 2 » [Учимся программировать!][Что такое ООП]

Учимся программировать!
Конспекты школьника.
www.klyaksa.net

Что такое ООП

Языки программирования претерпели большие изменения с тех пор, как в сороковых годах началось их использование.

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

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

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

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

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

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

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

Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов. Первый объектно-ориентированный язык программирования был разработан в конце 60-х годов в Норвегии. Авторы этого языка очень точно угадали перспективы развития программирования: их язык намного опередил свое время. В 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования. Разработка новых объектно-ориентированных языков программирования продолжается.

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

Объекты объединяются в классы. К одному классу принадлежат объекты с одинаковым набором свойств, методов и событий.

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

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

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

  • инкапсуляция (Характеристики объекта и методы (процедуры и функции) для их обработки объединяются в описании класса объектов, причем предполагается что доступ к характеристикам объекта будет происходить через соответствующие методы, т.е. они защищены от внешнего вмешательства);
  • наследование (Один класс может быть получен от другого. В в таком случае говорят, что один класс является базовым, а другой - производным. Это позволяет повторно использовать уже созданный код в других проектах. Производный класс наследует всю структуру характеристик и поведение базового, однако может дополнять или модифицировать их.);
  • полиморфизм (Полиморфизм означает, что различные объекты используют одинаковую абстракцию, т.е. могут обладать свойствами и методами с одинаковыми именами. Однако обращение к ним будет вызывать различную реакцию для различных объектов. Большое достоинство полиморфизма состоит в том, что при использовании объекта можно вызывать определенное свойство или метод, не заботясь о том, как объект выполняет задачу. Это очень важно при модификации программного обеспечения. Изменения или новшества просто адаптируются к имеющимся компонентам приложения.).

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

Для того чтобы лучше понять суть вопроса вернемся к QBasic и рассмотрим несколько примеров.

Точка. Программа рисования и стирания точки.

REM точка 
'установка графического режима
SCREEN 1
'координаты точки
x = 10
y = 10
'цвет фона
cf = POINT(x, y)
'рисуем точку
PSET (x, y)
'стираем точку
PSET (x, y), cf
END

Снег 1. Программа рисования и стирания 100 точек.

REM снег 1
SCREEN 1
x1 = 10
y1 = 10
x2 = 10
y2 = 10
...        'тут много строчек (примерно, 194 :) )
...
...
x100 = 10
y100 = 10
FOR i = 1 TO 100
    'как-то изменяем координаты точки (нам это сейчас не важно)
    ............................
    cf1 = POINT(x1, y1)
    PSET (x1, y1)
    SLEEP 1             'пауза 
    PSET (x1, y1), cf1
    ...        'тут много строчек  (примерно, 388 :) )
    ...
    ...
    'как-то изменяем координаты точки
    ...........................
    cf100 = POINT(x100, y100)
    PSET (x100, y100)
    SLEEP 1             'пауза
    PSET (x100, y100), cf100
NEXT i
END

Не программа - а ужас. Попробуем ввести массивы.

Снег 2. Программа рисования и стирания 100 точек.

REM снег 2.1
SCREEN 1

DIM x(1 TO 100) AS INTEGER
DIM y(1 TO 100) AS INTEGER
DIM cf(1 TO 100) AS INTEGER

FOR i = 1 TO 100
    'как-то изменяем координаты точки (нам это сейчас не важно)
    ........................
    cf1 = POINT(x(i), y(i))
    PSET(x(i), y(i))
    SLEEP 1             'пауза 
    PSET (x(i), y(i)), cf(i)
NEXT i
END

REM снег 2.2
SCREEN 1
DIM p(1 TO 100, 1 TO 3) AS INTEGER
FOR i = 1 TO 100
    'как-то изменяем координаты точки (нам это сейчас не важно)
    ........................
    cf1 = POINT(p(i,1), p(i,2))
    PSET(p(i,1), p(i,2))
    SLEEP 1             'пауза 
    PSET (p(i,1), p(i,2)), p(i,3)
NEXT i
END

Так лучше, но все-таки довольно путано. Попробуем ввести комбинированные типы.

Точка. Программа рисования и стирания точки.

REM точка 2

TYPE point
    x AS INTEGER    'коодината x
    y AS INTEGER    'коодината y
    cf AS INTEGER    'цвет фона под точкой
END TYPE

DIM p AS point
POINT(p.x, p.y)
PSET(p.x, p.y)
SLEEP 1             'пауза 
PSET (p.x, p.y), p.cf
NEXT i
END

Снег 3. Программа рисования и стирания 100 точек.

REM снег 3

TYPE point
    x AS INTEGER
    y AS INTEGER
    cf AS INTEGER
END TYPE

DIM p(1 TO 100) AS point
FOR i = 1 TO 100
    'как-то изменяем координаты точки (нам это сейчас не важно)
    ........................
    p(i).cf = POINT(p(i).x, p(i).y)
    PSET(p(i).x, p(i).y)
    SLEEP 1             'пауза 
    PSET (p(i).x, p(i).y), p(i).cf
NEXT i
END

Так вот оно лучше. Теперь с первого взгляда на код понятно, что делает программа. Причем, обратите внимание: все свойства объекта (координаты точки, цвет фона под точкой) собраны вместе, а не разбросаны по нескольким одномерным массивам (или вообще ни как не связанным друг с другом переменным) и не прячутся за не понятными индексами двумерного массива (сравните: p(i).y  и  p(i,2)).

Следующий логический шаг - это объединение свойств (координаты, цвет) точки и методов (процедур) для их обработки.

К сожалению, QBasic не поддерживает понятие класса, поэтому мы сами "расширим" его возможности :)

REM снег 4

КЛАСС point
    x AS INTEGER
    y AS INTEGER
    cf AS INTEGER

    SUB рисование
    cf = POINT(x, y)
    PSET(x, y)
    END SUB

    SUB стирание
    PSET (x, y), cf
    END SUB
END КЛАСС

DIM p(1 TO 100) AS point
FOR i = 1 TO 100
    'как-то изменяем координаты точки (нам это сейчас не важно)
    ........................
    p.рисование
    SLEEP 1             'пауза 
    p.стирание
NEXT i
END

Теперь давайте на основе класса точка (point) создадим новый класс - цветная точка (color_point). Класс color_point наследует от своего родителя все характеристики (координаты - x и y, цвет фона под точкой - cf) и процедуру стирания точки. Процедуру рисования точки придется модифицировать (рисовать будем цветную точку). Так же дополним класс новым свойством - цвет точки.

REM цветной снег

КЛАСС color_point ИЗ КЛАССА point
    c AS INTEGER
    
    SUB рисование
    cf = POINT(x, y)
    PSET(x, y),c
    END SUB

END КЛАСС

DIM p(1 TO 100) AS color_ point 
FOR i = 1 TO 100
    'как-то изменяем координаты и, возможно, цвет точки (нам это сейчас не важно)
    ........................
    p.рисование
    SLEEP 1             'пауза 
    p.стирание
NEXT i
END

Для дальнейшего изучения программирования мы будем использовать язык программирования Visual Basic. 

Название Visual Basic говорит само за себя. Visual Basic, в отличии от традиционных систем программирования, представляет совершенно иной стиль программирования. Уже по слову "Visual" можно догадаться, что в Visual Basic реализован визуальный стиль программирования. Вы даже не программируете, а проектируете приложение. Ваша первая задача при этом — создать рабочую среду, прежде чем начать набирать первую строку кода.

Слово Basic в названии указывает на то, что синтаксис программ и операторы опираются на язык высокого уровня Basic (Beginners Atlpurpose Symbolic Instruction Code - многоцелевой код символических команд для начинающих), но заметно от него отличается.

Создадим для примера простейшее приложение. Точнее создавать и программировать не придется вообще ничего: Visual Basic изначально предоставляет готовое приложение, состоящее из одного окна (формы) класса Form.

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

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

Выберем тип проекта "Стандартный EXE".


Сразу после этого Visual Basic предложит новую "пустую" форму. Данная форма не является абсолютно пустой - она содержит основные элементы окна Windows: заголовок, управляющие кнопки, кнопку вызова системного меню.

Visual Basic после запуска

Любое приложение Windows выполняется в соответствующем окне.  Visual Basic - это среда разработки приложений под Windows, поэтому для любого разрабатываемого приложения предлагается окно (форма).

Итак, первая программа готова. Чтобы увидеть результат ее работы, запустим программу.

результа работы программы

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

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

 содержание :: следующий урок

 

 

 

 

 

 

 

 

 

 

[Добавить в избранное]

 
Рекомендуем:

MyTest

Компьютерное тестирование знаний учащихся, сертификация и аттестация сотрудников.
Деcять типов заданий, локальное и сетевое тестирование...
 
Узнать больше и скачать программу MyTestXPro...
 
Обсудить на форуме и принять участие в создании банка тестов...
 
Новая группа ВКонтакте:
vk.com/MyTestXPro



Рекомендуем:


Учебник информатики (ФГОС, углубленный уровень) К.Ю. Полякова

Купить на Ozon.ru:


 
Реклама:
 

Разместите нашу кнопку

на своем сайте...
Инструкция


 
 

 
Реклама:

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

 
 


↑    

Дизайн, программирование и идея портала Клякс@.net -bas- © 2004-2016г.

    ↑