Файл: Основы программирования на языке QBasic.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 102

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Алгоритм – это определенная, формальная, общепонятная конечная последовательность предписаний (указаний, правил, этапов), выполняя которые шаг за шагом, можно прийти от варьируемых исходных данных к решению задачи[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 (объявление переменной с указанием типа или массива). Пример объявления переменной: