Иллюстрированный самоучитель по Basic, вводный курс. Как работать в бейсике


Иллюстрированный самоучитель по Basic, вводный курс › Язык Бейсик › Запуск программы на выполнение. Сохранение и открытие файлов в Бейсике. [страница - 11] | Самоучители по программированию

Запуск программы на выполнение. Сохранение и открытие файлов в Бейсике.

Как же запустить программу? Когда вы написали программу и хотите посмотреть, а что, собственно, из этого получилось, то надо нажать клавишу F5. Программа будет исполнена в случае отсутствия синтаксических ошибок, и тогда вы увидите результаты ее работы и сообщение внизу экрана "Чтобы продолжить, нажмите любую клавишу". Эта надпись вызывает иногда смятение в душах неопытных программистов, и они начинают судорожно искать на клавиатуре надпись "Любая клавиша". Надеюсь, у вас до этого не дойдет. Если же в программе есть ошибки, то вы их исправляете, и у вас вновь два варианта:

  • запустить программу с места, где она прервалась – клавиша F5;
  • запустить программу сначала – сочетание клавиш SHIFT + F5.

Если вы хотите видеть окно, в котором видны результаты выполнения программы, то нажмите клавишу F4.

Основы есть? Если возникают вопросы, то, во-первых, при выборе тех или иных пунктов меню внизу появляется краткая информация о нем на русском языке, а по нажатии клавиши F1 вы получите более подробные сведения. Во-вторых, в самом меню есть справка и по командам языка Бейсик, и по содержанию. Учитесь пользоваться справочным материалом!

ПредупреждениеЕсли у вас отсутствует мышь, то попадание в меню осуществляется клавишей ALT, а работа в нем – клавишами управления курсором ← и → и клавишей Enter.

Сохранение и открытие файлов в Бейсике

Написав программу и желая ее сохранить на диске, выберите в меню Файл команду Сохранить или Сохранить как. Откроется диалоговое окно, в котором вы должны выбрать диск и каталог для сохранения, дать имя файлу и нажать кнопку ОК. После этого в заголовке окна редактирования появится имя, назначенное файлу.

ПредупреждениеБудьте внимательны к тому, куда вы сохраняете файл, и под каким именем. Иначе могут возникнуть проблемы с поиском вашей работы!

Чтобы открыть уже существующий файл, в меню Файл выберите команду Открыть. Появится диалоговое окно, в котором надо найти диск и каталог, где записан файл, указать его имя и нажать кнопку ОК.

Чтобы начать работу с новым файлом, в меню Файл выберите команду Новый.

Для выхода из Бейсика в меню Файл существует команда Выход. Если вы забыли сохранить свою программу, то Бейсик напомнит вам об этом до выхода и предложит сохранить ваш труд. И только после этого вы выйдете в ту среду, из которой Бейсик был загружен.

samoychiteli.ru

Работа с Microsoft QuickBasic

10

Запуск MS QuickBasic

Найдите на Рабочем столе ярлык QuickBasic и дважды щелкните по нему левой кнопкой мыши. На экране появится среда русского Бейсика.

Нажатие ENTER – руководство для начинающих; ESC – окно редактора.

Для работы предоставляется 2 окна: 1) верхнее - окно редактирования;

2) нижнее – окно немедленного выполнения.

Нажатие F6 или щелчок в соответствующем окне левой кнопкой мыши – переход из одного окна в другое.

Ввод текста программы в окне редактора

BackSpace – удаление лишних символов слева от курсора;

Delete – удаление лишних символов справа от курсора;

ENTER – переход на следующую строку.

F5 – запуск программы на выполнение;

CTRL BREAK - прервать выполнение программы;

F4 – просмотр окна с результатами выполнения программы;

ALT – переход в меню редактора;

<←> <→> - перемещение по пунктам меню;

ENTER – выбор пункта меню.

Сохранение и открытие файлов в Basic

Сохранение программы

Файл | Сохранить (Файл | Сохранить как).

В диалоговом окне нужно выбрать диск и каталог, набрать имя файла

и нажать кнопку OK.

Открытие существующего файла

Файл | Открыть. В диалоговом окне нужно выбрать диск и каталог, где записан файл, указать его имя и нажать кнопку OK.

