QBASIC/SmallBasic

О Dosbox и других языках на ЕГЭ-сайте

Загрузка с официального сайта: http://download.microsoft.com/download/win95upg/tool_s/1.0/w95/en-us/olddos.exe

Статус: shareware. Загрузить с русским интерфейсом; с английским интерфейсом.

Подробности: http://en.wikipedia.org/wiki/QBasic и qbasic.su

Small Basic Portable + пример программы примитивного рисования кубов (выполняется онлайн, Silverlight)

Для работы требуется .NET фреймворк 3.5

О файлахДопустим, мы хотим считать из текстового файла 10 чисел.

QBASIC позволяет сделать это так:

CLS

OPEN "c:\array1.txt" FOR INPUT AS #1

i = 1

DO WHILE NOT EOF(1)

INPUT #1, a(i)

i = i + 1

LOOP

CLOSE #1

l = UBOUND(a)

FOR i = 1 TO l

PRINT i, a(i)

NEXT i

Online

http://runbasic.com/?_s=QjcuBkvdKdUvuBnU&_k=nONxuTyb&1

S = 0

FOR I = 1 TO 10

S = S + I

NEXT I

PRINT S

Обратите внимание: при работе в Linux / Mac OS X может случиться так, что текстовый редактор вставит только символы LF (\n, код 10); тогда QBASIC не сможет его прочитать. При создании файла нужно заранее выбирать соответствующий режим и проверять (View - EOL Markers)

Вообще, сложности возникают в основном при запуске в *NIX с помощью программы, которая называется Dosbox.

(Кстати, не стоит забывать, что Dosbox захватывает мышь; для освобождения служит Ctrl + F10)

О типах данных

Сократители типов:

$ String

% Integer

& Long

! Single

# Double

Что мы получим после такого фрагмента?

Пояснение

Мы получим YES и NO. При использовании типа данных Double запись 0.1 приведет к неточному результату. Этого удастся избежать, если написать c# = 1/10

Так как по умолчанию используется Single, то отсюда мы можем сделать что (1) в этим типе такой ошибки не возникает и (2) мы могли бы с тем же успехом писать a! = .1 и b! = a! * 10

a = .1b = a * 10IF b = 1 THEN PRINT "YES" ELSE PRINT "NO"c# = .1d# = c# * 10

IF d# = 1 THEN PRINT "YES" ELSE PRINT "NO"

Чтобы исследовать различные варианты представления чисел, можно поэкспериментировать с записью в файл.

Например: дополнительный код отрицательного числа.

DIM a AS INTEGER

a = -300

OPEN "c:\dopkod.bin" FOR BINARY AS #1

PUT #1, , a

CLOSE #1

Получим двухбайтовый файл: D4 FE (212 254) - что это за число?

Попробуйте аналогичное исследование с Double (см. пример с 0.1) - см. справку о Double (1, 2)

Решение + материалы