Visual Basic

МИНИСТЕРСТВО  ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ

БУХАРСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ ПИЩЕВОЙ И ЛЕГКОЙ ПРОМЫШЛЕННОСТИ

По производственной практике

На тему:

     Сдал: ст. гр. 1-98 МААТ                         Шлямов Д.

    

     Приняла:                                           Убайдулаева Ш.Р.

Бухара – 2000 г.

Basic был создан коллективом сотрудников Дартмугского колледжа во главе с Джоном Кемени и Томасом Куртом. Это произошло в далеком 1964 году, задолго до появления персонального компьютера в его современном виде, в эпоху больших ЭВМ. BASIC расшифровывался как Beginner's All-purpose Standard Instruction Code (Все целевой стандартный код инструкций для начинающих).

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

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

программирования,  доступных  программирующим  фанатикам,  Бейсик

остается  простейшим для изучения и по истечении 20 лет после его

введения. Но еще лучше оказывается выполненная на Бейсике работа.

Вопреки притязаниям снобов Си и Паскаля, Бейсик является вовсе не

пустяковым  языком,  наделенным  мощными инструментами пригодными

для  того,  чтобы  браться  за специфическое дело, которое люди в

большинстве случаев делают с помощью малых компьютеров, а именно,

за работу с файлами и вывод текстов и графики на дисплей.

    Бейсики и машинный язык

Как  это  ни  удивительно,но  любой данный компьютер способен

исполнять  программы,  написанные  только  на его родном машинном

языке.  Существует почти столько же машинных языков, сколько есть

типов  компьютеров,  но  все  они  представляют  собой  некоторые

вариации  на  одну  и  ту  же  тему-простые операции, выполняемые

молниеностно быстро над двоичными числами. На персональных компь-

ютерах IBM используется семейство машинного языка 8086, поскольку

их аппаратная конструкция базируется на этом конкретном семействе

микропроцессоров.

Возможно,  хотя и трудно, писать программы непосредственно на

машинном  языке.В  ранние  годы  компьютеризации  (на заре 1950-х

годов)  машинный  язык  был  тем  единственным, что сделали люди,

чтобы  спасти программистов от цепенящего озноба программирования

в машинных кодах, как некий мост между человеческими существами и

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

(т.е. не машинные) языки.

Высокоуровневые языки работают через трансляторные программы,

которые  переводят  "исходный  код"  (машинно-читабельный  гибрид

английского  языка  и  математических выражений) и в конце концов

вынуждают  компьютер  исполнять подходящие инструкции на машинном

языке  для  выполнения  заданной  работы.  Двумя базисными типами

трансляторов   являются   интерпретаторы,   которые  сканируют  и

исполняют  исходный  код в режиме единичного шага, и компиляторы,

которые  сканируют исходный код, переводя его на машинный язык, а

результат этого сканирования используется затем отдельно.

Интерпретаторы

Исторически  Бейсик  обычно  реализовался  как  интерпретатор

(знакомым  изомером  является сам интерпретаторный Бейсик). Одно,

часто   упоминаемое   преимущество   интерпретаторной  реализации

состоит  в  том,  что  она  допускает  "непосредственный  режим".

Кроме   того,   интерпретаторы  имеют  специальные  атрибуты,

которые  упрощают  отладку.  Можно,  например, прервать обработку

интерпретаторной  программы,  отобразить  содержимое определенных

переменных,  бегло  просмотреть  программу,  а  затем  продолжить

исполнение.

Болше   всего   программистам   нравится   в  интерпретаторах

возможность  получения быстрого ответа. Здесь нет необходимости в

компилировании,   так   как   интерпретатор   всегда   готов  для

вмешательства  в  вашу  программу. Введите RUN и результат вашего

самого последнего изменения оказывается на экране.

Однако  интерпретаторные языки не без недостатков. Необходимо

например иметь копию интерпретатора в памяти все время, тогда как

многие   возможности   интерпретатора,   а  следовательно  и  его

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

программы.

Слабо различимым недостатком интерпретаторов является то ,что

они   имеют   тенденцию   отбивать   охоту   к   хорошему   стилю

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

детали  занимают  значительное  место  программной  памяти,  люди

