Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПиОА_1 семестр_1 / ПОСОБИЕ_VB.Net

.pdf
Скачиваний:
658
Добавлен:
06.03.2016
Размер:
3.4 Mб
Скачать

Основные свойства класса Button:

 

 

Свойство

 

 

 

Описание

 

 

 

Name

Имя объекта Button

 

 

 

 

 

 

 

 

 

 

Text

Надпись на кнопке

 

 

 

 

 

 

 

 

 

Visible

True – кнопка видна на форме, False – невидна

 

 

 

 

 

 

 

 

Enabled

True – кнопка активна, False – неактивна.

 

 

 

 

 

 

 

 

 

 

Основное событие класса

Button:

 

 

 

 

 

 

 

 

 

 

Click

Происходит, когда пользователь щелкает основной (ле-

 

 

вой) кнопкой мыши на объекте.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(графическое поле).

Предназначен

 

 

 

PictureBox

 

 

 

 

 

 

 

 

 

для размещения графики на форме.

 

 

 

Основные свойства класса PictureBox:

 

 

 

 

 

 

 

 

 

 

 

Свойство

 

 

 

Описание

 

 

 

 

 

Содержит имя графического файла с рисунком, имя за-

 

 

Image

дается с помощью диалогового окна

Select Re-

 

 

 

 

sourse при нажатии кнопки Imports… (рис. 1.9)

 

 

 

 

 

 

 

Visible

Задает видимость рисунка на экране. True – рисунок

 

 

виден, False – нет.

 

 

 

 

 

 

 

 

 

 

Позволяет задать режимы отображения рисунка:

 

 

 

 

- AutoSize – автоматическая установка размеров

 

 

 

 

PictureBox в соответствии с размерами рисунка;

 

 

SizeMode

- StretchImage – автоматическое масштабирование

 

 

 

 

рисунка;

 

 

 

 

 

 

 

- CenterImage – размещение рисунка по центру

 

 

 

 

PictureBox

 

 

 

 

 

 

 

 

 

 

 

 

 

21

Рис. 1.9 Диалоговое окно Select Resource

1.4. Практическая часть. Создание первого приложения

Задача 1.1. Создать простое приложение, при выполнении которого меняется надпись на кнопке.

Шаг 1. Запустите Microsoft Visual Studio 2008. Для этого выберите:

Пуск → Все программы → Microsoft Visual Studio 2008 Microsoft Visual Studio 2008.

Шаг 2. Выберите ссылку Create. Откроется диалоговое окно

New Project (рис. 1.1).

Шаг 3. В списке Project Types выберите Visual Basic Windows, а в списке Templates Windows Forms Application (приложение Windows). В поле Name введите название проекта Мой первый проект. Нажмите кнопку ОК.

Шаг 4. В окне проекта (на вкладке дизайнера) выделите макет формы, в окне Properties появятся свойства этой формы. Найдите в окне Properties свойство Text и введите в поле, расположенное справа, строку Мое первое приложение. По окончании ввода нажмите клавишу Enter, после чего в заголовке макета формы в окне конструктора появится введенный текст.

Для запуска вашего первого приложения выберите команду меню Debug Start или нажмите клавишу F5, или кнопку со

значком , расположенную на панели Standard. В результате ваше приложение заработает: появится окно, правда, пока оно пустое.

22

Шаг 5. Чтобы завершить работу созданного приложения щелкните стандартную кнопку закрытия формы (крестик). После закрытия приложения произойдет возврат в среду разработки. Обратите внимание на появившееся окно Output (результат), где сохранились сообщения VS.NET, сгенерированные на этапах компиляции (Build) и отладки (Debug). После закрытия приложения произойдет возврат в среду разработки. Обратите внимание на появившееся окно Output (результат), где сохранились сообщения VS.NET, сгенерированные на этапах компиляции (Build) и отладки (Debug).

Шаг 6. Добавьте на форму кнопку – для этого на панели Toolbox найдите объект Button и щелкните на нем (указатель мыши изменит свой вид), затем щелкните в том месте формы, где нужно поместить левый верхний угол кнопки – кнопка появится на форме.

Шаг 7. Измените надпись на кнопке. Для этого выделите макет кнопки, в окне Properties найдите свойство Text и введите в поле, расположенное справа, текст «Привет!». Нажмите клавишу

Enter.

Шаг 8. Создайте программный код для изменения надписи на кнопке во время работы программы. Для этого создайте событийную процедуру двойным щелчком на кнопке « Привет!». В результате в тексте программы появятся две сгенерированные VB.NET строки, между которыми оставлено место. Вставьте туда строку

