Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алексеев информатика.doc
Скачиваний:
321
Добавлен:
15.03.2015
Размер:
17.6 Mб
Скачать

5.5.3. Базовые структуры программирования

Алгоритм любой сложности может быть представлен комбинацией трех базовых структур:

  • следование;

  • разветвление (альтернатива, если – то – иначе);

  • цикл (повторение).

Характерной особенностью этих структур является наличие у них одного входа и одного выхода.

Базовая структура «следование» означает, что несколько операторов должны быть выполнены последовательно друг за другом и только один раз за время выполнения данной программы. Совокупность связанных базовых структур «следование» называется линейным вычислительным алгоритмом.

Под оператором понимается формальная запись предписания для выполнения некоторой последовательности действий.

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

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

В частном случае может оказаться, что для одного из выбранных путей действий предпринимать не нужно. Такая структура получила название «обход» или структура «если – то».

Алгоритм, в состав которого входит базовая структура «разветвление», называется разветвляющимся.

Если в алгоритме имеется три и более направления ветвления, то его можно представить в виде совокупности нескольких базовых структур «если – то – иначе». Такую разновидность структуры «разветвление» часто называют «множественный выбор».

Третья базовая структура «цикл» обеспечивает повторное выполнение или, другими словами, циклическую работу операторов.

Различают две разновидности этой структуры: «цикл – пока» и, «цикл – до».

Группа операторов, повторяющаяся в цикле, называется телом цикла. Основное отличие структуры «цикл – пока» от структуры «цикл – до» заключается в том, что в первой структуре операторы тела цикла в зависимости от условия могут не выполняться совсем, тогда как в структуре «цикл – до» тело цикла будет выполняться хотя бы один раз. Легко заметить, что в структуре «цикл . – пока» проверка выполнения условия осуществляется перед выполнением операторов тела цикла, а в структуре «цикл – до» – после прохождения тела цикла.

Циклы могут содержать внутри себя другие циклы. Такие структуры называются вложенными циклами.

Алгоритмы, имеющие в своем составе базовую структуру «цикл», называются циклическими.

Рассмотренные выше базовые структуры рекомендуется применять для соблюдения структурного подхода к разработке алгоритмов.

Реальные алгоритмы представляют собой совокупность всех рассмотренных базовых структур.

5.5.4.VisualBasic– основные сведения*

* Данный раздел написан П.А. Алексеевым

Появление первой версии языка Basic датируется 1964 г. До 1975 г. язык Basic был реализован практически на всех типах ЭВМ, существовавших тогда в мире. Рост популярности языка происходил в 1976 – 1978 гг. одновременно с массовым распространением микроЭВМ и ПЭВМ.

В первых конструкциях ПЭВМ интерпретатор языка Basic располагался в ПЗУ. Для тех конструкций ПЭВМ была характерна малая емкость оперативной и постоянной памяти. Это приводило к сращиванию в одном ПЗУ языка программирования и драйверов для устройств ввода-вывода.

Таким образом, в зависимости от набора аппаратных средств ПЭВМ и емкости памяти ПЗУ число инструкций (команд, операторов, функций) языка сильно изменялось. Только в отечественных публикациях упоминается более трех десятков диалектов (разновидностей) языка Basic.

Версия языка, известная под именем MBASIC, стала в конце 70-х – начале 80-х годов XX столетия промышленным стандартом, и ее разновидности были разработаны фирмой Microsoft для многих восьмиразрядных микроЭВМ. В 1991 г. для ПЭВМ типа IBM фирмой Microsoft была разработана версия языка, получившая название BASICA. Эта версия (и ее разновидности MSX-BASIC, GW-BASIC и др.) была промышленным стандартом для целого ряда 16-разрядных ПЭВМ.

Первой реализацией языка Basic в бывшем СССР была система программного обеспечения для ЭВМ типа М-220, разработанная в 1970 – 1971 гг. группой сотрудников под руководством Ю.Л. Кеткова.

Наибольшими отличиями от ранних версий Бейсика обладали диалекты QuickBasic 4.5, QBasic (усеченный QuickBasic), TurboBasic и PDS 7.1. Версия QBasic входила в состав операционных систем MS-DOS и поэтому имела достаточно широкое распространение.

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

Рассмотрим важнейшие понятия ООП.

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

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

Метод определяется выполняемой объектом функцией, алгоритмом его работы.

Состояние – совокупность всех свойств данного объекта.

Свойства – перечень параметров объекта, которые определяют внешний вид и поведение объекта, выделяют уникальные особенности каждого экземпляра. К свойствам относятся: имя, тип, значение, цвет, размер и др. Свойства задаются с помощью переменных состояния.

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

Элемент управления – стандартный объект, используемый операционной системой для ввода информации (например, командная кнопка, переключатель, текстовое поле, включатель и т. д.).

