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

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

Содержание:

Введение

Бейсик (Basic) – диалоговый учебный язык программирования для персональных компьютеров. На современных компьютерах используется следующие версии Basic: GWBasic, QBasic 4.5, Turbo Basic для DOS, Visual Basic 3.0-6.0 для Windows.

QBasic входит в состав операционной системы MS-DOS 6.0-6.22. Есть русифицированная версия QBasic.

QBasic – диалект языка программирования Бейсик (BASIC), разработанный компанией Microsoft, а также среда разработки, позволяющая писать, запускать и отлаживать программы на этом языке.

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

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

Цель работы – изучить основы программирования на языке QBasic.

Задачи:

  • изучить историю языка программирования;
  • узнать особенности языка программирования;
  • изучить основные элементы.

История языка

BASIC появился в 1964 г. Его создатели - Джон Кемени и Томас Курц, сотрудники Дартмутского колледжа. Цель языка - обучение программированию на маломощных компьютерах, каковыми в ту пору являлись установленные в учебных заведениях вычислительные машины. Отличительной особенностью BASIC стало стремление разработчиков сделать этот язык не закрытым проектом, а общественным достоянием. Они руководствовались следующими принципами:

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

Язык был основан частично на Фортран II и частично на Алгол-60, с добавлениями, делающими его удобным для работы в режиме разделения времени, обработки текста и матричной арифметики. Первоначально Бейсик был реализован на GE-265 с поддержкой множества терминалов. Вопреки распространённому убеждению, в момент своего появления это был компилируемый язык.

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

В 1977 г. Microsoft выпустила Altair BASIC и превратила этот язык в средство коммерческого давления, добившись встраивания его в чипы ПЗУ IBM PC. Это поспособствовало резкому росту популярности языка. В те годы, на волне всплеска потребительского спроса на первые персональные компьютеры, это было объяснимо. Возможности ранних ПК были скромны, программного обеспечения для них было мало, перенос и установка ПО были трудоемки (для хранения программ использовались бытовые магнитофоны), поэтому корпорации, выпускавшие ПК, охотно встраивали BASIC в свои машины.

Со второй половины 1980-х гг. персональные компьютеры становятся сложнее и мощнее. BASIC уже, во-первых, не подходит для полноценного управления такими устройствами, во-вторых, появляется рынок готового ПО, и необходимость в написании компьютерных программ неспециалистами отпадает.

В начале 1990-х гг. Microsoft выпускает на рынок язык Visual Basic, рассчитанный, опять-таки, на то, чтобы неспециалисты могли с легкостью писать небольшие программы, повышающие эффективность приложений пакета Microsoft Office (т.н. макросы для Word, Excel). На этом языке можно было создавать и полноценные самостоятельные приложения, поэтому он получил название Visual Basic for Applications (VBA) и поддерживается до сих пор. В 1990-е гг. существовала также разновидность Visual Basic Script, которой Microsoft намеревалась вытеснить JavaScript на веб-страницах.

В настоящее время Basic – это не один язык, а целое семейство языков, отличающихся временем создания, парадигмами программирования и синтаксисом, зачастую до полной потери совместимости программ. Ранние версии не поддерживали даже структурное программирование; со временем структурное и процедурное программирование стали общепринятыми парадигмами, и появились версии, поддерживающие их. Ряд современных компиляторов во главе с Visual Basic и VB.NET реализуют объектно-ориентированное и событийное программирование.

Особенности языка

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

Недостатком BASIC является и то, что в программах на этом языке большая роль отводится оператору GOTO ("перейти к..."), с помощью которого осуществляются ветвления. GOTO ссылается на номера строк, а они, по мере написания программы, могут изменяться. Несмотря на все ухищрения, с помощью которых программисты пытались решить эту проблему, использование GOTO затрудняет читаемость, превращает листинг в "спагетти-код", разобраться в котором со временем становится трудно даже автору программы. Интенсивное использование GOTO было связано с отсутствием в ранних версиях BASIC возможности использовать собственные подпрограммы и функции. Со временем в большинстве реализаций этот недостаток исправили.