Создание нового файла. Файл | Новый.

Выход из MS QuickBasic. Файл | Выход.

Переменная – область оперативной памяти, которая имеет имя, данное пользователем, и значения, которые могут меняться.

Оператор присваивания. Оператор присваивания выглядит как математическое равенство.

X=15

Y=2

Z=(X-3*Y^2)+7

Оператор вывода PRINT.

PRINT 2*2

PRINT (3+4)/(8-6)

Вместо слова PRINT можно ставить знак ?.

? 2*2

Оператор очистки экрана CLS.

В целях более рационального использования экранного места при написании программы иногда допустимо в одной строке писать несколько операторов языка Бейсик. В таких случаях в качестве разделителя операторов применяется двоеточие.

CLS : ? ”Экран чист”

Текст или результаты вычислений всегда выводятся на экран начиная с той позиции, в которой на момент вывода находится курсор. Изменить эту позицию поможет оператор LOCATE.

LOCATE Y,X

где X – номер столбца экрана, а Y – номер строки (0≤X≤80, 0≤Y≤30).

CLS : LOCATE 13,40 : ? 2^3

Оператор input

Оператор INPUT обеспечивает запрос данных, необходимых для выполнения программы. Когда оператор INPUT требует не одно, а несколько значений, то после запуска программы их надо вводить в том порядке, в котором они запрашиваются, а по окончании нажать ENTER.

CLS : INPUT “ Введите длины двух катетов”; A,B

C= SQR (A^2+B^2)

? “Длина гипотенузы =”; С

Операторы data read

С помощью оператора DATA вводим данные, а при помощи оператора READ последовательно считываем эти данные в переменные, в которых они хранятся и обрабатываются.

DATA 1,2

READ A,B

Таблица 1

Стандартные алгебраические функции

Функция

Описание

Пример

Результат

ABS

Возвращает абсолютную

величину (модуль) аргумента

? ABS(-2.56)

2,56

SQR

Возвращает квадратный корень из аргумента

? SQR(9)

3

SIN

Возвращает значение синуса аргумента (аргумент указывается в радианах)

? SIN(3)

0,14112

COS

Возвращает значение косинуса аргумента (аргумент указывается в радианах)

? COS(3)

0,98992599

TAN

Возвращает значение тангенса аргумента (аргумент указывается в радианах)

? TAN (3)

-0,1425465

EXP

Находит значение показательной функции e^x, где x – аргумент, а e – основание натурального логарифма, равное ≈2,718…

? EXP (1)

2,718282

LOG

Возвращает логарифм по основанию e

? LOG (3)

1,09861229

INT

Возвращает целую часть аргумента (INTeger – целый)

? INT (30,1)

? INT (30,9)

30

30

SGH

Возвращает 1, если аргумент больше нуля; 0, если аргумент равен нулю; -1, если аргумент меньше нуля (SIGN – знак)

? SGN (3)

? SGN(0)

? SGN(-3)

1

0

-1

studfiles.net

Иллюстрированный самоучитель по Basic, вводный курс › Язык Бейсик › Как вводить текст программы в окне редактора [страница - 10] | Самоучители по программированию

Как вводить текст программы в окне редактора

В окне редактора мигает курсор – горизонтальная светящаяся черточка, указывающая, где будет вводиться текст программы при наборе его с клавиатуры.

Если вы заметили, что что-то набрали неправильно, есть несколько путей исправить допущенные ошибки.

  • Удаление лишних символов. Слева от курсора – клавиша Backspace. Символ, под которым мигает курсор и справа от курсора – клавиша Delete.
  • Вставка недостающих символов. Курсор установить под тот символ, слева от которого необходимо произвести вставку и набрать нужные символы. Текст при этом раздвинется автоматически.
  • Переход из режима вставки в режим замены. Режим вставки включается автоматически. В режим замены и обратно мы переходим нажатием клавиши Insert. Курсор при этом принимает вид светящегося прямоугольника. Теперь, при вводе какого-либо символа, будет стираться тот символ, который находился прежде на этом месте. Автоматическое раз-движение строки в этом случае не происходит.
  • Переход на следующую строку осуществляется нажатием клавиши Enter. Если вы случайно нажали клавишу Enter в середине строки, то вторая половина ее перейдет вниз. Пугаться этого не надо. Нажимайте клавишу Backspace.
  • Копирование и перемещение фрагментов текста программы. Сначала фрагмент нужно выделить. Выделение производится либо мышью при удерживаемой левой кнопке, либо клавишами управления курсором ← и → при нажатой клавише SHIFT. После выделения возможны варианты:
    • удаление фрагмента – клавиша Delete;
    • копирование фрагмента в буфер – сочетание клавиш CTRL + Insert;
    • вырезка фрагмента в буфер – сочетание клавиш SHIFT + Delete;
    • вставка фрагмента из буфера в новое место (сколько угодно раз) – сначала курсор нужно поместить в новое место, а затем – сочетание клавиш SHIFT + Insert.