стремяться   ими  не  пользоваться.  Дьявол  менее  яростен,  чем

программист,  работающий  на интерпретаторном Бейсике, пытающийся

получить  программу  в  120К в памяти емкостью 60К. но хуже всего

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

времени  на  разгодывание  того,  что  делать,  вместо того чтобы

заниматься действительно делом.

При  исполнении  программных  операторов,интерпретатор должен

сначала   сканировать  каждый  оператор  с  целью  прочтения  его

содержимого  (что  этот  человек  просит  меня сделать?), а затем

выполнить  запрошенную  операцию.  Операторы в циклах сканируются

излишне много.

Компиляторы

Компилятор-это  транслятор  текста  на машинный язык, который

считывает   исходный   текст,  оценивает  его  в  соответствии  с

синтаксической  конструкцией  языка и переводит на машинный язык.

¬атем  вывод  на  машинной  языке (машинный код), прогоняется как

независимый   шаг  трансляции.  Другими  словами,  компилятор  не

исполняет  программы,  он  их  строит.  Интерпретаторы невозможно

отделить от программ, которые ими прогоняются, компиляторы делают

свое дело и уходят со сцены.

Фирма Microsoft впервые взялась за Бейсик в 1975 году. Тогда она приняла участие в разработке языка Altair/Microsoft 4К Basic. Бук­вально через несколько месяцев была создана более мощная его реализация Altar/Microsoft 8К Basic. Накопив необходимый опыт, в 1976 году Microsoft уже без чьей-либо посторонней помощи воплотила систему Extended Basic, затем последовали Disk Basic (1977), R-MAX Basic (1978), M-BASIC, BASIC-80 (1979)... В августе 1981 года родилась MS-DOS 1.0. В эту систему фирма Microsoft интегрировала и свою первую версию языка Бейсик для IBM PC -MS-BASIC. Немного позже появилась усовер­шенствованная и более обкатанная реализация языка Advanced Basic, или BASICA.

В 82-м Microsoft провозгласила еще более "продвинутое" новшество - GW-BASIC. Версия 2.0 этого продукта, вышедшая годом позже,была внедрена во вторую же версию MS-DOS, появившуюся одновременно с компьютерами IBM PC XT. GW-BASIC 2.0 являлся более совер­шенным по сравнению со своими младшими собратьями. Однако для нас такая система, как GW-BASIC, - еще мезозойская эра. Представь­те себе черный текстовой экран, на котором красуется приглашение типа "Ok...". В нижней части этого экрана - справочная строчка, в которой объясняются назначения функциональ­ных клавиш: - UST (просмотр текста програм­мы сначала. Прокрутить его, как мы это делаем сейчас в окне VBA, было нельзя!), - RUN (выполнить), - LOAD (загрузить с диска), -SAVE (сохранить на диск)...

Настоящий расцвет Бейсика начался с развитием оконного интерфейса (в среде DOS, конечно, до Windows еще пока далеко!). Где-то с середины 80-х все больше и больше про­грамм оснащалось линейками прокрутки, око­шечками, статусными строчками, флажками...

В 1987 году фирма Borland International, известная реализациями языков С, C++, Pascal и, конечно же, своей системой Delphi, выпусти­ла продукт под названием Turbo Basic 1.0. Это был шаг вперед! Отдельные окна для ввода и выполнения, окно отладки, окно справочной си­стемы, спускающиеся меню, многочисленные опции - в общем, все, что сейчас мы называем "интегрированная среда". Прорыв заключался еще и в том, что Turbo Basic мог компилировать файлы, т. е. позволял создавать автономные файлы программ с расширением ЕХЕ.

Но самым что ни на есть популярным сред­ством разработки на Бейсике для DOS был (и остается сейчас!) Microsoft'OBOow QuickBASIC (в частности, версия 4.5, выпущенная в 1988 году), а также его более "продвинутая" разновидность QuickBASIC Extended Professional Development System (версии 7.0/7.1 1989/1990 годов). Рань­ше Бейсик был языком уя любителей: он по­зволял писать мелкие простые программки, но не более того. Microsoft же задумала сделать из Бейсика быстрое средство профессиональной разработки. И ей это удалось!

