Основы информатики
Особенности операционного, процедурного и логического программирования. Разработка интерфейса пользователя. Описание алфавита, типов данных, констант и переменных языка Бейсик. Алгоритм нахождения наибольшего общего делителя двух натуральных чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | шпаргалка |
Язык | русский |
Дата добавления | 09.10.2011 |
Размер файла | 1,6 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
БИЛЕТ №1. Парадигмы программирования: операционное, процедурное, структурное, логическое программирование, объектное программирование
Парадигма программирования -- схема, модель постановки проблем и их решения, методы исследования, господствующие в течение определенного исторического периода в научном обществе. Характерные идеи и методы программирования и соответствующий образ мышления образуют так называемую парадигму программирования. Между парадигмами и языками программирования высокого уровня прямая связь, хочется сказать, изоморфная (противники этой точки зрения будут утверждать, что и на Бейсике можно создать "шедевр"...). В большинстве учебников по информатике подразумевается, что суть программирования заключается в знании алгоритмов и определений языка, описанных в них. Но правила конкретного языка программирования можно изучить за несколько часов, соответствующие парадигмы требуют гораздо больше времени как для того, чтобы научиться им, так и для того, чтобы отучиться от них.
Операциональное программирование (языки программирования типа ассемблеров, Бейсика, Фортрана). Программа "собирается" из мелких деталей, отдельных операций и имеет достаточно простую структуру: область глобальных данных и подпрограммы. Уровень абстрагирования - отдельное действие, принципы декомпозиции задачи отсутствуют, во всяком случае, о них не говорят.
Программы содержат команды, непосредственно исполняемые процессором компьютера:
Ш операции присваивания
Ш простейших арифметических операций
Ш операций сравнения чисел
Ш операторов безусловного и условных переходов (изменяющих порядок вычисления команд в программе)
Ш операторов вызова подпрограмм (вспомогательных алгоритмов).
Ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп - оператор и данные.
Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием "машина Тьюринга".
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней.
Структурное (языки программирования Паскаль, Модула-2) программирование в целом не выходит за рамки этого направления (алгоритмеческого программирования), оно лишь дополнительно фиксирует некоторые полезные приемы технологии программирования. В некоторых случаях можно избежать этапа построения алгоритма и создания программы, используя одной подходящую, ранее созданную программу. Такие библиотеки алгоритмов (программ) существуют практически по всем областям науки и техники.
В основе структуроного программирования лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
В соответствии с данной методологией любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
- последовательное исполнение -- однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
- ветвление -- однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
- цикл -- многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
Разработка программы ведётся пошагово, методом "сверху вниз".
Сначала пишется текст основной программы, в котором, вместо каждого связного логического фрагмента текста, вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются "заглушки", которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-заглушки последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной "затычки", которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов, и может быть уверен, что общая структура всех более высоких уровней программы верна. При сопровождении и внесении изменений в программу выясняется, в какие именно процедуры нужно внести изменения, и они вносятся, не затрагивая части программы, непосредственно не связанные с ними. Это позволяет гарантировать, что при внесении изменений и исправлении ошибок не выйдет из строя какая-то часть программы, находящаяся в данный момент вне зоны внимания программиста.
Теоретическими основаниями структурного программирования являются:
* формальные системы теории вычислимости (общие рекурсивные функции, системы Поста, алгоритмы Маркова, лямбда исчисление Чёрча);
* анализ программ по нисходящей схеме, декомпозиция, основанная на разбивке задач по уровням 0, 1, ..., k. В классической работе Бома и Джакопини показано, что такая структура (иерархическая, разбитая на уровни) может быть реализована в языке, включающем только две управляющие конструкции.
По Бому и Джакопини для реализации программ требуется три основных составляющих блока:
* функциональный блок (или конструкция следования);
* конструкция обобщенного цикла;
* конструкция принятия двоичного или дихотомического решения.
Характерные черты структурного стиля программирования:
* простота и ясность (программа легко читается и анализируется, достаточное комментирование);
* использование только базовых конструкций;
* отсутствие сетевых структур в программе;
* отсутствие многоцелевых функциональных блоков;
* отсутствие неоправданно сложных арифметических и логических конструкций;
* расположение в строке программы не более одного оператора языка программирования;
* содержательность имен переменных.
При этом процесс нисходящей разработки программы может продолжаться до тех пор, пока не будет достигнут уровень "атомарных" блоков, т. е. базовых конструкций (присвоения, if-then-else, do-while).
Итак, если формулировать суть в сжатом виде, то в структурном программировании уточнен принцип декомпозиции задачи (в основном ее алгоритмического аспекта, т.е. действий, однако уровень интеграции действий и данных "на совести" разработчика) и сделана попытка его строгой формализации.
Логимческое программимрование -- парадигма программирования, основанная на автоматическом доказательстве теорем. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Самым известным языком логического программирования является Prolog
Первым языком логического программирования был язык Planner, в котором была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы понизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, который не требовал плана перебора вариантов и был, в этом смысле, упрощением языка Planner.
В логическом программировании нужно только специфировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Логические программы отличаются принципиально низким быстродейтсвием, так как вычисление осуществляются методом проб и ошибок( посредством поиска с возвратами).
Реализация языка PROLOG (PROgramming in LOGic) оформляется в виде интегрированной среды, которая предлагает компьютеру не алгоритмы, а саамы задачу в виде некоторой аксиоматической системы, а поиск вывода (решения задачи), поручается компьютеру. При логическом программировании задача описывается совокупностью фактов и правил в некотором формальном логическом языке.
Объемктно-ориентимрованное программимрование (ООП) -- парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием -- прототипов).
Класс -- это тип, описывающий устройство объектов. Понятие "класс" подразумевает некоторое поведение и способ представления. Понятие "объект" подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект -- это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, т. н. объекта.
Объект -- сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции (и линковки) исходного кода на выполнение).
Прототип -- это объект-образец, по образу и подобию которого создаются другие объекты.
ООП оформилось в самостоятельный стиль программ с появлением языка (SMALLTALK-1972 г.) Корни ООП уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Этот сталь программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Примеры объектно-ориенторованного языка -Visual Basic и Delifi. При традиционной (процедурной) реализации алгоритма программа управляет данными. Это означает, что выполнение приложения начинается с первой строки кода, процедуры вызываются по мере необходимости. В ОПП - данные управляют программой. Но не беспорядочные данные, а данные, связанные друг с другом и описывающие какой-то реальный или воображаемый объект, на базе которого реализована модель того или иного явления природы. В виде объектов можно представить любые понятия.
Под объектом в ОПП понимается структура, состоящая из данных и функций, управляющих этими данными. С объектом связано понятие класса. Класс задает свойства и поведение объектов класса. Каждый экземпляр объекта является экземпляром какого-либо класса. Причем между объектом и классом существуют отношения, аналогичные соотношениям между переменной (экземпляр) и ее типом (класс). Таким образом, класс 0 это логическая конструкция, а объект - это его физическое воплощение.
Например, каждый рабочий лист MS Excel является объектом класса Worksheet. Класс содержит данные и функции, которые обрабатывают данные. Данные называются свойствами класса, а функции - методами класса. Методы воздействуют на объект.
Информационное состояние объекта меняется во времени. Это называется событием. При появлении события (например, нажатие на клавишу или щелчок мышью на одной из кнопок панели инструментов) система посылает объекту сообщение, которое может быть обработано методом, создаваемый при разработке класса. Такие методы называют обработчиками событий или процедурами обработки события. В событийно-управляемом приложении поток выполнения кода приложения в каждом сеансе будет своим, отличным от других. Принято выделять три основных механизма, лежащих в основе ОПП: инкапсуляция, наследование, полиморфизм.
Инкапсуляция - это механизм, связывающий вместе код и данные, которыми он манипулирует и одновременно защищает их от внешних помех и некорректного использования. Иными словами, инкапсуляцию можно представить в виде защитной оболочки, предохраняющей свойства и методы класса от изменения извне. В ООП основой инкапсуляции является класс. Обычно определение класса разделяется на две части: интерфейс класса и реализация класса. Интерфейс класса содержит только объявление свойств и методов. Собственно определения методов, то есть их реализации на языке программирования, отделены от интерфейса и помещаются в реализацию класса. Таким образом, чтобы использовать объект какого-либо класса, мы не обязаны знать, как реализован класс - достаточно знать только его интерфейс. Причем реализация класса может быть различной. Она не влияет на работоспособность программ, использующих данный класс, если интерфейс класса сохранен без изменений.
Наследованием называется способность класса-потомка сохранять свойства методы класса-родителя. Но при этом можно добавлять новые, изменять и удалять перенимаемые методы и свойства. Наследование - это понятие, поддерживающее концепцию иерархической классификации, которая используется в реальном мире для систематизации большинства знаний.
Полиморфизм означает "много форм". Одна и та же операция над объектами различных классов можем выполняться различными методами.
В системе объектно-ориентированного программирования обычно используется графический интерфейс, который позволяет делать наглядным (визуалировать) процесс программирования. Появляется возможность создавать объекты, задавать им свойства и поведения с помощью мыши.
БИЛЕТ №2. Разработка интерфейса пользователя. Элементы управления ListBox и ComboBox
Разработка интерфейса пользователя.
Интерфейс -- это внешняя оболочка приложения вместе с программами управления доступом и другими скрытыми от пользователя механизмами управления, дающая возможность работать с документами, данными и другой информацией, хранящейся в компьютере или за его пределами. Главная цель любого приложения -- обеспечить максимальное удобство и эффективность работы с информацией: документами, базами данных, графикой или изображениями. Поэтому интерфейс является, пожалуй, самой важной частью любого приложения.
Хорошо разработанный интерфейс гарантирует удобство работы с приложением и, в конечном итоге, его коммерческий успех. В данной главе описаны виды интерфейсов и процесс создания интерфейса со всеми его основными элементами управления: меню, контекстным меню, панелями инструментов, строкой состояния.
Проектирование интерфейса -- процесс циклический. На этом этапе разработки приложения желательно чаще общаться с пользователями и заказчиками приложения для выработки наиболее приемлемых по эффективности. удобству и внешнему виду интерфейсных решений.
Выбор того или иного типа интерфейса зависит от сложности разрабатываемого приложения, поскольку каждый из них имеет некоторые недостатки и ограничения и предназначен для решения определенных задач. При этом необходимо ответить на ряд вопросов: какое количество типов документов обрабатывается в приложении, имеют ли данные древовидную иерархию, потребуется ли панель инструментов, какое количество документов обрабатывается за некоторый интервал времени (например, за день) и т. д. Только после этого можно выбирать конкретный тип интерфейса.
Элемент управления ListBox на формах VBA, его применение
Этот элемент управления очень похож на комбинированный список, но применяется гораздо реже по двум причинам:
· в нем нельзя открыть список значений по ниспадающей кнопке. Все значения они видны сразу в поле, аналогичном текстовому, и поэтому большое количество позиций в нем уместить трудно;
· пользователь не может вводить свои значения -- только выбирать из готовых.
Пример этого элемента управления представлен на рис.
Рис. Список (элемент управления ListBox)
Но у этого элемента управления есть и преимущества: в нем пользователь может выбирать не одно значение, как в ComboBox, а несколько.
Обычно ListBox используется:
· как промежуточное средство отображения введенных/выбранных пользователем через ComboBox значений (или любых других списков, например, списков выбранных файлов);
· как средство редактирования списка значений, сформированных вышеуказанным образом или полученных из базы данных (для этого можно рядом с ListBox разместить кнопки Удалить или Изменить).
Основные свойства, методы и события у ListBox -- те же, что и у ComboBox. Главное отличие -- то, что имеется свойство MultiSelect, которое позволяет пользователю выбирать несколько значений. По умолчанию это свойство отключено.
БИЛЕТ №3. Основные элементы управления. Общие свойства и события элементов управления
Элемент управления |
Имя |
Кнопка |
|
TextBox (Поле_ввода) |
Text |
||
Label (Надпись) |
Label |
||
CommandButton (Кнопка) |
Command |
||
ListBox (Список) |
List |
||
ComboBox (Поле со списком) |
Combo |
||
OptionButton (Переключатель) |
Option |
||
CheckBox (Флажок) |
Check |
||
Frame (Рамка) |
Frame |
||
HScrollBar (Горизонтальная полоса прокрутки) |
HScroll |
||
VScrollBar (Вертикальная полоса прокрутки) |
Vscroll |
||
Image (Рисунок) |
Image |
||
PictureBox (Графическое поле) |
Picture |
||
Line (Линия) |
Line |
||
Shape (Фигура) |
Shape |
||
Timer (Таймер) |
Timer |
Каждый из размещаемых в форме элементов управления (controls) определяется собственным набором свойств. Но есть свойства, присущие большинству из них. Например, все без исключения объекты формы имеют свойство Name (Имя), используемое при написании программных кодов. Имя объекта должно быть уникальным в форме. Размеры объекта определяются свойствами Height (Высота) и width (Ширина). Для указания положения объекта в форме предназначены свойства Left (Слева) - определяет расстояние объекта от левого края формы и Top (Сверху) - расстояние от верхнего края формы.
Окно свойств состоит из двух частей: верхней инструментальной и рабочей. В верхней части окна свойств располагается раскрывающийся список, из которого можно выбрать любой элемент управления активной формы или саму форму. Рабочая часть состоит из вкладок: Alphabetic и Categorized, которые позволяют отобразить набор свойств в алфавитном порядке или по категориям. В обеих вкладках свойство Name (имя элемента управления) будет первым. Изменяются значения свойств либо: вводом с клавиатуры значения свойства в соответствующее поле, либо выбором из раскрывающегося списка.
Раскрывающийся список активизируется щелчком на соответствующем поле окна свойств Object. Помимо свойств, объект имеет методы, определяющие выполняемые им действия, например перемещение, изменение размеров. Используя предусмотренные для объектов методы, можно обойтись минимальным программированием приложения. Например, для печати образа формы достаточно вставить оператор следующего вида: Form1.PrintForm, где Form1 -- форма, а PrintForm -- название метода. Среди методов, которыми обладают все объекты, можно назвать Move, позволяющий перемещать объект; setFocus, активизирующий объект, чтобы иметь возможность с ним взаимодействовать. Помимо свойств и методов, для объектов можно задать программные коды, выполняемые при наступлении связанных с ними событий. Например, для обработки события нажатия кнопки мыши (Click) при создании формы необходимо открыть окно, предназначенное для ввода программного кода одним из следующих действий:
o сделайте двойной щелчок на объекте, для которого хотите просмотреть или создать программный код;
o установите курсор на объект и из меню View (Вид) выберите команду Code (Код);
o выберите команду контекстного меню объекта View Code.
При выполнении любого из этих действий откроется окно Project с двумя раскрывающимися списками Object и Procedure. Левый список Object содержит все объекты формы, включая и саму форму. В списке Procedure перечислены события, для которых можно создать процедуру. В области, предназначенной для написания кода, расположены заголовок и конец событийной процедуры (между ними помещается текст процедуры):
Private Sub Command1_Click()
End Sub
Здесь Command1_Click является именем процедуры. Оно состоит из имени объекта, для которого создается процедура, заданного свойством Name, и наименования события. Для более быстрого перехода из режима просмотра в окне Project одной процедуры ко всем процедурам можно использовать кнопки Procedure View и Full Module View, расположенные в левом нижнем углу. Двойной щелчок на форме открывает окно кода для соответствующего модуля. Окно Projectl - Forml (Code) служит редактором кода процедур приложения. Код внутри модуля организован в отдельные разделы для каждого объекта, программируемого в модуле. В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Эти режимы работы можно переключать нажатием одной из двух кнопок в нижнем левом углу окна редактирования кода , либо установкой или снятием флажка Default to Full Module View вкладки Editor диалогового окна Options, отображаемого на экране командой Tools, Options. Другим интеллектуальным качеством редактора кода является автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после набора их имени. Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>. Если после набора строки и нажатия клавиши <Enter> строка выделяется красным цветом, то в данной строке есть синтаксическая ошибка. Эту ошибку необходимо найти и исправить. Если курсор редактора расположить на ключевом слове языка Visual Basic или имени процедуры, функции, свойства или метода, и нажать клавишу <F1>, то на экране появится окно со справкой об этой функции. Обычно к этой справке прилагается пример использования кода.
Чтобы управлять объектом его нужно выделить левым щелчком мыши. Для выделения нескольких объектов:
o Удерживая клавишу <Shift> в нажатом состоянии, щелкните поочередно все выделяемые объекты или
o Установить указатель мыши на форме, прижать левую кнопку мыши и не отпуская её нарисовать рамку выделения так, чтобы внутри нее оказались все необходимые объекты.
Для выделения всех объектов в форме можно воспользоваться командой Select All (Выделить все) меню Edit (Правка) или комбинацией клавиш. Если вы хотите отменить выделение со всех объектов формы, щелкните вне выделенных объектов. Для снятия выделения с отдельных объектов выполните следующие действия: 1)нажмите и удерживайте клавишу <Shift>; 2)выберите поочередно объекты, с которых хотите снять выделение - <Ctrl>+<A>.
После того как объекты выделены, вы можете управлять ими как единым целым. Для выравнивания размещенных в форме объектов можно использовать команду Align меню Format.
Lefts (По левому краю) |
Выравнивает выбранные объекты по левому краю самого левого объекта |
|
Centers (По центру) |
Выравнивает выбранные объекты относительно вертикальной оси |
|
Rights (По правому краю) |
Выравнивает выбранные объекты по правому краю самого правого объекта |
|
Tops (По верхнему краю) |
Выравнивает выбранные объекты по верхнему краю самого верхнего объекта |
|
Middles (Посередине) |
Центрирует выбранные объекты относительно горизонтальной оси |
|
Bottoms (По нижнему краю) |
Выравнивает выбранные объекты по нижнему краю самого нижнего объекта |
|
To Grid (По сетке) |
Выравнивает выбранные объекты по линиям сетки |
Меню Format содержит команду Make Same Size (Устанавливать одинаковые размеры), опции которой Width, Height и Both позволяют для выбранных объектов установить одинаковую ширину, высоту или оба размера сразу. Для управления расстоянием между выбранными объектами в горизонтальном и вертикальном направлениях используются дополнительные опции команд Horizontal Spacing (Расстояние по горизонтали) и Vertical Spacing (Расстояние по вертикали).
Make Equal (Одинаковое расстояние) |
Устанавливает одинаковое расстояние между выбранными объектами |
|
Increase (Увеличить) |
Увеличивает расстояние между выбранными объектами |
|
Decrease (Уменьшить) |
Уменьшает расстояние между выбранными объектами |
|
Remove (Удалить) |
Удаляет промежуток между выбранными объектами |
Команда Center in Form (По центру формы) меню Format (Формат) содержит опции Horizontally и Vertically, позволяющие центрировать выделенные объекты относительно горизонтальной и вертикальной линий, проходящих через центр формы. В контекстном меню объектов также содержатся команды, управляющие отображением объекта в форме.
Bring to Front (Позади) |
Направляет выбранный объект на самый нижний слой формы |
|
Send to Back (Поверх) |
Направляет выбранный объект на самый верхний слой формы |
Помимо вышеперечисленных команд, в меню Format, а также в контекстном меню объектов формы содержится команда Size To Grid (Размер по сетке), позволяющая привести размер объекта в соответствие с размером ячейки сетки, которая используется для точного позиционирования объектов в форме, Для отображения сетки на экране выполните следующие действия:
1. В меню Tools (Сервис) выберите команду Options (Параметры).
2. Перейдите на вкладку General (рис. 3.14).
3. Установите флажок Show Grid (Показывать сетку).
4. Под флажком расположено поле Grid Units, указывающее, что размер задается в твипах (1 твип = 1/20 пункта = 1/1440 дюйма = 1/567 сантиметра). Размер ячейки сетки в горизонтальном и вертикальном направлениях устанавливается с помощью двух полей ввода Width (Ширина) и Height (Высота). Введите в поля числа в диапазоне от 24 до 1188 включительно.
5. Нажмите кнопку ОК для закрытия диалогового окна.
При установленном в окне Options флажке Align Controls to Grid (Выровнять элементы управления по сетке) вы не можете расположить объект в произвольном месте формы. Все операции размещения объектов, их перемещения и изменения размеров будут выполняться с учетом размера ячейки сетки.
Набор всех программных составляющих документа в среде VB называется проектом. Проект конструируется из констант, переменных, массивов, процедур, функций. В основе реализации проекта лежит понятие модуля. Модуль -- это набор описаний и процедур, собранных в одну программную единицу. Таким образом, все коды содержатся в модулях. Существуют два основных типа модулей: модули класса и стандартные модули. К модулям класса относятся, например, модули форм, которые связанны с определенной формой. В процессе создания формы мы создаем класс, который является наследником класса UserForm. Модули форм обычно содержат процедуры обработки событий. Модули классов могут также существовать и независимо от форм.
Для создания модуля класса достаточно выполнить в главном меню команду: Project> Add > Class Module (Вставка > Модуль класса).
Стандартным называется модуль, не связанный ни с одним объектом. Обычно в стандартных модулях содержатся часто используемые процедуры и функции. Для просмотра всех элементов, входящих в состав проекта служит окно просмотра объектов Object Browser. В этом окне можно получить доступ не только ко всем элементам, которые входят в проект, но и их свойствам, методам, событиям. Окно просмотра объектов обычно не активно и его можно вызвать командой Object Browser (Браузер объектов) из меню View (Вид).
В VB 6.0 включены четыре новых элемента управления -- ADO Data, DataGrid, DataList и DataCombo, которые обеспечивают работу с источниками данных в соответствии со спецификациями OLE DB (данный интерфейс является основой ADO).
Хотя эти компоненты -- аналоги уже известных элементов управления Data, RemoteData, DBGrid, DBList и DBCombo, в них появились некоторые специфические дополнения.
Элемент управления ADO Data обеспечивает связь между поставщиком данных OLE DB (OLE DB Provider) и элементами управления, обладающими свойством DataSource (CheckBox, ComboBox, Image, Label, ListBox, PictureBox и TextBox).
ADO Data может применяться в следующих случаях:
для связи с локальной или удаленной базой данных;
для открытия (просмотра) заданной таблицы в базе данных или определения группы записей, основанных либо на SQL-запросе, либо на хранящейся процедуре;
для передачи значений полей данных в связанные с данными элементы управления;
для обновления базы данных.
ADO Data добавляется к формам аналогично любому другому элементу управления, причем их количество в форме не ограничено.
Однако следует помнить о том, что данный элемент управления является ресурсоемким: ему требуется по крайней мере два соединения для первого компонента и по одному для каждого последующего.
БИЛЕТ №4. Основы языка программирования Бейсик (алфавит, типы данных, описание констант и переменных, область видимости и время жизни переменных)
BASIC - это первые буквы английских слов Beginner's All-purpose Symbolic Instruction Code (Всецелевой язык программирования для начинающих).
Программный код представляет собой текст инструкций на языке Visual Basic. Алфавит языка содежит следующие символы:
o 26 букв латинского алфавита от А до Z и кириллицу от А до Я; При наборе программы, впрочем, нет нужды следить за тем, чтобы буквы были заглавными. Интерпретатор сам изменит строчные буквы на заглавные.
o Цифры от 0 до 9;
o Знаки арифметических операций: + , - , * , / , ^ , \ ;
o Знаки отношений: = , < , > ; > (больше), < (меньше), = (равно), <> (не равно), >= (больше либо равно), <= (меньше либо равно)
o Специальные символы разделители): пробел , " (кавычки) , # , $ , & , ? ,' (апостроф) , ( , ) , . , ; , %
Инструкции занимают в тексте программы одну или несколько строк. Помещение "пробела" и "знака подчеркивания" ( _ ) в конце строки обеспечивает то, что последующая строка является продолжением предыдущей.
Использование знака двоеточия, позволяет разместить несколько инструкций (операторов) на одной строке
x = x + 1 у = х + 2 |
х = х + 1 : у = х + 2 |
Для пояснения содержания внутри программы можно поместить произвольный текст (комментарий). Комментарии не предполагают выполнение по ним действий и не вызывают никаких последствий. В языке Visual Basic существуют два способа ввода комментария:
o применение апострофа ('). Его можно ставить в любом месте строки. При этом все символы, начиная от апострофа до конца строки, будут восприниматься компилятором как комментарий;
o применение зарезервированного слова Rem вместо апострофа.
Например:
Dim a As Integer ' а -- целая переменная
Dim b As String
Rem b -- строковая переменная
Персональное обозначение, позволяющее однозначно выделить объект в ряду прочих называют именем (идентификатором). В программе имя играет роль замаскированной ссылки на конкретное значение данных. Например при использовании идентификаторов А1 и А2 в операторе присваивания: А1 = 32 : А2 = 16 ' А1 и А2 присвоены значения целых чисел.
Другой пример: А1 = А2
Здесь идентификатор А1 указывает на объект, которому будет присвоено значение объекта, на который ссылается идентификатор А2.
Имена выбираются по своему усмотрению. Однако следует избегать мало выразительных обозначений. Имена должны быть понятны, наглядны, отражать суть обозначаемого объекта. Имена инструкций, типов данных, методов, свойств, операторов, встроенных констант, объектов, стандартных функций и т. п. называются ключевыми (зарезервированными) словами языка программирования. Помимо ключевых слов, пользователь может вводить в программу пользовательские имена, которые должны удовлетворять следующим правилам:
o Первым символом имени обязательно должна быть буква (можно использовать и русский алфавит).
o Нельзя использовать символы ".", "!", "@", "&", "$", "#" и пробел.
o Имя не может содержать более 255 символов.
o Имя не должно совпадать с ключевыми словами VB.
o Имена не должны повторяться на одном уровне определения, то есть в одной процедуре не могут быть объявлены две переменные, с одним и тем же именем.
Переменная - это величина, которая может меняться при выполнении программы. Программа на языке Бейсик обрабатывает данные двух типов - числовые и символьные. Каждое число представлено в машине некоторой комбинацией битов.
Инструкции описания.
Все данные в программе имеют имена, которые используются в инструкциях как адреса (ссылки) для нужной информации. Именованная часть памяти, в которую могут помещаться некоторые данные с помощью оператора присваивания называется переменной. Для соблюдения правил обработки данных переменные описываются (объявляются) с указанием типов данных. Тип данных определяет множество допустимых значений указанной переменной. Каждая переменная после ее описания отождествляется с некоторой ячейкой памяти, содержимое которой является ее значением. В ходе выполнения программы значения переменной могут неоднократно изменяться. При явном описании переменных (возможно описание по умолчанию) используется инструкция Dim: Dim strStroka As String
Когда эта инструкция располагается в процедуре, переменная strStroka может использоваться только в данной процедуре (такая переменная называется локальной).
Если же такая инструкция находится в разделе описаний модуля, то переменная strStroka доступна для всех процедур данного модуля, но не может использоваться процедурами из других модулей проекта. Чтобы сделать переменную доступной для всех процедур проекта, перед ней надо поставить инструкцию Public (общая): Public strName As String
Общие переменные могут использоваться в любой процедуре проекта. Если общая переменная описана в стандартном модуле или в модуле класса, она также может использоваться в любом проекте, в котором имеется ссылка на проект, где описана эта переменная. Такая переменная называется глобальной.
Инструкция Private (личная) используется для описания переменных уровня модуля. Private MyName As String
Личные переменные доступны только для процедур одного и того же модуля. На уровне модуля инструкция Dim эквивалентна инструкции Private.
Переменные, описанные с помощью инструкции Static вместо инструкции Dim, сохраняют свои значения при выполнении программы. В языке Visual Basic можно описать переменную неявно, просто используя ее в инструкции присваивания. Все неявно описанные переменные имеют тип Variant. Если неявные описания нежелательны, в модуле всем процедурам должна предшествовать инструкция Option Explicit. Эта инструкция налагает требование явного описания всех переменных этого модуля. Явное описание динамических массивов и массивов с фиксированной размерностью обязательно.
Переменные могут описываться как один из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Control, Object, или Variant. Если тип данных не задан, по умолчанию переменная приобретает тип Variant. Имеется также возможность создать определяемый пользователем тип данных с помощью инструкции Type.
Допускается также описание нескольких переменных в одной строке. В этом случае, чтобы задать тип данных, надо указать определенный тип для каждой переменной. В следующем примере переменные intX, intY, и intZ описываются как Integer.
Dim intX As Integer, intY As Integer, intZ As Integer
В следующей строке intX и intY описываются как Variant; и только intZ описывается как Integer.
Dim intX, intY, intZ As Integer
Константы это именованная часть памяти, которая не может изменять своё значение. Константы уровня модуля по умолчанию являются личными. При описании общих констант уровня модуля инструкции Const должно предшествовать ключевое слово Public. Для явного описания личных констант перед инструкцией Const надо поставить ключевое слово Private:
Public Const число As Integer = 4
Const Фирма = "Свобода"
Visual Basic обеспечивает большой набор встроенных констант, которые можно применять с различными операторами. В следующем примере с оператором MsgBox используются стандартные константы vbYesNo и vbYes:
Private Sub Command1_Click()
Результат = MsgBox("Продолжить", vbYesNo)
If Результат = vbYes Then
Print "Нажата кнопка Да"
Else
Print "Нажата кнопка Нет"
End If
Print "Результат = " & Результат
End Sub
Область видимости переменных.
Область действия переменных определяется с помощью ключевых слов: Private, Public и Static.
Private - область действия в пределах конкретного модуля. После завершения выполнения модуля память, отведенная под эти переменные, освобождается.
Public - область действия в пределах приложения.
Static - область действия в пределах конкретного модуля и внешних процедур, используемых в данном модуле. После завершения выполнения модуля значения этих переменных сохраняются и могут быть использованы при повторном выполнении модуля.
Переменные, в зависимости от области действия, подразделяются на глобальные и локальные.
Если переменная описана внутри процедуры, то она является локальной, то есть она определена и может использоваться только в пределах данной процедуры.
Если переменная описана вне процедуры, то она будет глобальной. Такая переменная может быть использована в нескольких процедурах.
Время жизни переменных.
Переменные, объявленные как Private, сохраняют своё значение только во время выполнения блока кода, в котором они определены.
Переменные, объявленные как Public, сохраняют своё значение и вне блока кода, в котором они определены, то есть до конца выполнения программы.
Переменные, объявленные как Static, сохраняют своё значение и между вызовами процедур.
Переменные, объявленные без ключевых слов Public, Private, Static, сохраняют своё значение согласно месту их объявления (описания).
Типы данных.
Тип данных |
Описание |
Диапазон |
|
Byte |
целое число |
От 0 до 255 |
|
Integer |
целое число |
От -32 768 до 32 767 |
|
Long |
длинное целое число |
От -2 147 483 648 до 2 147 483 647 |
|
Single |
число с плавающей запятой одинарной точности |
а) для отрицательных чисел:от -3,402823Е38 до -1,401298E-45 б) для положительных чисел: от 1,401298E-45 до 3,402823E38 |
|
Double |
число с плавающей запятой двойной точности |
a) для отрицательных чисел:от -1,79769313486231E308 до -4,94065645841247E-324 б) для положительных чисел: от 4,94065645841247E-324 до 1,79769313486231E308 |
|
Currency (денежный) |
число с фиксированной десятичной точкой |
от -922.337.203.685.477.5808 до 922.337.203.685.477.5807 |
|
String |
строка символов |
от 0 до 147483647 символов |
|
Variant |
универсальный |
Значения любого типа |
|
Boolean |
логический |
True или False |
|
Тип данных |
Описание |
Диапазон |
|
Date |
дата |
от 1.01.100 года до 31.12. 9999 года |
|
Object |
объект |
Ссылка на любой объект |
БИЛЕТ № 5. Основные элементы управления проектом. Структура проекта. Управление проектом
Основным понятием для Visual Basic 6 при разработке приложении является проект. Все приложения создаются как проекты и хранятся в файлах с расширением vbp. Создавая любое приложение, даже самое простое, вы всегда работаете с проектом Visual Basic.
В Visual Basic проект -- это контейнер, в котором находятся все требуемые формы приложения и другие визуальные элементы вместе с программным кодом. Таким образом можно сказать, что проект является средством интеграции визуальных и программных компонентов приложения. Кроме этого, к проекту можно подключить библиотеки DLL, компоненты сторонних разработчиков с помощью окон ссылок References (Ссылки) и компонентов Components (Компоненты).
В Visual Basic 6 вы можете работать с группой проектов, что расширяет возможности работы с ними. Группа проектов -- это файл с расширением vbg, аналог проекта проектов, в котором собраны вместе несколько проектов. Это полезное свойство Visual Basic 6 на практике может служить для разделения проекта на отдельные варианты. Например, один проект группы можно использовать как основной рабочий проект, поставляемый пользователям. Для этого проекта создается исполняемый файл очередной версии приложения. Второй проект может быть предназначен для тестирования и отладки приложения. После накопления изменений в приложении, предназначенном для отладки, они переносятся в основной проект, поставляемый заказчику. Третий проект группы может служить для экспериментов по повышению производительности приложения и так далее. В слаженной группе программистов работу над каждым из таких проектов вполне реально разделить между несколькими разработчиками для повышения эффективности работы над проектом. Однако в этой главе все внимание будет уделено проекту, а о группе проектов лишь скажем, что такая возможность в Visual Basic есть и ее можно использовать.
Структура проекта
Проект обеспечивает взаимодействие всех элементов приложения и поэтому, как всякий организованный определенным образом объект, имеет свою внутреннюю структуру.
Элементы управления, в соответствии со структурой проекта, тоже могут быть вложенными.
Структура проекта представляет собой иерархическое дерево, корнем которого является сам проект. Ветвями дерева являются такие элементы проекта, как формы, диалоговые окна, программные модули и другие файлы. Листьями, входящими в ветви, являются элементы управления и другие объекты форм и элементов проекта уровня форм.
Для работы со структурой проекта в среде проектирования Visual Basic 6 имеются специальные инструментальные средства, в которых она наглядно представлена: проводник проекта и браузер объектов. Структура проекта содержит ссылки на его элементы, а именно:
· файлы форм, имеющие расширение frm. Для каждой формы создается отдельный файл. При этом необходимо помнить, что для проекта в стиле MDI можно подключать только одну форму типа MDI-окна;
· двоичные файлы свойств элементов управления для каждой формы, имеющие расширение frx. Такие файлы создаются автоматически для форм, содержащих элементы управления, характеризующиеся свойствами picture (Изображение) и icon (Значок);
· файлы для каждого модуля классов, имеющие расширение els;
· файлы для каждого программного модуля с расширением bas;
· файлы элементов управления ActiveX, имеющие расширение осх;
· файл ресурсов с расширением res;
· библиотечные файлы;
· файлы компонентов.
БИЛЕТ №6. Примеры алгоритмов (описание и программа на Бейсике): Сортировка массива обменом (метод пузырька)
Сортировка массива заключается в перестановке его элементов таким образом, чтобы между всеми парами соседних элементов выполнялось некоторое условие. В частности, таким условием может быть X[i]X[i+1]. В этом случае говорят о сортировке по неубыванию. В более общем случае, можно представить соотношение между элементами в виде f(X[i]) f(X[i+1]).
Существует несколько основных алгоритмов сортировки. Все эти алгоритмы имеют свои достоинства и недостатки. Есть несколько параметров, характеризующих некоторый алгоритм:
- алгоритмическая сложность, т.е. сложность описания алгоритма;
- вычислительная сложность, т.е. зависимость продолжительности работы от объёма входных данных;
- частота доступа к данным, т.е. количество обращения к данным на чтение или запись.
Никакой конкретный алгоритм сортировки не может обладать минимальными значениями сразу всех перечисленных характеристик. Выбор алгоритма для конкретной задачи - компромисс, основанный на особенностях предметной области и требованиях к характеристикам разрабатываемой программы.
Сортировка массива обменом (метод пузырька).
Алгоритм состоит в повторяющихся проходах по сортируемому массиву. За каждый проход элементы последовательно сравниваются попарно и, если порядок в паре неверный, выполняется обмен элементов. Проходы по массиву повторяются до тех пор, пока на очередном проходе не окажется, что обмены больше не нужны, что означает -- массив отсортирован. При проходе алгоритма, элемент, стоящий не на своём месте, "всплывает" до нужной позиции как пузырёк в воде, отсюда и название алгоритма. Основной недостаток такого алгоритма заключается в неравномерности скорости его исполнения в зависимости от конкретных данных.
Задача. Задан массив, выражающий последовательность элементов X[1..n]. Необходимо отсортировать элементы массива по неубыванию (возрастанию) пузырьковым методом.
Схема сортировки пузырьковым методом
Sub Sort(Mus() As Long)
Dim n As Long, i As Long, tmp As Long
i = 1
Do While (i < UBound(Mus))
If Mus(i) > Mus(i + 1) Then
tmp = Mus(i)
Mus(i) = Mus(i + 1)
Mus(i + 1) = tmp
If i > 1 Then
i = i - 1
Else
i = i + 1
End If
Else
i = i + 1
End If
Loop
End Sub
Как видно из схемы на рис. 5, "тяжёлые" элементы последовательности стремятся достичь "дна", в то время как "лёгкие", подобно пузырькам воздуха, стремятся к поверхности.
В приведённом примере алгоритм выполняется наибольшее число шагов, так как самый "лёгкий" элемент первоначально был на самом дне.
Дополнительное неудобство, создаваемое таким алгоритмом, заключается в частом обращении на чтение и запись к данным. На схеме показано, насколько много бесполезных перестановок элементов происходит в процессе работы этого алгоритма. Если данные расположены на внешнем носителе (в файле), это может вызывать замедление работы программы.
Кроме того, отсутствует возможность оценить на промежуточных шагах алгоритма, насколько близка текущая последовательность к требуемому результату.
Сортировка обменом (метод пузырька) состоит в том, что последовательно сравниваются пары соседних элементов
xk и xk+1 (k=l, 2, 3, . . ., n-1)
Если xk > xk+1, то они переставляются; тем самым наибольший элемент окажется на своем месте в конце массива; затем этот метод применяется ко всем элементам, кроме последнего, и т. д.
БИЛЕТ №7. Примеры алгоритмов (описание и программа на Бейсике): Определение Наибольшего Общего Делителя двух натуральных чисел a и b
программирование бейсик интерфейс алгоритм
Наибольшим общим делителем (НОД) двух целых чисел называется такое наибольшее по модулю число, которое нацело делит эти два числа. По определению НОД(0,0)=0.
Нахождение НОД
Private Sub Command1_Click()
a = Val(Text1)
b = Val(Text2)
c = 1
Do While c <> 0
If a > b Then
c = a Mod b
a = b
b = c
Text3 = a
ElseIf a < b Then
c = b Mod a
b = a
a = c
Text3 = b
End If
Loop
End Sub
или
1. Создать новый проект и программу для вычисления наибольшего общего делителя 2-х произвольных чисел. Окно работающего приложения показано на рис.
2. Записать для кнопки Вычислить программный код:
If Nod(Val(Text1.Text), Val(Text2.Text))<>0 Then
Text3.Text= Nod(Val(Text1.Text), Val(Text2.Text))
Else
Text3.Text=""
End If
3. Записать программный код для раздела General Declaartions:
Function Nod(ByVal n1 As Double, ByVal n2 As Double) As Double
n1=Abs(n1): n2=Abs(n2)
If n1*n2=0 Then
MsgBox ("ошибка ввода")
Text1.Text=""
Text1.SetFocus
Text2.Text=""
Exit Function
End If
Do
q=n1 Mod n2
n1=n2: n2=q
Loop While q<>0
Nod=n1
End Function
4. Запустить программу и убедиться в правильности ее работы, при необходимости исправить ошибки, а затем сохранить на дискете проект.
БИЛЕТ №8. Структура интегрированной среды разработки. Окно редактирования кода. Окно проекта. Окно Свойств. Окно макета
Интегрированная среда разработки IDE.
Интегрированная среда разработки, или IDE (Integrating Development Environment) это важная составная часть Visual Basic. Именно здесь выполняется основная работа над приложением.
Интегрированная среда разработки приложений VB
IDE состоит из следующих компонентов:
1. Строка меню. Обеспечивает доступ к командам, управляющим средой программирования.
2. Панель инструментов. Ускоряет доступ к некоторым командам меню.
3. Окно дизайнера форм. Служит для визуального конструирования макета формы и размещения на нём управляющих элементов, кроме того, в этом окне производятся ввод и редактирование текста программы.
4. Панель элементов. Содержит интерфейсные элементы для создаваемого приложения.
5. Окно проводника проекта. Показывает список форм и модулей текущего проекта. (Проект - это набор файлов, используемых для построения приложения).
6. Окно свойств. Позволяет изменять характеристики интерфейсных элементов.
7. Окно макета формы. Показывает, как выглядит форма и где она находится во время выполнения программы.
8. Кнопка для перехода к окну кодов.
9. Кнопка для перехода к окну дизайнера формы.
Подобные документы
Поиск взаимно простых чисел. Алгоритм Евклида для целых чисел. Описание выбранного языка программирования. Алгоритм решения задачи. Обзор средств программирования. Текст и описание программы. Руководство оператора, программа и методика испытаний.
курсовая работа [843,5 K], добавлен 15.06.2011Создание базы данных и СУБД. Структура простейшей базы данных. Особенности языка программирования Турбо Паскаль. Описание типов, констант, переменных, процедур и функций. Описание алгоритма базы данных (для сотрудников ГИБДД), листинг программы.
курсовая работа [26,3 K], добавлен 26.01.2012Этапы подготовки и решения реальных задач. Словесно-формульное, графическое описание, псевдокоды. Программа нахождения квадрата числа на языке Бейсик. Разветвляющийся и циклический алгоритм. Общие положения программирования. Базовые конструкции.
презентация [308,3 K], добавлен 31.10.2016Процедура изучения программы нахождения большего из четырех чисел, основанной на использовании подпрограммы нахождения большего из двух чисел. Практические навыки работы в MS Excel. Структура и основы создания базы данных при использовании конструктора.
отчет по практике [22,4 K], добавлен 26.01.2011Применения языка логического программирования Пролог и языка программирования Haskell для реализации алгоритма поиска оптимального каркаса графа. Алгоритм Прима, преимущество перед другими алгоритмами нахождения оптимального каркаса, близких к полным.
курсовая работа [230,2 K], добавлен 13.06.2012Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.
курсовая работа [980,1 K], добавлен 05.03.2015Язык программирования как система обозначений, применяемая в описании алгоритмов для ЭВМ. Разработка программы на языке программирования Бейсик. Освоение приемов работы с электронными таблицами MS Excel. Создание базы данных с помощью СУБД MS Access.
контрольная работа [2,6 M], добавлен 15.02.2010Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.
курсовая работа [332,3 K], добавлен 09.12.2014Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.
курсовая работа [2,4 M], добавлен 03.11.2013Составление программы для зашифровки текста (не более 255 символов), с использованием одного перемешанного алфавита, полученного случайной перестановкой всех букв исходного алфавита. Создание меню-интерфейса для навигации пользователя по программе.
курсовая работа [496,2 K], добавлен 17.05.2015