
- •Примеры и решения
- •1. Рассмотрим следующую известную задачу: имеются два кувшина емкостью 3 и 8 л. Необходимо составить алгоритм, с помощью которого, пользуясь только этими двумя кувшинами, можно набрать 7 л воды.
- •Глава 4. Язык программирования basic
- •Стандартные функции для работы со строками
- •Visual Basic позволяет также создавать многомерные массивы. При объявлении многомерного массива верхние границы каждой размерности разделяются запятыми:
- •Приоритет выполнения операций
- •Арифметические операции
- •Операции сравнения
- •Операторы цикла
- •3. Найти максимальный делитель d нахурального числа к (за исключением самого к):
- •I Закрытие файла с закрытием файла связано освобождение канала ввода-вывода и, возможно, дальнейшее использование этого канала для связи с другим внешним файлом.
Стандартные функции для работы со строками
Для работы с переменными строкового типа определены стандартные функции. Некоторые из них (наиболее часто используемые) приведены в таблице:
Тип данных Массив
Язык позволяет определить две разновидности массивов: статические и динамические. Границы статического массива устанавливаются на этапе разработки и могут изменяться только в новой версии программы. Динамические массивы изменяют свои границы в ходе выполнения программы. С их помощью можно динамически задавать размер массива в соответствии с конкретными условиями.
Для объявления статического массива используется оператор Dim с указанием в круглых скобках после имени массива его максимального индекса:
В этом случае элементы переменной NameArray различают не по Имени, а по индексу:
Статические массивы определяются только глобально — их нельзя определить локально внутри процедуры.
В Visual Basic индексирование массива всегда начинается с нуля, т.е. индекс 0 обозначает первый элемент массива, индекс I — второй и т.д.
Оператор Option Base позволяет задать индексацию массива с 1: Option Base I
Допустимыми значениями для Option Base являются только 0 и 1. Этот оператор служит для того, чтобы обеспечить совместимость Visual Basic с другими диалектами Basic, индексация в которых начинается с 1.
Для установки других границ массива необходимо использовать следующий синтаксис:
Dim Имя_переменной ([Нижн_предел То] Верхн_предел)
Указанием верхней и нижней границ можно задать любые диапазоны индекса. Это удобно, если индекс несет также определенную смысловую нагрузку (дата, номер заказа, возраст и т.п.)
Dim BirthDate (1980 То 2050)
Visual Basic позволяет также создавать многомерные массивы. При объявлении многомерного массива верхние границы каждой размерности разделяются запятыми:
Dim NameArray(10, 25) As String
Массив с именем NameArray может содержать 286 различных значений (11-26 =286).
Динамический массив объявляются в том случае, если его размер заранее неизвестен. Объявление массива как динамического позволяет изменять его размер или размерность во время выполнения программы.
Динамический массив создается в два этапа. Сначала массив определяют без указания размера:
Dim DynArrayO As Variant
Затем с помощью оператора ReDim устанавливают фактический размер массива:
ReDim DynArray (50, 10) Синтаксис оператора ReDim:
ReDim Имя_переменной (Границы) [As Тип__данных]
Операции с массивами
Начиная с Visual Basic 6.0, в языке появилась возможность присвоить содержимое одного массива другому так же, как обычно присваивается значение одной переменной другой. Например, задача копирования массива может быть решена традиционным путем (поэлементным копированием):
For i = Lbound(oldCopy) To Ubound(oldCopy)
newCopy(i) = oldCopy(i)
Next
В этом примере функция Lbound(oldCopy) определяет нижнюю границу индекса, a Lbound(oldCopy) — верхнюю границу индекса массива oldCopy. Однако гораздо проще и привлекательней это выглядит, если присвоить один массив другому:
newCopy = oldCopy
Тип данных, определяемый пользователем
Язык Basic дает возможность определять типы данных, представляющие собой совокупность описания полей данных, аналогичную, например, записи языка Pascal.
Синтаксис определения пользовательского типа данных следующий:
Туре <имя типа> <имя поля> As type [<имя поля> As type]
End Type
После описания типа данных необходимо разместить переменную заданного типа с помощью оператора Dim: Dim <имя переменноп> As <имя типа> Например:
Type StudentRecord ' Определяем тип данных
FirstName As String * 20
LastName As String * 20
Address As String * 30
Phone As Long
Birthday As Date End Type Dim MyRecord As StudentRecord
' Объявляем переменную 1 Заполняем поля данных MyRecord.FirstName = "Лютиков" MyRecord.LastName = "Иван"
MyRecord.Address = "г.Москва, ул.Профсоюзная, д.5 кв.10" MyRecord.Phone = 1205643 MyRecord.Birthday - #12.09.86#
Идентификаторы типов данных
При объявлении переменных тип данных можно не указывать. Для того чтобы переменная была отнесена к определенному типу, можно
использовать так называемые идентификаторы типов — специальные символы, добавляемые справа к идентификатору, задающему имя пере, менной
■ 4.4. Операции
Операции подразделяются на несколько групп:
арифметические операции;
операции отношения;
логические операции;
операции с битами информации.