- •Лабораторная работа № 2 Программы линейной структуры
- •Переменные и присваивание
- •Литералы и их соответствие типам данных
- •Integer: 4-байтовое целое со знаком в интервале от -2 147 483 648 до 2 147 483 647, аналог типа Long в прежних версиях vb. Признаком типа Integer в литералах является суффикс I — например, 2371.
- •Прочие литералы
- •Объявление переменных
- •Преобразования разнотипных значений
- •Vb .Net автоматически выполняет преобразование между символьным типом и строкой, состоящей из одного символа.
- •Vb .Net выполняет числовые преобразования только в том случае, если преобразуемое число входит в интервал допустимых значений нового типа; в противном случае выдается сообщение об ошибке.
- •Константы
- •Строковые функции
- •Форматированный вывод данных
- •Математические функции и математические константы
Vb .Net выполняет числовые преобразования только в том случае, если преобразуемое число входит в интервал допустимых значений нового типа; в противном случае выдается сообщение об ошибке.
На первый взгляд кажется, что тип Char можно интерпретировать как короткое целое без знака (то есть целое в интервале от 0 до 65 535), но делать этого не следует. Начиная с бета-версии 2 было запрещено преобразование Char в число функциями семейства CInt; вместо этого используется встроенная функция Asc.
Ниже приведен хрестоматийный пример — преобразование температуры по Цельсию в температуру по шкале Фаренгейта. Мы руководствуемся следующими предположениями:
Пользователь завершает ввод текста нажатием клавиши Enter.
Все введенные символы воспринимаются методом ReadLine().
Пользователь ввел число, поэтому введенный текст преобразуется к числовому типу функцией CDec (конечно, на практике введенные данные следовало бы предварительно проанализировать):
' Преобразование температуры по Цельсию в температуру по Фаренгейту
Option Strict On Module
Module Modulel
Sub Main()
Dim cdeg As Decimal
Console.WriteLine(“ Enter the degrees in centigrade...")
cdeg = CDec(Console.ReadLine())
Dim fdeg As Decimal
fdeg = (((9@ / 5) * cdeg) + 32)
Console.WriteLine(cdeg & " is " & fdeg & " degrees Fahrenheit.")
Console. ReadLine()
End Sub
End Module
Обратите внимание на суффикс @ — он гарантирует, что при вычислениях будет использоваться тип Decimal. Если убрать этот суффикс, то при включенной жесткой проверке типов будет выдано сообщение об ошибке!
При использовании простого оператора / для деления в VB .NET необходимо учитывать некоторые нюансы. За дополнительной информацией обращайтесь к разделу «Математические операторы».
Константы
VB .NET позволяет создавать именованные константы для значений, остающихся постоянными на протяжении всей работы программы. Константы объявляются по аналогии с переменными, а их имена подчиняются тем же правилам: до 255 символов, начинаются с буквы, после которой следует произвольная комбинация букв, цифр и символов подчеркивания. В книге имена констант записываются прописными буквами.
В VB .NET при активизации жесткой проверки типов необходимо явно указывать тип констант:
Const PIE = 3.14159 ' Не будет компилироваться с Option Strict
Const PIE As Double = 3.14159 ' Правильно, но Math.PI лучше :-)
Значение констант может определяться числовыми выражениями, в том числе и содержащими ранее определенные константы:
Const PIE_OVER_2 As Double = PIE / 2
Аналогичным образом определяются строковые константы:
Const USER_NAME As String = "Bill Gates"
Строки
Строковая переменная содержит текст в кодировке Unicode длиной до 231 (более 2 миллиардов!) символов. Как было показано выше, значения строкового типа заключаются в кавычки:
Dim message As String
message = "Help"
Конкатенация (объединение) строк обычно выполняется оператором &. Старый вариант с оператором + тоже работает, но при отключении жесткой проверки типов он может вызвать серьезные проблемы, поэтому использовать знак + при конкатенации не рекомендуется. Старый способ идентификации строковых переменных с суффиксом $ (например, aStringVariableS) иногда используется для временных переменных.
В VB .NET строковые переменные не относятся к базовому типу, а являются экземплярами класса String. Некоторые нюансы, связанные с их применением, будут рассмотрены позже, а пока мы упомянем лишь одну особенность, о которой необходимо знать для эффективной работы со строками в VB .NET: при любой модификации строки в VB .NET создается новый экземпляр строки. Частая модификация строки требует больших затрат ресурсов, поэтому в VB .NET имеется класс StringBuilder для выполнения подобных операций (например, выборки данных из буфера и объединения их в строковой переменной).
В отличие от предыдущих версий VB, в VB .NET не поддерживаются строки фиксированной длины.