BASIC стал одним из первых языков, создатели которого поняли, что компьютерные программы имеют дело не только с числами, но и с текстом. Поэтому его сильной стороной стало появление процедур обработки строк (LEFT, MID, RIGHT). Что касается чисел, то в языке использовался единственный их тип - числа с плавающей точкой. Поддерживаются также массивы и матрицы (двумерные массивы).

Варианты BASIC существуют для множества платформ. Под свободной лицензией распространяется, например, кроссплатформенный Bywater BASIC (bwBASIC). Он предназначен для работы в консоли, т.е. без оконного интерфейса.

Еще одна бесплатная версия BASIC - Phoenix Object Basic. Он также не предназначен для работы с графическим интерфейсом, но для других целей хорошо проявляет себя и на Windows, и в Linux.

Другие реализации:

  • Microsoft Quick BASIC;
  • QBASIC: PowerBASIC;
  • True BASIC;
  • REALbasic (для Apple Macintosh);
  • PureBasic;
  • FreeBASIC;
  • SmallBASIC и др.

Как и QuickBasic, QBasic – язык структурного программирования, поддерживающий подпрограммы и условные циклы. Нумерация строк программы упразднена и поддерживается только для совместимости; вместо нее введены переходы при помощи меток. QBasic имел ограниченную поддержку определяемых типов пользователя (структур) и нескольких простых типов.

QBasic предназначался для замены GW-BASIC. QBasic 1.0 включался в MS-DOS 5.0 и выше, Windows 95, Windows NT 3.x и Windows NT 4.0. Компания IBM перекомпилировала QBasic и включила в PCDOS 5.x, позже в OS/2 2.0 также была введена поддержка QBasic. QBasic 1.1 поставлялся с MS-DOS 6.x, и без изменений в Windows 95, Windows 98 Windows Me. Начиная с Windows 2000, компания Microsoft перестала включать QBasic в свои операционные системы.

QBasic был основан на ранней версии компилятора QuickBASIC 4.50, но не содержал ни компилятора, ни компоновщика. До MS-DOS 7 редактор MS-DOS требовал наличие QBasic. Программа "edit.com" просто запускала QBasic в режиме редактора.

В течение долгого времени QBasic обеспечивал современную интегрированную среду разработки, включающую отладчик с рядом особенностей (оперативная оценка выражений, модификация кода и т.д.). QBasic может выполняться почти под всеми версиями DOS и Windows, а при использовании эмулятора DOSBox может выполняться в ОС Linux, FreeBSD.

Microsoft QuickBASIC (сокращение QBasic некорректно, это совершенно другая реализация) – компилятор и интегрированная среда разработки для языка BASIC, который разрабатывался корпорацией Microsoft. QuickBasic создавался ориентированным на DOS, однако недолгое время существовала версия для Mac OS. QuickBASIC основан на GW-BASIC, но включает некоторые улучшения и расширения: добавлены пользовательские типы данных, улучшены структуры программирования, усовершенствована работа с графикой и работа с диском. Microsoft распространяла QuickBASIC как первую профессиональную систему разработки программ на BASIC.

QuickBASIC 1.0 была выпущена 18 августа 1985 и распространялась на одном пятидюймовом диске. С версии QuickBASIC 2.0 была включена среда разработки, и пользователи могли редактировать программу непосредственно в текстовом редакторе.

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

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

QuickBASIC 4.5 – последняя версия, выпущенная в 1988 году, однако разработка профессиональной системы разработки (PDS) продолжалась до появления последней версии 7.1 в октябре 1990. Версия IDE BASIC PDS 7.x была названа QuickBASIC Extended (QBX) и исполнялась только под DOS. Преемником QuickBASIC и Basic PDS стал Visual Basic для MS-DOS 1.0. Более поздние версии Visual Basic не включали версии для DOS, так как Microsoft ориентировалась на приложениях для Windows.