Впрочем, все то же самое можно сделать через меню Редактирование.

Как Бейсик сообщает об ошибках

Если в программе была допущена ошибка, то после запуска программы на экране появится окно с сообщением об ошибке. У вас есть два варианта действий – выбрать кнопку Справка, чтобы получить информацию о допущенной ошибке, либо нажать клавишу Enter или Esc. Тогда вы вернетесь в окно редактирования, где курсор будет находиться в том месте, где компьютер нашел ошибку.

samoychiteli.ru

Язык программирования Бейсик: Программирование - Статьи - Дай программу!

Бейсик – язык непрофессиональных программистов

Конечно, не всем это будет интересно, даже современным программистам. Но, не зная истории, мы теряем чувство причастности к ней, без раздумий отказываемся от фактов в пользу мифов и легенд. Как, например, то, что язык Бейсик изначально создавался в виде интерпретатора. Вспомним, что в то время (1963-64 г.г.) на рынке не было интерпретаторов, так что Дортмундский Бейсик, имея своими корнями Фортран, имел и компилятор. Интересно, что создавали язык не только его разработчики Кемени и Курц, но и целая группа студентов колледжа. Таким образом, язык для обучения студентов испытывался на таких же студентах – не это ли обеспечило Бейсику такие мощные корни?

Говорить о реализациях языка тех лет можно много, его портировали всюду – в бытовые компьютеры и мейнфреймы, на персоналки и мини-ЭВМ. Причем каждая реализация отличалась от стандарта. Впрочем, тогда стандарта еще не было – каждая реализация вбирала особенности конкретной платформы. Ситуация более-менее наладилась с появлением IBM PC и активной позицией Майкрософт, отдающей предпочтение этому языку. Так появились Basica, GW Basic, QBasic и QuickBasic. Фирма Борланд долго составляла конкуренцию своим TURBO Basic, но потом ушла со сцены – а ведь эту версию кое-где и сейчас преподают! Затем была Windows и первые версии Visual Basic, которые вдохнули новую жизнь в старый язык, сделав его по-настоящему мощным (особенно под платформу .NET). А VBScript и VBA на долгие годы определили моду на скриптовые языки офисных программ.

Но вернемся к первым шагам Бейсика. Тогда его возможности еще не вызывали такого восхищения: программы писались в один столбик (привет Фортрану), строки имели нумерацию и были густо «наперчены» операторами GOTO. Внешние устройства в то время представляли перфоленты, перфокарты и редкие дисковые устройства, а внутренние возможности языка в плане данных ограничивались конструкцией DATA, которая даже близко не была такой же мощной, как в прародителе Фортране. По моде тех лет переменные в программах объявлять было не обязательно, но в Бейсике с ними было все еще хуже. К примеру, в нем зачастую не было целых чисел, а операции с числами двойной точности тормозили расчеты. Это уже потом придумали записывать после имени переменной знаки «%», «!», «#» и прочие, указывающие точность переменной. Зато Бейсик умел работать как калькулятор, выдавая результаты при интерактивном вводе – у других языков такого не было. Были у него неплохие отладочные и трассировочные средства в составе интерпретаторов. Для тех, кто хотел писать программы, не будучи программистом, лучше Бейсика трудно было придумать инструмент лучше. Разве что Паскаль?

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

Конечно, сейчас все это есть, и язык стал довольно сложным для начинающих. Но это только с виду – в каждой его конструкции до сих пор проглядывают базовые элементы полувековой давности.