Класс – совокупность объектов с одинаковыми свойствами, т. е. с одинаковыми наборами переменных состояния и методов.

В основе ООП лежат три важных понятия: инкапсуляция, наследование и полиморфизм. Напомним их определения.

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

Наследование – процесс, посредством которого один объект может приобретать свойства другого объекта и добавлять к ним черты (свойства), характерные только для него.

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

Рассмотрим области использования языка.

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

VisualBasic позволяет создавать нестандартные элементы управления (называемые элементами управления на базе ActiveX или кратко – ActiveX-элементами).

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

При первом запуске программы Visual Basic 6.0 пользователь видит диалоговое окно «Новый проект» (на рисунке показан фрагмент диалогового окна). На диалоговом окне видны вкладки: New (Новый), Existing (Существующие), Recent (Недавние).

Щелчок по кнопке Открыть приведет к появлению следующего окна.

Пользовательский интерфейс VB содержит стандартные элементы – вверху расположено Главное меню программы, ниже – стандартная панель инструментов. Кроме того, на экране видны: слева – Окно Элементов (General), в центре – Окно Формы (Form), справа вверху – Окно Проектов (Project), справа внизу – Окно Свойств (Properties).

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

Главное меню содержит пункты: File (Файл), Edit ( Редактирование), View (Вид), Project (Проект), Format (Формат), Debug (Отладка), Run (Запуск), Query (Запрос), Diagram (Диаграмма), Tools (Инструменты), Add-Ins (Надстройка), Window (Окно), Help (Помощь).

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

Наряду с типичными кнопками, которые используются во всех приложениях фирмы Microsoft, имеются специфические командные кнопки.

На рисунке показаны (слева направо): списки Add Standard EXE Project (Добавить стандартный исполняемый проект), Add Form (Добавить форму) и кнопка Menu Editor (Редактор меню).

Рассмотрим еще одну группу кнопок, расположенных на стандартной панели.

Project Explorer (Окно Проектов), Properties Window (Окно Свойств), Form Layout Window (Окно местоположения формы), Object Browser (Браузер Объектов), Toolbox (Элементы управления), Data View Window (Окно просмотра данных), Visual Component Manager (Диспетчер компонентов).

Следующие три кнопки предназначены для управления запуском и остановкой созданного приложения (программы):

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

Pointer (Указатель), PictureBox (Поле Рисунка), Label (Метка), TextBox (Поле Текста), Frame (Рамка), CommandButton (Командная кнопка), CheckBox (Включатель), OptionButton (Переключатель), ComboBox (Комбинированное Поле), ListBox (Поле Списка), HscrollBar (Горизонтальная линия прокрутки), VscrollBar (Вертикальная линия прокрутки), Timer (Таймер), DriveListBox (Список дисков), DirListBox (Список директорий), FileListBox (Поле Списка файлов), Shape (Фигуры), Line (Линия), Image (Рисунок), Data (Данные), OLE.

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

В диалоговом окне «Новый проект» следует выбрать пункт Standard.EXE. После щелчка по кнопке Открыть в центре окна появляется пустая форма (Form1) На форме нужно расположить 10 кнопок с изображением цифр от 0 до 9, а также кнопки сложения, вычитания, умножения, деления, сброса и равенства.

Для этого в Окне Элементов (General) следует выбрать элемент управления – командную кнопку (Command Button) и отметить ее границы на форме. Затем, используя стандартные приемы копирования и вставки, подобает разместить на форме 16 заготовок для будущих кнопок. Размеры и местоположение кнопок изменяются с помощью стандартных приемов Drag and Drop.

Используя элемент управления TextBox (Поле Текста), нужно разместить над группой кнопок прямоугольную рамку, в которой будут отображаться результаты вычислений на калькуляторе.

Поочередно активизируя каждую кнопку, надлежит нанести на них названия кнопок (1,2,3...+,=). Для этого нужно изменить свойства Caption (Заголовок) на соответствующие символы. Это выполняется в Окне Свойств.

Для того чтобы при первом запуске калькулятора на индикаторе был виден ноль в текстовом окне (на форме Form1), следует заменить надпись Text1 на цифру 0.

С помощью Окна Свойства нужно задать местоположение текста на индикаторе калькулятора (сдвинуть цифры вправо). Для этого следует выбрать свойство Alignment (Выравнивание) в Окне Свойств. С помощью списка, расположенного в следующем столбце Окна Свойств, нужно выбрать свойство Right Justify (Выровнять вправо).

На этом визуальное программирование заканчивается, далее следует формировать код (составлять программу).

Методы (действия, выполняемые объектом) задаются с помощью процедур (подпрограмм и операторов-функций).

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

