Программирование и не только

Объявление


!!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование и не только » Basic » QBASIC - общие вопросы


QBASIC - общие вопросы

Сообщений 1 страница 11 из 11

1

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

Стандартные функции QBASIC

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

Правила вычисления арифметических выражений:
а) выполняются все операции внутри скобок, начиная с самых внутренних;
б) порядок вычисления внутри скобок определяется приоритетом операции (значение функции; возведение в степень; умножение - деление; сложение - вычитание);
в) при наличии нескольких операций одного приоритета вычисления выполняются последовательно слева направо.
назад.
Программа на QBASIC состоит из последовательности операторов. Оператор является основным элементом языка и описывает действия, которые необходимо выполнить для реализации алгоритма решения задачи. Он содержит служебное слово (имя оператора) и параметры.
Операторы записываются в строки. Нумерация строк в QBASIC не обязательна. На одной строке при необходимости может быть несколько операторов, тогда она разделяется двоеточием " : " .
Программа линейного алгоритма представляет последовательность операторов, каждый из которых выполняется один раз в порядке его следования.
Служит для присваивания переменным тех или иных значений в соответствии с алгоритмом задачи. В QBASIC оператор присваивания - " = ".
Пример:
A=35; F=3.4; L=F-1; X=X+1.
назад
STOP и END - служат для прекращения выполнения программы. STOP - логическое завершение программы; может стоять в любом месте программы и их может быть несколько. END - физическое завершение; стоит в самом конце программы.
Операторы STOP и END в программе на QBASIC могут отсутствовать.
Для ввода данных в память машины в диалоговом режиме используется оператор INPUT.

INPUT <СПИСОК ВВОДА>

При его выполнении на экране печатается "?" и машина ожидает ввода данных.
Пример:
1) INPUT A, B, C
? 2, 3, 4
2) INPUT "Введите значения A, B, C" A, B, C
Введите значения A, B, C ? 2, 3, 4

3.4.2. Операторы ввода READ И DATA

Когда в программе много исходных данных, которые не подлежат частой смене, или программа уже отлажена для ввода исходных данных, используют оператор READ. Числовые значения вводимых переменных помещаются в списке оператора DATA. Оператор DATA является неисполнимым оператором. Количество операторов DATA и READ может быть различным. Главное, чтобы общее количество переменных во всех операторах READ не превышало суммарное число значений в операторах DATA.
Пример:
. . . . . . . . . .
DATA 1, 2, 3, 4
. . . . . . . . . .
READ A, B, C
. . . . . . . . .
DATA 5, 6
. . . . . . . . . .
READ D, I, F
Числовые значения из списка DATA могут использоваться повторно и присваиваться другим переменным, если в программе поместить оператор RESTORE.
Пример:
DATA 5, 3
READ A, B
RESTORE
READ C, D
3.4.3. Оператор печати PRINT

Предназначен для вывода числовых значений и текста на экран или принтер.
Оператор PRINT может содержать числа, переменные, выражения и тексты, заключённые в кавычки. Оператор PRINT без списка вызывает печать пустой строки.
Пример:
A = 3
B = -10
PRINT 1; A, 2; B
PRINT "Сумма A+B = "; A+B
";" - обеспечивает вывод разделённых значений через один пробел (знак "+" не печатается);
"," - обозначает конец зоны из 14 позиций и следующее выводимое значение будет напечатано в начале следующей зоны.
Пример:
PRINT B; A; A+B, A*B

-10_ _ 3_ -7_ _ _ _ _-30

Каждый оператор PRINT осуществляет печать с новой строки. Однако, если в конце списка вывода есть "," или ";", то следующий оператор будет продолжать вывод на той же строке в формате, соответствующем разделителю.
3.4.4. Оператор REM или '

Используется для пояснения по тексту программы.
Пример:
1)REM Программа линейного алгоритма
2) ' Программа линейного алгоритма
3.5. Программирование разветвляющихся алгоритмов

