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

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

Содержание:

Введение

Алгоритм – это определенная, формальная, общепонятная конечная последовательность предписаний (указаний, правил, этапов), выполняя которые шаг за шагом, можно прийти от варьируемых исходных данных к решению задачи[1].

Алгоритмический язык – это система обозначений, предназначенных для однозначного описания алгоритма. Алгоритмический язык является составной частью информационных технологий.

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

FORTRAN (1954-1957), создан группой программистов IBM для проведения научных расчетов;

PASCAL (1970), автор Никлаус Ричи, создан для управления ресурсами ЭВМ;

ADA (1979), создан для управления космическими системами в проекте СОИ (Strategic Defense Initiative – Стратегическая оборонная инициатива);

BASIC (1964), создатели Томас Курс и Джон Кемени, является универсальным алгоритмическим языком.[2]

QBasic создан компанией Microsoft и представляет из себя конечный программный продукт в виде интегрированной среды разработки для записи, запуска и отладки программного кода и одновременно диалект алгоритмического языка высокого уровня на основе языка BASIC.

Объект исследования – основы программирования на QBasic.

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

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

Задачи данной работы:

  • выяснить историю QBasic и отличие от BASIC;
  • изучить правила написания кода на алгоритмическом языке QBasic;
  • описать в программном коде алгоритм решения нескольких задач.

1. История от BASIC до QBasic

BASIC (Beginners All-Purpose Symbolic Code – универсальный символический код для начинающих) позиционируется, как язык программирования для специалистов, не являющихся профессиональными программистами[3]. Первая версия языка была написана двумя профессорами Дартмунского университета Джоном Кемени и Томасом Курцом в 1964 году[4].

В 1974 году в качестве международного стандарта был утвержден MINIMAL BASIC[5]. В конце 1970-х годов BASIC начали широко использовать как встроенный язык персональных компьютеров.

В 1983 году первый релиз GW-BASIC – диалект языка программирования BASIC, разработанный компанией Microsoft[6]. Система GW-BASIC входила в состав MS-DOS до версии 4.01 включительно[7].

В 1984 году Международной организацией по стандартизации (ISO) опубликован стандарт ISO 6373:1984 «Data processing — Programming languages — Minimal BASIC»[8]

В 1985 году Джон Кемени и Томас Курц совместно с с Американским институтом национальных стандартов (ANSI) разработали версию языка для микрокомпьютеров[9].

В 1985 году первый релиз Microsoft QuickBASIC – интегрированной среды разработки и компилятора диалекта языка программирования GW-BASIC[10].

В 1987 году Международный комитет по стандартизации информационных технологий (INCITS) в качестве международного стандарта утвердил ANSI X3.113-1987 «Programming Languages Full BASIC»[11].

В 1988 году Госстандартом СССР принят ГОСТ 27787-88 «Язык программирования БЕЙСИК» (включает в себя стандарт ISO 6373:1984)[12]

В 1991 релиз первой версии QBasic – диалекта языка программирования BASIC с собственной средой разработки и отладки, разработанный компанией Microsoft. QBasic был разработан в качестве замены диалекта GW-BASIC, а среда разработки основана на QuickBASIC 4.5.[13]

2. Алфавит, лексические единицы, операторы и типы данных

2.1 Алфавит