Полная версия QBX PDS 7.1 занимала на диске уже около 14 Мбайт (кстати, Turbo Basic "тянул" менее чем на 1 Мбайт). В ее состав включались две интегрированные среды: соб­ственно QBX, предназначавшаяся для набора текста программы, выполнения, отладки и т. п., и PWB (Programmer's WorkBench), включавшая намного большие возможности отлаживания. Кроме того, в PDS был автономный отладчик CodeView, а также масса готовых библиотек -финансовых функций, функций матричной мате­матики, графических шрифтов и т. д. и т. п. Среда QBX предоставляла обширные возможно­сти настройки: не было на экране элемента, цвет которого нельзя изменить так, как хочется. В окне ввода текста работала автоматическая коррекция ввода, можно было подключить также и "горячую" проверку синтаксиса.

С появлением Windows программирование под DOS начало терять свое значение. В начале 90-х для Бейсик-программистов наступил насто­ящий кризис: полнокровных версий языка для Windows еще не было, и власть захватили в свои руки "писатели" на Паскале и Си. И тогда Microsoft выпустила первую версию системы Visual Basic для Windows. Это нововведение произвело насто­ящую сенсацию:  появилось cредство, позволившее разрабатывать полноценные Windows-приложения в десять-пятнадцать раз быстрее и проще, чем припомощи тех же Паскаля и Си. Разработка приложений на Visual Basic в корне отличается от написания программ при помощи любой из предыдущих реализации Бейсика. VB перевернул все с ног на голову. Здесь первым делом создается форма - окно будущего приложения. И уже после этого пи­шутся процедуры, обрабатывающие события, способные произойти с тем или иным свой­ством какого-либо объекта (элемента) формы.

Во времена Windows З.х были выпущены вторая и третья версии VB, а в эпоху Windows 95 - четвертая и пятая. 32-разрядный Visual Basic 5.0, в котором реализована поддержка Active-X, Internet-технологий и прочих несус­ветных вещей, распространяется в составе MS Visual Studio - мощнейшего инструментально­го комплекса, вобравшего в себя последние реализации Microsoft C++ и J++ (вариант язы­ка Java). Но Билл Гейтс не мог бы спать спо­койно и Microsoft была бы не Microsoft, если бы не устроила очередную западню конкурен­там, пытающимся продвинуть свои инструмен­тальные средства в Windows. Сама западня зак­лючалась в том, что Microsoft задумала сделать Visual Basic фактическим стандартом языка для управления    всеми    крупномасштабными Windows-приложениями! Однако реализация такой идеи оказалась не так проста. Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других же приложениях - Word 6.0 и Access 2.0 - были собственные варианты Basic. Более того, VBA 1.0 довольно сильно отличался от используемой тогда универсаль­ной системы Visual Basic 3.0. Реальное сбли­жение между Visual Basic и VBA произошло осенью 1995 г. после выхода Visual Basic 4.0 и Office 95.

B состав последнего VBA 2.0 был уже включен Access 95, однако Word 95 тогда по-прежнему имел соб­ственный WordBasic, а каждое приложение пакета - соб­ственную среду программиро­вания. А в Office 97 VBA стал неотъемлемым самостоятель­ным компонентом, единым для всех приложений. В Office 97 единый языковый механизм VBA используют все основные приложения:   Word,   Excel, PowerPoint и Access. Отдель­ным компонентом VBA являет­ся интегрированная среда раз­работчика Visual Basic Editor (VBE), который фактически яв­ляется специализированным вариантом VB 5.0 для работы в комплексе с приложениями.

Фирмам, которые поначалу с усмешкой смотрели на все эти проекты, теперь ничего не остается делать, как принимать условия игры. Microsoft продвигает VBA в качестве стандарта отрасли для управления программи­руемыми приложениями, объявив о возможно­сти его лицензирования.

Новейшая версия VBA уже в скором време­ни будет встроена во многие "немайкрософ-товские" программы, и сегодня уже сотни программных продуктов третьих фирм имеют логотип "Featuring Microsoft Visual Basic Technology". Это заставляет задуматься над тем, что же такое BASIC - "стандартный код для начинающих" или "основной язык для ос­новной среды"...

С ЧЕГО НАЧАТЬ?

Все книги по программированию (как хорошие так и не очень) начинаются с написания традиционного  вывода приветствия.Мы не будем оригинальными и начнем с этого же.

Проще всего создать команды Сервис->Макрос->Начать запись. Все действия пользователя до нажатия кнопки Стоп записываются в макрос и воспроизводятся при запуске этого макроса. Такой способ не позво­ляет организовывать циклы и выдавать сообще­ния пользователю, поэтому для написания пол­ноценной программы необходимо отредакти­ровать записанный макрос. Для этого в Word 6.0 и 7.0 необходимо выбрать команду Сервис ->Макрос-> Изменить (Сервис->Макрос->Ре-дактор VisualBasic в Word97).

Основным элементом экрана теперь является окно текстового редактора, в котором вы може­те вводить и редактировать программы, напи­санные на языке VBA. Созданная вами програм­ма будет сохранена вместе с рабочим файлом,так что любой VBA-код, размещенный здесь, будет всегда сопровождать базовый файл.

Команды, расположенные между строчками "Sub Hello" и "End Sub", представляют собой действия, выполняемые макрокомандой. Мы не будем сейчас их подробно рассматривать, а ска­жем лишь, что они отражают именно те дей­ствия, которые вы производили при записи мак­рокоманды. Важно понять, что программа рабо­тает в соответствии с инструкциями, которые вы­полняются одна за другой, сверху вниз. Первая инструкция выполняется в первую очередь, и в большинстве случаев работа программы приоста­навливается до момента окончания выполнения действия, предписанного текущей инструкцией. Затем выполняется следующая инструкция, и так далее до конца программы, который отмечен командой "End Sub" (конец программы).

VBA - это сокращение для Visual Basic for Application. Макрорекодер пишет программы вместо вас. Шаги, которые вы выполняете, |ранслируются в программный код и записыва­ются в специальный лист. Совершенно такой же макрос можно создать, если перейти в этот лист и набрать код вручную. Мы уже говорили о том, что не все операции можно ввести с помощью макрорекодера, не говоря уж о том, что не все макросы, созданные с помощью макрорекодера, красивы и эффективны.

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

Sub Hellof)