Листинг программы на Бейсике

В качестве примера уместно вспомнить «старый добрый стиль» первых программ на Бейсике.

10 PRINT “ПРОВЕРКА ЗНАНИЙ ПО ТАБЛИЦЕ УМНОЖЕНИЯ”20 PRINT “ВВЕДИТЕ ДВА ЧИСЛА”30 INPUT A 40 INPUT B50 RES=A*B60 PRINT “ВВЕДИТЕ ОТВЕТ”70 INPUT C80 IF C = RES THEN GOTO 13090 PRINT “НЕПРАВИЛЬНО. ПРАВИЛЬНЫЙ ОТВЕТ ”, RES 100 PRINT “ЕЩЕ РАЗ? [Y/N]”;110 INPUT YN$120 IF YN$ = “Y” THEN GOTO 20125 GOTO 150130 PRINT “ПРАВИЛЬНО”140 GOTO 100150 END

dprogu.ru

Бейсик - это... Что такое Бейсик?

Бе́йсик (от BASIC, сокращение от англ. Beginner’s All-purpose Symbolic Instruction Code — универсальный код символических инструкций для начинающих[1]) — семейство высокоуровневых языков программирования.

Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени.[2]

Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров.

История

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

Языки программирования той поры, как и компьютеры, на которых они использовались, были разработаны для работы с ними обученных технических специалистов и программистов. Поскольку машины были дорогими, то и машинное время было дорого — поэтому на первом месте стояла скорость выполнения программы (скорость счёта).

Однако в течение 1960-х годов цены на компьютеры стали падать так, что даже небольшие компании могли их себе позволить; их быстродействие всё увеличивалось и наступило время, когда стало возможно организовать более эффективную непосредственную работу пользователей с компьютерами в режиме разделения времени (time-sharing).

Рождение

Бейсик был придуман в 1963 году преподавателями Дартмутского Колледжа Джоном Кемени и Томасом Курцем, и под их руководством был реализован командой студентов колледжа. Со временем, когда стали появляться другие диалекты, изначальную реализацию стали называть Dartmouth BASIC.

Бейсик был спроектирован так, чтобы студенты могли без затруднений писать программы, используя терминалы с разделением времени. Он предназначался для более «простых» пользователей, не столько заинтересованных в скорости исполнения программ, сколько просто в возможности использовать компьютер для решения своих задач, не имея специальной подготовки.

При проектировании языка использовались следующие восемь принципов. Новый язык должен был:

  1. быть простым в использовании для начинающих
  2. быть языком программирования общего назначения
  3. предоставлять возможность расширения функциональности, доступную опытным программистам
  4. быть интерактивным
  5. предоставлять ясные сообщения об ошибках
  6. быстро работать на небольших программах
  7. не требовать понимания работы аппаратного обеспечения
  8. защищать пользователя от операционной системы

Язык был основан частично на Фортран II и частично на Алгол 60, с добавлениями, делающими его удобным для работы в режиме разделения времени и, позднее, обработки текста и матричной арифметики. Первоначально Бейсик был реализован на мейнфрейме GE-265 с поддержкой множества терминалов. Вопреки распространённому убеждению, в момент своего появления это был компилируемый язык.

Рост

Несмотря на то, что язык уже использовался на нескольких миникомпьютерах, его настоящее распространение началось с его появления на микрокомпьютере Альтаир 8800. Многие языки программирования были слишком большими, чтобы поместиться в небольшую память, которую пользователи таких машин могли себе позволить. Для машин с таким медленным носителем как бумажная лента (позднее — аудиокассета) и без подходящего текстового редактора такой небольшой язык как Бейсик был отличной находкой.

В 1975 году Microsoft (тогда это были лишь двое — Билл Гейтс и Пол Аллен, при участии Монте Давидова), выпустила Altair BASIC. Затем его версии появились на другой платформе под лицензией и скоро в использовании были уже миллионы копий и вариантов; один из вариантов, Applesoft BASIC, стал стандартным языком на Apple II. Для операционной системы CP/M был создан диалект BASIC-80, надолго определивший развитие языка.

