Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция 1 Основы алгоритмизации и программиров...doc
Скачиваний:
42
Добавлен:
10.11.2019
Размер:
2.53 Mб
Скачать

Глава 4. Язык программирования basic

В прошлом веке один английский миссионер, желая облегчить кон­такт с туземным населением, выделил из английского языка самую про­стую и распространенную его часть, содержащую около 300 слов и поч­ти не имеющую грамматики. Это подмножество языка, названное BASIC ENGLISH, действительно оказалось весьма простым для усвое­ния и поэтому вскоре завоевало популярность не только среди туземцев, но и иммигрантов.

Подобную цель создания средства для расширения и облегчения контактов, только не между различными группами людей, а между не­профессионалами и ЭВМ, поставили перед собой сотрудники Дартмут-ского колледжа Джон Кемени и Томас Курте. Разработанный ими в 1964 г. алгоритмический язык BASIC (Бейсик), как и всякий другой язык программирования, является формальной знаковой системой, ис­пользуемой для связи человека с ЭВМ и предназначенной для описания данных и алгоритмов их обработки на вычислительной машине. Назва­ние BASIC является аббревиатурой английской фразы «Beginner's All -purpose Symbolic Instruction Code», что в переводе означает «многоцеле­вой язык, символических команд для начинающих» (злые языки, одна­ко, считают, что его изобретатели сначала придумали название своему новому, простому в употреблении языку, а затем уже такую расшифровку).

Вскоре как обучаемые, так и авторы программ обнаружили, что Basic может делать практически все то, что делает громоздкий ЯП Фор­тран. А так как языку Basic было легко обучиться и легко с ним рабо­тать, программы на нем писались быстрее, чем на Фортране. Basic был также доступен на персональных компьютерах, обычно он был встроен в ПЗУ. Так Basic завоевал популярность. Интересно, что и сегодня, спустя 40 лет после изобретения, Basic остается самым простым для освоения из десятков языков общецелевого программирования, имею­щихся в распоряжении программистов. Более того, он прекрасно справ­ляется с работой.

Несмотря на наличие мощных профессиональных языков Си и Pascal, даже на их фоне Basic считается языком, снабженным мощными средствами решения специфических задач, которые обычно большинст­во пользователей решает при помощи небольших компьютеров, а имен­но, работая с файлами и выводя текстовое и графическое изображение на экран дисплея.

Для многих мини- и микроЭВМ Basic предназначался в качестве единственного языка программирования высокого уровня. Это обстоя­тельство привело к появлению различных его версий, включающих в себя многочисленные эффективные средства программирования из дру­гих алгоритмических языков. Таким образом, на сегодняшний день мы имеем не конкретный Basic, а целую группу однотипных диалоговых языков, называемых этим именем.

■ 4.1. Примеры программ

Рассмотрим вначале простейшую диалоговую программу (уже зна­комую из предшествующих разделов):

Программа состоит из двух вложенных циклов Do...Loop. Выход из внешнего и внутреннего циклов происходит при условии ввода в строке NAM или NASTR символа "*" (звездочка) с помощью оператора Exit Do.

При попытке ввести пустую строку в ответ на запрос, программа возвращается в заголовок, соответственно, внутреннего или внешнего Цикла и повторяет запрос на ввод строки. Управление условными пере­ходами осуществляется условным оператором IF.

Операторы Print и Input осуществляют соответственно вывод на эк-Ран и ввод с клавиатуры строк текста. Строки ограничиваются симво­лами " (двойные кавычки). Пустая строка выглядит как "". Конкатена­ция (слияние) строк осуществляется операцией "+".

Условный оператор, представленный здесь, имеет структуру If ... knd If. Логические условия, представленные в примере, образуются с п°мощью операций сравнения равно (=) и не равно (<>).

В программе создаются и используются две переменных строчного типа — nastr и пат. Как это видно из текста, Basic не различает строч­ные и заглавные символы, поэтому написания Nam и пат эквивалент­ны. Кроме того, в данной программе отсутствуют описания (объявле­ния, декларации) переменных. Это возможно, поскольку Basic, подобно Фортрану, позволяет определить тип в тексте программы непосредст­венно. В данном примере суффикс S говорит, что данная переменная — строчная (суффикс %, наоборот, задает числовой тип).

Рассмотрим далее программу сортировки элементов одномерного массива по возрастанию.

Структурно программа состоит из следующих компонентов:

  • цикла ввода исходного массива;

  • двух вложенных циклов сортировки массива;

  • цикла вывода результатов сортировки.

В результате работы программы на экране может быть отображен следующий диалог:

Введите количество элементов массива> 10 Введите элемент массива № 1>2

Введите элемент массива № 2>11 Введите элемент массива № 3>3 Введите элемент массива № 4>1 Введите элемент массива № 5>4 Введите элемент массива № 6>16 Введите элемент массива № 7>5 Введите элемент массива № 8>12 Введите элемент массива № 9>7 Введите элемент массива № 10>8 Элемент массива №1=1 Элемент массива №2 = 2 Элемент массива №3 = 3 Элемент массива №4 = 4 Элемент массива №5 = 5 Элемент массива №6 = 7 Элемент массива №7 = 8 Элемент массива №8=11 Элемент массива №9 = 12 Элемент массива №10=16

