МИНИСТЕРСТВО ВЫСШЕГО И СРЕДНЕГО СПЕЦИАЛЬНОГО ОБРАЗОВАНИЯ
БУХАРСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ ПИЩЕВОЙ И ЛЕГКОЙПРОМЫШЛЕННОСТИ
По производственной практике
Натему:
Сдал: ст. гр. 1-98 МААТ ШлямовД.
Приняла: Убайдулаева Ш.Р.
Бухара – 2000 г.
Basicбыл создан коллективом сотрудников Дартмугского колледжа во главе с Джоном Кемении Томасом Куртом. Этопроизошло в далеком1964 году, задолго допоявления персонального компьютера в его современном виде, в эпоху больших ЭВМ.BASICрасшифровывался как Beginner'sAll-purposeStandardInstructionCode(Все целевой стандартныйкод инструкций для начинающих).
Поначалуязык Бейсик предназначался, прежде всего, для обучения новичков принципампрограммирования. Именно поэтому он с самых ранних пор был самым простым в использовании.
Примечательно, что при наличии множества общецелевыхязыков
программирования, доступных программирующим фанатикам, Бейсик
остается простейшим для изучения и по истечении 20 летпосле его
введения. Но еще лучшеоказывается выполненная на Бейсике работа.
Вопреки притязаниям снобов Сии Паскаля, Бейсик является вовсе не
пустяковым языком, наделенным мощными инструментамипригодными
для того, чтобы браться за специфическое дело, которое люди в
большинстве случаев делают спомощью малых компьютеров, а именно,
за работу с файлами и выводтекстов и графики на дисплей.
Бейсики имашинный язык
Как это ни удивительно, но любой данный компьютер способен
исполнять программы, написанные только на его родном машинном
языке. Существует почти столько же машинных языков,сколько есть
типов компьютеров, но все они представляют собой некоторые
вариации на одну и ту же тему-простыеоперации, выполняемые
молниеностнобыстро над двоичными числами. На персональных компь-
ютерахIBM используется семейство машинного языка 8086, поскольку
их аппаратная конструкциябазируется на этом конкретном семействе
микропроцессоров.
Возможно, хотя и трудно, писать программынепосредственно на
машинном языке.В ранние годы компьютеризации (на заре 1950-х
годов) машинный язык был тем единственным, что сделали люди,
чтобы спасти программистов от цепенящего ознобапрограммирования
в машинных кодах, как некиймост между человеческими существами и
миром машинных языков компьютеров, были созданы высокоуровневые
(т.е. не машинные) языки.
Высокоуровневые языки работаютчерез трансляторные программы,
которые переводят «исходный код» (машинно-читабельный гибрид
английского языка и математических выражений) и вконце концов
вынуждают компьютер исполнять подходящие инструкции на машинном
языке для выполнения заданной работы. Двумя базисными типами
трансляторов являются интерпретаторы, которые сканируют и
исполняют исходный код в режиме единичного шага, и компиляторы,
которые сканируют исходный код, переводя его намашинный язык, а
результат этого сканированияиспользуется затем отдельно.
Интерпретаторы
Исторически Бейсик обычно реализовался как интерпретатор
(знакомым изомером является сам интерпретаторный Бейсик). Одно,
часто упоминаемое преимущество интерпретаторной реализации
состоит в том, что она допускает «непосредственный режим».
Кроме того, интерпретаторы имеют специальные атрибуты,
которые упрощают отладку. Можно, например, прервать обработку
интерпретаторной программы, отобразить содержимоеопределенных
переменных, бегло просмотреть программу, а затем продолжить
исполнение.
Болше всего программистам нравится в интерпретаторах
возможность получения быстрого ответа. Здесь нетнеобходимости в
компилировании, так как интерпретатор всегда готов для
вмешательства в вашу программу. Введите RUN ирезультат вашего
самого последнего измененияоказывается на экране.
Однако интерпретаторныеязыки не без недостатков. Необходимо
например иметь копиюинтерпретатора в памяти все время, тогда как
многие возможности интерпретатора, а следовательно и его
возможности могут не быть необходимыми для исполнения конкретной
программы.
Слабо различимым недостаткоминтерпретаторов является то, что
они имеют тенденцию отбивать охоту к хорошему стилю
программирования.Поскольку комментарии и другие формализуемые
детали занимают значительное место программной памяти, люди
стремяться ими не пользоваться. Дьявол менее яростен, чем
программист, работающий на интерпретаторном Бейсике, пытающийся
получить программу в 120К в памяти емкостью 60К. нохуже всего
то, что интерпретаторытихоходны. Ими затрачивается слишком много
времени на разгодывание того, что делать, вместо того чтобы
заниматься действительноделом.
При исполнении программных операторов, интерпретатордолжен
сначала сканировать каждый оператор с целью прочтения его
содержимого (что этот человек просит меня сделать?), а затем
выполнить запрошенную операцию. Операторы в циклахсканируются
излишне много.
Компиляторы
Компилятор-это транслятор текста на машинный язык, который
считывает исходный текст, оценивает его в соответствии с
синтаксической конструкцией языка и переводит на машинный язык.
¬атем вывод на машинной языке (машинный код), прогоняется как
независимый шаг трансляции. Другими словами, компилятор не
исполняет программы, он их строит. Интерпретаторы невозможно
отделить от программ, которыеими прогоняются, компиляторы делают
свое дело и уходят со сцены.
Фирма Microsoftвпервые взялась за Бейсик в1975 году. Тогда она приняла участие вразработке языка Altair/Microsoft4К Basic. Буквально через несколько месяцев была создана болеемощная его реализация Altar/Microsoft8К Basic. Накопив необходимый опыт, в1976 году Microsoftуже безчьей-либо посторонней помощи воплотила систему ExtendedBasic, затемпоследовали DiskBasic(1977),R-MAXBasic(1978),M-BASIC, BASIC-80(1979)... Вавгусте1981 года родилась MS-DOS1.0.В эту систему фирма Microsoftинтегрировала и свою первую версию языка Бейсик для IBMPC-MS-BASIC. Немного позже появилась усовершенствованная и болееобкатанная реализация языка AdvancedBasic, или BASICA.
В 82-м Microsoftпровозгласила еще более«продвинутое» новшество- GW-BASIC. Версия 2.0 этого продукта, вышедшая годом позже, была внедрена во вторую же версию MS-DOS,появившуюся одновременно с компьютерами IBMPCXT. GW-BASIC2.0являлся более совершенным по сравнению со своими младшимисобратьями. Однако для нас такая система, как GW-BASIC,- еще мезозойская эра. Представьте себе черный текстовой экран, накотором красуется приглашение типа "Ok...". В нижней части этого экрана- справочная строчка, в которой объясняются назначения функциональныхклавиш:- UST(просмотр текста программы сначала. Прокрутить его, как мыэто делаем сейчас в окне VBA, былонельзя!),- RUN(выполнить),- LOAD(загрузить с диска),-SAVE(сохранить на диск)...
Настоящийрасцвет Бейсика начался с развитием оконного интерфейса (в среде DOS, конечно, до Windowsеще пока далеко!). Где-то с середины 80-х все больше ибольше программ оснащалось линейками прокрутки, окошечками, статуснымистрочками, флажками...
В1987 году фирма BorlandInternational, известнаяреализациями языков С,C++, Pascalи, конечно же, своей системой Delphi, выпустила продукт под названием TurboBasic1.0.Это был шаг вперед! Отдельные окнадля ввода и выполнения, окно отладки, окно справочной системы, спускающиесяменю, многочисленные опции- в общем,все, что сейчас мы называем «интегрированная среда». Прорывзаключался еще и в том, что TurboBasicмог компилировать файлы, т.е. позволял создавать автономные файлы программ с расширением ЕХЕ.
Но самымчто ни на есть популярным средством разработки на Бейсике для DOSбыл (и остается сейчас!) Microsoft'OBOowQuickBASIC(вчастности, версия4.5, выпущенная в1988 году), а также его более«продвинутая» разновидность QuickBASICExtendedProfessionalDevelopmentSystem(версии7.0/7.1 1989/1990 годов). Раньше Бейсик былязыком уя любителей: он позволял писать мелкиепростые программки, но не более того. Microsoftжезадумала сделать из Бейсика быстрое средство профессиональной разработки. И ейэто удалось!
Полнаяверсия QBXPDS7.1занимала на диске уже около14 Мбайт (кстати, TurboBasic«тянул» менее чем на1 Мбайт).В ее состав включались две интегрированные среды: собственноQBX, предназначавшаяся для набора текстапрограммы, выполнения, отладки и т. п., и PWB(Programmer'sWorkBench), включавшая намного большиевозможности отлаживания. Кроме того, вPDS был автономный отладчик CodeView, а также масса готовых библиотек-финансовых функций, функций матричной математики,графических шрифтов и т. д. и т. п. СредаQBXпредоставляла обширные возможности настройки: не было на экране элемента, цветкоторого нельзя изменить так, как хочется. В окне ввода текста работалаавтоматическая коррекция ввода, можно было подключить также и«горячую» проверку синтаксиса.
Споявлением Windowsпрограммирование под DOSначалотерять свое значение. В начале 90-х для Бейсик-программистовнаступил настоящий кризис: полнокровных версий языка для Windowsеще не было, и власть захватили всвои руки «писатели» на Паскале и Си. И тогда Microsoftвыпустила первую версию системы VisualBasicдля Windows. Этонововведение произвело настоящую сенсацию: появилось cредство,позволившее разрабатывать полноценные Windows-приложенияв десять-пятнадцать раз быстрее и проще, чем припомощитех же Паскаля и Си. Разработка приложений на VisualBasicв корнеотличается от написания программ при помощи любой из предыдущих реализацииБейсика. VBперевернулвсе с ног на голову. Здесь первым делом создается форма- окно будущего приложения. И уже после этого пишутся процедуры,обрабатывающие события, способные произойти с тем или иным свойствомкакого-либо объекта (элемента) формы.
Во времена WindowsЗ.х быливыпущены вторая и третья версииVB, а в эпохуWindows95 -четвертая и пятая. 32-разрядный VisualBasic5.0,в котором реализована поддержка Active-X,Internet-технологий и прочих несусветныхвещей, распространяется в составе MSVisualStudio-мощнейшего инструментальногокомплекса, вобравшего в себя последние реализации MicrosoftC++и J++ (вариант языка Java). Но БиллГейтс не мог бы спать спокойно и Microsoftбыла бы неMicrosoft, если быне устроила очередную западню конкурентам, пытающимся продвинуть своиинструментальные средства в Windows. Самазападня заключалась в том, что Microsoftзадумаласделать VisualBasicфактическим стандартом языка для управления всеми крупномасштабными Windows-приложениями!Однако реализация такой идеи оказалась не так проста. Первый вариантVBA 1.0 появился в составе MSOffice4.0,но лишь в программах Excel4.0и Project6.0.В других же приложениях- Word6.0и Access2.0 -были собственные варианты Basic. Более того,VBA 1.0довольно сильно отличался от используемой тогда универсальной системы VisualBasic3.0.Реальное сближение между VisualBasicиVBA произошло осенью1995 г. после выхода VisualBasic4.0и Office95.
Bсостав последнего VBA2.0был уже включен Access95,однако Word95 тогда по-прежнему имел собственный WordBasic, а каждое приложение пакета-собственную среду программирования. А в Office97 VBAстал неотъемлемым самостоятельнымкомпонентом, единым для всех приложений. В Office97единый языковый механизм VBA используют все основные приложения: Word, Excel, PowerPointи Access. Отдельным компонентомVBAявляется интегрированная среда разработчика VisualBasicEditor(VBE), который фактически является специализированным вариантомVB 5.0 для работы в комплексе с приложениями.
Фирмам,которые поначалу с усмешкой смотрели на все эти проекты, теперь ничего неостается делать, как принимать условия игры. MicrosoftпродвигаетVBA вкачестве стандарта отрасли для управления программируемыми приложениями,объявив о возможности его лицензирования.
НовейшаяверсияVBA уже в скором времени будетвстроена во многие "немайкрософ-товские"программы, и сегодня уже сотни программных продуктов третьих фирм имеют логотип"FeaturingMicrosoftVisualBasicTechnology". Этозаставляет задуматься над тем, что же такое BASIC-«стандартный код дляначинающих» или «основной язык для основной среды»...
С ЧЕГОНАЧАТЬ?
Все книгипо программированию (как хорошие так и не очень) начинаются с написаниятрадиционного вывода приветствия.Мы не будеморигинальными и начнем с этого же.
Проще всегосоздать команды Сервис->Макрос->Начать запись. Все действияпользователя до нажатия кнопки Стоп записываются в макрос и воспроизводятся призапуске этого макроса. Такой способ не позволяет организовывать циклы ивыдавать сообщения пользователю, поэтому для написания полноценной программынеобходимо отредактировать записанный макрос. Для этого в Word6.0и7.0 необходимо выбрать команду Сервис->Макрос-> Изменить (Сервис->Макрос->Ре-дакторVisualBasicв Word97).
Основнымэлементом экрана теперь является окно текстового редактора, в котором вы можетевводить и редактировать программы, написанные на языкеVBA. Созданная вами программа будет сохранена вместе с рабочим файлом, так что любойVBA-код, размещенный здесь, будет всегда сопровождать базовый файл.
Команды,расположенные между строчками "SubHello" и "EndSub", представляют собой действия, выполняемыемакрокомандой. Мы не будем сейчас их подробно рассматривать, а скажем лишь,что они отражают именно те действия, которые вы производили при записи макрокоманды.Важно понять, что программа работает в соответствии с инструкциями, которые выполняютсяодна за другой, сверху вниз. Первая инструкция выполняется в первую очередь, ив большинстве случаев работа программы приостанавливается до момента окончаниявыполнения действия, предписанного текущей инструкцией. Затем выполняетсяследующая инструкция, и так далее до конца программы, который отмечен командой"EndSub" (конец программы).
VBA — этосокращениедляVisualBasic for Application. Макрорекодерпишетпрограммы вместо вас. Шаги, которые вы выполняете, |ранслируютсяв программный код и записываются в специальный лист. Совершенно такой жемакрос можно создать, если перейти в этот лист и набрать код вручную. Мы ужеговорили о том, что не все операции можно ввести с помощью макрорекодера,не говоря уж о том, что не все макросы, созданные с помощью макрорекодера,красивы и эффективны.
Например,простейшая операция, которую невозможно ввести с помощью макрорекодера,- это подача звукового сигнала «Веер».Создадим для примера небольшой макрос, который совершенно невозможно было бынаписать, используя макрорекодер.
Sub Hellof)
MsgBox«Hello Word», vblnformation, «Моепервоесообщение»
Веер
EndSub
Если теперьвы проиграете этот макрос, то машина выдаст вам окно с приветствием, а принажатии "ОК«раздастсязвуко^ вой сигнал, который в ControlPanel-Soundsобозначен как Defualt.
Слово „Sub“в первой строке указывает на то, что эта процедура- тип программы на языке VBA. Hello — это имямакроса. Круглые скобки необходимы каждой процедуре. Мы еще будем говоритьподробно о функции скобок. Наиболее значимыми частями этого макроса являютсявторая и третья строчки. Вторая строчка вызывает окно с надписью „HelloWord“. Первый параметр функцииMsgBox задает текст сообщения, второй- тип сообщения, т.е. значок и кнопки, а третий задает заголовококна сообщения. Строка с Веерзаставляет компьютер подать звуковой сигнал. „EndSub“ указываетна окончание процедуры.
Теперьпопробуем немного усложнить программу. Пусть она выводит на экран сообщение снадписью «Закончить работу в Word?» и кнопками«Ok» и «cancel». Кроме того, пусть программа закрывает Wordпри нажатии Ok. Sub Hello()
If MsgBox( «ЗакончитьработувWord», vbOKCancel, «Моевтороесообщение»)= vbOK Then Application.Quit End IfEnd Sub
Здесь мыиспользовали новые „слова“ If… Then, vbOK,vbCancel, Applications, Quit.
Поле IFобозначает выполнение одной из двух операций, взависимости от выполнения указанных условий. Например, утверждение «Если по-годя будет хорошей, мы пойдем в пари, dеити
нет- пойдем в кино» определяет условие,которое должно быть соблюдено IF(хорошаяпогода), чтобы произошло определенное событие THEN(поход в парк). Если условие не соблюдено, происходитальтернативное событие (поход в кино). Используя возвращенное функцией MsgBox значение для того, чтобы определить, накакую кнопку нажал пользователь.
Еслифункция возвратилаvbOK, т.е. пользовательвыбрал кнопку ОК, мы вызываем метод Quitобъекта ApplicationjcaMoroWord'a), то есть можно сказать что Applications.Quitсообщаетпрограмме о том, что необходимо завершить работу с программой.
Кроме того,создавая макросы, вы, наверное, заметили, что некоторые слова в макросеокрашены или могут быть окрашены. Об этих и других особенностях поговорим вследующий раз.