01 Начинаем изучать FreeBasic
Людям свойственно нетерпение, желание побыстрее увидеть результат. Это желание присуще не только детям, но и старшим школьникам и даже взрослым. А программа это просто текст на экране, даже более того, это невидимый код внутри компьютера, а всё что можно увидеть отображается на экране в результате исполнения программы.
Но вся “фишка” программирования в нахождении алгоритма решения задачи, а ещё лучше и оптимального алгоритма. Но это не всегда подразумевает видимый результат, но на первых порах обучение как раз “увидеть” важнее всего)))
Вот и рассмотрим те операторы которые позволяют сразу же увидеть результат. Задумался здесь я над словом “сразу”. А ведь потратив уйму сил на решение некоей задачи и воплотив это в программе очень быстрый компьютер ведь тоже выдаст результат практически сразу))).
Как я уже и говорил на первых порах пользоваться будем онлайн компилятором FreeBASIC
Самый главный оператор который позволяет что-то увидеть это:
PRINT оператор вывода на экран
Самое простое его использование это вывод текста, текст при этом нужно заключить в двойные кавычки.
Набираем в окне редактирования такой код
PRINT "Изучаем Бейсик"
нажимаем Execute (выполнить)
результат увидим в черненьком экране вывода
оператор PRINT ещё умеет выводить результат вычислений
PRINT 5+6
Получим
11
или более сложный пример
PRINT 4+8*2-3/7
Получим
19,5714285714
или даже например результат вычисления функций
PRINT sqr(2)
1,41421356237
print sin(3.5)+2*cos(9.78)
-2.225921801707748
На ряду с привычными операциями сложение +
, вычитание -
, умножение *
и деление /
в бейсике также присутствуют некоторые другие
\
целочисленное деление, результатом будет целое число, без округления, т.е. отбрасыванием дробной части. print 7\3
выдаст 2
^
операция возведения в степень print 3^2
выдаст 9, а print 3^4
- 81.
mod
вычисление остатка от деления print 3 mod 2
будет 1, а print 13 mod 5
будет 3.
Математические функции в бейсике
функция | её действие |
---|---|
abs | вычисляет модуль числа abs(9) = 9 и abs(-7) = 7 |
sgn | вычисляет знак числа sgn(9) = 1 и sgn(-7) = -1 и sgn(0) = 0 |
int | вычисляет целую часть числа, наибольшее целое меньшее или равное результату |
fix | вычисляет целую часть числа, отбрасыванием дробной части |
sin | вычисляет синус |
cos | вычисляет синус |
tan | вычисляет тангенс |
atn | вычисляет арктангенс |
sqr | вычисляет квадратный корень |
exp | вычисляет экспоненту |
log | вычисляет натуральный логарифм |
Некоторые функции в различных языках могут означать совсем другое)) например в паскале sqr(4) будет не 2 как в бейсике, а 16, т.е в паскале это возведение в квадрат. А квадратный корень там sqrt.
то же самое относительно логарифма, в некоторых языках другие обозначения ln(x) натуральный логарифм, log10(x) десятичный логарифм.
Особенности функций int и fix
составим такой пример:
print "int ================"
print "int(-12)=";int(-12)
print "int(-12.1)=";int(-12.1)
print "int(-12.9)=";int(-12.9)
print "int(12)=";int(12)
print "int(12.1)=";int(12.1)
print "int(12.9)=";int(12.9)
print
print "fix ================"
print "fix(-12)=";fix(-12)
print "fix(-12.1)=";fix(-12.1)
print "fix(-12.9)=";fix(-12.9)
print "fix(12)=";fix(12)
print "fix(12.1)=";fix(12.1)
print "fix(12.9)=";fix(12.9)
В одном оператором print можно выводить не одно значение, а несколько
при этом если операнды разделены ;
то они будут выводиться подряд через пробел,
а если операнды разделены ,
то будут выводиться по зонам в столбцах
пример....
PRINT 1;2;3;4;5;6;7
PRINT 1,2,3,4,5,6,7
каждый новый оператор PRINT выводит с новой строки,
если только предыдущий не закончился ;
или ,
Можно использовать PRINT и сам по себе. В этом случае он выводит пустую строку (следующий вывод начнется с новой строки)
Иногда возникает необходимость очистить экран от предыдущих выводов,
обычно это и следует делать в начале работы делает это команда CLS
Экран очищается, и вывод начинается с позиции слева вверху
если заговорить о координатах, то это позиция будет 1,1
Есть даже оператор устанавливающий эту позицию,
и тогда следующий оператор print выведет свой результат в этой позиции
locate y,x
сначала нужно указать строку, а затем позицию в ряду для установки курсора( счёт начинается с 1 и с правого угла экрана); что непривычно, так как в сравнении с декартовой системой координат здесь оси поменяны местами, что часто вызывает путаницу, это необходимо запомнить.
оператор locate можно ещё использовать для "включения/выключения" отображения курсора, а так же его размера. locate y, x, cur, start, stop. Если cur равен 1, то курсор видимый на экране, а если cur равен нулю - не видимый. start, stop - числа от 0 до 31 задающие размер курсора в высоту.
Если операторы в написании короткие их можно разместить в строке несколько разделив :
locate 4,1: print "*"
Примечание locate в онлайн компиляторе бейсика не работает, для этого нужен "полноценный" бейсик))
Иногда может понадобиться возможность "найти" курсор на экране, для этого есть две функции:
'print csrlin' выдаст строку в которой находится курсор на экране от верха экрана (позиция где будет выведен следующий символ)
'print pos(0)' выдаст позицию в которой находится курсор в строке, начиная с левого края экрана
операторы и функции в этом уроке print, abs, sgn, int, fix, sin, cos, tan, atn, sqr, exp, log, locate, pos, csrlin, cls
0. FreeBASIC лучший из диалектов бейсика