Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
933.3 Кб
Скачать

6.2. Язык Basic

Средства консольного ввода-вывода реализуются в виде методов класса Console. В данном разделе рассмотрим только методы, которые предоставляют те же возможности, что и рассмотренные выше средства языка C. Напомним, что обращение к некоторому методу этого класса должно иметь вид:

Console.<имя метода>([<список параметров>])

Чтобы не записывать префикс Console при каждом обращении к методам, следует перед инструкцией Module записать инструкцию Imports System.Console.

Замечание. Обмен данных производится через буферы ввода-вывода по тем же правилам, что и для языка C.

6.2.1. Метод ReadLine

Метод читает введенную с клавиатуры строку, завершенную нажатием клавиши Enter.

Пример.

s=ReadLine( )

В сравнении данного метода с функцией scanf языка С очевидны следующие его ограничения:

- вводится одно значение типа String,

- нет средств преобразования введенной строки в значения других предопределенных типов таких, как: Integer, Single и др.

Первое ограничение требует ввода каждого значения с новой строки (столбиком).

О втором. Язык Basic допускает неявное преобразование значения типа String в числовой тип при условии, что строка не содержит недопустимых символов. Для этого в свойствах проекта задачи Компиляция (Compile) надо установить опцию Проверка сужающих преобразований (Option strict) в состояние Off.

Пример.

For i = 0 To m - 1

For j = 0 To n - 1

a(i, j) = ReadLine()

Next j

Next i

Замечание. По умолчанию максимальная длина строки 256 символов.

6.2.2. Методы Write и WriteLine

Оба метода формируют и выводят информацию на экран. Разница между ними в том, что WriteLine завершает вывод переводом строки, а Write – нет.

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

Формат обращения:

{Write | WriteLine}(<управляющая строка>[, <список-данных>])

Управляющая строка состоит из текста и спецификаций. Каждая спецификация определяет только одно передаваемое значение. Текст вне спецификаций выводится на экран так же, как в языке С. Не надо только помещать в конце выводимой строки символ ′\n′, это сделает сама инструкция WriteLine.

Формат одной спецификации:

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

- индекс элемента списка вывода – порядковый номер-1элемента списка данных, преобразованное значение которого должно быть подставлено на место спецификации в строку вывода;

- выравнивание – это целое, определяющее ширину поля вывода для значения; если длина выводимого значения больше данного параметра, то он игнорируется, если меньше, то, если параметр > 0, то значение в поле вывода выравнивается вправо, если он < 0, то – влево; в целом, аналог параметра W функции printf в сочетании с флагом - (минус) при выравнивании влево;

- формат – <тип>D, где <тип> - спецификация, определяющая тип передаваемого значения, D – параметр точности (совпадает с языком C), целое без знака (не более 2-х цифр).

Перечень типов

Тип

Имя

Описание

Примеры

"D" | "d"

Decimal

Результат: целое число с необязательным знаком -

Поддерживает: только целые типы.

Точность D: минимальное количество цифр.

Точность по умолчанию: длина выводимого значения.

1234 ("D") -> 1234

-1234 ("D6") -> -001234

"E" | "e"

Exponential (scientific)

Результат: число с плавающей точкой в показательной форме.

Поддерживает: все числовые типы.

Точность: число цифр после точки в мантиссе (младшая цифра округляется).

Точность по умолчанию: 6.

1052.0329112756 ("E") -> 1.052033E+003

-1057.0329112756 ("e2") ->

-1.06e+003

-1052.0329112756 ("E2") ->

-1.05E+003

"F" | "f"

Fixed-point

Результат: число с плавающей точкой в обычной форме.

Поддерживает: все числовые типы.

Точность: число цифр после точки (младшая цифра округляется).

Точность по умолчанию: 2.

1234.567 ("F") -> 1234.57

1234 ("F1") -> 1234.0

-1234.56 ("F4") -> -1234.5600

"G" | "g"

General

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

Поддерживает: все числовые типы.

Точность: число значащих цифр.

Точность по умолчанию: 6 для чисел с плавающей точкой (для других не рекомендуется).

-123.456 ("G") -> -123.456

123.4546 ("G4") -> 123.5

-1.234567890e-25 ("G") -> -1.23456789E-25

-1.234567890e-25 ("g") -> -1.23456789e-25

Как видно из таблицы, действие спецификаций аналогично языку C.

Для очистки экрана можно использовать метод Clear(), для остановки экрана – метод ReadLine().

Вопросы для самопроверки и контроля

Вопросы для самопроверки

1. Что происходит, когда длина выводимого значения больше величины W?

2. При каких условиях при выводе значений с плавающей точкой не ставится десятичная точка?

3. Перечислите символы – ограничители ввода для языка С.

4. А для языка Basic?

5. Чем отличаются правила ввода значений по спецификациям f и e?

6. Что возвращают функции printf и scanf?

Контрольные вопросы

1. Почему при вводе не используется второй параметр спецификации D?

2. При каких условиях производится округление выводимого значения?

3. Как организуется ввод элементов массива?

4. Когда разумно применять спецификацию g?

7. ПРОЦЕДУРЫ

7.1. Распределение памяти

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

СХЕМА

Предметная область Программист Память

скаляры,

элементы массивов имена адреса

и структур

Источник информации: определения переменных.

C: инструкции описания типа: int long float double char.

Basic: инструкция Dim.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]