Алфавит QBasic включает в себя[14]:

  • набор символов латинского алфавита в верхнем и нижнем регистре;
  • арабские цифры 0-9;
  • знаки математических операций:
    • + – сложение (символ конкатенации-сцепления);
    • - – вычитание;
    • * – умножение;
    • / – деление (символ «слеш»);
    • ^ – возведение в степень;
    • \ – целое деление (обратный «слеш»);
  • знаки отношения:
    • = – знак равенства или присваивания;
    • > – знак больше;
    • < – знак меньше;
  • символы объявления типа данных:
    • % – признак целого типа (INTEGER);
    • ! – признак типа одинарной точности (SINGLE);
    • # – признак типа двойной точности (DOUBLE);
    • $ – признак символьного типа;
    • & – признак типа длинных целых (LONG);
  • вспомогательными символами являются круглые скобки [( )], запятая [,], двойные кавычки ["], точка [.], апостроф ['], точка с запятой [;], двоеточие [:], вопросительный знак [?] и пробел.

2.2 Лексические единицы

Лексическая единица – наименьший смысловой элемент, с помощью которого составляется код программы. Все лексические единицы языка QBasic можно разделить на 4 вида[15]:

  • Операторы языка – ключевые команды программного кода, например, READ, PRINT, WRITE;
  • Переменная – это объявляемое имя-указатель на содержимое ячейки памяти. Вы можете поместить данные любого поддерживаемого типа (см. главу 2.4) в оперативную память, а после обращаться к этой информации через переменную. В качестве имени переменной нельзя использовать операторы языка (способы объявления переменной указаны в 2.5). Имя может состоять только из латинских символов (A-Z, a-z) и цифр (0-9). Имя переменной регистрозависимо, то есть, переменная VENV01 и Venv01 – это разные имена/переменные. Переменные бывают простые и индексированные (массивы).
    • Простая переменная ссылается только на одно значение в каждый момент времени.
    • Индексированная переменная (массив) ссылается на последовательность однотипных простых переменных. Каждая отдельно взятая переменная называется элементом массива. Массивы бывают одномерными и многомерными. Одномерный массив представляет из себя столбец или нумерованною очередь из простых переменных. Двумерный массив похож на таблицу, где к каждому элементу можно обратиться через номер строки и столбца[16].
  • Разделители: ! @ # $ % & ( ) _ : " ' ; . , ~ ` | \ пробел
  • Константа – некоторая величина, не изменяющая своего значения в течение выполнения всей программы.
    • Числовая константа – положительное или отрицательное число двух видов:
      • целочисленная константа диапазон целых чисел от -32768 до 32767
      • вещественная константа – это константа с фиксированной (общее количество знаков в числе должно быть не более 18, из них 16 цифр, знак числа и десятичная точка, например: -15.0000001) или плавающей (положительное или отрицательное число в экспоненциальной форме (+,-)M*N(+,-)p, где N — основание системы счисления, p — показатель степени) точкой.

2.3 Операторы

Операторы языка должны вводится в ЭВМ без изменений в соответствии с регистром. Операторы языка QBasic можно условно разграничить на встроенные (стандартные) и пользовательские функции.

Встроенные операторы представляют из себя программные блоки, которые выполняют строго определенную операцию или блок операций над входными параметрами (аргументами) и возвращают результат. Все операторы имеют, как правило, трехбуквенное обозначение, аргумент (или множество аргументов) записываются в круглые скобки сразу после названия функции[17]. Например: SQR 25, здесь SQR – название вызываемого оператора, в данном случае оператор вычисления квадратного корня, 25 – аргумент для оператора.

Пользовательские функции – это операторы самостоятельно определенные пользователем. Для объявления пользовательской функции используется оператор DEF FN (DEFinititon FuNction — определение функции). Очень важно не путать с оператором FUNCTION (см. главу 4). Формат объявления пользовательской функции: DEF FNимя(параметры) = выражение, например: DEF FNS(r)=r^2, теперь, мы можем обращаться к функции FNS наравне со встроенными функциями, например FNS 5 вернет квадрат числа 5.

Кроме деления на встроенные и пользовательские, все операторы можно разбить на две группы[18]:

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

2.4 Типы данных

Для хранения данных в памяти и работы с ними используются переменные. Переменные являются лексической единицей QBasic. Каждую единицу времени переменная может содержать только одну из двух основных категорий данных, числовой или символьный[19].

Числовые данные могут содержать числа следующих типов:

  • Целые (INTEGER) – диапазон целых чисел от -32768 до 32767, для хранения используется 2 байта в оперативной памяти;
  • Длинные целые (LONG) – диапазон целых чисел от -2147483648 до 2147483647, для хранения используется 4 байта в оперативной памяти;
  • Одинарной точности (SINGLE) – диапазон от -3.37*1038 до
    3.37*1038, для хранения используется 4 байта в оперативной памяти;
  • Двойной точности (DOUBLE) – диапазон от -1.67*10308 до 1.67*10308, для хранения используется 8 байт в оперативной памяти.

Символьный (STRING) тип данных позволяет хранить строки как переменной длины, так и фиксированной:

  • Строка переменной длины – это последовательность из 32567 символов таблицы ASCII.
  • Строка фиксированной длины – символьная строка указанной в байтах длины.

2.5 Объявление переменной и массива

2.5.1 Переменные

Переменная – это объявляемое имя-указатель на содержимое ячейки памяти, в отличии от константы, содержимое переменной можно изменять в ходе выполнения программы. Имя переменной не должно совпадать с именем объявленной ранее в коде переменной или константы, не должно начинаться с FN[20], в качестве имени нельзя использовать зарегистрированные имена операторов, процедур и функций. Имя переменной может содержать до 40 символов и должно начинаться с буквы, например, venv, x2, sum.of.length. Тип содержимого переменной (см. 2.4) может быть указан до или во время создания имени переменной. Если тип содержимого переменной не задан, то она считается вещественной переменной одинарной точности (SINGLE).

Переменные могут быть локальными и глобальными[21]. Переменная является глобальной, если объявлена в основном модуле оператором DIM или REDIM с атрибутом SHARED (описание данных операторов будет далее по тексту). Переменная является локальной, если объявлена в процедуре (отдельном модуле, см. 2.6). Кроме того, локальные переменные бывают динамическими (по умолчанию), они создаются заново каждый раз при вызове процедуры (входе в процедуру) и удаляются из памяти после выхода из процедуры. Статическая локальная переменная очень похожа на глобальную, она также доступна в любое время работы программы после объявления, но отличается тем, что объявляется не в основном модуле, а в процедуре (см. 2.6), для объявления статической локальной переменной в заголовке процедуры нужно указать слово STATIC (см. 2.6).

Для объявление переменной используется оператор присваивания LET (объявление переменной без явного указания типа) или DIM (объявление переменной с указанием типа или массива). Пример объявления переменной:

LET имя.переменной = содержимое переменной

Использование оператора LET не является обязательным, формат

имя.переменной = содержимое переменной

тоже является верным и не нарушает синтаксис[22]. В качестве содержимого переменной при объявлении имени может выступать результат математической операции, объединения строк (конкатенация), любой другой функции/оператора, например: LET int25 = 5*5. Способы указания типа содержимого переменной рассмотрены далее.

Принудительно указать тип переменной можно тремя способами[23]:

  • явное указание типа с помощью соответствующего символа, добавляемого к имени переменной, например: k%, factorial&, summa!, integral#, str$, где: k% – признак целой переменной, factorial& – признак длинной целой переменной, summa! – признак переменной одинарной точности (Подробнее о типах см. раздел 2.4).
  • неявное указание типа переменной по первой букве ее имени при помощи оператора DEF:

DEFтип {буква|диапазон_букв}[,{буква|диапазон_букв}]…

где тип соответствует одному из зарезервированных типов: INT — тип integer, LNG — тип long, SNG — тип single, DBL — тип double, STR — тип string, буква – первая буква имен переменной, диапазон_букв – набор латинских символов в алфавитном порядке, которые являются первыми буквами имен переменных. Например:

DEFINT i-n (переменные, чьи имена начинаются на i, k, l, m, n, теперь имеют тип INTEGER – целая переменная, см. 2.4);

DEFSTR a,r-t (переменные, чьи имена начинаются на a, r, s, t, теперь имеют тип STRING – строка символов, см. 2.4);

  • явное указание типа переменной при помощи оператора DIM:

DIM имя AS тип [, DIM имя AS тип]…

где имя – имя переменной, тип – тип содержимого переменной, например: DIM str1 AS STRING, index AS INTEGER

QBasic позволяет произвести обмен содержимым переменных через оператор SWAP. В качестве параметра обязательно передаются два параметра – имена переменных. Фактически происходит изменение имен-ссылок на адреса памяти. Например:

LET A = 1 ← объявляем переменную А с содержимым 1;

LET B = 2 ← объявляем переменную B с содержимым 2;

SWAP A, B ← вызов оператора с передачей параметров;

PRINT A ← вывод на экран содержимого переменной A: 2;

PRINT B ← вывод на экран содержимого переменной B: 1.

2.5.2 Массивы

QBasic позволяет работать с массивами, при этом объявление и работа с массивом во многом аналогична работе с переменной. Технически работа с массивом и есть работа с имененем-указателем на блок данных в памяти. В QBasic массив называется индексированной переменной (см. раздел 2.2). Для работы с массивами используются операторы DIM, ERASE и REDIM[24]. Параметры операторов:

имя – имя массива или простой переменной, правила написания соответствуют правилам для имени переменной;

индексы – константы, переменные или арифметические выражения, разделенные запятыми, максимальные значения которых определяют величину массива, а число индексов – размерность массива. Индексы вводятся в формате: [начало TO] конец

начало и конец – устанавливают нижнюю и верхнюю границы индексов массива из диапазона -32768 до 32767. Если отсутствует параметр начало, то он равен нулю;

тип – устанавливает тип элементов массива или простой переменной. В случае отсутствия, параметр по умолчанию – SINGLE;

SHARED – атрибут, который предписывает переменную или массив сделать глобальным (см 2.5.1).

Оператор DIM (DIMension – резервирование места). Примеры объявления:

DIM SHARED a(50), b(10 TO 100) AS DOUBLE

В данном примере объявлено два массива:

  • с именем a одномерный массив с данными типа двойной точности, содержащий 51 элемент (условно 51 переменную): a(0), a(1), …, a(50);
  • с именем b двухмерный массив с данными типа двойной точности, индексы которого меняются от 10 до 100.

DIM wiza(100,100)

В данном примере объявлен массив с именем wiza, содержащий 101*101 элемент с типом по умолчанию (SINGLE).

DIM k%(15), k!(15), k#(15), k$(15)

В данном примере объявлены 4 массива, формально имеющие одно и то же имя – k, но, фактически, это совершенно разные массивы с разными типами данных по 16 элементов в каждом: k# – массив элементов двойной точности, k$ – массив строковых переменных и т. д.

Следующие три оператора/команды эквивалентны:

  • DIM f(8,3)
  • DIM f(0 TO 8, 0 TO 3)
  • DIM f(8, 0 TO 3)

Объявление массивов с отрицательными границами возможно только в следующем формате: DIM s(-4 TO 10), b(-99 TO -5, -3 TO 0).

Оператор ERASE (ERASE – стирать) – этот оператор используется для управления памятью, обнуления элементов статических массивов (см. STATIC раздел 2.5.1) и удаления динамических массивов.

Синтаксис оператора: ERASE имя_массива

Оператор REDIM – предназначен для переопределения границ объявленного ранее динамического массива. Например:

DIM a(49, 49) объявление динамического массива

REDIM a(19, 14) переопределение границ динамического массива

3. Управляющие операторы, организация циклов и передача управления

При запуске программы, написанной на языке QBasic, операторы выполняются последовательно, в порядке из записи в коде, передача управления к следующему оператору происходит только при завершении предыдущего. В случае необходимости организации цикличности или ветвления предусмотрены операторы передачи управления[25]. Такие операторы можно выделить в три группы:

  • операторы ветвления – позволяют реализовать структурное программирование;
  • операторы цикла – позволяют многократно выполнять группу операторов;
  • оператор безусловного перехода[26].

При этом, общим признаком для операторов ветвления и операторов цикла является наличие условия для работы оператора, в отличии от оператора безусловного перехода.

3.1 Операторы ветвления

Операторы ветвления – это операторы передачи управления, предназначенные для изменения порядка выполнения операторов в соответствии с заданным условием[27]. Операторами ветвления являются:

      • IF...THEN...ELSE (подробно описан далее по тексту в качестве примера структуры синтаксиса);
      • CASE...SELECT (описание отсутствует, так как выходит за рамки задач курсовой работы).

Оператор IF...THEN...ELSE (если…тогда...иначе). Полная форма записи при однострочной записи:

IF условие THEN оператор/ы группы 1 ELSE оператор/ы группы 2

Полная форма записи при многострочной записи (добавляется END IF для определения окончания конструкции ветвления):

IF условие THEN

оператор/ы группы 1

ELSE

оператор/ы группы 2

END IF

Принцип работы заключается в вычислении условия (ИСТИНА/ЛОЖЬ) и передаче управления одной из групп операторов. Если условие истинно (например 1=1), то выполняется оператор/ы группы 1, после выполнения управление передается оператору, который идут после конструкции ветвления игнорируя оператор/ы группы 2. Если условие ложно (например 1=2), то выполняется оператор/ы группы 2, после выполнения управление передается оператору, который записан после конструкции ветвления игнорируя оператор/ы группы 1.

Блок-схема:

Условие всегда содержит знак сравнения для вычисления истинности:

  • < – меньше;
  • > – больше;
  • = – равно;
  • <= – меньше или равно;
  • >= – больше или равно;
  • <> – не равно;

Кроме того, условия могут быть простыми и сложными[28]. Простое условие содержит одно вычисление (например, 1=1), сложное условие состоит из двух и более простых условий через союзы AND или OR. Союз AND – каждое из простых условий должно быть истинно (например, 1=1 AND 2=2). Союз OR – одно из простых условий должно быть истинно (например, 1=2 OR 1=1).

Пример ветвления с простым условием (однострочная запись):

IF 1=1 THEN PRINT "1=1" ELSE PRINT "1<>1"

Пример ветвления с простым условием (многострочная запись):

a = 1

b = 2

IF a=b THEN

PRINT "число 1 рано числу 2 (1=2)"

ELSE

PRINT "число 1 не равно числу 2 (1<>2)"

END IF

Пример ветвления со сложным условием (многострочная запись):

a = 1

b = 2

IF a>b OR a<b THEN

PRINT "число 1 больше или меньше числа 2"

ELSE

PRINT "число 1 равно числу 2"

END IF

Неполная[29] форма записи: IF условие THEN оператор/ы (или метка перехода). В неполной форме может быть опущен оператор ELSE, тогда, при невыполнении условия, управление передается следующему в коде оператору, записанному после конструкции оператора ветвления.

Пример:

IF 1=2 THEN

PRINT "эта строка никогда не будет исполнена"

END IF

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

Расширить оператор ветвления можно при помощи ключевого слова ELSEIF[30]. Пример записи:

a = 1

b = 2

IF a=b THEN ← условие ложно

PRINT "a = b" ← этот оператор не будет запущен

ELSEIF a>b THEN ← условие ложно

PRINT "a > b" ← этот оператор не будет запущен

ELSEIF a<b THEN ← условие истинно

PRINT "a < b" ← этот оператор будет запущен

END IF

Число вставок ELSEIF не ограничено. Оператор CASE...SELECT структурно похож на оператор IF...THEN...ELSE с ключевым словом ELSEIF.

3.2 Операторы цикла

Операторы цикла позволяют определенный набор операторов выполнить какое-то (обычно известное) число раз образуя цикл операций – циклический алгоритм[31][32].

Список операторов цикла:

      • FOR...NEXT (цикл со счетчиком)
      • WHILE...WEND (цикл с проверкой условия)
      • DO...LOOP (цикл с проверкой условия)

Оператор FOR...NEXT (для...следующий). Формат записи:

FOR переменная цикла = нзп TO кзп ← начало цикла

группа операторов ← тело

NEXT переменная цикла ← конец цикла

Этот оператор/цикл состоит из двух частей:

  1. начало цикла, где, нзп – начальное значение переменной цикла, кзп – конечное значение переменной цикла. По умолчанию шаг равен единице, для изменения шага используется ключевое слово STEP (первая строка будет иметь следующий вид «FOR переменная цикла = нзп TO кзп STEP шаг», где шаг, это шаг изменения переменной);
  2. конец цикла, где проверяются значения переменной и принимается решение, если переменная цикла > конечного значения (кзн), то управление передается оператору, следующему за NEXT, а если переменная цикла <= конечного значения (кзн), то переменная цикла увеличивается на заданный в операторе шаг (по умолчанию на единицу) и последовательно запускаются все операторы в теле цикла.

Оператор WHILE...WEND (WHILE – пока; While END – конец цикла)[33]. Формат записи:

WHILE условие ← начало цикла

группа операторов ← тело

WEND ← конец цикла

Данный оператор очень похож на IF...THEN...ELSE, с той разницей, что в операторе ветвления, при условии что условие истинно – группа операторов выполниться один раз, а в случае оператора цикла WHILE...WENDгруппа операторов будет выполняться в цикле множество раз, пока условие будет оставаться истинным. Если условие ложно – будет передано управление следующему оператору после ключевого слова WEND.

Оператор DO...LOOP[34]. Конструкция и алгоритм оператора DO...LOOP – крайне похож на WHILE...WEND. Здесь также есть последовательность операторов, повторное выполнение которых зависит от условия. Оператор DO...LOOP имеет два варианта написания:

В первом варианте цикл выполняется минимум один раз, так как проверка условия находится после выполнения первой итерации цикла:

DO

группа операторов

LOOP условие

Во втором варианте сначала проверяется условие, а после выполняется итерация цикла:

DO условие

группа операторов

LOOP

Второй вариант конструкции очень похож на работу оператора WHILE...WEND. Оба варианта поддерживают дополнительные ключевые слова WHILE и UNTIL, которые нужно прописывать перед условием (например, LOOP WHILE условие для первого варианта и DO UNTIL условие для второго варианта).

Ключевыми словами WHILE и UNTIL определяется способ проверки условий. В случае WHILE – цикл выполняется до тех пор, пока условие истинно. В случае UNTIL – цикл выполняется до тех пор, пока условие ложно.

3.3 Оператор безусловного перехода

Оператор GOTO[35] является оператором безусловного перехода, то есть, оператор не имеет условий для проверки и строго производит передачу управления к одной из объявленных меток.

Формат записи: GOTO метка перехода

Пример программы:

I = 1

POINT: ← объявляем метку перехода

PRINT I

I = I + 1

GOTO POINT ← возвращаемся к метке перехода

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

4. Подпрограммы, процедуры и функции

Пользовательские функции – это операторы самостоятельно определенные пользователем. Для объявления пользовательской функции используется оператор DEF FN. Работа с пользовательской функцией была описана в главе 2.3. Но пользовательские функции лишь частично облегчают написание и чтение кода. Модульное программирование позволяет разделять написание кода программы на небольшие части – модули, например, поместив каждую функцию или задачу, решаемую программой в отдельный модуль. Такой подход облегчает как чтение кода, так и его доработку. Кроме того, использовать уже написанные модули можно и при создании новых программ, если вам необходимо реализовать часть функционала из старой программы.[36]

Язык QBasic поддерживает два типа модулей:

    • Функция FUNCTION (FUNCTION … END FUNCTION)
    • Процедура SUB (SUB … END SUB)

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

Формат объявления модуля с типом FUNCTION:

FUNCTION имя [(список параметров)]

группа операторов

имя функции для возврата значения

END FUNCTION

Формат объявления модуля с типом SUB:

SUB имя [(список параметров)]

группа операторов

END SUB

Для запроса модулей используется оператор: DECLARE

Формат записи с типом FUNCTION:

DECLARE FUNCTION имя [(список параметров)]

Описание:

имя – имя модуля до 40 символов;

список параметров – имена переменных, для передачи в функцию/процедуру, не обязательно для использования (квадратные скобки не используются в коде, в данных примерах в них отмечается необязательный параметр).

Пример программы, которая вычисляет площадь круга:

DECLARE FUNCTION SKRUG (r) ← запрос модуля с именем SKRUG

PRINT "Площадь круга "

PRINT SKRUG(3)

PRINT SKRUG(13)

PRINT SKRUG(20)

END ← конец основного тела программы

FUNCTION SKRUG (r) ← объявление модуля

pi = 3.14159

SKRUG = pi*r^2 ← имя функции для возврата значения

END FUNCTION ←конец модуля

Модули типа FUNCTION могут использоваться в выражениях и не могут быть рекурсивными т. е. вызывать сами себя[37].

Заключение

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

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

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

  1. Алиев, В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – 224 с.
  2. Анеликова, Л.А. Алгоритмика в теории и практике / Л.А. Анеликова. – Москва : СОЛОН-ПРЕСС, 2010. – 70 с.
  3. Бковская, Е.В. Методическое пособие по изучению студентами алгоритмизации и программирования, а также выполнению самостоятельных работ при изучении дисциплины «Информатика и ИТК» / Е.В. Бковская, Б.М. Андреев. – Серпухов : ГБПОУ МО «Серпуховский колледж», 2016. - 24 с.
  4. ГОСТ 27787-88. Язык программирования БЕЙСИК. Дата принятия 26.07.1988 — URL: http://docs.cntd.ru/document/1200021946
  5. Зельднер, Г.А. Программируем на языке QBasic 4.5 / Г.А. Зельднер – Москва: ABF, 1996. – 432 с.
  6. Интернет-ресурс: Microsoft® BASIC Version Information – URL: http://www.emsps.com/oldtools/msbasv.htm#qbasic
  7. Интернет-ресурс: Архив документации «GW-BASIC Documentation» – URL: https://hwiegman.home.xs4all.nl/gwbasic.html
  8. Международный стандарт ANSI X3.113-1987 – URL: https://webstore.ansi.org/standards/incits/ansix31131987r1998
  9. Международный стандарт ISO 6373:1984 «Data processing — Programming languages — Minimal BASIC» – URL: https://www.iso.org/standard/12705.html
  10. Могилев, А.В. Методы программирования. Компьютерные вычисления / А.В. Могилев, Л.В. Листроева — СПб.: БХВ-Петербург, 2008. — 320 с.
  11. Обухова, О.В. Информатика: учебное пособие / О.В. Обухова ; Министерство транспорта Российской Федерации, Московская государственная академия водного транспорта. – Москва : Альтаир : МГАВТ, 2008. – 101 с.
  12. Харитонов, Е.А. Основы программирования для студентов технологического профиля / Е.А. Харитонов, А.К. Сафиуллина ; Министерство образования и науки России, Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Казанский национальный исследовательский технологический университет». – Казань : Издательство КНИТУ, 2013. – 152 с.
  13. Харитонов, Е.А. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина ; авт.-сост. Е.А. Харитонов, А.К. Сафиуллина ; Федеральное агентство по образованию, Государственное образовательное учреждение высшего профессионального образования «Казанский государственный технологический университет». – Казань : КГТУ, 2008. – 107 с.
  1. Обухова О.В. Информатика: учебное пособие / О.В. Обухова. – Москва: Альтаир-МГАВТ, 2008. – с.78

  2. Харитонов Е.А., Сафиуллина А.К. Основы программирования для студентов технологического профиля: учебное пособие / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КНИТУ, 2013. – с.82

  3. Алиев В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – с. 5.

  4. Могилев А.В., Листроева Л.В. Методы программирования. Компьютерные вычисления / А.В. Могилев, Л.В. Листроева — БХВ-Петербург, 2008. — с. 13.

  5. Алиев В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – с. 8.

  6. Архив документации «GW-BASIC Documentation» – URL: https://hwiegman.home.xs4all.nl/gwbasic.html

  7. Зельднер Г.А. Программируем на языке QuickBASIC 4.5 / Г.А. Зельднер – М.: ABF, 1996 – c. 18.

  8. Международный стандарт ISO 6373:1984 «Data processing — Programming languages — Minimal BASIC» – URL: https://www.iso.org/standard/12705.html

  9. Алиев В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – с. 5.

  10. Зельднер Г.А. Программируем на языке QBasic 4.5 / Г.А. Зельднер – М.: ABF, 1996. – c. 19.

  11. Международный стандарт ANSI X3.113-1987 – URL:
    https://webstore.ansi.org/standards/incits/ansix31131987r1998

  12. ГОСТ 27787-88. Язык программирования БЕЙСИК. Дата введения 26.07.1988 — URL: http://docs.cntd.ru/document/1200021946

  13. Microsoft® BASIC Version Information – URL: http://www.emsps.com/oldtools/msbasv.htm#qbasic

  14. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 7

  15. Алиев В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – с. 9.

  16. Алиев В.К. Языки Бейсик / В.К. Алиев. – Москва : СОЛОН-ПРЕСС, 2009. – с. 19.

  17. Харитонов Е.А., Сафиуллина А.К. Основы программирования для студентов технологического профиля: учебное пособие / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КНИТУ, 2013. – с. 96

  18. Методическое пособие по изучению студентами алгоритмизации и программирования, а также выполнению самостоятельных работ при изучении дисциплины «Информатика и ИТК» / Е.В. Бковская, Б.М. Андреев. - Серпухов : ГБПОУ МО «Серпуховский колледж», 2016. - с. 9

  19. Зельднер Г.А. Программируем на языке QuickBASIC 4.5 / Г.А. Зельднер – М.: ABF, 1996 – c. 56.

  20. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 15

  21. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 17

  22. Харитонов Е.А., Сафиуллина А.К. Основы программирования для студентов технологического профиля: учебное пособие / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КНИТУ, 2013. – с. 89

  23. Обухова О.В. Информатика: учебное пособие / О.В. Обухова. – Москва: Альтаир-МГАВТ, 2008. – с.82

  24. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 33

  25. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 44

  26. Обухова О.В. Информатика: учебное пособие / О.В. Обухова. – Москва: Альтаир-МГАВТ, 2008. – с.87

  27. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 44

  28. Анеликова Л.А. Алгоритмика в теории и практике / Л.А. Анеликова. – Москва: СОЛОН-ПРЕСС, 2010 – с.29

  29. Анеликова Л.А. Алгоритмика в теории и практике / Л.А. Анеликова. – Москва: СОЛОН-ПРЕСС, 2010 – с.29

  30. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 46

  31. Анеликова Л.А. Алгоритмика в теории и практике / Л.А. Анеликова. – Москва: СОЛОН-ПРЕСС, 2010 – с.40

  32. Харитонов Е.А., Сафиуллина А.К. Основы программирования для студентов технологического профиля: учебное пособие / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КНИТУ, 2013. – с. 119

  33. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 50

  34. Обухова О.В. Информатика: учебное пособие / О.В. Обухова. – Москва: Альтаир-МГАВТ, 2008. – с.90

  35. Обухова О.В. Информатика: учебное пособие / О.В. Обухова. – Москва: Альтаир-МГАВТ, 2008. – с.87

  36. Харитонов Е.А., Сафиуллина А.К. Основы программирования для студентов технологического профиля: учебное пособие / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КНИТУ, 2013. – с. 108

  37. Харитонов Е.А., Сафиуллина А.К. Основы программирования на алгоритмическом языке высокого уровня QBASIC / Е.А. Харитонов, А.К. Сафиуллина. – Казань : Издательство КГТУ, 2008. – с. 53