Подмножество QuickBASIC 4.5 было названо QBasic. QBasic включался в поставку MS-DOS 5 и в более поздних версиях, который заменил GW-BASIC. QBasic по сравнению с QuickBASIC имел ряд ограничений: включал только интерпретатор, существовало ограничение в его функциональности, создание программ ограничивалось определенным размером и т.д. Поскольку он не содержал компилятора, то не было возможности создавать исполняемые файлы, но программы, написанные на QBasic, могли компилироваться при помощи QuickBASIC 4.5, BASIC PDS 7.x, VBDOS 1.0.

Для ОС Macintosh QuickBASIC 1.0 был выпущен в 1988.Он работал только на System 6 и System 7 и требовал наличие ОЗУ объемом большим 1 Мб.

Основные элементы языка

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

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

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

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

Некоторые основные директивы QBasic

Директива REM или апостроф ' - обозначает комментарий к программе или команде. Вся строка (как правило, это поясняющий текст), что идёт после знака комментария, не исполняется. Этот знак используется при отладке программ.

Оператор CLS-оператор очистки экрана. С него часто начинаются программы, работающие в текстовом режиме.

Директива END означает конец программы. Применение этой команды в конце программы не является обязательным.

Все формулы в QBasic записываются в строку, при этом используются следующие математические знаки:

"+" и "-" - сложение и вычитание;

"*" и "/" - умножение и деление;

"^" - возведение в любую степень;

(x+3.14)/(a+b) - используются только круглые скобки и десятичная точка вместо запятой.

Пример: S=Vo*t+g*t^2/2

В QBasic применяются следующие встроенные функции:

SQR(X) - извлечение квадратного корня;

ABS(X) - модуль (абсолютная величина) числа;

SIN(X); COS(X); TAN(X) - тригонометрические функции синус, косинус и тангенс угла в радианах;

ATN(X) - арктангенс числа в радианах;

INT(X) - округление числа (дробная часть числа отбрасывается);

RND(X) - случайное число;

z = y MOD x - целый остаток от деления y на x.

LOG(X) - логарифмическая функция (натуральный логарифм по основанию e=2.71828);

EXP(X) - показательная (экспоненциальная) функция.

Операции ввода-вывода информации

Для вывода (печати) информации на экран применяется оператор PRINT. Пример:

PRINT X - вывод на экран значения числа X.

PRINT "Скорость тела равна: V="; V; "м/с" - выводимый на экран текст указывается в кавычках. Вместо знака ";" можно ставить знак ",".

Просто оператор PRINT без текста и знаков даёт пустую строку на экране.

Если при работе в среде QBasic 4.5 вместо слова PRINT ставить знак вопроса "?", а затем нажать Enter, то слово PRINT само появится на экране. Это упрощает работу программиста.

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

Пример: INPUT X - ввод числа X. На экране появится знак "?" и компьютер ждёт ввода переменной Х (это приглашение ввести число).

INPUT "Введите число Х="; X - можно вводить в кавычках подсказку, она будет выводиться на экран. После подсказки можно ставить знак "," вместо знака ";", но тогда знака вопроса "?" на экране не будет, а вместо него в качестве приглашения будет мигать курсор.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SCREEN N - этот оператор очищает экран и задает графический режим, где N определяет тип графического режима: N=1,7,8,9,12.

COLOR C1, C2. COLOR - оператор, задающий цвет текста и фона, где C1 задаёт цвет текста, а C2 - цвет фона. C1, C2=0-15.

Рисование точки: PSET (X, Y), C, где X,Y - координаты точки, C - цвет точки. C=0-15. X=160, Y=100 - координаты центра экрана для режима SCREEN 7.

Рисование линии: LINE (X1,Y1)-(X2,Y2), C. Здесь X1,Y1 и X2, Y2 - координаты концов линии, C-цвет. Пример: LINE (30, 100)-(120, 150), 10

Рисование прямоугольной рамки: LINE (X1,Y1)-(X2,Y2), C, B. Здесь X1,Y1 и X2,Y2-кординаты концов левой диагонали, C-цвет. Пример: LINE (90, 110)-(140, 170), 10, B

Рисование закрашенного прямоугольника: LINE (X1,Y1)-(X2,Y2), C, BF. Здесь X1,Y1 и X2,Y2-кординаты концов левой диагонали, C-цвет. Пример: LINE (90, 110)-(140, 170), 12, BF

