Встроенный справочник QBASIC
{Shift+F1}- на экране появится окно системы помощи QBASIC. Для перемещения по пунктам кадра используют клавиши {Tab}, стрелки управления курсором, {PgUp}, {PgDn}.
Если в окне текстового редактора подвести курсор под какое-либо служебное слово и нажать{F1}, на экране появится раздел алфавитного указателя, поясняющий это слово.
Пример 1
CLS
INPUT”Введите фамилию”;F$
INPUT”Введите имя”;I$
RS$=F$+” “+I$
PRINT”Уважаемый (ая) ”;RS$;” ,я думаю, что мы с вами сработаемся”
END
¨ Набрать текст программы;
¨ Сохранить его на диск с именем prog1;
¨ Запустить программу на выполнение;
¨ Получить справку по оператору INPUT.
Пример 2
SCREEN 9
Color 1,5
Circle(200,180),100,6
Paint Step(0,0),7,6
Line(20,30)-(70,70),4,BF
¨ Набрать текст программы;
¨ Сохранить его на диск с именем prog2;
¨ Запустить программу на выполнение;
¨ Скопировать 3-ю и 4-ю строку и вставить после 5-ой
¨ Внести изменение: вместо значения 200 поставить 400
¨ Запустить программу на выполнение
Формальные сведения о QBASIC
Алфавит QBASIC
Алфавит языка BASIC включает:
¨ Все латинские прописные и строчные буквы;
¨ Арабские цифры 0-9;
¨ Знаки арифметических операций:^; *; /; +; -; \; MOD.
¨ Знаки операций отношения: =; >; <; >=; <=; <>.
¨ Разделители и прочие символы:
. – точка;
, - запятая;
; - точка с запятой;
: - двоеточие;
_ - пробел;
! – признак вещественной величины;
# - признак вещественной величины двойной точности;
% - признак целой величины;
& - признак длинной целой величины
$ - признак текстовой величины;
() – круглые скобки;
“ – кавычки;
‘ – апостроф.
Используются также буквы русского алфавита, но в текстовых константах или комментариях.
Данные в языке QBASIC
Помните! Разделителем целой и дробной частей является точка.
Например:
102! – константа, числовая, вещественная, обычной точности.
95966.46789# - константа, числовая, вещественная, двойной точности.
4326% - константа, числовая, целая.
“План на неделю” – константа текстовая. Заключается в кавычки.
Переменные
Переменная – это величина, значение которой может изменяться в процессе выполнения программы, обозначается именем (идентификатором).
Имя переменной – это произвольный набор символов, который может содержать о 1 до 40 символов. Первый символ должен быть латинской буквой, а остальные – латинские буквы или цифры. Регистр букв не имеет значения.
Примеры имен: A; dN; GodRozd; k1%; dlina!
Тип переменной BASIC различает пять типов данных. Когда записано с=a+b+2, BASIC должен знать, какой тип чисел имеется в виду. BASIC распознает тип переменной по суффиксу, т.е. по последнему символу в имени переменной.
Применение суффиксов не всегда удобно: они загромождают текст, да и ошибиться в них легко.
Поэтому в BASIC предусмотрен другой способ описания типа переменной.
Общий формат команды описания типа:
DEFINT X-X(целые числа, INTeger)
DEFLNG X-X(длинные целые числа, LoNG)
DEFSNG X-X(вещественные числа обычной точности, SiNGle)
DEFDBL X-X(вещественные числа двойной точности, DouBLe)
DEFSTR X-X(строки символов, STRing)
Комбинация X-X - диапазон букв. Вместо диапазона можно указать одну букву.
Например:
DEFLNG A-D, все переменные, имена которых начинаются с букв, лежащих в указанном диапазоне, т.е. с A до D, будут считаться длинными целыми (aRc, BT, DLINA и т.п.)
DEFSTR STR, переменная STR- строка символов.
Константы
Константы (числовые или строковые) не меняются в ходе исполнения программы. Значения констант записываются явно, числом или строкой символов. Например:
A%=12
Z$=”План на неделю”
n!=-54.2
Существует специальный оператор для описания констант.
Формат описания констант:
CONSTимя переменной=константа
Например:
CONST F2=60, n%=12
Если переменная описана как константа с помощью CONST, QBASIC не позволит случайно изменить ее значение.
Пример:
CLS
DEFINT A-C
DEFLNG R
CONST G = 5
INPUT "Введите три значения"; A, B, C
R = A ^ 2 + B * C + G
PRINT "R="; R
END
Задание:
1. Набрать программу.
2. Запустить на выполнение.
3. В третьей строке внести изменение - DEF LNG заменить на DEFSNG.
4. В 6-ой строке внести изменение - * заменить на / .
Выражения в языке QBASIC
В языке QBASIC используются:
• Арифметические выражения;
• Условные выражения;
• Логические выражения;
• Символьные выражения.
Арифметические выражения
Операндами арифметического выражения могут быть переменные, константы, функции и другие арифметические выражения. В арифметических выражениях используются следующие арифметические операции.
Знак операции | Название | Пример |
^ | возведение в степень | X^Y |
* | умножение | X*Y |
/ | деление | X/Y |
+ | сложение | X+Y |
- | вычитание | X-Y |
\ | деление нацело | X\Y; 10\4 (ответ-2) |
MOD | вычисление остатка от целочисленного деления | X MOD Y 10 MOD 3 (ответ-1) |
Операции расположены в порядке уменьшения приоритета. Для изменения приоритета используются круглые скобки.
|
х2 – х + 2 на языке QBASIC ( х ^ 2 – х + 2 ) / (х ^ 4+5*х^2+40)
х4+5х2+40
Условные выражения
Операндами условного выражения могут быть переменные, числа, функции, строки символов. Знаками отношения в условных выражениях служат:
= - равно;
>- больше;
< - меньше;
>= - больше или равно;
<= - меньше или равно;
<>- не равно.
Условное выражение принимает булево (логическое) значение: TRUE или FALSE.
Условные выражения широко используются в операциях ветвления и в организации циклов. Например:
IF k>0 THEN …
WHILE I=0 …
Логические выражения
Операндами логического выражения являются условные выражения, которые соединяются между собой знаками логических операций AND ("И", конъюнкция), OR ("ИЛИ", дизъюнкция), NOT (отрицание), например:
a+b>c AND d<>8
NOT(a>b)
Логическое выражение принимает булево (логическое) значение: TRUE или FALSE.
Частный случай логического выражения - условное выражение.
Так же, как и условные выражения, логические выражения применяются в операциях ветвления и в организации циклов, например:
IF d<>0 AND z$="V" THEN…
WHILE d=0 OR k>40…
Символьные выражения
Операндами символьных выражений являются строки символов. Для этих выражений определена лишь одна операция - конкатенация (соединение) строк. Знак операции - "+", а результат операции - новая строка символов. Например, "Оболочка "+"Windows" результата - " Оболочка Windows"
Встроенные функции
Функция | Назначение (математическая запись) | Пример/результат |
Математические функции | ||
ABS(арифм_выражение) | Модуль значения арифм_выражения(|X|) | ABS(-3) / 3 |
ATN(арифм_выражение) | арктангенс значения арифм_выражения ( arctgx ) | |
COS(угол) | Косинус аргумента (угол в радианах) ( cosx ) | |
SIN(угол) | Синус аргумента (угол в радианах) ( sinx ) | SIN(PI/2) / 1 |
TAN(угол) | Тангенс аргумента (угол в радианах) ( tgx ) | |
EXP(арифм_выражение) | Экспоненту значения арифм_выражения (ex ) | |
LOG(арифм_выражение) | Натуральный логарифм ( lnx ) | |
SQR(арифм_выражение) | Корень квадратный из значения арифм_выражения ( ÖX ) | SQR(1.44) / 1.2 |
Функции преобразования числовых значений | ||
FIX(арифм_выражение) | Целая часть арифм_выражения | FIX(24.3) / 24 FIX(-24.8) / -24 |
INT(арифм_выражение) | Наибольшее целое, которое меньше или Равно значению арифм_выражения | INT(24.3) / 24 INT(-24,3) / -25 |
CINT(арифм_выражение) | Округляет значение арифм_выражения по правилам арифметики | CINT(24.3) / 24 CINT(-24,8) / -25 CINT(-24,3) / -24 |
Например: Записать выражения на языке программирования QBASIC
Записать выражения на языке программирования QBASIC
|
½x½+ sin x3
√|х-1| • ³√| у |
|
|
ℓ -x-2 + (x²+4)
|
х4
2 + sin2 Z
Домашнее задание:
1)
B = х ( arctg2 Z – l – (x + 3) )
|
Команды в языке QBASIC
Программа, написанная на любом языке программирования, представляет собой набор инструкций, описывающий процесс выполнения алгоритма задачи. Инструкции записываются по определенным правилам, предусмотренным требованиями языка. Инструкции исходной программы называются командами или операторами.
Оператор комментариев
Любую команду в программе можно снабдить поясняющим текстом - комментарием. Комментарии облегчают понимание текста программы. Комментарии можно записать двумя способами:
a) REM произвольный текст
b) ' произвольный текст
На ход вычислений команда REM никакого влияния не оказывает.
Например:
REM вычисление функции
' вычисление функции
Оператор присваивания
Формат:
Имя переменной = выражение
Эта команда выполняется в два шага:
1) вычисляется значение арифметического или символьного выражения, указанного в правой части команды;
2) это значение присваивается переменной, записанной в левой части команды.
Например:
A = Y+X/Z²
Оператор ввода данных
Динамический ввод данных
Формат:
INPUT "Сообщение", список переменных
При выполнении команды INPUT вычисления приостанавливаются и на экран дисплея выводится поясняющее сообщение, если вы его написали. В списке переменных через запятую указываются имена переменных, которые принимают вводимые данные.
Например:
Команда: INPUT"Введите коэффициент и код режима",B,KR$
Экран: Введите коэффициент и код режима
Курсор устанавливается следом за последним символом выведенного текста, и программа ожидает ввода данных. Вы должны через запятую набрать все данные и нажать клавишу {Enter}.
Если строка символов замкнута не запятой, а точкой с запятой, INPUT выводит следом за текстом символ "?" и устанавливает курсор через пробел после "?".
Например:
Команда: INPUT"Год рождения";GR$
Экран: Год рождения?_
Сообщение в INPUT можно опустить. Тогда на экран будет просто выдан знак вопроса.
Тип и количество вводимых данных должны соответствовать типу и количеству описанных переменных.
Например:
Команда: INPUT"Введите № школы, класс, фамилию";N,K,F$
Экран: Введите № школы, класс, фамилию? 2,10,Петров
Виды ошибок:
1. Тип данных не совпадает с типом переменных.
2. Ввели слишком много данных.
Оператор вывода данных
Формат:
PRINT список_выражений
В поле операндов через запятую или через точку с запятой перечисляются выражения, значения которых надо вывести. Значения данных выводятся с текущей позиции курсора.
1. Плотный вывод - разделитель ";"
Например:
a) Команда: PRINT"Мне";K;"лет"
Экран: Мне 16 лет (если К=16)
Перед значением числа выводится либо пробел, либо знак "минус".
b) Команда: PRINT"Пра";"бабушка"
Экран: Прабабушка
2. Зональный вывод - разделитель ","
Если указана запятая, QBASIC выводит данные по зонам, каждая зона - 14 позиций.
Например:
Команда: PRINT"Мне",K,"лет"
Экран: Мне 16 лет (если К=16)
3. Вывод в разных строках
Например:
Команда: PRINT "Зарплата"
PRINT ZP;"руб"
Экран: Зарплата
2000 руб
Пример. Даны катет прямоугольного треугольника и прилежащий угол. Определить площадь треугольника и гипотенузу. Длину и угол в радианах ввести динамически. Результат вычисления вывести в разных зонах.
INPUT"Введите катет прямоугольного треугольника и прилежащий угол";A,U
C=A/COS(U) 'Вычисление гипотенузы
B=SQR(C^2-A^2) 'Вычисление катета
S= 0.5*B*A 'Вычисление площади треугольника
PRINT"C=";C,"S=";S
End
Для самостоятельного решения:
1. Кольцо задано радиусами двух окружностей. Вычислить площадь кольца. Данные задать динамически. Результат вычисления вывести в разных строках.
2. Даны числа x, y, z. Вычислить s=x2+y/(z2+y2/(x+y)3). Данные ввести динамически.
Статический ввод данных
Если программа постоянно работает с некоторым набором числовых или символьных констант, то можно объявить такой набор блоком данных:
DATAсписок констант
В списке констант через запятую указываются значения констант, например:
10 DATA 5,25,19.6,30,12,"ABC"
20 DATA "BASIC","Pascal",25.9
В программе можно записать произвольное число операторов DATA. В блок данных по порядку включаются все константы и в памяти создаётся специальный указатель блока данных. Во время работы программы этот указатель содержит порядковый номер константы в блоке данных. При запуске программы указатель показывает на первую константу из блока данных.
Для присвоения значений констант из блока данных переменным используется оператор READ:
READсписок переменных
В списке переменных через запятую указываются имена переменных, которым присваиваются значения констант из блока данных. Типы переменных в списке READ должны соответствовать типам констант из блока данных. Например:
READ a%, m%, t
Переменным a%, m%, t присвоятся значения 5, 25 и 19.6. Указатель перемещается на 4-ую константу. Оператор
READ c, sc%, a$
Присвоит переменным c, sc%, a$ значения 30, 12, "ABC" и указатель переместится на "BASIC" и т.д.
Как несколько раз прочитать одни и те же данные из блока данных? Для восстановления указателя блока данных используется оператор RESTORE:
RESTOREномер строки или метка
где номер строки должен указывать на оператор DATA.
Если не указан номер строки, следующий после RESTORE, READ начнет чтение с первой константы блока данных. Например:
RESTORE
READ vk%, s%
RESTORE 20
READ z1$, z2$
vk%, s% присвоятся значения 5 и 25, а переменным z1$, z2$ - значения "BASIC" и "Pascal".
Блок данных удобен в тех случаях, когда несколько раз используется одна и та же последовательность констант.
Пример. Составить программу нахождения высоты равнобедренной трапеции, у которой основания 5м и 11м, а боковая сторона 4м. Данные ввести статически.
DATA 5,11,4
READ BC,AD,AB
AE=(AD-BC)/2 'Основание треугольника
HT=SQR(AB^2-AE^2)
PRINT"Высота трапеции =";HT
END