Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке QBasic (Обзор языка программирования Qbasic)

Содержание:

Введение

Язык BASIC (Beginner's All-purpose Instruction Code), который послужил основой для языка Qbasic, разработан Джоном Кимини и Томасом Куртцем в Дартмутском колледже, США, в середине 1960 г.

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

QBasic является свободным языком программирования известен прежде всего за то, что свободно распространяется вместе с операционными системами MS-DOS и Windows. Хотя являясь простым по сегодняшним меркам, QBasic все еще может быть использован для создания различных полезных программ. Он также является отличным образовательным инструментом для обучения программированию. Особым достоинством QBASIC следует считать возможность работы в режиме интерпретации, который резко упрощает процесс отладки программ: исполнение почти каждой команды можно проверить сразу после написания. Поэтому актуальными явлются исследования, связанные с изучением основ прогрммирования на языке Qbasic.

Структура работы. Работа изложена на 29 страницах и состоит из введения, трех глав и заключения. Список литературы содержит 12 наименований. Работа иллюстрирована 29 рисунками и содержит одну таблицу.

В первой главе выполнена обзор языка программирования Qbasiс, а также описана история его возникновения и развития. Во второй главе описан синтаксис языка и приведены примеры программ с использованием различных управляющих конструкций. В третьей главе рассатривается джальнейшее развитие языка программированя на примере языка QB64.

1 Обзор языка программирования Qbasic

    1. Общие положения

QuickBasic это язык программирования, разработанный компанией Microsoft для использования в операционной системе MS-DOS. Он является преемником более ранних форм BASIC (Beginners All-Purpose Symbolic Instruction Code), простого языка программирования для начинающих программистов [1]. QB является идеальным языком программирования для начинающих, благодаря его интуитивным командам, простой структуре и гибкости. Это хорошо документированый язык, для которого написаны сотни учебников и примеров программ доступных для загрузки в Интернете.

В 1985 году Microsoft выпустила первую версию QuickBasic, более быструю и более многофункциональную чем BASIC. Она заменила GW-BASIC, который был действующей версией BASIC для MS-DOS в течение нескольких лет [2] В конце 1980-х годов, Microsoft опубликовала несколько обновлений QuickBasic вплоть до конца 1988 года, когда был выпущен QuickBasic 4.5. Это, по мнению многих пограммистов, была последняя истинная версия QuickBasic. Microsoft продолжила развитие языка QuickBasic через систему профессионального развития (PDS), последним релизом которой была версия 7.1. PDS иногда называемая QuickBASIC Extended [3]. Версия QuickBasic 4.5 является основным выбором большинства программистов QB, потому что она имеет встроенный компилятор и возможность загрузки внешних QuickLibrary (.qlb) расширений.

QBASIC это облегченная версия QuickBasic, которую Microsoft выпустила в 1991 году, и которая была бесплатно включена в MS-DOS 5 и более поздние версии. Он также поставлялся в коробочной версии операционных система Windows 95 и Windows 98 [4-5].

В то время как QBASIC является условно бесплатным програмнным обеспечением, QuickBasic является полностью коммерческим продуктом. По сравнению с QuickBasic, QBASIC ограничен, так как не хватает нескольких функций. QBASIC может обрабатывать только программы ограниченного размера, ему не хватает поддержки для отдельных модулей QuickLibrary, отличных от стандартной QB.QLB [6].

1.2 Особенности Qbasic

QBasic является бесплатным программным продуктом и может быть скаачан с сайта www.qbasic.net (рис.1). Его также легко найти и скачать на многих других веб-сайтов. Версия 1.1 является последней версией, которую выпустила Microsoft.

Рисунок 1. – Главная страница сайта qbasic.net

Для установки Qbasic необходимо просто распаковать содержимое архива (2 файлов) в папку по вашему выбору и запустите файл qbasic.exe.

QBasic является интерпретируемым языком. Он имеет с компилятора, который преобразует код в исполняемый EXE файл. Тем не менее, код, написанный на этом языке является исполняемым.

QBasic поставляется с очень простым текстовым редактором, который с натяжкой можно назвать его IDE (рис.2). Встроенного редактора обычно достаточно для простых программ, но любой текстовый редактор может быть использован для редактирования QBasic программ (рис.3).

Рисунок 2 – Встроенная IDE Qbasic

Рисунок 3. – Редактор ConTEXT с программой на языке QBasic

Программа QBasic это просто текстовый файл, в котором команды описывают, что транслятор QBasic должен выполнить при запуске программы. Код для QBasic является полноправной компьютерной программой, но некоторые программисты называют такие программы «скриптами», чтобы отразить тот факт, что программы QBasic интерпретируются во время выполнения, а не выполняется из скомпилированной версии [7].

Имя файла может быть каким угодно. Никаких конкретных расширение не требуется, хотя ".bas" является стандартным расширением, и назначается по умолчанию, если расширение не указано.

Транслятором QBasic (программой, которая выполняет сценарий QBasic) является "qbasic.exe". Программы могут быть введены непосредственно в редакторе или загружены из файла. QBasic поддерживает только файлы в формате 8.3. Он не признает длинных имен файлов современной Windows. Чтобы загрузить файл программы QBasic в редакторе QBasic, просто выберите команду Файл-Открыть и укахите нужный файл (рис.4).

Рисунок 4. – Выбор файла в редакторе

Если в имене файла не предусмотрено расширение, то по умолчанию оно принмается "*.bas".

Чтобы запустить загруженную программу, выберите команду Запуск-Запуск в редакторе Qbasic или нажмите Shift-F5 (рис.5).

Рисунок 5. – Запуск программы в окне редактора QBasi

Обратите внимание на то, что при выполнении программы, редактор QBasic временно исчезает, и вывод из программы находится в окне MS-DOS, с сообщением "Нажмите любую клавишу для продолжения", котрое отображается в нижней части экрана (рис.6). После того, как нажата клавиша появляется редактор QBasic.

Рисунок 6. – Окно вывода результатов работы программы

Как уже отмечалось, QBasic обеспечивает отличное, легко понятное введение в программирование. Он обеспечивает как образовательную так и потребительскую ценность. Тем не менее, начинающие программисты могли бы начать знакомство с программированием с GW-BASIC, который похож на QBasic, но является более простым.

1.3 История

Термин BASIC (Beginner's All-Purpose Symbolic Instruction Code) пришел из Дартмута, где два профессора работали с несколькими студентами, чтобы создать легко изучаемый язык программирования. История гласит, что студенты испытывали трудности с изучением языка FORTRAN поэтому преподаватели решили, что создание языка с нуля будет отличным инструментом для обучения студентов. Результат был достигнут и язык программирования Basic стал в конечном счете общественным достоянием.

Используя язык программирования BASIC в качестве шаблона, Microsoft создал BASICA (1981) специально для ПК IBM. Вскоре после этого был создан язык программирования GW-BASIC.

В конечном итоге Microsoft создал и запустил в продажу более совершенный язык программирования QuickBasic (1985), которые, в частности позволял выполнять компиляцию исходного кода BASIC в исполняемый (EXE) файл в командной строке. Последняя версия QuickBasic 4.5 была выпущена в 1988.

Microsoft также создала QBasic (1991), который являтся подмножеством языка программирования QuickBasic, и включил его в каждый выпуск MS-DOS, начиная с MS-DOS 5.0 и все версии Windows, но не включая Windows XP. Окончательный версией QBasic была версия 1.1 (1993). QBasic не включает в себя компилятор QBasic,.

Все эти основные версии (GW-BASIC, QuickBasic, QBasic) работают на Windows, за исключением Vista. Все эи версии работают в окне MS-DOS. Первой весией с графиечким интерфейсом был Visual Basic 1.0 (1992). Он позволял создавать windows-программы с использованием BASIC диалекта Microsoft. Последняя версия Basic 6.0 (1998) была заменена Visual Basic .NET (2002).

Для справки, вот информация о последних версиях исполняемых файлов GW-BASIC, QuickBasic, PDS и QBasic.

Таблица 1. – Информация о версиях исполняемых файлов

Язык

Исполняемые файлы

GW-BASIC

gwbasic.exe v3.23, 80,608 байт, 5 октября 1988 2:00 утра

QuickBasic

qb.exe 4.5, 278,804 байт, 17 апреля 1993 года 3:05 вечера

QBasic

qbasic.exe v1.1, 194,309 байт, 31 мая 1994 года 6:22 утра

На рисунке 7 представлена хронология развития языка программирования BASIC [8].

Рисунок 7. – Хронология развития Basic

2 Язык Quick Basic. Среда разработки QBasic

2.1 Язык Quick Basic. Работа с переменными.

Переменная - это область в памяти компьютера, где хранится некоторое значение. Каждая переменная имеет имя, значение и тип.

Имя переменной обозначается английской буквой, после которой может быть цифра, причем первой стоит буква, например: x, y, z, A1, B2. Имя переменной служит для обозначения некоторой величины в программе, которая при выполнении программы может иметь какое-либо значение, но может быть и не определена. Пример задания часто употребляемой константы: pi=3.14159.

Типы переменных: целая, вещественная, логическая, символьная, строковая и др. Если в переменной хранится число, то это числовая переменная, если в переменной хранится слово или фраза, то это строковая (символьная) переменная. В QBasic строковая переменная обозначается a$, b$ (в конце имени стоит знак доллара $). Содержимое хранится в переменной, до тех пор, пока оно не будет специально изменено.

Операция передачи новых данных в переменную называется присваиванием и обозначается в QBasic знаком "=", например, x=10.

2.2 Язык QuickBasic. Оператор PRINT.

Словарь qbasic содержит около 200 ключевых слов,каждое из которых обозначает выполнение определенного действия. Многие ключевые слова вместе с дополнительными параметрами формируют операторы, из которых и состоит текст программы. Вот Print и есть пример такого слова. При выполнение данного оператора на экран выводиться текст, заключенный в двойные кавычки.

Но у этого оператора есть еще две особенности. Вот первая из них: Этот оператор может выполнять арифметические действия. Рассмотрим на примере:

Print 2+3

После выполнения этой программы на экране высветиться 5 , а не 2+3, так что можно использовать qbasic вместо калькулятора .

Вторая особенность заключается в том, что если вы поставите знак вопроса(?) И после этого нажмете на ENTER то он вопросительный знак превратиться в Print.

Теперь перейдем к тому как закончить программу. Оператор END- еще один пример ключевого слова - прекращает выполнение программы. В случае его отсутствия Qbasic считает, что программа заканчивается после последней строки, но END весьма полезен при необходимости прервать выполнеие программы. Оператор END может и не быть последним оператором программы. Текст может продолжаться и после данной команды, но выполнение ее будет прервано сразу при встрече END. Рассмотрим еще один пример:

cls

Print "Это моя программа"

Print "я создал ее сам"

End

Нажатием клавиш Shift+F5 для запуска программы на выполнение. И тогда на экране мы увидим:

Это моя программа

Я создал ее сам

Теперь нажмем любую клавишу чтбы вернуться в режим редактирования текста. И изменим программу:

Cls

Print "Это моя программа"

End

Print "Я создал ее сам"

End

При выполнение нового варианта программы результат будет иным. Вы можете запускать программу любое количество раз, но второй оператор PRINT все равно работать не будет. Оператор END прерывает выполнение программы и у нас будет выводиться только:

Это моя программа

Qbasic имеет три оператора, которые прерывают выполнение программы-- END, Stop и System. Когда Qbasic встречает команды End и System, он закрывает вусе файлы и прекращает выполнение программы. Команда Stop отличается тем, что оставляет текущие файлы открытыми, временно приостанавливает выполнение и возвращает на экран текст программы. При следующем запуске выполнение программы начнется с оператора, следующего за оператором Stop.Но лучше всего использовать оператор End .

2.3 Ввод данных в программу. Оператор Input.

Для ввода данных в программу можно использовать несколько способов. Во-первых , эта проблема решается с помощью оператора присваивания. Вот пример программы с оператором присваивания:

Rem программа суммирования двух чисел

Cls

Number1=3

Number2=7

summa=number1+number2

Print "number1=";number1

Print "number2=";number2

Print"summa=";summa

end

После запуска этой программы мы увидим на экране это:

Number1=3

number2=7

Summa=10

Чтобы вычислить сууму другой пары чисел, мы должны будем вернуться в окно редактора и изменить программу. Решение возможное, но не самое лучшее. Как раз для этого случая в Qbasic вы можете присвоить переменной значение непосредственно с клавиатуры во время выполнения программы. Простейшая форма оператора, дающего вам возможность это сделать:

INPUT number,

где number-имя переменной, для которой требуется ввод значения

Команда INPUT NUMBER является уже достаточой командой, при встрече с которой программы выполняет следующие действия:

  1. После запуска программы на экране появиться знак вопроса.
  2. Программа приостанавливает работу и ждет, когда вы наберете какие-либо значение на клавиатуре. Нажатие клавиши ввода (то бишь ENTER) сообщает программе, что ввод окончен.
  3. Введенное значение присваивается переменной и когда мы запускаем программу у нас просто высвечивался значок вопроса (чтобы мы ввели переменную).

2.4 Управляющие конструкции QBasic.

1. Оператор безусловного перехода GOTO N, где N-метка. В качестве N можно взять любое число, не обязательно совпадающее с номером строки, так как в QBasic 4.5 строки можно не нумеровать. Но двух одинаковых меток в одной программе не должно быть. Исполнение программы будет продолжено с той её части, которая начинается с указанной метки.

Пример:

.......

GOTO 10

.......

10 PRINT "Текст"

.......

2. Условный оператор IF...THEN...ELSE (Если...Тогда...Иначе):

IF <условие> THEN <список операторов> ELSE <список операторов>

Если заданное условие истинно, выполняется список операторов, стоящий после THEN, в противном случае выполняется список операторов, стоящий после ELSE.

Слово ELSE может и отсутствовать. Тогда происходит переход к строке, следующей за оператором IF...THEN.

Условия представляют собой логические соотношения: равенства или неравенства = равно, <> неравно, > больше, < меньше, >= больше или равно, <= меньше или равно.

При использовании сложных условий (объединении двух и более условий) применяют слова AND (И) и OR (ИЛИ):

Условие1 AND (или OR) Условие2...

Условный оператор позволяет реализовать алгоритм с ветвлением (рис.8-11).

Рисунок 8 – Пример программы с ветвлением

Рисунок 9 – Результат работы программы

Рисунок 10 – Пример вычисления функции с условием

Рисунок 11 – Результат работы программы

Применяется также частный случай условного оператора - оператор условного перехода: IF <условие> GOTO N ELSE <список операторов> Число N - метка. Если условие выполняется, то происходит переход по метке N, а иначе выполняется список операторов, стоящих после ELSE. Слово ELSE может и отсутствовать. Тогда происходит переход к строке, следующей за оператором IF...GOTO (рис.12-13).

Рисунок 12 – Пример программы безусловного перехода

Рисунок 13 – Результат работы программы

3. Оператор цикла FOR...TO...NEXT... позволяет реализовать циклический алгоритм, когда часть программы может быть выполнена много раз подряд. FOR...TO... - начало цикла, NEXT... - конец цикла.

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

FOR X=A TO B STEP H

...................

NEXT X

Здесь X - переменная, A - начальное значение переменной, B - конечное значение переменной, H - шаг, с которым меняется переменная. Если шаг STEP H отсутствует, то по умолчанию шаг H=1. При этом переменная X называется счётчиком цикла. Повторение участка программы с шагом H происходит до тех пор, пока X<0, но тогда A>B (рис.14-18).

Рисунок 14 – Пример программы с циклом

Рисунок 15 – Резльтат работы программы

Рисунок 16 - Программа вычисления суммы членов ряда

Рисунок 17 – Резльтат работы программы

Рисунок 18 – Программа рисования 15 разноцветных концентрических окружностей.

Одновременное использование циклического и условного операторов. Вычисление функций, имеющих ограничения в области определения (рис.19-22). Примечание: Оператор IF...THEN...ELSE в QBasic должен быть записан в одну строку.

Рисунок 19 – Программа вычисления функции y=1/(x^2-5*x-6)

Рисунок 20 – Резльтат работы программы

Рисунок 21 – Программа вычисления функции y=1/SQR(x^2-3*x+2)

Рисунок 22 – Резльтат работы программы

2.5 Некоторые полезные команды QBasic.

Оператор LOCATE a, b - указывает позицию экрана (a-строка, b-столбец), начиная с которой будет печататься текст или число. Обычно используется перед оператором PRINT. Пример: LOCATE 4, 10: PRINT "Здравствуй, мир!"

Оператор SWAP X1, X2 - заставляет переменные X1 и X2 обменяться своими значениями. Пример:

X = 3

Y = 5

SWAP X, Y

Директива FILES выдает список подкаталогов и файлов в текущем каталоге. Кроме того, выдается свободная память на жестком диске.

Директива SHELL осуществляет сеанс связи с MS-DOS. Возвращение обратно из DOS в QBasic - команда EXIT.

Кроме того, директива SHELL "name" позволяет запускать программу name.exe или name.com, указанную в кавычках. Эта программа должна находиться в текущем каталоге, там же, где и *.bas файл. Расширение exe или com можно не указывать.

3 Будущее языка QBasic

3.1 Qb64

Qb64 (первоначально QB32) [9] является самодостаточным основным компилятор для Microsoft Windows, Linux и Mac OS X, разработаным, для того чтобы быть совместимым с Microsoft QBasic и QuickBASIC. Qb64 (рис.23) является C ++ подобным языком, который интегрирован с C ++ компилятор, чтобы обеспечить получение C ++ кода GCC оптимизации [10].

Рисунок 23 – Эмблема Qb64

Qb64 реализует большинство положений QBasic, и может выполнять множество программ, в том числе QBasic Microsoft, игры Gorillas и Nibbles [11] (рис. 24-25). Кроме того, Qb64 был разработан, чтобы реализовывать IDE (рис.26), которая напоминает QBasic IDE. Qb64 также расширяет язык программирования QBasic, включая 64-битные типы данных, а также лучший звук и поддержку графики. Он также может эмулировать некоторые DOS/x86 особенности, такие как доступ через прерыывание 33H к мыши и таймерам.

Рисунок 24 – Игра Gorillas

Рисунок 25 – Игра Nibbles

Рисунок 26 – IDE Qb64

Qb64 был изначально скомпилирован с QuickBASIC 4.5. После значительного развития, разработчик языка компания Galleon, стала испытывать затруднения, связанные с ограничениями памяти QuickBASIC и перешла на Microsoft Basic PDS 7.1, который решал эти проблемы в течение короткого времени. После версии 0.63, Qb64 был в состоянии собрать себя так, что ограничения памяти больше не возникали.

Синтаксис Qb64 разработан так, чтобы быть полностью обратно совместимым с QuickBASIC. Номера строк не требуется, и окончание строки заканчивается двоеточием (:).

На рис. 27 представлен простой пример программы «Hello, World».

Рисунок 27 – Пример программы «Hello, World».

Пример эмуляции памяти VGA представлен на рис.28:

Рисунок 28 – Пример программы эмуляции памяти VGA.

Пример того, как Qb64 позволяет работать с изображением и аудио файлами представлен на рис.29.

Рисунок 29 – Пример программы для работы с изображением и аудио файлами

Расширенные команды Qb64 начинаются с подчеркивания для того, чтобы избежать конфликтов с любыми именами, которые могут быть использованы в программе QuickBASIC. Qb64 расширяет язык QuickBASIC несколькими способами. Он добавляет новые типы данных, включая _BIT, _BYTE, _INTEGER64 и _FLOAT а также unsigned типы данных. Новые типы данных имеют суффиксы только для традиционных базовых типов данных. Qb64 также включает в себя аудио библиотеку, которая позволяет проигрывать самые распространенные аудио форматы, включая MP3, OggVorbis, и MIDI-файлы, а также библиотеки, которые позволяют использовать более высокие графические разрешения, больше чем 640 × 480, которое предлагается в QuickBASIC [12], использовать разные шрифты, и изображения в BMP, PNG и JPEG формате. Qb64 также позволяет использовать 32-битный цвет, в отличие от ограниченного 256 (или 16-битного). Программист также может не указывать, какие библиотеки программирования подключать так как Qb64 делает это автоматически. Тем не менее, работа по расширению набора библиотек постоянно ведется. На данный момент программист имеет возможность подключить новую библиотеку самостоятельно через использование директивы $INCLUDE как и QuickBASIC.

Работа над версией 0,954 была прекращена.. Текущие (и будущие) версии Qb64 интегрируют OpenGL библиотеки для работы с графикой и текстом. Обе версии по-прежнему доступны.

Qb64 также можете использовать DLL библиотеки для Windows, C ++ и SDL функций при помощи DECLARE LIBRARY блока. Пользователи также могут получить доступ к заголовочным файлам С и файлам реализации.

Список литературы

  1. Мельникова О. И., Бонюшкина А. Ю. Начала программирования на языке QBasic: Учебное пособие. – М.: ЭКОМ, 2002. – 232 с.
  2. Сафронов И.К. Бейсик в задачах и примерах, 2-е издание. – СПб.: БХВ-Петербург, 2006. – 301 с.
  3. Бобровский С. Программирование на языке QBasic для школьников и студентов. – М.: Инфорком-Пресс, 2000. – 198 с.
  4. Каспер Эрни. Освоим QBasic играючи! – М.: Радио и связь, 1999. – 198 с.
  5. Зельднер Г.А. Программируем на языке QBasic 4.5, 2-е издание. – М.: ABF, 1996. – 202 с.
  6. Различия между GW-Basic и Qbasic [Электронный ресурс] // https://support.microsoft.com/ru-ru/kb/73084 [Режим доступа]
  7. Gary Beens. Qbasic. Information Center. [Электронный ресурс] // http://www.garybeene.com/qbasic/qb-intro.htm [Режим доступа]
  8. Timeline: BASIC to Visual Basic .NET. [Электронный ресурс] // http://addressof.com/blog/pages/VBTimeline.aspx [Режим доступа]
  9. Stephane Richard. "In The News” [Электронный ресурс] // http://web.archive.org/web/20091221084037/http://www.basicprogramming.org/pcopy/issue50/#inthenews [Режим доступа]
  10. E.K.Virtanen. "Interview With Galleon" [Электронный ресурс] // http://web.archive.org/web/20080821183950/http://www.basicprogramming.org/pcopy/issue70/#galleoninterview [Режим доступа]
  11. "QB Advisor: Screen Modes 11, 12, and 13" [Электронный ресурс] // http://www.qbasicnews.com/qboho/qckadvr.m111213.shtml [Режим доступа]
  12. "QB64 Screenshots - QB64/QBASIC Gorillas in QB64" [Электронный ресурс] http://www.qb64.net/gallery/main.php?g2_itemId=15 [Режим доступа]