Алгоритмы и исполнители Термин алгоритм происходит от имени узбекского ученого 9в. Аль-Хорезми, который в своем труде "Арифметический трактат", переведенном в 12в. с арабского на латынь, изложил правила арифметических действий над числами. Эти правила и называли алгоритмами. Таким образом, правила вычитания, сложения, умножения, построения геометрических фигур - все это алгоритмы. С течением времени данное понятие расширялось и теперь, алгоритмами называют определенную последовательность действий, приводящую к определенному результату. Рассмотрим пример: Дано: улица с движением, пешеходный переход. Найти: переход на другую сторону улицы. 1) остановиться на тротуаре; 2) посмотреть налево; 3) если транспорта нет, то идти до середины дороги и остановиться, иначе ждать пока проедет транспорт, затем идти до середины дороги и остановиться; 4) посмотреть направо; 5) если транспорта нет, то идти до тротуара противоположной стороны улицы, иначе ждать пока проедет транспорт, затем идти до тротуара противоположной стороны улицы; 6) конец. Свойства алгоритмов: Дискретность (разбиение на последовательность отдельных шагов) Понятность Детерминированность или однозначность (не должно быть шагов, которые можно воспринять неоднозначно) Результативность Массовость Способы записи алгоритмов: словесный естественный язык (кулинарный рецепт) язык программирования графический (блок-схемы) Ни один алгоритм не может работать без исполнителя – человека, животного или машины который понимает команды и исполняет их формально, т.е. не задумываясь. У каждого исполнителя есть своя система команд исполнителя (СКИ). Если по каким-либо причинам он не может выполнить команду, поступает сообщение «не могу». Если команда не входит в СКИ, поступает сообщение «не понимаю». Основные понятия объектно-ориентированного программирования Язык программирования – это искусственно созданный язык для записи алгоритма с помощью ЭВМ. Программа – алгоритм, записанный на языке программирования. Языки программирования: неструктурный (Basic) структурный (Pascal); логический (Prolog); объектно-ориентированный (Delphi); функциональный (Lisp («черный ящик»)). Преимущество ООП в наглядном представлении программы с помощью объектов (кнопок, строк для ввода информации и др.). Каждый объект принадлежит определенному классу. Например, кнопка (Button1) принадлежит классу кнопок TButton. В класс входит сколь угодно много объектов, объединенных в одну группу согласно их свойствам и поведению в среде окружения, в которой они существуют и взаимодействуют. T    Button
|
|
|
|
| Button1 | Button2 | Button3 | … | ButtonN | Чаще всего объекты включают в свою программу путем визуального программирования, используя заготовки – компоненты.  Компонент класса TButton  Каждый объект обладает свойствами, событиями и методами. Свойства характеризуют отличительные особенности компонента (Name (Имя), Caption (Заголовок) и др.). События – сообщение, которое компонент принимает от приложения, если во время работы программы выполняется определенное действие (например, нажатие на кнопку). Методы – программный код, обрабатывающий значения свойств. Класс характеризуется: Наследованием – любой класс может быть порожден от другого класса. Порожденный класс автоматически наследует поля, методы и свойства своего родителя и может добавлять новые. Инкапсуляцией. Класс представляет собой единство трех сущностей – полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Представляет собой сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Полиморфизмом – это свойство классов решать схожие по смыслу проблемы разными способами. Действия, выполняемые одноименными методами, могут отличаться в зависимости от того, какому из классов относится тот или иной метод. |