Рисование окружности: CIRCLE (X, Y), R, C. Здесь X,Y - координаты центра, R - радиус, C - цвет.

Рисование закрашенной окружности: CIRCLE (X, Y), R, C.

PAINT (X, Y), C1, C2. Здесь PAINT - оператор закрашивания. X,Y - координаты точки внутри закрашиваемой области, C1 - цвет закрашивания, C2 - цвет линии границы.

Рисование дуги и сектора: CIRCLE (X, Y), R, C, Ф1, Ф2.

Рисование эллипса: CIRCLE (X, Y), R, C, , , K.

Примеры реализации программ

Пример 1: Вычислить площадь треугольника по формуле Герона.

CLS

'Определите площадь треугольника по формуле Герона.

INPUT "Введите величину стороны a: a=", a

INPUT "Введите величину стороны b: b=", b

INPUT "Введите величину стороны c: c=", c

p = (a + b + c) / 2

S = SQR(p * (p - a) * (p - b) * (p - c))

PRINT "Ответ: площадь треугольника равна: S="; S

Пример 2 (с использованием строковых переменных). Напечатайте на экране введённые с клавиатуры фамилию, имя и класс ученика.

CLS

INPUT "Введите свою фамилию: ", f$

INPUT "Введите своё имя: ", i$

INPUT "Введите свой класс: ", k$

PRINT

PRINT f$; " "; i$; ", "; k$

END

Пример 3

SCREEN 7

FOR i = 1 TO 15

CIRCLE (160, 100), i * 6, i

NEXT i

Пример 4: Разлинуйте экран в клеточку.

SCREEN 7

FOR i = 1 TO 32

LINE (0, 10 * i)-(320, 10 * i), 15

LINE (10 * i, 0)-(10 * i, 200), 15

NEXT i

Пример 5.

CLS

INPUT "Введите год основания Москвы: M="; M

IF M = 1147 THEN PRINT "Вы правы!" ELSE PRINT "Вы ошиблись!"

Пример 6.

CLS

PRINT "Вычислите y=1/(x-2) для всех x"

INPUT "Введите x=", x

IF x = 2 THEN PRINT "При x=2 функция не определена!": END

y = 1 / (x - 2)

PRINT "y="; y

Пример 7.

CLS

REM Вычислить функцию y=1/(x^2-5*x-6)

FOR x = -10 TO 10

IF x ^ 2 - 5 * x - 6 = 0 THEN PRINT "При x=-1, x=6 функция не определена!"

ELSE y = 1 / (x ^ 2 - 5 * x - 6)

PRINT "x="; x, " y="; y

NEXT x

Пример 8.

CLS

REM Вычислить функцию y=1/SQR(x^2-3*x+2)

FOR x = -5 TO 5

IF x >= 1 AND x <= 2 THEN PRINT "При 1<=x=<2 функция не определена!"

ELSE y = 1 / SQR(x ^ 2 - 3 * x + 2)

PRINT "x="; x, " y="; y

NEXT x

Пример 9. Графики на QBasic: Квадрат, три концентрические окружности и точка. Программа имеет вид:

SCREEN 7

COLOR 14, 8

PRINT "Пример графики на QBasic:"

LINE (100, 50)-(220, 150), 13, B

CIRCLE (160, 100), 20, 11

CIRCLE (160, 100), 30, 12

CIRCLE (160, 100), 40, 14

PSET (160, 100), 15

END

Пример 10.

Рассмотрим программу, записывающую строки в файл, а затем считывающую из него.

'' Открываем файл для записи:

open "test.txt" for output as #1

'' Записываем в него строки:

print #1, "Hi,"

print #1, ""

print #1, "this is an example file,"

print #1, "powered by BASIC."

'' Закрываем файл:

close #1

'' ---

'' Открываем тот же файл для чтения:

open "test.txt" for input as #1

'' Определяем переменную для хранения строк:

dim as string ln

'' Последовательно считываем строки и выводим на экран:

do until( eof(1) ) line input #1, ln print ln loop

'' Закрываем файл:

close #1

Заключение

Несмотря на огромное количество версий языка BASIC, при разработке новой версии языка всегда сохранялась совместимость с прежними версиями: с программой, написанной для более ранних версий вполне (иногда с незначительными изменениями) можно было работать и в последующих версиях этого языка.

BASIC стал одним из первых языков, создатели которого поняли, что компьютерные программы имеют дело не только с числами, но и с текстом. Поэтому его сильной стороной стало появление процедур обработки строк (LEFT, MID, RIGHT). Что касается чисел, то в языке использовался единственный их тип - числа с плавающей точкой. Поддерживаются также массивы и матрицы (двумерные массивы).

Несмотря на то, что BASIC с самого начала считался "несерьезным" языком программирования, многие компании и просто IT-специалисты создали собственные его разновидности.

Языки Basic и Visual Basic прошли серьезный путь и претерпели существенные, можно сказать, необратимые изменения. От их изначальной простоты мало что осталось. В результате VB превратился в «обычный» объектно-ориентированный язык программирования высокого уровня.

Для программирования в 1988 году QuickBASIC был очень удобен. Можно было писать код без громоздких номеров строк, отлавливать синтаксические ошибки в процессе набора и запускать программы прямиком из среды разработки, без компиляции в командной строке.

В наши дни QuickBASIC остался одним из раритетных языков из эпои зарождения программирования. Однако он до сих пор сохраняет свою мощь. Новаторский проект под названием QB64 создал современную реплику QuickBASIC. Он запускается на Windows, MacOS и Linux, и не требует эмулятора. При запуске программы в QB64 среда выполняет следующее — сначала она транслирует код на BASIC в C++, а затем компилирует его.

QuickBASIC был впечатляющей средой для текстовых компьютерных систем. Но всё изменилось, когда Microsoft выпустила Windows и продемонстрировало графический интерфейс пользователя с такими элементами управления как кнопки и событиями клика мыши.

Список использованной литературы

  1. Актуальные проблемы гуманитарных и естественных наук. 2011. № 6. С. 142-144.
  2. Арясова Д.В., Кондратьев Н.Ю., Вингоренко А.Н. Компьютерное моделирование в информатике // Математические методы и модели в управлении, экономике и социологии Сборник научных трудов. Ответственные редакторы О.М. Барбаков, Ю.А. Зобнин. 2019. С. 33-36.
  3. Еремин Е.А. О способах инициализации переменных в различных языках программирования // Информатика и образование. 2018. № 2. С. 109-113.
  4. Касторнов А.Ф., Касторнова В.А. Языки программирования и их роль в становлении предметной области «Информатика» // Ученые записки ИУО РАО. 2015. № 56. С. 61-71.
  5. Козьмин Н.Б., Колбасин В.Г. Программирование на QUICKBASIC.
  6. Колобов А.А. Изучение VBA в качестве первого языка программирования //
  7. Конспект лекций - Челябинск, 2015. -136 с.
  8. Магомедова З.У., Юзбеков Г.А. Графические возможности языка BASIC // Вестник МАДИ. 2014. № 14. С. 137-140.
  9. Окулов С.М. Основы программирования. - М.: Бином, 2018 - 336 с.
  10. Основы программирования / под ред. Макаровой Н.В. - М.: КноРус, 2017 - 452 с.
  11. Свердлов С.З. Языки программирования и методы трансляции. – Спб: Лань, 2019. – 212 с.
  12. Семакин И.Г. Основы программирования и баз данных. - М.: Academia, 2019 - 224 с.
  13. Серкова Е.Г. Основы алгоритмизации и программирования. - Ростов н/Д.: Феникс, 2019 - 188 с.
  14. Усенков Д.Ю. Идеологии программирования: история развития // Инновации в образовании. 2001. № 3. С. 46-61.
  15. Хиценко В.П. Основы программирования. - Новосибирск: НГТУ, 2015 - 83 с.
  16. Черпаков И.В. Основы программирования. Учебник и практикум. - М.: Брайт, 2017 - 220с.