MsgBox «Hello Word», vblnformation, «Мое первое сообщение»

Веер

End Sub

Если теперь вы проиграете этот макрос, то машина выдаст вам окно с приветствием, а принажатии "ОК"раздастся звуко^ вой сигнал, который в Control Panel-Sounds обозначен как Defualt.

Слово "Sub" в первой строке указывает на то, что эта процедура - тип программы на языке VBA. Hello - это имя макроса. Круглые скобки необходимы каждой процеду­ре. Мы еще будем говорить подробно о функции скобок. Наиболее значимыми частями этого макроса являются вторая и третья строчки. Вторая строчка вызывает окно с над­писью "Hello Word ". Первый параметр функции MsgBox задает текст сообщения, вто­рой - тип сообщения, т.е. значок и кнопки, а третий задает заголовок окна сообщения. Строка с Веер заставляет компьютер подать звуковой сигнал. "End Sub" указывает на окончание процедуры.

Теперь попробуем немного усложнить про­грамму. Пусть она выводит на экран сообщение с надписью «Закончить работу в Word?» и кноп­ками «Ok» и «cancel». Кроме того, пусть про­грамма закрывает Word при нажатии Ok. Sub Hello()

If MsgBox( «Закончить работу в Word», vbOKCancel, «Мое второе сообщение») = vbOK Then Application.Quit End If End Sub

Здесь мы использовали новые "слова" If... Then, vbOK, vbCancel, Applications, Quit.

Поле IF обозначает выполнение одной из двух операций, в зависимости от выполнения указан­ных условий. Например, утверждение "Если по-годя будет хорошей, мы пойдем в пари, d еити

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

Если функция возвратила vbOK, т.е. пользо­ватель выбрал кнопку ОК, мы вызываем метод Quit объекта ApplicationjcaMoro Word'a), то есть можно сказать что Applications.Quit сообща­ет программе о том, что необходимо завер­шить работу с программой.

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