Для формирования кода надлежит в Окне Проектов (Project) щелкнуть по кнопке View Code (Просмотр кодов). В центре появится незаполненное окно редактора кода. Здесь подобает вначале записать три строки, которые определяют тип переменных:

После этого переменная buffer становится целочисленной, переменная ореr – текстовой (символьной) переменной, а переменная fistt – булевой. Назначение этих переменных таково: переменная buffer будет использована для временного хранения вводимых чисел и результатов вычислений, переменная ореr будет запоминать, какая арифметическая операция должна выполняться, а переменная fistt будет фиксировать момент окончания ввода одного числа в калькулятор. Если переменная fistt будет иметь значение True (Истина), то это означает, что при нажатии кнопки калькулятора показания индикатора будут заменяться числом, указанным на кнопке. Если переменная fistt имеет значение False (Ложь), то на индикаторе к имеющемуся числу в младший разряд будет дописана цифра, изображение которой находится на кнопке калькулятора.

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

Далее, переходя от одной кнопки калькулятора к другой, надлежит задать функции, которые они выполняют.

Ниже приведена подпрограмма загрузки формы.

При загрузке формы переменная fistt получает булево значение True (Истина), т. е. ноль на индикаторе можно заменить набираемой цифрой. Строка Private Sub Form_Load() является заголовком подпрограммы, а строка End Sub показывает место ее окончания. Имя подпрограммы – Form_Load.

Ниже приведен текст процедуры, фиксирующий момент нажатия кнопки с изображением цифры 1.

Рассмотрим назначение каждой строки составленной программы.

Строка Private Sub Command1_Click() является заголовком подпрограммы. Имя подпрограммы – Command1_Click. Строка End Sub показывает место окончания данной подпрограммы.

Строка If fistt = True Then является заголовком блочного оператора условной передачи управления. Если условие, записанное в заголовке, выполняется, то на индикаторе появляется первая единица. Условием появления единицы является выполнение равенства fistt = True. В результате выполнения этого фрагмента программы переменная fistt получает булево значение False (Ложь).

Если условие, указанное в заголовке оператора, не выполняется, то вычислительный процесс идет к группе операторов, расположенных после ключевого слова Else (Иначе). За счет этого на индикаторе добавляется новая единица к числу, набранному на предыдущих этапах работы калькулятора. Oсуществляется это с помощью строки Text1.Text = Str$(Text1.Text) + " 1".

End If показывает место окончания оператора условного перехода.

Аналогично построены остальные подпрограммы, которые служат для обработки информации при нажатии цифровых клавиш 2, 3, 4 и т. д.

Следующая подпрограмма используется для сброса показаний калькулятора в ноль при нажатии клавиши «С». Имя этой подпрограммы Command 11 Click.

В результате выполнения этой подпрограммы переменная fistt получает значение True (Истина), на индикаторе появляется 0, а переменные buffer и ореr обнуляются.

Следующая подпрограмма задает метод обработки информации при нажатии клавиши сложения +. Имя этой подпрограммы – plus_Click.

С помощью оператора условной передачи управления If...Then проверяется содержимое буфера (переменная buffer). Если оно отлично от нуля, то вызывается подпрограмма с именем resul. Она производит обработку введенной ранее информации и выполнение арифметического действия, указанного на предыдущем этапе работы. После этого в буфер помещается результат, полученный при работе данной подпрограммы, символьная переменная получает значение «+», а переменная fistt – логическое значение «Истина».

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

При нажатии клавиши «=» запускается подпрограмма, которая вызывает подпрограмму resul и устанавливает значение переменной fistt = True.

Следующая подпрограмма определяет вид заданной пользователем арифметической операции и подсчитывает полученный результат. Подпрограмме дано имя resul.

Выбор выполняемой операции начинается в строке Select Case oper, и результат выбора зависит от значения символьной переменной ореr. Такая конструкция называется распределителем. Причем, если переменная ореr имеет значение «+», то выполняется строка Text1.Text = buffer + Text1.Text, т. е. сложение содержимого индикатора и буфера. Если переменная орег имеет значение «– », то вычислительный процесс благодаря строке Case Is = «– » вьщолняет операцию вычитания: Text1.Text = buffer – Text1.Text и т. д.

За счет строк buffer = 0 и ореr = "" после выполнения арифметических операций происходит очистка буфера и значения переменной ореr.

End Select отмечает место завершения действия распределителя.

Для того чтобы откомпилировать составленную программу, нужно в меню File (Файл) выбрать пункт Make Calc.EXE.

Замечание.

Нередко возникает вопрос: какому языку отдать предпочтение – Delphi или Visual Basic?

В России большей популярностью пользуется Delphi, в остальном мире – Visual Basic. Подтверждением этого являются результаты поиска документов по этим ключевым словам (по состоянию на август 2001 г.). В табл. 1 приведено число найденных ссылок разными поисковыми машинами.

Таблица 1