В 1979 году Microsoft обсуждала с несколькими поставщиками компьютеров (включая IBM) лицензирование интерпретатора Бейсик на их машинах. Одна из версий (ROM BASIC) была включена в ПЗУ IBM PC — компьютер мог автоматически загружаться в Бейсик. Так как IBM не придавала тогда большого значения персональным компьютерам (основным полем её деятельности были мейнфреймы), то, вопреки своим принципам, она разрешила Microsoft продавать интерпретатор отдельно. Это сделало последнюю пионером в выпуске ПО нового поколения — не привязанного к конкретной аппаратуре и поставляемого отдельно от компьютера.

Зрелость

В этот период было создано несколько новых версий Бейсика. Microsoft продавала несколько версий Бейсик для MS-DOS/PC DOS, включая BASICA, GW-BASIC (модификация BASICA, не требующая «прошивки» от IBM) и QuickBASIC. Borland, известная своим Turbo Pascal, в 1985 году выпустила Turbo Basic 1.0 (его наследники впоследствии продавались другой компанией под именем PowerBASIC). На домашних компьютерах появились различные версии Бейсика, обычно включавшие в себя расширения для работы с графикой, звуком, команды ОС, а также средства структурного программирования. Некоторые другие языки использовали хорошо известный синтаксис Бейсика в качестве основы, на которой строилась совершенно иная система (см. например, GRASS).

Однако, начиная с конца 1980-х годов, новые компьютеры стали намного более сложными и предоставляли возможности (такие, как графический интерфейс пользователя), которые делали Бейсик уже не столь удобным для программирования. Бейсик начал сдавать свои позиции, несмотря на то, что огромное количество его версий ещё использовалось и продавалось.

Вторую жизнь Бейсик получил с появлением Visual Basic от Microsoft. Хотя и трудно согласиться, что этот язык — действительно Бейсик (несмотря на множество привычных ключевых слов), спустя некоторое время он стал одним из наиболее часто используемых языков на платформе Windows. Microsoft создала вариант под названием WordBasic и использовала его в MS Word до появления Word 97. Вариант Visual Basic for Applications (VBA) был встроен в Microsoft Excel 5.0 в 1993 году, затем в Access 95 в 1995 году, а после и во все остальные инструменты, входящие в пакет Microsoft Office. Internet Explorer 3.0 и выше, а также Microsoft Outlook, включали интерпретатор VBScript.

Бейсик используется в некоторых моделях программируемых калькуляторов. Например, он был встроен в советский калькулятор «Электроника МК-85».

Описание

Синтаксис языка напоминает Фортран и многие элементы — явные заимствования из него. Язык задумывался для обучения, поэтому его конструкции максимально просты. Как и в других языках программирования, ключевые слова взяты из английского языка. Основных типов данных два: строки и числа. С появлением версии Visual Basic, а также различных его модификаций (таких как VBA), в языке появились многие другие типы данных и дополнения, типичные для современных языков программирования (например, такие, как объектная модель). Объявление переменных не требует специальной секции (в отличие, например, от Паскаля). Объявление переменной — это первое её использование.

Ранние версии Бейсика (такие как BASICA, GW-BASIC) существенно отличаются от современных диалектов и сегодня практически не используются.

Ранние версии

Экран с Бейсиком компьютера ДВК

Внешний вид программ на ранних версиях Бейсика во многом определялся тем, что он предназначался для среды программирования со строчным редактором текста. В таком редакторе пользователь не имел возможности отображать весь текст на экране (в окне), перемещаться по нему в любых направлениях с помощью клавиатуры и/или мыши. В строчных редакторах пользователь для изменения строки текста должен дать команду изменения строки с заданным номером, затем ввести новый текст указанной строки. Для вставки новой строки нужно дать команду вставки, опять таки указав номер. Вводимые строки отображаются на экране последовательно (независимо от номеров). Чтобы увидеть сделанные изменения, применяется команда вывода текста, которая выводит строки в правильном порядке (по возрастанию номеров).

