
- •Примеры и решения
- •1. Рассмотрим следующую известную задачу: имеются два кувшина емкостью 3 и 8 л. Необходимо составить алгоритм, с помощью которого, пользуясь только этими двумя кувшинами, можно набрать 7 л воды.
- •Глава 4. Язык программирования basic
- •Стандартные функции для работы со строками
- •Visual Basic позволяет также создавать многомерные массивы. При объявлении многомерного массива верхние границы каждой размерности разделяются запятыми:
- •Приоритет выполнения операций
- •Арифметические операции
- •Операции сравнения
- •Операторы цикла
- •3. Найти максимальный делитель d нахурального числа к (за исключением самого к):
- •I Закрытие файла с закрытием файла связано освобождение канала ввода-вывода и, возможно, дальнейшее использование этого канала для связи с другим внешним файлом.
Глава 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.