Buttonl.Text = "Пока!"

Шаг 9. Запустите приложение. На экране появится окно с заголов-

ком Мое первое приложение и кнопкой с надписью Привет!

Нажмите на кнопку, текст надписи на ней изменится на Пока!

Шаг 10. Завершите работу запущенного приложения. Для сохранения изменений в созданном проекте нажмите на значок панели

Standard.

Шаг 11. Откройте каталог вашего проекта. Просмотрите папки и файлы, созданные средой Visual Studio. В папке bin находится подкаталог, содержащий откомпилированные коды. В папке obj находится подкаталог, задействованный в процессе отладки. Исходный текст программы хранится в файле Forml.vb.

23

1.5. Контрольные вопросы и задания

1.В чем заключается основное отличие процедурного и объектноориентированного программирования?

2.Назовите основные принципы объектно-ориентированного программирования

3.Что такое объект?

4.Что такое класс?

5.В чем заключается наследование?

6.Что такое инкапсуляция и для чего она применяется?

7.В чем заключается полиморфизм операций?

8.Что такое метод?

9.Что такое свойство объекта, каким образом его можно изменять?

10.Что такое событие? Каково назначение обработчика событий?

11.Каково назначение сообщений?

12.В чем заключается преимущества визуального программирования интерфейса?

13.С какими элементами управления Вы познакомились? Для каких целей вы можете использовать их в своих проектах?

14.Каково назначение страниц Свойства и События в окне

Инспектора объектов?

15.Как разместить элемент управления на форме?

16.Какими способами можно изменять свойства элемента? Приведите примеры.

17.Каким образом можно инициировать создание процедурыобработчика событий?

24

2.СОЗДАНИЕ ПРИЛОЖЕНИЙ ЛИНЕЙНОЙ СТРУКТУРЫ

2.1.Алфавит языка VB. Net и его лексемы

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

+ -

*

/

>

< = ; # ’ , .

:

[]

{}

$

() ^ @ пробел

и составные символы:

<> <= >=

Лексема – единица текста программы, которая при компиляции воспринимается как единое целое и по смыслу не может быть разделена на более мелкие элементы.

Вязыке используется шесть классов лексем:

-пользовательские идентификаторы,

-служебные (ключевые) слова,

-константы,

-строки (строковые константы),

-операции (знаки операций),

-разделители (знаки пунктуации).

Служебные (ключевые) слова имеют фиксированные начертания и раз навсегда определенный смысл, заданный разработчиками языка программирования: например: if, not, mod, do, loop и т.д.

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

Правила написания пользовательских идентификаторов:

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

-Не могут содержать пробелы и специальные символы.

-Прописные и строчные буквы воспринимаются программой как синонимы.

-Нельзя использовать зарезервированные слова.

Константы. Простейшие объекты программы, значения которых заранее известны и в процессе выполнения программы не изменяются.

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

25

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

Тип данных определяет:

-внутреннее представление данных;

-объем памяти для хранения переменной или константы указанного типа;

-набор операций, которые с ними можно производить.

Оператором языка программирования можно назвать закодированную форму инструкции алгоритма. Операторы являются основными исполняемыми элементами кода приложения.

Операторы можно разделить на простые и структурные (управляющие конструкции).

Простой оператор VB. Net занимает отдельную строку программного кода. Если необходимо записать в одной строке два простых оператора, то между ними ставится разделитель «:».

Например,

a = 5: b = 0

Если простой оператор необходимо разбить на несколько строк, то в конце каждой строки ставится пробел и разделитель «_».

Например,

k = Convert.ToSingle _

(InputBox("Введите k", "Ввод данных", "10"))

Если структурный оператор (условный, выбора, цикла) имеет блочную структуру (расположен на нескольких строках), то он должен заканчиваться соответствующим ключевым словом (end if,

end select, next, loop).

Например,

if x < 0 then y = 1 else: y = 0

end if

26

2.2. Типы данных

Все переменные и константы, используемые в программном коде, необходимо объявлять, указывая их имена (индентификаторы) и типы, хранимых в них данных. Основные типы данных, принадлежащие классу System.Object библиотеки FCL и их соответствие типам языка VB .NET, представлены в табл. 2.1.

Таблица 2.1. Основные типы представления данных

Наименование

Наименование

 

Длина

Диапазон значений

в FCL

в VB.Net

 

(байт)

 

 

 

 

 

Целые типы

