ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ BASIC

 

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

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

Вот некоторые достоинства BASIC (с точки зрения массового пользователя):

• простота синтаксиса;

• простота организации данных и управляющих структур;

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

 

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

Особым достоинством BASIC вам следует считать возможность работы в режиме интерпретации, который резко упрощает процесс отладки программ: исполнение почти каждой команды можно проверить сразу после написания. В самом деле, вряд ли вы найдете другой язык, программа которого (завершенная программа!) могла бы состоять из единственного оператора. Print «привет»

Чтобы написать и выполнить такую программу на языке С или Pascal, необходимо оформить текст, скомпилировать программу (создать объектный модуль с расширением ,OBJ); отредактировать ее (создать исполняемый модуль с расширением .ЕХЕ); выполнить программу; переключиться на выходной экран, чтобы увидеть результаты.

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

В среде QBASIC для решения той же задачи вы можете просто набрать PRINT "Здравствуй, Мир!" и нажать {Shift+F5}.

Некоторые специалисты выделяют три основных поколения в истории развития языка BASIC, и типичными представителями этих поколений являются:

• GW-BASIC — система программирования, работавшая в режиме интерпретации и входившая в состав устаревших версий MS-DOS;

• QuickBASIC (имеется несколько версий) — самостоятельная система программирования фирмы Microsoft, включающая как интерпретатор, так и компилятор языка;

• Visual BASIC — мощная объектно-ориентированная система программирования (Microsoft), которая применяется как профессионалами при разработке сложных современных приложений, так и пользователями (например, при подготовке макросов для Excel или Word).

Мы будем изучать систему программирования QBASIC, — она входит в состав MS-DOS, начиная с версии 5.0, и обслуживается утилитой QBASIC.ЕХЕ. Эту систему можно считать упрощенной версией автономной системы QuickBASIC.

Система работает в режиме интерпретации, крайне проста в изучении и эксплуатации, не требует значительных вычислительных ресурсов, наконец. — имеется на всех машинах.

С одной стороны, QBASIC можно считать элементом стандартной технологии Microsoft, и освоить могут все — от Детей до стариков; с другой стороны, н QBASIC реализованы многие возможности современных систем, позволяющие при желании создавать вполне профессиональные программы.

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

Среда программирования QBASIC

Объектом обработки QBASIC является текстовый файл "канонического" формата, который содержит исходный текст программы на языке BASIC. После загрузки QBASIC. EXE на экране появляется окно текстового редактора системы, показанное на рис. 3.1.

В этом окне вы проводите все операции с программой — набираете и редактируете текст, сохраняете текст в файле, открываете для работы готовый файл, отлаживаете и выполняете программу и т. д.

Файлу можно присвоить произвольное имя с произвольным расширением, но рекомендуется расширение .BAS,

С помощью пунктов главного меню File, Edit, View, Search вы работаете с исходным текстом программы, с помощью пункта Run — выполняете, а с помощью пункта Debug — отлаживаете программу.

Текстовый редактор QBASIC работает точно так же, как и простой редактор MS-DOS Editor, (основной стандарт редактирования, операции с фрагментами текста). Поэтому мы не повторяем изложение техники редактирования, — добавим только, что для удаления строки, под которой находится курсор, можно нажать клавиши {Ctrl+Y}.

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

 

Общие понятия QBASIC

Команды в языке BASIC

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

Такой файл часто называют исходным текстом программы. Специальная программа (в нашем случае QBASIC.EXE) просматривает исходный текст и, если в нем нет формальных (синтаксических) ошибок, либо исполняет инструкции немедленно (режим интерпретации), либо переводит их в машинную форму и оформляет в виде независимого исполняемого файла с расширением .EXE (режим компиляции).

Инструкции исходной программы называют по-разному: командами, операторами, предложениями, предписаниями, операциями.

В нашем курсе каждую инструкцию BASIC мы называем командой (английский эквивалент — statement).

По функциям, выполняемым в программе, команды условно можно разделить на четыре группы:

1) команды описания (данных, функций и т. п.);

2) команды действия,

3) команды управления ходом выполнения программы;

4) команды ввода и вывода данных.

 

1. Например, команда DEFINT I-K сообщает QBASIC, что переменные, имена которых начинаются с букв I, J и К, принимают целые числовые значения в диапазоне от —32768 до 32767. В команде DATA 5, 9, 18, 24 записано несколько чисел, значения которых в дальнейшем будут присвоены каким-то переменным с помощью команды ввода READ. Команда DEF FNsig(x)=SIN(x*3.14159/180!) описывает функцию, которая в дальнейшем будет вычислять синус угла, заданного в градусах и т. п.

