Вывод данных

Вывод данных осуществляется с использованием метода WriteLine (или Write) (класса Сonsole). После выполнения WriteLine производится перевод строки и последующий вывод происходит в новую строку. После выполнения Write перевода строки не происходит. Вывод будет продолжен в текущую строку.

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

Вывод может быть организован с использованием формата. В этом случае оператор вывода имеет следующий вид:

WriteLine (["строка формата",] список вывода);

Квадратные скобки [] означают необязательный параметр, т.е. строка формата может отсутствовать, но только в том случае, если в списке вывода один элемент. При выводе нескольких элементов использование формата обязательно.

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

В строке формата для каждого выводимого значения в фигурных скобках указывается:

· номер выводимого элемента n (нумерация начинается с 0); порядок вывода может не совпадать с порядком следования элементов в списке вывода;

· количество позиций m, в которые должно быть выведено значение элемента списка вывода (необязательный параметр);

· код форматирования k (необязательный параметр).

Для данных типа int используется код d(или D).Например, {0:d} или {0,6:d}.

В первом случае нулевой элемент списка, имеющий значение типа int, выводится в поле, размер которого не указан. Количество позиций, в которые осуществляется вывод, соответствует количеству знаков в числе.

Во втором случае значение выводится в поле размером 6 позиций. Выводимое число прижимается к правой границе. Если размер поля недостаточен для размещения числа, то указание размера игнорируется.

Для данных типа double может использоваться код f(F) или код e(E). Первый используется для вывода в форме целой и дробной частей, разделенных запятой (форма с фиксированной запятой). Второй – для вывода вещественного числа в форме с порядком (можно указать также количество цифр после запятой, в целой части выводится всегда одна цифра).

Например, необходимо вывести значение 13,653 и пусть это будет 1-й элемент списка вывода. При выводе в форме с фиксированной запятой можно использовать формат {1,8:f2} или {1,f} (возможны и другие варианты).

В первом случае значение выводится в поле размером 8 позиций с двумя знаками после запятой в правые позиции поля, т.е. будет выведено 13,65.

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

При выводе вещественного числа в форме с порядком (например, 1-го элемента списка) можно в строке формата указать {1,e2}или {1,10:E3} (возможны и другие варианты).

В первом случае число будет выведено в виде 1,37е+001 (при выводе значение округляется в большую сторону), во втором – в поле размером 10 позиций в виде 1,365е+001.

Таким образом, для каждого элемента списка имеем {n[,m][:k]}. Кроме того, в строке формата могут содержаться и другие символы, которые обозначают сами себя и выводятся без изменений; наличие в строке символа \t соответствует нажатию клавиши Tab (табулирование), символа \n – переводу строки. Другие возможности здесь не рассматриваются.

Пример.

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main()

{

double x = 3.356345, y = 15.24567;

Console.WriteLine(

"j={0:d} {2,8:f3} {1} {3:e2}",

3, 8, x, y);

Console.ReadKey();

}

}

}

Здесь выведенная строка соответствует использованному формату: выведено j=, затем три пробела, далее нулевой элемент списка по формату для целых d без указания размера поля, следующим выводится второй (предпоследний) элемент списка по формату для вещественных чисел в поле размером 8 с тремя цифрами после запятой, далее первый элемент списка без указания форматного кода и, наконец, последний (третий) элемент списка по формату с порядком с двумя цифрами после запятой. Обратим внимание на то, что целая часть от дробной при выводе отделяется запятой.

Если в приведенном коде использовать оператор вывода

Console.WriteLine("j= {0:d} \t {2,8:f3} \n {1} {3:e2}", 3, 8, x, y);

то вывод будет следующим (после вывода первых двух элементов следует перевод строки). Обратим также внимание и на эффект от символа табулирования.

Оператор Console.ReadKey() используется для того, чтобы задержать результаты на экране. Иначе они очень быстро исчезнут.

Другие примеры форматированного вывода см. в гл. 2.3.

2. Реализация простейших алгоритмов на языке C#