Циклы в данном примере организуются вложенными операторами For 1=1 to N% ... Next I и For J=l to N% ... Next J. В качестве условного оператора здесь используется упрощенная конструкция If (без End If), так как здесь при условии выполняется простой (а не составной, как в первом примере) оператор.

В программе появились объявления переменных — массива целых чисел и двух целых переменных. Из текста программы ясно, что обра­щение к элементу массива осуществляется по индексу, заключенному в квадратные скобки. Комментарий начинается с символа ' (одинарная кавычка).

Перестановка элементов массива осуществляется функцией Swap, что избавляет от необходимости совершать последовательность пере­сылок.

■ 4.2. Лексика языка программирования Basic

При записи текстов программ на языке Basic разрешается исполь­зовать заглавные и строчные буквы латинского алфавита (А В С D E F GHIJKLNOPQRSTUVWXYZabcdefghijklnopqrstu v w х у z); знак «подчеркивание» (_); цифры (0 1 2 3 4 5 6 7 8 9) и огра­ничители.

Ограничители представляют собой знаки пунктуации, знаки опера­ций, разделители и служебные (зарезервированные) слова.

Знаки операций представлены следующим набором ограничителей:

+ __/*Л = ><\

В качестве разделителя выступает знак пробела.

Служебные (зарезервированные) слова

Следующие слова могут быть использованы только по своему спе­циальному назначению:

При записи текста программы нет разницы между строчными и прописными буквами.

■ 4.3. Переменные и типы данных

Перейдем далее к краткому рассмотрению ЯП Basic на примере его современной реализации — Visual Basic.

Переменные

В Visual Basic переменные именуются с помощью идентификато­ров, длина которых может достигать 255 символов (они должны начи­наться с буквы, за которой могут следовать другие буквы, цифры или символы подчеркивания). Регистр символов и наименований перемен­ной значения не имеет.

Типы данных

В языке Visual Basic, как и в языке Pascal, типы данных делятся на простые (или базовые) и структурированные.

К простым (базовым) типам в языке Visual Basic относятся:

  • целый;

  • вещественный;

  • логический.

К стандартным структурированным типам относятся:

  • дата;

  • массив;

  • строка;

  • тип, определяемый пользователем.

Логический (булевский) тип данных. Данные логического типа boolean) в стандарте языка могут принимать одно из двух значений:


Целый тип данных. В стандарте языка Basic определен единст­венный целый тип данных Integer. В реализации языка Visual Basic це­лый тип данных представлен множеством типов:

Когда прочие числовые типы данных преобразуются в тип Boolean, значение 0 воспринимается как False, а любое другое значение стано­вится значением True. Если значения типа Boolean преобразуются в значения других (числовых) типов, то значение False становится значе­нием 0, a True становится -1.

Вещественный тип данных. В Visual Basic определены шесть стандартных вещественных типов. Каждый тип характеризуется своей областью изменения возможных значений.

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

I Тип данных Variant. Данный тип добавлен в Visual Basic 5 из вер­сии 2.0. Переменная типа Variant может содержать данные любого типа. Если для переменной не объявлен тип данных, то по умолчанию ис­пользуется тип данных Variant.

Тип информации, хранимой в переменной, при этом не имеет зна­чения, поскольку Variant может принять любой тип данных (численный, дата/время, строковый): Visual Basic автоматически производит необхо­димые преобразования данных. С другой стороны, можно использовать встроенные функции для проверки типа данных, хранящихся в пере­менной типа Variant.

Использование такого типа данных, как Variant, замедляет работу программы, так как требуется время и ресурсы для выполнения опера­ций преобразования типов. Кроме того, использование автоматических преобразований типов данных приводит к неаккуратному виду про­грамм.

Если в программе для некоторой переменной MyVar записаны опе­раторы Ш

то фактически тип переменной в каждом операторе будет определяться выражением в правой части.

Тип данных Дата. Переменные типа Дата представляют собой 8-байтовые представления в форме с плавающей точкой календарных дат в интервале от1 января 100 года до 31 декабря 9999 года с составляю­щей времени в интервале от 0:00:00 до 23:59:59.

Константы типа Дата должны справа и слева ограничиваться зна­ком «#», например, #January I, 2002#.

Тип данных Строка (String). Строковый тип данных позволяет Хранить последовательности символов — строки. Строки могут быть переменной и фиксированной длины.

Теоретически такой тип данных позволяет хранить строковые Переменные длиной до 2 миллиардов символов. Однако, на конкрет­ном компьютере это число может быть гораздо меньше из-за ограни-

ченных объемов оперативной памяти или ресурсов операционной системы.

Строки фиксированной длины. Строки фиксированной длины представляют собой специальный тип строки, длина которой ограниче­на. Подобные переменные создаются при помощи оператора Dim. На­пример:

Операции со строковыми типами. Visual Basic позволяет исполь­зовать знак операции «+» или «&» для объединения двух строковых операндов. Результатом операции S+T (или S&T), где S и Т имеют стро­ковый тип, будет конкатенация S и Т — новая строка, результат добав­ления строки Т в конец строки S.