close

XBasic

Перейти к навигации Перейти к поиску

Xbasic — это бесплатная среда программирования на основе BASIC для Windows и GNU/Linux. Поддерживает консольный и графический режимы . Xbasic был разработан в 1988 году Максом Ризоном для использования в среде Unix /m88k и перенесен на Windows NT с 1992 года . Xbasic является бесплатным программным обеспечением с 1999 года .


Отличия от Standard BASIC , QBASIC и Visual Basic

Синтаксис

  1. Xbasic — это язык структурированного программирования , в котором не используются номера строк. Типичные базовые функции, такие как суффиксы типов данных (которые значительно расширяют возможности), принимаются, но избегается многословность оператора BASIC, такая как "OPEN... FOR... AS...", в пользу схемы, основанной на базовых функциях.
  2. Программы Xbasic разделены на три части в стиле программ Pascal: "PROLOG" (объявление типа), "Entry()" (основная функция) и дополнительные функции.

Переменные

  • В отличие от ANSI BASIC, но в рамках текущего стандарта BASIC допускаются переменные с именами любой длины.
  • Константы обозначаются префиксом "$$"
  • Я знаю

Операторы

  • В отличие от ANSI BASIC , QBASIC или Visual Basic , Xbasic имеет операторы сдвига для двоичной арифметики, что обеспечивает большую совместимость с программированием на двоичном уровне, таким как вычисление CRC. Он также различает логические операторы и бинарные арифметические операторы.
  • Xbasic использует операторы, аналогичные операторам языка C:
    • «**» означает «повышен до»
    • «^» является синонимом XOR (это не означает «поднят до»).
    • «&» означает «И» (это не означает «конкатенация»).
    • "=" не используется в предложениях IF (или, по крайней мере, предполагается).
    • "==" используется (вместо "=") в предложениях IF

Ветвление и подпрограммы

  • Xbasic, как и QBASIC и более поздние версии, является языком структурированного программирования .
  • Позволяет SELECT, DO, DO WHILE и DO UNTIL, кроме GOTO
  • Разрешить объявления функций через FUNCTION(), кроме GOSUB. В отличие от QBASIC или Visual Basic , он не делает различий между функциями (которые производят вывод) и подпрограммами (которые этого не делают).

Инструкции ввода/вывода

  • Xbasic использует собственный набор инструкций ввода/вывода .
  • INLINE$() заменяет INPUT, INPUT$ и INPUT#.
  • INKEY$ и INP() не разрешены.
  • Номера файлов обозначаются как [число] (XBasic) вместо #number ( BASICA / QBASIC / Visual Basic ).
  • Xbasic использует номер_файла =OPEN( имя_файла$ , константа_режима ) вместо OPENимя_файла $ ДЛЯ режима AS #номер_файла ( BASICA / QBASIC / Visual Basic ).
  • READ [ номер_файла ] используется вместо GET #номер_файла (( BASICA / QBASIC / Visual Basic ).
  • Помимо вышеперечисленного, XBASIC поддерживает графические среды и, следовательно, может принимать ввод/вывод через события, генерируемые элементами управления, размещенными в окнах, в стиле Visual Basic .

Резюме

На следующих диаграммах XBASIC сравнивается с исходным неструктурированным Basic с использованием примера программы, приведенного в статье Википедии о BASIC :

Пример 1: Оригинальный неструктурированный BASIC ( Applesoft BASIC )

10 INPUT "Как тебя зовут?"; долларов США
 20 ПЕЧАТЬ "Здравствуйте"; долларов США
 30 INPUT "Сколько звездочек вы хотите?"; Н
 35 сингапурских долларов = ""
 40 ДЛЯ I = 1 К N
 50 сингапурских долларов = сингапурские доллары + "*"
 55 СЛЕДУЮЩИЙ Я
 60 ПЕЧАТЬ S$
 70 INPUT "Хотите больше звездочек?"; $
 80 ЕСЛИ ДЛСТР(A$) = 0 ПЕРЕЙТИ К 70
 90 А$ = ВЛЕВО(А$, 1)
100 ЕСЛИ (A$ = "S") ИЛИ (A$ = "s") ТО ПЕРЕЙТИ К 30
110 ПЕЧАТЬ "До свидания";
120 ДЛЯ I = 1 ДО 200
130 долларов США ПЕЧАТЬ; " ";
140 СЛЕДУЮЩИЙ Я
150 ПЕЧАТЬ

Пример 2: XBasic

FUNCTIONEntry()
    Имя пользователя$=INLINE$("Как вас зовут?")
    ПЕЧАТЬ "Здравствуйте"; Имя пользователя$
    ДЕЛАТЬ
        NoAsterisks=SBYTE(INLINE$("Сколько звездочек вам нужно?"))
        Звездочки$ = ""
        Звездочки$ = CHR$('*', Без звездочек)
        ПЕЧАТЬ звездочки$
        ДЕЛАТЬ
	    Response$=INLINE$("Хотите больше звездочек?")
        LOOP UNTIL Ответ $ <> ""
    LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "S"
    ПЕЧАТЬ "До свидания";
    ДЛЯ I = 1 ДО 200
        ПЕЧАТЬ Имя пользователя$; " ";
    СЛЕДУЮЩИЙ Я
    РАСПЕЧАТАТЬ
КОНЕЦ ФУНКЦИИ

Внешние ссылки