2. По команде действия программа выполняет конкретную операцию (что-то вычисляет, что-то делает). Например, по команде

А=В * C-D

переменной, обозначенной именем А, будет присвоено произведение значений переменных В и С минус значение переменной D. По команде ВЕЕР динамик компьютера издаст короткий "писк" и т. п.

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

4. Команды ввода и вывода позволяют нам вводить данные с клавиатуры или из файла, выводить результаты на дисплей, принтер или в файл. Например, команда

INPUT "Введите коэффициент А = ", а!

предложит вам ввести некое число с клавиатуры. Значение этого числа будет присвоено переменной с именем а', а команда

PRINT a!

выведет то же число на дисплей.

Обратите внимание на некоторую условность нашей классификации: команды ввода и вывода тоже можно считать командами действия.

Команды можно разделить на исполняемые и неисполняемые. Ясно, что команды первой группы — неисполняемые: с их помощью мы просто сообщаем программе, как надо организовать данные и функции.

Алфавит basic.

            Алфавит (набор символов) в себя включает:

            Все латинские строчные и прописные буквы.

            Арабские цифры 0 – 9

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

Суффиксы имен переменных определяют тип данных:

% - целое число

&- длинное тире

! – вещественное число обычной точности

# - вещественное число двойной точности.

$ - строка символов

знаки операций

*- умножение

/ - деление

+ - сложение

·        - вычитание

^ - возведение в степень.

= - знак присваивания и знак отношения

< - меньше чем

> - больше чем

. – десятичная точка

специальные символы

‘ – знак комментария

; - разделитель в операторах PRINT и INPUT

, - разделитель в операторах PRINT и INPUT

: - разделитель команд набранных в одной строке.

 

 

 

 

 

Константы

 

Существует два типа констант: строковые и числовые.

Строковая константа представляет собой последовательность до 255 символов, заключенных в кавычки.

Примеры строковых констант:

"HELLO"

"-25,00.00"

"A+B*200"

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

Существует 5 типов числовых констант:

1) целые константы;

2) константы с фиксированной точкой;

3) константы с плавающей точкой;

4) шестнадцатеричные константы;

5) восьмеричные константы.

Целые константы представляют собой целые числа в диапазоне от -32768 до +32767. Целые константы не могут содержать десятичную точку.

Константы с фиксированной точкой - положительные или отрицательные вещественные числа, т.е. числа с десятичной точкой.

Константы с плавающей точкой имеют экспоненциальную форму. Эти константы состоят из целого или вещественного числа (мантиссы) и буквы E (или D), за которой следует целое число (экспонента). Если необходимо, мантисса и экспонента могут иметь знак. Константы с плавающей точкой имеют диапазон представления от 10-38 до 10+38.

Шестнадцатеричная константа представляется шестнадцатеричным числом с префиксом &H.

Восьмеричная константа представляется восьмеричным числом с префиксом & или &О.

Числовые константы могут быть обычной или двойной точности. Константы обычной точности представляются 7 цифрами, а константы

двойной точности -16 цифрами.

Константой обычной точности является любая числовая константа, которая имеет один из следующих признаков:

- меньше 8 цифр;

- экспоненциальная форма с использованием E;

- заканчивается восклицательным знаком.

Константой двойной точности является любая числовая константа, у которой есть один из следующих признаков:

- больше 7 цифр;

- экспоненциальная форма с использованием D;

- заканчивается символом "#".

Примеры числовых констант:

645 - целая константа;

-1.09E-06 - константа обычной точности;

22.5! - константа обычной точности;

1.09432D -05 - константа двойной точности;

345692811 - константа двойной точности;

&H32F - шестнадцатеричная константа;

&0347 - восьмеричная константа;

&1234 - восьмеричная константа;

Переменные

 

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

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

Имена переменных в Бейсике могут быть любой длины, однако распознавание переменной осуществляется по первым 40 символам. Для обозначения имени переменной можно использовать буквы, цифры и десятичную точку, причем первым символом имени должна быть буква. Кроме того, допустимо использовать специальные символы объявления типа, о которых будет сказано ниже.

Имя переменной не может быть зарезервированным именем. К зарезервированным именам в Бейсике относятся имена директив, операторов, функций и операций.