Всё это отразилось в Бейсике. Каждая строка начиналась с номера. При вводе в редактор строка оказывалась в исходном тексте программы на позиции, соответствующей её номеру. Для вставки новой строки нужно было дописать строку с номером, находящимся в диапазоне между номерами двух других строк. «Раздвинуть» строки было невозможно, если требовалось вставить новую строку между строками с соседними номерами, приходилось повторно вводить эти строки с другими номерами, чтобы обеспечить разрыв в нумерации (либо применять специальную команду RENUM, которая перенумеровывала все уже введённые строки с постоянным шагом, синхронно изменяя все команды переходов). Для упрощения оперативного редактирования программы сложилась практика нумеровать строки с шагом 10 — это позволяло практически во всех случаях вставлять новые строки без изменения номеров ранее введённых. Например, чтобы добавить третью строку между строками 20 и 30, нужно было написать строку с номером 25. Типичная строка из программы на Бейсике выглядела так:

Изменять вручную номера уже имеющихся строк было небезопасно, так как номера выполняли роль меток для оператора GOTO. Ранее в Бейсике были допустимы только числовые метки для этого оператора, и наличие в каждой строке уникального номера делало возможным безусловный переход к любой из них. Числовые метки и активное использование GOTO было неизбежным при программировании на Бейсике, что способствовало плохой структуре кода и в больших проектах приводило к запутыванию самих авторов. Был даже придуман шуточный термин «макаронное программирование» (spagetti code), потому что логика программы с частыми переходами GOTO напоминает тарелку со спагетти.

