QBasic 1.1
Версия реализации QBasic языка программирования BasicQBasic 1.1 стал последней версией QBasic.
В 1993 году была выпущена версия MS-DOS 6.0 и с ней QBasic 1.1 (QBASIC.EXE и QBASIC.HLP). Данная версия также поставлялась с Windows 95, Windows 98.
QBasic 1.1, который поставлялся с Windows 9x, идентичен версии QBasic 1.1 в MS-DOS 6.x. Но сам редактор (EDIT.EXE), полностью переписан и не использует QBasic. Новый редактор мог работать с несколькими файлами и обладал рядом нововведений.
Примеры:
Hello, World! - Basic (52):
PRINT "Hello, World!"
Факториал - Basic (53):
Используется итеративное определение факториала. При вычислении 13! возникает арифметическое переполнение, и здесь поведение разных реализаций отличается: QBasic сообщает о переполнении, а QuickBasic просто выводит отрицательные значения. Кроме того, команда PRINT по умолчанию выводит по одному пробелу перед числом и после него.
DIM f AS LONG
f = 1
PRINT " 0 ! ="; f
FOR i = 1 TO 16:
f = f * i:
PRINT i; "! ="; f
NEXT i
END
Числа Фибоначчи - Basic (54):
Используется рекурсивное определение чисел Фибоначчи. Каждый вызов команды PRINT
выводит аргументы в отдельную строку и добавляет пробел перед и после выводимого числа. В результате вывод программы имеет следующий вид:
1 ,
1 ,
2 ,
3 ,
5 ,
8 ,
13 ,
21 ,
34 ,
55 ,
89 ,
144 ,
233 ,
377 ,
610 ,
987 ,
…
DECLARE FUNCTION fibonacci (n)
FOR i = 1 TO 16:
PRINT fibonacci(i); ", "
NEXT i
PRINT "..."
FUNCTION fibonacci (n)
IF (n <= 2) THEN
fibonacci = 1
ELSE
fibonacci = fibonacci(n - 1) + fibonacci(n - 2)
END IF
END FUNCTION
Числа Фибоначчи - Basic (55):
Уже вычисленные числа хранятся в массиве F и извлекаются оттуда для вычисления следующих. Для получения вывода программы в нужном формате числа в массиве конкатенируются в одну строку с нужными разделителями. Функция STR$
преобразует число в строку.
DIM F(16)
F(1) = 1
F(2) = 1
FOR i = 3 TO 16:
F(i) = F(i - 1) + F(i - 2)
NEXT i
DIM S AS STRING
S = ""
FOR i = 1 TO 16:
S = S + STR$(F(i)) + ", "
NEXT i
S = S + "..."
PRINT S
Числа Фибоначчи - Basic (56):
Числа Фибоначчи вычисляются через формулу Бине. За счет погрешностей вычисления с плавающей точкой полученные числа могут незначительно отличаться от действительных; для устранения этого эффекта используется функция INT
, отбрасывающая дробную часть числа.
DECLARE FUNCTION FIBONACCI (n)
DIM S AS STRING
S = ""
FOR i = 1 TO 16:
S = S + STR$(INT(FIBONACCI(i) + .1)) + ","
NEXT i
S = S + "..."
PRINT S
FUNCTION FIBONACCI (n)
p1 = ((1 + SQR(5)) * .5) ^ n
p2 = ((1 - SQR(5)) * .5) ^ n
FIBONACCI = (p1 - p2) / SQR(5)
END FUNCTION
Факториал - Basic (57):
По умолчанию для вычислений используется вещественный тип данных. Вывод программы имеет следующий вид:
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 3.99168Е+07
12! = 4.790016Е+08
13! = 6.227021Е+09
14! = 8.717829Е+10
15! = 1.307674Е+12
16! = 2.092279Е+13
DECLARE FUNCTION factorial (n)
FOR i = 0 TO 16:
PRINT STR$(i) + "! =" + STR$(factorial(i))
NEXT i
END
FUNCTION factorial (n)
IF n = 0 THEN
factorial = 1
ELSE
factorial = n * factorial(n - 1)
END IF
END FUNCTION
Комментарии
]]>blog comments powered by Disqus
]]>