Byte

Byte

 

1

от 0 до 255

 

 

 

 

 

SByte

SByte

 

1

от -128 до 127

 

 

 

 

 

Int16

Short

 

2

-32 768 до 32767

 

 

 

 

 

UInt16

UShort

 

2

от 0 до 65535

 

 

 

 

 

Int32

Integer

 

4

от -2 147 483 648 до + 2 147 483 647

 

 

 

 

 

UInt32

UInteger

 

4

от 0 до 4294967295

 

 

 

 

 

Int64

Long

 

8

от -9 223 372 036 854 775 808

 

до 9 223 372 036 854 775 807

 

 

 

 

 

 

 

 

 

UInt64

ULong

 

8

от 0 до 18446744073709551615

 

 

 

 

 

Вещественные типы

Single

Single

 

4(7)

от 1,5 × 10-45 до 3,4 × 1038

Double

Double

 

8(16)

от 5,0 × 10-324 до 1,7 × 10308

Decimal

Decimal

 

12(28)

от 1,0 × 10-28 до 7,9 × 1028

 

 

Логический тип

Boolean

Boolean

 

2

Булево значение, которое может

 

иметь значение либо true, либо false

 

 

 

 

 

Символьный тип

 

 

 

 

Одиночный символ Unicode, сохра-

Char

Char

 

2

няемый в виде целого числа в диапа-

 

 

 

 

зоне от 0 до 65535

 

 

Строковый тип

String

String

 

 

Строка символов в кодировке

 

 

Unicode

 

 

 

 

Примечание. Символ u в начале имен некоторых типов является сокращением от слова unsigned (без знака)

27

2.3. Операторы объявления констант и переменных

Операторы объявления являются неисполняемыми и используются для именования и определения процедур, переменных, свойств, массивов и констант. При объявлении элемента программирования можно также определить его тип данных, уровень доступа и область действия.

Формат объявления констант:

Const Имя константы = Значение

Формат объявления переменных:

Dim Имя переменной As Тип данных [= Значение]

Примеры объявлений:

Const с As Single = 5.9732 Dim a As Int32 = 1

Первое объявление – это оператор Const, который объявляет константу с, указывая ее вещественный тип данных и значение 5.9732. Второе объявление – это оператор Dim, который объявляет переменную a, указывая ее целый тип данных, и инициализирует переменную, т.е. задает ее начальное значение равное 1.

Можно объявить несколько переменных в одном операторе объявления, разделив их запятыми. Кроме того, можно объявить несколько переменных одного типа с помощью общего предложения As (в этом случае не допускается использовать инициализацию).

Dim i,j,k As Int32

Dim a, b, c As Single, x, y As Double

Если в операторе Dim для переменной не указывается значение, VB.Net инициализирует ее значением по умолчанию для ее типа данных. В табл. 2.2 показаны значения инициализации по умолчанию.

 

Таблица 2.2. Значения инициализации по умолчанию

Тип данных

 

Значение по умолчанию

Все числовые типы

 

0

 

 

 

Char

 

Двоичный 0

 

 

 

String

 

Nothing

 

 

 

Boolean

 

False

 

 

 

 

28

2.4.Преобразование типов

Впрограммировании нередко значения переменных одного типа присваиваются переменным другого типа.

Например,

Dim n As Int32 = 10 Dim a As Double

a = n 'присвоить целое значение переменной типа Double

Значение переменной n сначала преобразуется в вещественный тип Double, а затем присваивается переменной a.

Неявное преобразование типов происходит автоматически при следующих условиях:

-оба типа совместимы;

-диапазон представления чисел целевого типа шире, чем у исходного типа.

Если оба эти условия удовлетворяются, то происходит расширяющее преобразование. Числовые типы, как целочисленные, так и вещественные, вполне совместимы друг с другом для выполнения расширяющих преобразований.

Dim num1, num2 As Int16 num1 = 10;

num2 = 15;

Dim x, y, s As Int32 x = num1 : y = num2 s = x + y

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

Int32.

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

Некоторые функции приведения типов языка VB.Net приведены в табл. 2.3.

29

 

Таблица 2.3. Функции приведения типов

 

 

Функция

Описание

 

 

Val()

Преобразует строку символов к числовому типу объявленной

переменной

 

 

 

Str()

Преобразует числовую переменную в строку символов

 

 

CBool()

Преобразует выражение к типу Boolean

 

 

CByte()

Преобразует выражение к типу Byte

 

 

CInt()

Преобразует выражение к типу Integer с округлением

 

 