Переменные могут обозначать либо числовые величины, либо строки. Имя строковой переменной должно заканчиваться символом "$". Символ "$" в данном случае является символом объявления, указывающим на то, что переменная является строковой.

Имена числовых переменных могут обозначать целые числа, числа обычной и двойной точности. Для задания типа числовой переменной используются следующие символы объявления:

% - целая переменная;

! - переменная обычной точности;

# - переменная двойной точности.

По умолчанию числовые переменные имеют представление с обычной точностью.

Примеры имен переменных:

A$ - имя строковой переменной;

PI#- имя переменной двойной точности;

MINIMUM - имя переменной обычной точности;

LIMIT% - имя целой переменной;

ABC - имя переменной обычной точности.

В Бейсике существует и другой способ объявления типа переменной. Для этого используются операторы DEFINT, DEFSTR, DEFSNG и DEFDBL, которые будут описаны ниже.

Для размещения в памяти целой переменной необходимо 2 байта, для переменной обычной точности - 4 байта, а для переменной двойной точности - 8 байт.

Для размещения строковой переменной в памяти необходимо 3 байта плюс количество байт, равное количеству символов в строке.

 

Арифметические операции

 

Арифметические операции в Бейсике имеют порядок старшинства, приведенный в таблице 1.

 

Таблица 1

| Порядок |            |           |

| старшин.| Операция      | Пример         |

| 1 | Возведение в степень           | X ^ Y |

| 2 | Отрицание    | -X      |

| 3 | Умножение и деление         | X * Y X / Y   |

| 4 | Целочисленное деление      | X \ Y  |

| 5 | Модуль числа            | X MOD Y      |

| 6 | Сложение и вычитание       | X + Y X - Y   |

|     Для изменения порядка выполнения операций используются скобки.

Операции внутри скобок выполняются первыми в порядке старшинства.

При выполнении операции целочисленного деления операнды округляются до целых значений (они должны быть в пределах от -32768 до

32767) перед выполнением деления и частное усекается до целого.

Примеры:

10 \ 4 = 2

23.68 \ 6.99 = 3

Результатом операции модуля числа является остаток целочисленного деления.

Примеры:

10 MOD 4 = 2

25.68 MOD 6.99 = 5

Если во время вычисления выражения происходит деление на ноль, выдается сообщение об ошибке "Division by zero", результату деления присваивается максимально возможное число со знаком числителя и выполнение программы продолжается.

Если ноль возводится в отрицательную степень, выдается сообщение об ошибке "Division by zero", результату присваивается максимально возможное положительное число и выполнение программы продолжается.

При возникновении переполнения выдается сообщение об ошибке "Overflow", результату присваивается максимально возможное число с соответствующим знаком и выполнение продолжается.

 

 

 

 

Функции.

 

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

 

Встроенные функции.

 

            Встроенные функции делят на:

1.      математические

2.      функции преобразования числовых значений.

3.      Функции преобразования «символы- число» и «число – символы»

4.      Функции работы со строками символов

 

Математические функции.

 

            Abs (арифметическое выражение) возвращает модуль значения арифметическое выражение. Например:

PRINT ABS (48.2 – 100!) на экране 51.8

            Sgn (арифм. Выражение) пусть значение арфм. Выражения равно Х. Функция Sgn возвращает 1 если Х > 0, 0 если Х=0, -1 если X<0. Например:

            PRINT SGN( -25.2) на экране : -1

           

ATN (выражение) возвращает арктангенс значения выражения ( угол, выраженный в радианах)

            COS (угол)

            SIN (угол)

            TAN (угол)

            Например:

            CONST PI = 3.14

            PRINT SIN (PI/2) на экране : 1.000…

           

EXP (выражение) возвращает экспоненту значения выражения ex. Например

            PRINT EXP(1) на экране 2.71828

           

LOG (выражение) возвращает натуральный логарифм. На пример:

            PRINT LOG (1) на экране 0

           

SQR (ВЫРАЖЕНИЕ) возвращает корень квадратный из значения выражения. Например:

            PRINT SQR (1.44) на экране 1.2

           

FIX (выражение) возвращает целую часть выражения

INT (выражение) возвращает наибольшее целое

CINT (выражение) округляет выражение по правилам арифметики.

Например:

            PRINT FIX(24.3); INT(24.3); CINT(24.3) на экране 24 24 24