В процессе решения большинства задач возникает необходимость в зависимости от выполнения некоторого условия производить те или другие действия, например, вести вычисления либо по одним, либо по другим формулам.
Вычислительный процесс, который в зависимости от выполнения определённых условий реализуется по одному из нескольких заранее предусмотренных направлений, называется разветвляющимся. Алгоритм такого вычислительного процесса называется алгоритмом разветвляющейся структуры. Каждое отдельное направление называется ветвью. Выбор ветви осуществляется в результате проверки некоторого логического условия, определяющего свойства исходных данных или промежуточных результатов.
Безусловный переход организуется оператором
< GOTO N>
N - метка, на которую осуществляется переход.
Пример:
. . . . . . .
GOTO 5
. . . . . . .
5: A= A+B
3.5.2. Условный оператор

Условный оператор предназначен для изменения порядка выполнения операторов после проверки некоторого условия

При выполнении условия, следующего за оператором IF, выполняется последовательность операторов S, в противном случае - последовательность S1 (при отсутствии ELSE и не выполнении условия управление передаётся за следующую после IF строку). При записи условия могут использоваться служебные слова, показывающие некоторое логическое соотношение между условиями (AND - и; OR - или)
Примеры:
1) INPUT A, B
IF A<=B THEN X=A ELSE X=B
PRINT X
2) INPUT A, B
IF A>=B THEN X=A: GOTO 1
X=B
1: PRINT X
3) INPUT A, B, C
IF A=B AND B=C THEN Y=1 ELSE Y=2
PRINT Y
3.6. Программирование циклических алгоритмов

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

FOR V=A1 TO A2 STEP A3
операторы тела цикла

NEXT V

FOR - для; TO - до; STEP - шаг; NEXT - следующий; V - имя управляемой переменной или параметра цикла; A1, A2, A3 - выражения, определяющие соответственно начальное, конечное значения и шаг параметра цикла (значение шага по умолчанию =1).
Такая структура предписывает выполнить все операторы, расположенные между операторами FOR и NEXT, для всех значений параметра цикла V, изменяющихся от начального A1 до конечного A2 с шагом A3. Конструкция STEP A3 может быть опущена, если A3=1.

Пример:
X=1
FOR I=1 TO 10
X=X+1
PRINT X
NEXT I

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

Пример:
X=1
FOR I=0 TO 1 STEP 0.1
FOR J=1 TO 3
X=X+I*J
PRINT X
NEXT J
NEXT I

Пример:
Рассчитать значения функции на диапазоне значений с шагом h.
Программа:
INPUT "Введите начальное, конечное значения Х и шаг"; Х0, ХК, H
FOR X=X0 TO XK STEP H
IF X<0 THEN PRINT "Для Х=";Х;" значение У не существует":
GOTO 1
PRINT "Для Х=";X;" значение У="; SQR(X)
1: NEXT X

0

2

3.7. Использование массивов

Многие задачи, которые решаются на компьютерах, связаны с обработкой больших объёмов информации, представляющей совокупность данных, объединённых единым математическим содержанием или связанных между собой по смыслу. Примером таких организованных совокупностей данных являются координаты, задающие положение точки в пространстве, матрица коэффициентов, определяющая систему линейных уравнений, значения некоторой функции в произвольных точках и т. д. Такие данные удобно представлять в виде линейных или прямоугольных таблиц.
В линейной таблице каждому её элементу соответствует порядковый номер. Для элемента прямоугольной таблицы должны быть указаны два номера: номер по вертикали (номер строки) и номер по горизонтали (номер столбца). В математике данные табличные величины называют соответственно векторами и матрицами.
В программе для представления таких данных используются массивы. Массив - упорядоченная совокупность однотипных данных, с каждым из которых связан упорядоченный набор целых чисел, называемых индексами. Массив характеризуется именем, размерностью и размером.
3.7.1. Описание массива

В программе для каждого массива должны быть указаны его параметры: имя, размерность, размер. Это необходимо для резервирования объёма памяти для хранения числовых значений.
Оператор описания массивов:
DIM V1(I1), V2(I2,J2), . . . . . . . , VK(IK,JK)
V1, V2, . . . . . , - имена массивов;
I1, . . . , IK; J2, . . . ,JK - верхние границы индексов, представляющие собой положительные целые константы.
Пример: DIM A(9), B1(2,10)
Оператор DIM может быть записан в любом месте программы до первого оператора, использующего данный массив.
При обращении к массиву в программе происходит обращение к конкретному элементу:
A(2); A(I); B(2,4); B(2,10); B(I,J)
В качестве индексов можно использовать константы, переменные, арифметические выражения:
Q(3*A+B,C(I) - 2)
Число индексов определяет размерность массива и должно соответствовать размерности данного массива, указанной при его описании.
Текущий индекс массива не может превышать значения размера массива, указанного при описании:
DIM A(10,2)
A(8,1)=1
Таким образом, для обращения к конкретному элементу массива, необходимо указать имя массива и значения индексов.
Нумерация в массивах идёт с 0. По умолчанию элементы массива =0.
- последовательный ввод:

DIM C(3)
DATA 1, 2, 3, 4
READ C(0), C(1), C(2), C(3)
- ввод циклом:
DIM A(9)
FOR I=1 TO 9
READ A(I)
NEXT I
DATA 1, 2, 3, 4, 5, 6, 7, 8, 9

- вывод вектора и матрицы:
DIM A(9)   DIM A(3,3)
. . . . . . . . . . .   . . . . . . . . . . .
FOR I=1 TO 9 } FOR I=1TO 3
PRINT A(I) } в столбец FOR J=1 TO 9
NEXT I } PRINT A(I,J)
FOR J=1 TO 9 ] NEXT J
PRINT A(J); ] в строку PRINT
NEXT J ] NEXT I

Значения размеров массива могут задаваться с клавиатуры:
INPUT A, B
DIM Q(A, B)
3.8. Использование подпрограмм и функций
3.8.1. Определение нестандартных функций

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

DEF FNa(x)=E

где DEF - определить;
FNa - имя функции, состоящее из обязательных букв FN и произвольных a, позволяющих различать несколько заданных функций;
x - формальные параметры (переменные);
Е - арифметическое выражение, зависящее от параметров а

Пример:
DFF FNA(B)=SIN(B)* COS(B)
Имена переменных, входящих в состав выражения Е, но не являющихся формальными аргументами, должны совпадать с именами, используемыми в программе и должны быть определены до обращения к данной функции.
QBASIC позволяет определить нестандартные функции с использованием верхнего меню:
- Alt ---> Редактирование ---> Новая FUNCTION . . .
- запрашивается имя новой функции a
- появляется окно для создания новой функции с именем a

FUNCTION a
END FUNCTION

В данном окне производится создание функции "a" как в обычном редакторе QBASIC. Вводятся необходимые формальные параметры выражения для определения тех действий, которые функция должна осуществить. После определения функции необходимо войти в верхнее меню:
- Alt ---> Просмотр ---> SUBs. . . --->
- выбрать имя своего файла, в который хотите вернуться. При следующем сохранении вашего файла в нём появится строчка:

DECLARE FUNCTION a( ),

говорящая о том, что в данном файле есть функция a с параметрами, указанными в скобках. Для внесения изменений в функцию необходимо
- Alt ---> Просмотр ---> SUBs. . . ---> имя функции.
3.8.2. Обращение к нестандартной функции

К функции, описанной первым способом, обращаются:

FNa(b)

b - фактический аргумент (константа, арифметическое выражение, указатель функции):

PRINT FNa(5), FNbb(c), FNbb(5+b*c)

При обращении к функции, описанной вторым способом, буквы FN не используются:

PRINT a(5), bb(c), bb(5+b*c)

Пример:
Создание функции для расчета десятичного логарифма Lg(x) = Ln(x) / Ln(10)
3.8.3. Понятие подпрограммы

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

GOSUB n

- служит для передачи управления на подпрограмму; n - метка или номер первой строки подпрограммы.
Оператор выхода из подпрограммы:

RETURN

- служит для передачи управления оператору, расположенному сразу за оператором GOSUB

Пример: Вычислить квадраты целых чисел от 1 до 20
FOR I=1 TO 20
GOSUB S1
NEXT I
END
S1:
PRINT I, I*I
RETURN
QBASIC позволяет определять подпрограммы с использованием верхнего меню аналогично нестандартным функциям:
- Alt ---> Редактирование ---> Новая SUB . . . --->
- запрашивается имя новой подпрограммы
- появляется окно для создания новой подпрограммы с указанным именем

SUBa( )
END SUB

В скобках указываются формальные параметры. В данном окне производится создание подпрограммы a. Возвращение в основную программу осуществляется аналогично п. 3.8.1. При таком создании подпрограммы обращение к ней осуществляется с использованием оператора:

CALL a( )

a - имя подпрограммы; в скобках указываются конкретные значения формальных параметров. При следующем сохранении файла программы в нём появится строка, определяющая наличие в файле подпрограммы a( ):

DECLARE SUB a( )
3.9. Работа с файлами

QBASIC позволяет организовывать ввод данных не только с клавиатуры или из оператора DATA, но и из отдельных файлов. Это особенно широко используется при больших объёмах вводимой информации, которая имеет заданную структуру. Файл данных - это определённым образом организованная последовательность данных, объединённая одним или несколькими смысловыми признаками и общим названием (имя файла). Кроме того, результаты выполнения программы также могут быть выведены в отдельный файл результатов.
Для организации работы с файлами используется следующий оператор:

OPEN файл $ [FOR режим] AS [#]номер файла%

- файл $ - имя файла, включающего путь к нему (строковая переменная)
- режим - указывает режим использования файла;
APPEND - файл должен быть открыт для последовательного вывода, и устанавливает указатель файла в конец файла. В этом случае оператор PRINT дополняет существующий файл.
INPUT - файл открыт для последовательного ввода информации из него;
OUTPUT - файл открыт для последовательного вывода информации.
- номер файла - номер, идентифицирующий открытый файл.
Для закрытия одного или нескольких файлов используется оператор

CLOSE a

a - номер файла, который надо закрыть. Если он не указан, то закрываются все ранее открытые файлы.
Пример: Считать значения матрицы а(3,3) из файла 1.txt; Возвести их в квадрат и вывести в файл rez;
INPUT"",N$
OPEN N$ FOR INPUT AS#1
DIM A(3,3)
FOR I=1 TO 3
FOR J=1 TO 3
INPUT #1, A(I,J)
NEXT J, I
CLOSE
OPEN "REZ" FOR OUTPUT AS#1
FOR I=1 TO 3
FOR J=1 TO 3
PRINT #1, A(I, J)^2;
NEXT J
PRINT #1,
NEXT I
CLOSE 1.TXT
1 2 3
4 5 6
7 8 9
REZ
1 4 9
16 25 36
49 64 81

0

3

3.10. Работа с графической информацией

Программные средства языка QBASIC позволяют работать не только с текстовой, но и с графической информацией. Это обеспечивается языком графики, набором операторов и функций. Графические программные средства позволяют создавать на экране дисплея сложные изображения с различной глубиной свечения точек экрана, а также выводить одновременно с графической текстовую информацию.
Элементарным изобразительным средством графического экрана является чёрно-белая или цветная точка разной степени свечения. Местоположение всех точек на экране образует прямоугольную систему координат из горизонтальных строк (Х) и вертикальных колонок (Y).
Количество точек, которое может быть размещено на экране, зависит от разрешающей способности (средней или высокой). Разрешающая способность устанавливается оператором SCREEN. При средней разрешающей способности горизонтальная строка содержит 320 точек, вертикальная - 200 точек. Точки нумеруются слева направо от х=0 до х=319 и сверху вниз от у=0 до у=199. При высокой разрешающей способности горизонтальная строка содержит 640 точек, вертикальная - 200.
Местоположение каждой точки задаётся её координатой. Имеются две формы задания координат точки: абсолютная и относительная. Абсолютная форма задания координаты точки имеет вид (х,у). Например, координата точки, которая находится в левом верхнем углу экрана, равна (0,0); координата точки в правом верхнем углу при средней разрешающей способности экрана дисплея равна (319,0); координата точки в левом нижнем углу при средней и высокой разрешающей способности равна (0,199).
Относительная форма предполагает задание координат относительно последней выведенной точки, осуществляемое с помощью операнда STEP(X1, Y1), где X1 и Y1 - значения, которые прибавляются к координатам последней выведенной точки. Значения X1 и Y1 могут быть положительными и отрицательными.
3.10.1. Оператор SCREEN

При загрузке системы QBASIC дисплей устанавливается системой в текстовый режим работы. Для задания графического режима используется оператор SCREEN, который устанавливает режим и параметры работы дисплея:

SCREEN режим

режим - целое выражение, устанавливающее режим экрана:
SCREEN 0 - текстовый режим
SCREEN 1 - 320х200 графический режим
SCREEN 2 - 640х200 графический режим
3.10.2. Оператор COLOR

Этот оператор устанавливает экранные цвета.
Для режима SCREEN 1:

COLOR[фон] [,палитра]

Фон - число, устанавливающее фоновый цвет экрана.
Палитра - число (0 или 1), указывающее какую палитру использовать.
Если операнды опущены, то используются значения, установленные предыдущим оператором COLOR. Конкретный цвет изображения (номер цвета в палитре) указывается в операторах обработки графической информации.
3.10.3. Оператор CLS

Это оператор, очищающий экран дисплея.

CLS[{0/1/2}]

CLS - очищает либо текстовую, либо графическую области просмотра;
CLS 0 - очищает и текстовый, и графический экраны;
CLS 1 - очищает только графический экран, если он активен;
CLS 2 - очищает текстовую область просмотра.
3.10.4. Оператор PSET

Это оператор, рисующий точку на экране.

PSET[STEP](X,Y)[, цвет]

X,Y - координаты точки;
STEP - указывает, что координаты берутся как смещение относительно текущего положения графического курсора;
цвет - атрибут цвета точки. Если опущен, используется текущий основной цвет.
Это оператор, рисующий точку на экране.

PRESET[STEP](X,Y)[, цвет]

X,Y - координаты точки;
STEP - указывает, что координаты берутся как смещение относительно текущего положения графического курсора
цвет - атрибут цвета точки. Если опущен, используется фоновый цвет.
Операторы PSET и PRESET отличаются тем, что по умолчанию второго операнда цвет точки будет разным. Эти операторы позволяют эффективно управлять видимостью точки. Если координаты точки находятся вне экрана, то никаких действий не производится и сообщений об ошибках не выдаётся.
Пример:
SCREEN 1
FOR I=0 TO 320
PSET (I,100)
PRESET (I-160,100)
NEXT I
3.10.6. Оператор LINE

Это графический оператор, рисующий линию или прямоугольник.

LINE [[STEP](X1,Y1)-[STEP](X2,Y2)[,[цвет][,[B[F]][,[стиль]]]

X1,Y1 - координаты начала линии;
X2,Y2 - координаты конца линии;
STEP - указывает на относительные координаты, т.е. координаты вычисляются как смещение относительно последней точки;
цвет - номер цвета линии. Если заданы опции B или BF, прямоугольник рисуется этим цветом;
B - опция, рисующая прямоугольник с координатами левого верхнего угла X1,Y1 и нижнего правого угла X2,Y2;
BF - опция, рисующая закрашенным указанным цветом прямоугольник;
стиль - используется для изображения прерывистых и пунктирных линий.
Пример:
SCREEN 1
LINE (110,70)-(190,120),B
LINE (1,1)-(320,200)
3.10.7. Оператор CIRCLE

Это графический оператор, рисующий эллипс или окружность с определённым центром и радиусом.

CIRCLE [STEP](X,Y),радиус[,[цвет][,[начало][,[ конец][,коэффициент]]]]

X,Y - экранные координаты центра окружности или эллипса;
радиус - радиус круга или эллипса в текущей координатной системе;
STEP - указывает, что X и Y - относительный центр от текущей позиции курсора;
начало, конец - используются для рисования дуг. Их значения находятся в пределах от -2*PI до 2*PI радиан, где PI=3,141593. По умолчанию, началo=0, конец=2*PI. Если началo и конец меньше 0, CIRCLE рисует радиус до этой точки дуги и считает началo и конец больше 0. Начальный угол должен быть меньше конечного. Если указан конец без начала, дуга рисуется от 2*PI до конца. Если указано начало без конца, дуга рисуется от начала до нуля;
цвет - атрибут цвета. По умолчанию - основной цвет;
коэффициент - коэффициент сжатия - отношение радиуса Y к радиусу X. По умолчанию этот коэффициент принимается для рисования окружности. Можно опустить аргументы в середине оператора, но обязательно включить запятые.
Пример:
SCREEN 2
CIRCLE (320,100), 200
CIRCLE STEP (0,0), 100, ,0, 3.1415, .7
3.10.8. Оператор PAINT

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

PAINT [STEP](X,Y)[,[краска],[цвет рамки]]

STEP - определяет координаты как относительные к последней нарисованной точке. Например, если последняя точка была (10,10) ,то координаты с шагом STEP(4,5) будут равны (4+10, 5+10) или (14,15);
X,Y - координаты, где начинается закраска. Точка может быть указана внутри фигуры или вне, но не на границе. Если точка внутри, то закрашивается внутренняя часть фигуры; если точка вне фигуры, то фон;
краска - числовое или символьное выражение.
цвет рамки - числовое выражение, определяющее атрибут цвета границы фигуры. Если цвет границы указан, то площадь ограничивается линиями данного цвета. Если аргумент опущен, используется аргумент краска.
Окраска завершается, когда не осталось ни одной точки в данной области, которая не сменила цвет. Оператор допускает точки границ области за пределами экрана.
Пример:

SCREEN 1
CIRCLE (106,100), 75, 1
LINE (138,35) - (288,165), 1, B
PAINT(160,100), 2, 1
3.10.9. Оператор LOCATE

Этот оператор передвигает курсор в указанную позицию экрана.

LOCATE[строка],[столбец]

строка - номер строки на экране;
столбец - номер столбца на экране.
Можно опустить любой параметр в операторе. Если опустить строку и столбец, LOCATE оставит курсор на позиции, установленной предыдущим оператором LOCATE или предыдущим оператором ввода - вывода.
3.10.10. Оператор VIEW

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

VIEW[[SCREEN](X1,Y1) - (X2,Y2)[,[цвет][,рамка]]]

SCREEN - определяет, что координаты X и Y любой выводимой точки имеют абсолютные значения, а не относительные по отношению к границам области просмотра. Графика выводится только внутри окна. Если SCREEN опущен, все точки выводятся с координатами, относительными границ окна (X1 и Y1 добавляются к значениям координат перед выводом);
X1,Y1 - X2,Y2 - координаты диагонали противоположных углов области просмотра;
цвет - атрибут цвета указывает, каким цветом будет закрашено окно. Если цвет опущен, окно не закрашивается;
рамка - любое числовое выражение рисует рамку вокруг окна, если есть место на экране. Если аргумент опущен, рамка не рисуется.
Если VIEW выполняется без аргументов, окном вывода будет весь экран.
3.10.11. Оператор POINT

Это графическая функция, читающая номер цвета точки экрана или возвращающая координаты точки.

POINT{(N)/(X,Y)}

N - числовое выражение от 0 до 3, указывающее один из четырёх способов определения текущей позиции графического курсора (табл. 1):

Таблица 1.
N Возвращаемое значение
0
1
2
3 текущая координата X области просмотра
текущая координата Y области просмотра
текущая координата X окна
текущая координата Y окна

X,Y - координаты графической точки, цвет которой требуется указать.
Если координаты находятся за пределами текущей области просмотра, POINT возвращает -1.
Пример:

SCREEN 1
LINE (0,0) - (100,100), 2
LOCATE 14,1
PRINT POINT (80,80)

Необходимо обратить внимание, что на принтер выводится негативное изображение с экрана дисплея. При средней разрешающей способности изображение выводится со строки 1 дисплея до строки 25. При высокой разрешающей способности изображение выводится на принтер с поворотом на 90 против часовой стрелки относительно изображения на экране дисплея.
3.10.12. Оператор DRAW

Это графический оператор, интерпретирующий символьное выражение и рисующий графический объект.

DRAW символьное выражение

символьное выражение - одна или более команд рисования.

Таблица 2. Команды движения относительно текущей точки
Команды Описание
U[n]
D[n]
L[n]
R[n]
E[n]
F[n]
G[n]
H[n] перемещает курсор вверх на n единиц
перемещает курсор вниз на n единиц
перемещает курсор влево на n единиц
перемещает курсор вправо на n единиц
перемещает курсор диагонально вверх и вправо на n единиц
перемещает курсор диагонально вниз и вправо на n единиц
перемещает курсор диагонально вниз и влево на n единиц
перемещает курсор диагонально вверх и влево на n единиц
M x,y двигаться абсолютно или относительно. Если x или y имеют знак (+ или -), движение осуществляется относительно текущей точки, т. е. значения x и y будут прибавлены к значениям соответствующих координат. Если знаков нет, то движение абсолютное, т. е. из текущей точки в точку с данными координатами.

B - двигаться, но не рисовать;
N - двигаться, рисовать, вернуться в исходную точку.
Эти команды определяют движение в относительных единицах. По умолчанию - на одну точку. Единица движения модифицируется командой S, которая устанавливает масштаб. Каждая команда движения задаёт перемещение относительно текущей графической позиции. До выполнения какой - либо команды это центр экрана.

Таблица 3. Команды установки угла, цвета и масштаба
Команды Описание
An

TAn

Cn

Sn

P n,m
Установка угла поворота n. Значение n находится в пределах от 0 до 3, где 0 = 0 , 1 = 90 , 2 = 180 , 3 = 270 . Размеры фигур, повёрнутых на угол 90 или 270 масштабируются в отношении 4/3 к их размерам в углах 0 или 180 .

Поворачивает изображение на угол в n градусов. Значение n находится в пределах от - 360 до 360.
Если n>0, то поворот производится против часовой стрелки, иначе - по часовой стрелке.

Установка цвета n .

Установка масштабного фактора n, где n находится в пределах от 1 до 255. Масштабный фактор увеличивает единицы перемещения команд U, D, L, R и относительной M.

Установка цвета нарисованной фигуры; n - цвет содержимого ограниченной области; m - цвет границ.

0

4

Привет Рембо.Я постараюсь у тебя не занять много времени.На сайт попал случайно,в програмировании я ноль,просто возникла одна проблема,и я не знаю можно ее решить или нет,вот и лазаю по сайтам благо что больше делать нечего,так как парализован,а дело вот в чем,мне подарили плеер ONDA VX 787 ,китайский но не чего,работает нормально,я на него прошивку нашел,уже перепрошивал,потому что не нравится читалка книг у нее почти нет настроек.Так вот у меня такой вопрос,можно ли открыть программу прошивки,и всунуть туда другую читалку,или можно ли на него поставить программу чтобы он открывал JAVA приложения.Ты меня конечно извени,может я задаю глупые вопросы,в общем все ,с уважением Юрий.

0

5

Кто нибудь знает , как в бейсик-программе принять параметры переданные через командную строку ДОС?
типа
PROG.EXE PARAM1 PARAM2

Может кто SUB написал ?

Буду очень благодарен , я хорошо знаю CLARION & VBA EXCEL

а тут по работе срочно надо QB.... я конечно проблему обошел .. но некрасиво

0

6

Сообразил
Вот функция приема параметров
кривовато но работает
Кто сделает красивше буду рад

FUNCTION param$ (i)
ip = 1: ipn = 1: ipk = 1: ik = 0: coms$ = COMMAND$: param$ = ""
DO WHILE ip <= LEN(coms$)
  IF MID$(coms$, ip, 1) = " " THEN
    ipn = ipk: ipk = ip + 1: ik = ik + 1
  END IF
    ip = ip + 1
  IF ik = i THEN
    param$ = MID$(coms$, ipn, ipk - ipn - 1): EXIT FUNCTION
  END IF
LOOP
  IF ik = i - 1 THEN
    param$ = MID$(coms$, ipk, LEN(coms$) - ipk + 1)
  END IF
END FUNCTION

Пример использования:

OPEN param$(1) FOR INPUT AS #1
OPEN param$(2) FOR OUTPUT AS #2

ВЫзов:

ПРОГР.ЕХЕ входойФайл ВЫходнойФайл

+1

7

greybear, на этот форум, к сожалению, редко кто заходит... Так что ничем помочь не могу... Могу только посоветовать поискать в поисковых системах типа Google и Yandex  :)  Удачи!

0

8

Кто-нибудь скажет как можно переместить курсор с помощью мыши а не с помощью клавиш.

0

9

подскажите кто нибудь.
тема-вычесление функции по линейнуму алгоритму.
как мне вывести на экран уравнение?
y=sin^2*x+3*cos^3*x
очень надо
cls
input
уравнение
а дальше не знаю...
завтра зачет по этой теме...
помогите кто нибудь.

0

10

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

0

11

Rembo
Скажите пожалуйста,как мне сделать разрешение экрана в графическом режиме basic (1400,800)? Я проделал огромную работу,а теперь оказывается,что всё зря? Максимальное разрешение (640,480)?

0


Вы здесь » Программирование и не только » Basic » QBASIC - общие вопросы