CIng()

Преобразует выражение к типу Long с округлением

 

 

CSng()

Преобразует выражение к типу Single

 

 

CDate()

Преобразует выражение к типу Date

 

 

СDbl()

Преобразует выражение к типу Double

 

 

CStr()

Преобразует выражение к типу String

 

 

CChar()

Преобразует первый символ строки к типу Char

 

 

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

Например:

Dim a As Double = 2.55

Dim n1 As Int32 = CInt(a)

Результат: 3.

Если приведение типов приводит к возникновению условия переполнения, то во время выполнения проекта будет генерироваться исключение OverflowException (рис. 2.1).

30

Рис. 2.1 Исключение OverflowException

Применения методов FCL для явного преобразования типов

Метод Parse. Позволяет преобразовать строку символов в указанный тип данных:

Dim y As Double, x As Int32 Dim S As String = "25"

Dim S1 As String = "3,1416"

'Преобразование строки S в целый тип x = Int32.Parse(S)

'Преобразование строки S1 в вещественный тип y = Double.Parse(S1)

Методы класса Convert. Данный класс определен в пространстве имен System, содержит 15 статических методов вида

ToType,

где Type может принимать значения от Boolean до UInt64 для всех встроенных типов.

Пример использования класса Convert для преобразования ти-

пов:

Dim x As Int32 = 125

Dim y As Double = 2.57

'Приведение вещественной переменной y 'к целому типу с округлением

31

x = Convert.ToInt32(y)

'Приведение целой переменной x 'к вещественному типу

y = Convert.ToDouble(x)

2.5. Область видимости переменных

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

Область действия уровня блока. Блок представляет собой на-

бор операторов, в начале и в конце которого стоят операторы начала и завершения блока, например:

Do Loop

For Next

If End If

Если объявить переменную в блоке, то ее можно использовать только внутри этого блока, например:

If n < 1291 Then

Dim c As Int32

c = n ^ 3

End If

Здесь область действия переменной c типа Int32 – это блок между операторами If и End If. Ссылаться на переменную c вне этого блока нельзя.

Область действия уровня процедуры. Переменные, объявлен-

ные внутри процедуры, называются локальными переменными. Они доступны только в этой процедуре.

Область действия уровня модуля. Переменные, объявленные в самом начале кода файла формы сразу после слов Public Class, являются членами класса данной формы и доступны в пределах любой ее процедуры (рис. 2.2).

32

Рис. 2.2 Описание переменных, доступных в пределах модуля формы

Использование локальных переменных являются хорошим выбором для любого типа временных вычислений по следующим причинам:

-Предотвращение конфликтов имен. Имена локальных перемен-

ных исключает возможность конфликта имен. Например, можно создать несколько разных процедур, содержащих переменную с именем i. Поскольку каждая переменная i объявлена как локальная переменная, каждая процедура распознает только свою собственную версию i. Любая процедура может изменить значение собственной локальной переменной i, не затрагивая значений переменных i в других процедурах.

-Потребление ресурсов памяти. Локальные переменные потребляют память только во время выполнения процедуры. Память, занимаемая ими, высвобождается, когда процедура возвращает управление вызывающему коду.

2.6. Оператор присваивания

Оператор в VB.Net – это полная инструкция. В инструкциях содержатся ключевые слова, переменные, константы и выражения. Каждая инструкция принадлежит к одной из следующих двух категорий:

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

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

33

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

Формат простого оператора присваивания:

Элемент = Выражение

Элементом может быть простая скалярная переменная, свойство или элемент массива. Выражение состоит из операндов и операций, которые выполняются над операндами.

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

 

 

 

 

 

 

Таблица 2.4. Арифметические операции

 

Приоритет

 

Операция

 

Пояснения

1

 

а ^ b

 

Возведение числа а в степень b

 

 

 

 

 

2

 

a * b

a / b

Умножение и деление а на b

 

 

 

 

 

 

3

 

a \ b

 

Целочисленное деление

 

 

 

 

4

 

a Mod b

Остаток от деления a на b

 

 

 

 

 

5

 

а + b

а - b

Сложение и вычитание

 

 

 

 

 

 

 

Деление на ноль приводит к разным результатам в зависимости от типов данных:

-при целочисленном делении (делитель и делимое должны быть целыми типами), а также при выполнении операций деления с типом данных Decimal или Single .NET Framework формирует исключение DivideByZeroException;.

-при делении с плавающей запятой с использованием типа данных Double результатом является член класса, представляющий результат NaN (не заданное математически число),

