
- •1. Словесная форма
- •2. Блок ‑ схема
- •3. Псевдокоды
- •Глава 5. Основные общие свойства, события и методы
- •5.1. Cвойства
- •5.2. События
- •5.3. Методы
- •Глава 6. Объекты, управляющие элементы
- •6.8. Списки (ListBox)
- •6.9. Комбинированные поля (ComboBox)
- •6.12. Таймеры (Timer)
- •Безусловный переход ‑ Goto
- •Условный переход ‑ If, Iif
- •Однострочный вид оператора:
- •Пример. Нахождение наибольшего числа из двух чисел a, b.
- •Выбор варианта ‑ Select
- •Цикл ‑ For ... Next
- •Цикл ‑ For Each ... Next (Vb)
- •Цикл ‑ Do... Loop
- •Обмен значениями двух переменных- Swap (qb)
- •Оптимизация циклов
Алгоритмы. Определение, основные типы (сходящиеся, линейные, циклические) и свойства. Формы записи алгоритмов с примерами.
Алгоритм ‑ это понятное и точное предписание исполнителю совершения определенных последовательных действий для достижения указанной цели.
Свойства алгоритма
Дискретность ‑ последовательность выполнения одного за другим отдельных законченных шагов.
Массовость ‑ применимость к целому классу задач.
Определенность ‑ однозначное толкование каждого шага.
Результативность ‑ получение результата через конечное число шагов.
Формальность ‑ способность любого исполнителя выполнить все шаги алгоритма, не понимая их смысла.
Например, инструкция по использованию утюга является алгоритмом, а инструкция как встретить и устроить в гостинице гостя фирмы не является алгоритмом (нет свойства массовости).
Существует теорема, доказывающая, что любой алгоритм есть комбинация трех базовых команд: следование, развилка (“если”), цикл. Команда безусловного перехода (Gоto) не является базовой, и ее можно исключить из языков программирования (FoxPro).
Алгоритмы бывают сходящимися и расходящимися.
Сходящийся алгоритм в условиях приближенных вычислений на компьютере не накапливает погрешности в вычислениях и всегда приводит к верному конечному результату, в отличие от расходящегося алгоритма, который нельзя использовать для решения задач на компьютерах. Доказать сходимость алгоритма можно теоретически или практическим способом, производя большую серию пробных вычислений и сравнивая полученные результаты на компьютере с теоретическими расчетными данными.Существуют алгоритмически неразрешимые задачи, для которых невозможно построить алгоритм их решения.
Пример. Задача определения эквивалентности двух программ (две различные программы вычисляют одну функцию) является алгоритмически неразрешимой.
Алгоритмический язык ‑ это язык формализованной записи алгоритма.
Формы записи алгоритма
1. Словесная форма
Пример описания алгоритма Евклида ‑ нахождения наибольшего общего делителя двух чисел (НОД).
Шаг 1-й. Ввести два числа.
Шаг 2-й. Если числа равны, то взять первое и закончить выполнение алгоритма, иначе ‑ перейти на следующий шаг.
Шаг 3-й. Определить большее число. Заменить большее число на разность большего и меньшего и перейти на шаг 2-й.
Достоинство ‑ универсальность, недостаток ‑ неформальность.
2. Блок ‑ схема
Шаги алгоритма изображаются в виде специальных графических символов, которые связываются линиями передачи управления.
Начало, конец, прерывание Подпрограмма
Ввод или вывод данных Вывод на принтер
Линейный процесс Проверка условия
Магнитный
диск Магнитная
лента
Сортировка Дисплей
Межстраничный
Соединитель соединитель
Рис. 1.1.2. Блок‑схем алгоритма
Евклида - нахождения НОД
Лист бумаги делится на колонки и строки. Строки нумеруются, а колонки обозначаются латинскими буквами. В одной ячейке (зоне) размещается один графический символ. Адрес зоны обозначается именем колонки и номером строки (B3). В соединителе указывается адрес зоны (куда или откуда передается управление). В межстраничном соединителе дополнительно указывается номер листа.
Достоинство: наглядность; недостаток: трудоемкость разработки.
3. Псевдокоды
Псевдокоды - полуформальный язык, в котором вводятся ключевые слова, имеющие однозначное толкование. Эти слова выделяются в тексте (цветом, толщиной, размером букв, шрифтом). За ключевым словом на естественном языке описывается шаг алгоритма.
Пример алгоритма Евклида
Алгоритм ‑ определение наибольшего общего делителя чисел А, В.
Ввод двух чисел A, B.
Делать пока А не равно В.
Если А>В То А=А-В Иначе В=В-А Конец если
Конец делать
Вывести значение А на печать.
Конец алгоритма
Достоинства: универсальность, возможность постепенной детализации, близость к программе (ключевые слова подобны командам). Недостаток: уступает по наглядности блок-схеме.
4. Метод HIPO (иерархия, ввод, обработка, вывод). Используется для описания больших программных проектов. Проект состоит из оглавления, обзорных и детальных таблиц. В оглавлении указываются назначение проекта и список основных функций. Каждая функция в дальнейшем расписывается в виде иерархической системы обзорных таблиц. Каждой обзорной таблице присваивается код, который включает в себя код вышестоящей таблицы (через точку); таким образом, код показывает ветвь проекта (1.2, 1.2.1, 1.2.2). Детальные таблицы заканчивают описание всего проекта и являются терминальными таблицами в дереве обзорных таблиц. Детальная таблица состоит из трех колонок: входная информация, обработка и выходная информация.
Достоинства: структурность, возможность постепенной детализации; недостаток: неудобна для малых проектов.
Визуальное объектно-ориентированное программирование. Инкапсуляция, наследование, полиморфизм. Основные объекты и их свойства, методы и события.
История объектно-ориентированного программирования (ООП) берет свое начало в конце 60-х годов. Компьютерный центр в Норвегии создал первый объектно-ориентированный язык программирования, названный Simula, предназначенный для моделирования ситуаций в реальном мире. Основная особенность языка Simula состояла в том, что программа была организована по объектам программирования. Объектно-ориентированное программирование обладает следующими характеристиками: инкапсуляция, наследование и подклассы, полиморфизм.
Инкапсуляция означает объединение в объекте его свойств, используемых данных и методов (алгоритмов) их обработки. Объект копируется (удаляется) как одно целое. Каждый объект обладает набором свойств, методов и событий. Настройка объекта (внешний вид, цвет, надписи и др.) осуществляется визульным или программным способами изменения его свойств. Методы ‑ это команды которые выполняются объектом. Процедуры обработки событий заставляют реагировать объект нужным образом (“оживляют” приложение) на наступление этих событий (нажатие кнопки мышки, ввод символа и др.).
Наследование и подклассы. Все объекты создаются на основе классов и наследуют все их свойства и методы. Подклассы-потомки могут создаваться на основе других родительских классов, и они наследуют все свойства и методы родительского класса. Изменения в родительском классе автоматически отслеживаются в подклассах-потомках.
Полиморфизм. Одноименные методы в разных объектах могут выполнять различные действия, что позволяет заменять одноименные методы из родительского класса на другие в подклассе-потомке, если родительский метод не подходит для потомка.
Визуальное программирование донесло основные положения объектно-ориентированного программирования до конечного пользователя. Вместо того чтобы писать многие строки кодов для моделирования поведения объекта, средства визуального программирования предоставляют в ваше распоряжение готовые прототипы объектов (компоненты, управляющие элементы, инструменты, базовые объекты или классы), которые вы можете размещать на форме и настраивать по своему усмотрению. Например, вместо того чтобы требовать от вас написания кода для создания кнопки, которая утопает и всплывает при нажатии ее пользователем, языки содержат прототип кнопки. Кроме того, в прототип встроена стандартная реакция кнопки (нажатие и всплытие), которая освобождает пользователя от программирования.
Разработка объектно-ориентированных приложений начинается с моделирования реальных объектов, необходимых для выполнения конкретного задания. При создании приложения вы взаимодействуете с хорошо знакомыми объектами: таблицами баз данных, экранными формами, цветовыми схемами. Создание каждого объекта предполагает использование языка программирования. Вам предоставляется возможность скопировать созданные объекты из одного приложения в другое и тем самым сократить объем работы. Например, если вы создали специальную кнопку, которая предназначена для поиска фамилии покупателя в указанной таблице, то можно использовать ту же кнопку в другом приложении для выполнения функции поиска. Для этого потребуется лишь изменить наименования поля и таблицы, в которых будет осуществляться поиск. В дополнение к сказанному, программа реагирует на события. Событие представляет собой некоторое действие, которое активизирует стандартную реакцию объекта. В качестве события могут рассматриваться нажатие кнопки мыши, выбор пункта меню или открытие таблицы. Порядок выполнения действий определяется, прежде всего, событиями, возникающими в системе, и реакцией на них объектов. Ниже приведена последовательность выполнения действий в программе:
1. В системе возникает событие (нажатие клавиши, изменение значения поля, ...).
2. Определяется связанный с этим событием объект (поле таблицы, кнопка, форма и т.д.).
3. Вызывается соответствующий событию метод объекта, который содержит действия по обработке возникшего события.
Визуальная природа позволяет сразу видеть результаты своих действий при настройке свойств объектов.
Вы можете сохранить каждый объект в качестве класса и использовать его при создании новых программ. На следующих стадиях разработки приложения можно в любой момент вернуться к нужному объекту и изменить или расширить его свойства, не нарушая целостности других. Сопровождение и модификация приложений, написанных на таких языках, осуществляются гораздо эффективнее и требуют меньших затрат по сравнению с традиционными линейными программами.
Современные версии языков Visual Basic, Delphi, Visual C++ позволяют использовать любую из технологий.