Признаком конца оператора служил конец строки. Чтобы на одной строке разместить несколько операторов, нужно поставить между ними двоеточие (это разрешалось не во всех реализациях языка). Имена переменных в большинстве диалектов могли состоять только из одной буквы, после которой можно было добавить одну цифру, что так же не способствовало улучшению понимания кода. Для создания переменной строкового типа нужно было после имени указать знак доллара ($). Переменная без этого знака являлась числовой (с плавающей точкой). Было ещё несколько модификаторов, относящихся к числовому типу: знак процента (%) — целый тип, восклицательный знак (!) — обычная точность, октоторп (#) — двойная точность (для данных с плавающей точкой, то есть дробей). Числовые модификаторы применялись не во всех версиях.

Выражения сходны с большинством других процедурных языков программирования, но в первых вариантах Бейсика их набор был довольно бедным.

Условный оператор (IF..THEN) изначально имел только одну ветвь — ветвь ELSE в нём отсутствовала и моделировалась с помощью безусловного перехода. Так, в нижеследующей программе выполняется элементарная операция — ввод числа и вывод сообщения «Отрицательное число» или «Положительное число или нуль» в зависимости от его значения:

10 INPUT I 20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40 30 PRINT "Negative number" 40 END

Имелся оператор перехода по вычисляемой метке ON..GOTO (унаследованный от аналогичной конструкции Фортрана) — в нём после ON указывалось числовое выражение, а после GOTO — список номеров строк. Переход происходил на строку, номер которой в списке соответствовал значению выражения. Присутствуют также циклы (цикл со счётчиком FOR и цикл с предусловием WHILE).

Использование функций, определяемых пользователем (участков кода, для многократного использования), было возможно двумя способами: определяемые функции и подпрограммы.

Подпрограммы не являлись аналогом функций таких языков, как Си или Паскаль, так как не имели имён и не могли принимать и/или возвращать параметры. Параметры и результаты передавались через глобальные переменные (все переменные в ранних версиях Бейсика были глобальными). Подпрограммы писались обычно в конце модуля, с нумерацией заведомо большей, чем планируемое количество строк (к примеру, нумерация блока подпрограмм могла начинаться с 5000, даже если в программе была пара сотен строк). Подпрограммы не имели заголовков и имён, и ничем не отличались от любого другого участка кода. Вызов подпрограммы осуществлялся с помощью ключевого слова GOSUB <метка>. Это практически клон GOTO, за исключением одного: возврат в точку вызова происходил автоматически, при достижении в подпрограмме ключевого слова RETURN. GOSUB, как и GOTO, только способствовали плохой структуре кода, так как отследить выполнение программы, содержащей большое количество безусловных переходов и подпрограмм, было сложной задачей.

Отсутствие возможности давать подпрограммам имена (и передавать по ним управление), невозможность передачи параметров, отсутствие локальных переменных, использование только числовых меток в больших проектах вызывало путаницу в коде и очень затрудняло отладку.

В некоторых диалектах Бейсика имелась возможность загрузить файл с кодом непосредственно при выполнении программы (текущий при этом выгружался) оператором CHAIN. Это была одна из самых полезных возможностей языка, так как она позволяла разбить большой проект на модули, вызывая их в порядке необходимости.

Редактора кода в ранних версиях, как такового, не было. При запуске интерпретатора Бейсика запускался диалоговый режим ввода команд. Для работы в этом режиме были предусмотрены специальные команды, которые не являлись операторами самого языка (их нельзя было включить в код программы). Это команды по управлению средой ввода, такие как: LIST <диапазон строк> — вывод листинга программы на экран (LLIST — на принтер), SAVE <имя файла> — сохранение текста программы в файл, LOAD <имя файла> — загрузка кода в память и т. д. Запуск программы производился вводом команды RUN. В большинстве интерпретаторов Бейсика в нижней части экрана была строка с этими (и другими) командами.

Если команда начиналась с номера строки (метки), она запоминалась в памяти как часть вводимой программы. Если строка оператора вводилась без номера, она выполнялась сразу же, после нажатия клавиши  ↵ Enter . В качестве первых уроков обучающимся на Бейсике предлагалось поэкспериментировать с таким режимом, когда результат выполнения выражения был виден сразу. Например, если, находясь в режиме диалога, ввести строку PRINT 2+2 и нажать  ↵ Enter , на экране отобразится результат сложения.

Для редактирования уже введённой строки в большинстве реализаций нужно было перепечатать её полностью. Удаление строк производилось командой DELETE <диапазон строк>. Команда RENUM — позволяла восстановить шаг 10 в нумерации строк. Часто возникала ситуация, что штатного шага 10 для будущих строк не хватало (так как такой шаг позволяет добавить лишь 9 строк между требуемыми) и тогда команда RENUM была необходимой (все строки перенумеровывались с шагом 10, и соответствующим образом корректировались строки с GOTO под новую нумерацию строк).

Для выполнения программы на Бейсике использовалась передача имени файла с кодом программы интерпретатору в командной строке. В этом случае, после загрузки кода команда RUN (начать выполнение программы) вызывалась автоматически.

Фрагмент типичной программы на Бейсике:

10 CLS 'Очистка экрана 20 PRINT "Добро пожаловать!" 'Заголовок в первой строке 30 'Цикл, выводящий линию под заголовком, на всю ширину экрана 40 FOR I=1 TO 80 50 PRINT "="; 60 NEXT I 65 'Ввод символьных данных от пользователя (комментарий добавлен после ввода нижних строк) 70 INPUT "Имя: ",N$ 80 INPUT "Фамилия: ",S$ 90 INPUT "Отчество: ",T$ 95 'Вырезаем копию первых символов из имени и отчества 100 N2$=LEFT$(N$,1) 110 T2$=LEFT$(T$,1) 120 'Выводим результат 130 PRINT "Ваше имя кратко: ";S$;" ";N2$;". ";T2$;"." 140 INPUT "Повторить программу? (Y/N) ",U$ 150 IF U$="Y" THEN GOTO 10 160 END

Точка с запятой выполняет функцию подавления перехода на новую строку после оператора PRINT. Ключевое слово END означает завершение программы. Оно необязательно, в его отсутствие программа завершалась после исполнения последнего оператора, но было полезно в случаях, когда имелась секция подпрограмм, либо программа имела несколько возможных точек завершения (в последнем случае либо в каждой такой точке ставили END, либо END был один, а на него делались переходы в других местах).

Поздние версии

Одним из наиболее распространённых вариантов языка Бейсик стала реализация интерпретатора QBasic корпорации Microsoft. Долгие годы она включалась как бесплатное приложение, входящее в операционные системы MS-DOS и ранних Windows. В нём имелись довольно мощные графические и звуковые возможности, позволяющие создавать на этом языке даже игры.

Бейсик поздних версий (начиная с Turbo Basic и Visual Basic) резко отличается от ранних вариантов. Фактически, это новый язык, который во многом ближе к Фортрану или Паскалю, чем к исходному Бейсику. Основные изменения версий 1990-х годов состоят в следующем:

  • Отказались от представления программы как неструктурированного набора пронумерованных строк. Номера строк превратились в обычные метки, которые стали необязательными и перестали влиять на порядок исполнения программы. Если ранее строка с номером 15 всегда шла в программе раньше строки с номером 20, то теперь порядок исполнения стал определяться порядком расположения строк в исходном коде. Метки перестали быть только числовыми.
  • В языке появились именованные подпрограммы с параметрами, механизм вызова подпрограмм стал обычным: подпрограмма вызывается по имени, с указанием списка фактических параметров.
  • Были введены структурные управляющие конструкции, в результате для организации обычных ветвлений и циклов перестало быть необходимым использование оператора GOTO и меток строк.
  • Существенно расширилась номенклатура типов данных, появилась возможность явно описывать типы обычных переменных.
  • Стали необязательными типизирующие суффиксы в именах переменных, хотя их использование не запрещалось.
  • В более поздних версиях появилась обработка исключений и поддержка элементов ООП.
  • Были введены механизмы поддержки модульности — появилась возможность без «фокусов» (типа динамической загрузки модулей с помощью явных системных вызовов) разделять программу на несколько файлов исходного кода.
  • Появились средства для работы с цветной графикой и звуковой картой.
  • Visual Basic, ориентированный на разработку Windows-приложений с графическим интерфейсом пользователя, был выполнен интегрированным с графическим дизайнером интерфейса, что позволило быстро писать простые программы под Windows.
  • Появились кроссплатформенные реализации, например, FreeBASIC и PureBasic.

Практически все недостатки, присущие ранним версиям языка, были исправлены, и программирование на современных диалектах Бейсика мало отличается от использования других языков и сред (например, таких, как Delphi). Оборотной стороной процесса модификации Basic является то, что язык стал гораздо объёмнее и сложнее, его освоение требует больше времени и усилий.

Фрагмент типичной программы на FreeBASIC:

# Lang "fb" Dim As String n,s,t,n2,t2 Cls : Print "Добро пожаловать!" 'Заголовок в первой строке Do 'Цикл, выводящий линию под заголовком, на всю ширину экрана For i As Integer=1 To LoWord(Width) Print "="; Next i 'Ввод символьных данных от пользователя Input "Имя: ",n Input "Фамилия: ",s Input "Отчество: ",t 'Вырезаем копию первых символов из имени и отчества n2=Left(n,1) t2=Left(t,1) 'Выводим результат Print "Ваше имя кратко: "; s; " "; n2; ". "; t2; "." Print "Повторить программу? (y/n) " Loop While LCase(Input(1))="y" End 0

Несмотря на популярность, в 2001 году Microsoft отказалась от дальнейшей поддержки Visual Basic в пользу принципиально нового языка Visual Basic .NET — в этой реализации язык был снова кардинально пересмотрен, и в текущем состоянии он практически совпадает по набору возможностей c языком C#, отличаются только детали синтаксиса и ключевые слова. Таким образом, Basic перерос из средства для создания программ любителям-непрофессионалам до полноценного средства создания программ.

Помимо написания полноценных программ, Бейсик широко применяется как основа для различных скриптовых языков (например, макросы в пакете Microsoft Office пишутся на диалекте VBA).

Критика

Бейсик подвергается жёсткой критике за то, что его простота и бесструктурность поощряют порочные методики и привычки программирования, которые могут быть уместны при создании малых программ, но способны привести к краху крупных проектов.

Одной из «визитных карточек» Эдсгера Дейкстры стало высказывание: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации».[3]

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

Производители

В разное время интерпретаторы BASIC выпускались различными организациями, компаниями, фирмами:

Советские:

Реализации

Apple:

Microsoft:

Другие:

Интересные факты

Примечания

Литература

  • Vladimir Dyakonov and other. The Revolutionary Guide to QBASIC. — Birmingham: Wrox Press Ltd, 1996. — 578 p.
  • Дьяконов В. П. Справочник по алгоритмам и программам на языке Бейсик для персональных ЭВМ. — М.: Наука, Физматлит, 1987. — 240 с.
  • Дьяконов В. П. Применение персональных ЭВМ и программирование на языке Бейсик. — М.: Радио и связь, 1989. — 288 с.
  • Дьяконов В. П. Современные зарубежные микрокалькуляторы. — М.: СОЛОН-Р, 2002. — 400 с.
Стандарты

Ссылки

biograf.academic.ru