PositiveInfinity (бесконечность) или

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

Double на ноль.

34

Таблица 2.5. Результат попытки деления на ноль

Тип данных

Тип данных

Значение

Результат

делимого

делителя

делимого

 

Double

Double

0

NaN

 

 

 

 

Double

Double

> 0

PositiveInfinity

 

 

 

 

Double

Double

< 0

NegativeInfinity

 

 

 

 

Результат операции a Mod b зависит от типов операндов:

-если оба операнда целого типами, то результат операции также будет целого типа:

Dim x As Int32 = 100, y As Int32 = 6

Dim z As Int32

z = x Mod y

Результат: z равно 4

-если один из операндов имеет вещественный тип, то результат также будет вещественного типа:

Dim a As Double = 100.3, b As Double = 4.13

Dim c As Double

c = a Mod b

Результат: c равно 1,18

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

Составной оператор присваивания позволяет сократить запись присвоения, при котором целевая переменная, стоящая слева от оператора, используется в качестве первого операнда в правой части выражения, например, x += 10 это краткий эквивалент оператора x = x + 10. В табл. 2.6 приведены составные операторы присваи-

вания, определенные для VB.Net.

35

 

Таблица 2.6. Составные операторы присваивания

 

 

 

Оператор

Пояснение

 

 

 

 

y += x

y = y + x

 

 

 

 

y -= x

y = y - x

 

 

 

 

y ^= x

y = y ^ x

 

 

 

 

y *= x

y = y * x

 

 

 

 

y \= x

y = y \ x

 

 

 

 

y /= x

y = y / x

 

 

 

 

s1 &= s2

s1 = s1 & s2 (сцепление двух строк)

 

2.7. Организация ввода/вывода данных в VB.Net

Ввод данных в приложениях VB.Net может осуществляться:

1.С помощью функции InputBox, которая выводит на экран собственное диалоговое окно (рис. 2.3).

Рис. 2.3 Ввод данных с помощью функции InputBox

Оператор ввода данных с использованием этой функции:

Имя = InputBox(Приглашение, Заголовок, НачЗначение)

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

Приглашение – подсказка пользователю; Заголовок – заголовок окна ввода; НачЗначение – пустая строка или начальное значение;

Возвращаемое функцией InputBox значение имеет тип String. Если это значение присваивается числовой переменной, то его нужно преобразовать к объявленному числовому типу. Например, с помощью метода класса Convert:

Dim k As Single

k = Convert.ToSingle _

(InputBox("Введите k", "Ввод данных", "10"))

36

Примечание. Знак подчеркивания в коде программы означает, что оператор VB.Net продолжается на следующей строке.

2. С помощью текстового окна TextBox. В этом случае на форме должно присутствовать текстовое окно, к примеру, TextBox1, а в событийной процедуре должен быть записан программный код, в котором используется свойство Тext объекта TextBox1.

Свойство Тext имеет тип String, поэтому необходимо его преобразование в числовое значение с помощью соответствующего метода. Например,

Dim a As Single

a = Single.Parse(TextBox1.Text)

Вывод данных в приложениях VB.Net может осуществляться: 1. С помощью функции MsgBox, которая при выполнении активизирует окно сообщений. Например, оператор

MsgBox("На нуль делить нельзя!") вызывает при выполне-

нии проекта появление окна с соответствующей надписью.

2.С помощью текстового окна TextBox, изменяя его свойство

Text, Если выводится числовое значение, то оно должно быть преобразовано в строку символов, например, с помощью метода класса Convert:

TextBox1.text = Convert.ToString(k)

3. С помощью метки Label, изменяя ее свойство Text:

Label1.Text = "Результат= " & Convert.ToString(a)

Примечание. Знак & в коде программы означает, что вывод осуществляется двумя сцепленными подстроками.

В приведенных выше примерах числовые значения выводятся в бесформатном виде. Количество знаков после запятой ограничивается 15 цифрами.

Форматированный вывод

При форматировании вывода в .NET Framework может быть использовано как простое, так и составное форматирование. Простое форматирование поддерживает метод ToString, составное форматирование поддерживает метод String.Format.

37

Метод ToString. Для вывода по формату можно воспользоваться методом ToString, примененному к выводимой переменной, указав в скобках в двойных кавычках шаблон вывода:

TextBox1.Text = "Результат= " & k.ToString("F4")

или

TextBox1.Text = "Результат= " & k.ToString("0.00")

В табл. 2.7 и 2.8 представлены стандартные и настраиваемые описатели числовых форматов, применяемые в качестве шаблонов вывода.

Таблица 2.7. Некоторые стандартные описатели числовых форматов

Описатель

Имя и описание

Примеры

формата

 

 

 

С фиксированной запятой. Результат:

1234.567 ("F")

 

Результат: 1234,57

 

цифры целой и дробной частей с не-

 

 

F или f

обязательным отрицательным знаком.

1234 ("F1")

Поддерживается: всеми числовыми

Результат: 1234,0

 

 

 

 

типами данных. Описатель точности:

-1234.56 ("F4")

 

количество цифр дробной части.

Результат: -1234,5600

 

 

 

 

 

 

 

1234.567 ("E")

 

 

Результат: 1,234567E+003

 

Экспоненциальный. Результат: экспо-

0.567 ("E5")

E или e

ненциальная нотация. Поддерживает-

Результат: 5,67000E-001

 

ся: всеми числовыми типами данных.

 

 

 

 

1.567 ("E2")

 

 

Результат: 1,57E+000

 

 

 

 

Общий. Результат: наиболее компакт-

 

 

ная запись из двух вариантов: экспо-

-123.456 ("G")

 

ненциального или с фиксированной

 

Результат: -123,456

 

запятой. Поддерживается: всеми чи-

 

-123.456 ("G2")

G или g

словыми типами данных.

Результат: -1,2E+02

 

Описатель точности: количество зна-

 

-123.456 ("G4")

 

чащих цифр. Описатель точности по

 

Результат: -123,5

 

умолчанию: определяется численным

 

 

 

типом.

 

 

 

 

38

Таблица 2.8. Некоторые настраиваемые описатели числовых форматов

Описатель

Имя и описание

Примеры

формата

 

 

 

Знак-заместитель нуля. Заменяет ноль

123.456 ("00000")

"0"

соответствующей цифрой, если таковая

Результат: 00123

имеется. В противном случае в резуль-

 

 

123.456 ("0.00")

 

тирующей строке будет стоять ноль.

Результат: 123,46

 

 

 

 

 

 

 

123.456 ("#####")

 

Знак-заместитель цифры. Заменяет

Результат: 123

 

знак "#" соответствующей цифрой, если

123.456 ("#.##")

"#"

таковая имеется. В противном случае в

Результат: 123,46

 

результирующей строке не будет циф-

 

 

ры.

0.456 ("#.####")

 

 

Результат: ,456

 

 

 

Составное форматирование. В качестве входных данных для составного форматирования используются:

-список выводимых объектов;

-строка составного формата.

Строка составного формата состоит из фиксированного текста, в который включены индексированные местозаполнители, они называются элементами форматирования и соответствуют выводимым объектам из списка.

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

Составное форматирование поддерживает метод String.Format, который возвращает отформатированную результирующую строку.

Синтаксис элементов форматирования. Каждый элемент фор-

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

{индекс [, выравнивание][: строка формата]}

Индекс. Обязательный параметр – это число, определяющее соответствующий объект из списка вывода; индексация элементов начинается с нуля. Иными словами, элемент форматирования с индек-

39

сом 0 отвечает за формат первого выводимого объекта в списке, элемент форматирования с индексом 1 служит для форматирования второго выводимого объекта в списке и т. д.

Выравнивание. Необязательный параметр – это целое число со знаком, которое служит для указания желательной ширины поля форматирования. Если значение выравнивания меньше длины форматируемой строки, то компонент игнорируется, и в качестве значения ширины поля используется длина форматируемой строки.

Форматируемые данные выравниваются в поле по правому краю, если выравнивание имеет положительное значение, или по левому краю, если выравнивание имеет отрицательное значение.

При необходимости отформатированная строка дополняется пробелами. При использовании компонента Выравнивание перед ним необходимо поставить запятую.

Строка формата. Необязательный параметр, соответствующий типу форматируемого объекта. Если параметр Строка формата не задан, то для числовых значений, значений даты и времени, а также перечислений используется общий формат (G).

При использовании параметра Строка формата перед ним необходимо поставить двоеточие.

Примеры использования метода String.Format для организации составного форматирования:

String.Format("{0:0.000}", k)

String.Format("{0,5:F}", a)

String.Format("{0:0.000} {1,5:F3}", k, a)

2.8.Использование математических методов FCL

Втабл. 2.9 представлен неполный список математических методов класса System.Math библиотеки FCL, предназначеных для вы-

полнения математических операций.

40