Форматирование вывода
Применяется для форматирования данных, выводимых в поток при помощи методов Write() или WriteLine(), в частности, для аккуратного выравнивания данных в таблице (в т.ч. контроль числа выводимых десятичных разрядов). Выполняется с использованием форматирующей строки, которая содержит всю информацию о выводимых элементах текста, а также шаблон для каждой указываемой далее переменной, причем каждый шаблон может содержать спецификацию формата. Например, форматированный вывод аккуратно выровненной таблицы значений функции y от варьируемого аргумента x можно выполнить таким предложением вывода:
Console.WriteLine("{0,4} {1,8:f2}", x, y) ;
которое означает «Взять нулевой выводимый элемент и записать его с выравниванием вправо в четырех столбцах, после чего взять первый выводимый элемент и записать его с выравниванием вправо в следующих восьми столбцах в формате с фиксированной точкой и двумя десятичными знаками». В результате получится красивая ровная таблица:
0 0.00
10 3.16
20 4.47
30 5.48
…
Форматирующий параметр является первым параметром вызова Write или WriteLine, которая имеет, таким образом, альтернативную форму:
Console.WriteLine("текст{формат0}текст{формат1}текст…"элемент0, элемент1, …);
Элементами вывода могут быть любые переменные С#, для которых может существовать спецификация формата. Спецификации формата формат0, формат1, ... описаны ниже. Текстовые вставки текст не обязательны. В качестве формата может также выступать отдельная символьная строка.
Для правильной работы метод WriteLine должен содержать столько же спецификаций формата, сколько затем указано выводимых элементов. Спецификации формата заключаются в фигурные скобки и нумеруются от ноля. Форматы и элементы должны соответствовать друг другу.
Спецификация формата: {N,M:s}
N — указывает на позицию элемента в списке выводимых переменных после того, как строка формата будет передана в метод Write; позиции элементов нумеруются от 0.
М — задает ширину области, в которую будет помещено форматированное значение. Если М отсутствует или отрицательно, значение будет выровнено влево, иначе — вправо.
s — является необязательной строкой форматирующих кодов, которые используются для управления форматированием чисел, даты и времени, денежных знаков и т. д. Параметр s носит название спецификатора формата. В системе .NET имеются три стандартных типа спецификаторов формата: для чисел, объектов даты/времени и для перечислимых объектов.
Таблица 3. Примеры числовых спецификаторов форматов
Спецификатор | Буква | Данные | Пример | Строка |
Общий | G | Все (настраивается) | 8:G 8:G | __1234.5 ____1234 |
Фиксированная точка | F | Все | 8:F2 | _1234.50 |
С возвратом | R | Все | 8:R2 | 1234.5 |
Число | N | Все | 8:N1 | 1,2345.6 |
Выражение со степенью | Е | Все | 14:E6 | _1.234500E+003 |
Десятичное выражение | D | Только целые | 8:D | |
Денежные единицы | С | Все | 10:С | _$1,234.50 |
Проценты | Р | Все | 0:P | 89.00% |
Шестнадцатеричный код | X | Только целые | 0:X | FCA0h |
Спецификатор G при использовании его с числами обладает наибольшей гибкостью. Он подстраивается к типу получаемого им значения и не принимает в расчет спецификаторы точности. Им удобно пользоваться, если требуется вставлять числа в текст. Для таблиц он не так удобен. Для того чтобы выровнять числа и десятичные точки, следует использовать F или даже R.
Спецификатор R формирует строку примерно так же, как F или Е, но имеет то дополнительное преимущество, что формируемая им строка при вводе может быть преобразована в точности в то число, из которого она получена, поэтому он удобен для сериализации.
Спецификатор N удобен для представления больших чисел, потому что он делит число на группы из трех цифр, хотя во многих странах вставляемую им запятую приходится преобразовывать в пробел (см. ниже).
Спецификатор Е также удобен для представления больших чисел, a D полезен в тех случаях, когда во всех числах должно быть одно и тоже число цифр, как, например, в банковских счетах.
Область использования спецификатора денежных единиц очевидна, однако может возникнуть необходимость в его дополнительной настройке.
Спецификатор Р может привести к ошибке, так сначала он умножает значение на 100. Спецификатор X предназначен для представления шестнадцатеричных чисел и часто используется с фиксированным числом цифр, когда слева вставляются лидирующие ноли.
Операторы циклов
Цикл с предусловием:
while ( условие )
{
...
}
Цикл с постусловием:
do
{
...
}while ( условие );
Параметрический цикл:
for ( инициализация; условие; приращение )
{
...
}
Во всех циклах, как и в операторе if, условие должно иметь тип bool.
Оператор досрочного перехода к следующей итерации: continuous.
Оператор досрочного выхода из цикла: break.
Задание
Составить блок-схему алгоритма и программу на языке C#, реализующую такие операции в соответствии с индивидуальным заданием, выбираемым из таблицы 4:
- Вычисления в цикле заданного вида значений заданной функции y выполнить для переменной x, изменяющейся в заданном интервале [x1, x2] с заданным шагом Dx, обрабатывая при этом возможные исключительные ситуации, как в предыдущей лабораторной работе.
- В теле цикла организовать поиск максимального y_max и минимального y_min значений функции y, а также номеров шагов n_max и n_min, на которых достигаются эти значения.
- Вычисленные значения вывести на консоль в виде таблицы такого формата:
| № шага | x | y | y_min | n_min | y_max | n_max |
- Выполнить ручной просчет для значения аргумента на третьем шаге и сравнить его с результатами выполнения программы.
- Сделать вывод.
Содержание отчета:
- тема, цель, задание;
- листинг программы;
- консольное окно с результатами работы программы;
- блок-схема алгоритма;
- ручной просчет;
- вывод.
Контрольные вопросы
- Структура оператора ветвления.
- Синтаксис условного оператора.
- Структура оператора множественного выбора.
- Ограничения на использование оператора множественного выбора.
- Преимущества и недостатки оператора множественного выбора.
- Виды циклов, отличия и особенности использования.
- Что такое логическое выражение?
- Правила составления сложных логических выражений.
- Как работает оператор ветвления?
- Как работает оператор множественного выбора?
- Что такое тело цикла?
- Что такое параметрический цикл?
- Структура заголовка параметрического цикла.
- Что такое итерация?
- Оператор досрочного выхода из цикла и особенности его использования.
Таблица 4. Варианты индивидуальных заданий для лабораторной работы №3
№ варианта | Заданная функция | Интервал аргумента и величина шага | Вид цикла |
xÎ[0,3; 3], Dx = 0,15 | с предусловием | ||
xÎ[-1; 2], Dx = 0,15 | с постусловием | ||
xÎ[0,8; 2], Dx = 0,1 | параметрический | ||
xÎ[1; 1,5], Dx = 0,05 | с предусловием | ||
xÎ[1; 3], Dx = 0,1 | с постусловием | ||
xÎ[0,2; 4], Dx = 0,2 | параметрический | ||
xÎ[0; p], Dx = p/20 | с предусловием | ||
xÎ[1; 4], Dx = 0,2 | с постусловием | ||
xÎ[-5; 3], Dx = 0,5 | параметрический | ||
xÎ[0; 2p], Dx = p/10 | с предусловием | ||
xÎ[2; 7], Dx = 0,2 | с постусловием | ||
xÎ[0; p/2], Dx = p/60 | параметрический | ||
xÎ[0,5; 3,5], Dx = 0,25 | с предусловием | ||
xÎ[0,25; 2], Dx = 0,05 | с постусловием | ||
xÎ[0; 3p/2], Dx = p/10 | параметрический | ||
xÎ[-3; -1], Dx = 0,1 | с предусловием | ||
xÎ[2; 3], Dx = 0,05 | с постусловием | ||
xÎ[1; 4], Dx = 0,2 | параметрический | ||
xÎ[-5; -4], Dx = 0,025 | с предусловием | ||
xÎ[0; 2p/3], Dx = p/40 | с постусловием | ||
xÎ[0; p/2], Dx = p/40 | параметрический | ||
xÎ[0; 2p/3], Dx = p/30 | с предусловием | ||
xÎ[0,5; 2,5], Dx = 0,1 | с постусловием | ||
xÎ[0; p], Dx = p/30 | параметрический | ||
xÎ[-5; 1], Dx = 0,25 | с предусловием | ||
xÎ[1,5; 3], Dx = 0,05 | с постусловием | ||
xÎ[0; 2p], Dx = p/15 | параметрический | ||
xÎ[0,25; 5,25], Dx = 0,25 | с предусловием | ||
xÎ[0; p/4], Dx = p/60 | с постусловием | ||
xÎ[-2,5; 2,5], Dx = 0,25 | параметрический | ||
xÎ[0; 3p/2], Dx = p/20 | с предусловием | ||
xÎ[-0,5; 2,5], Dx = 0,15 | с постусловием | ||
xÎ[1,3; 6,1], Dx = 0,3 | параметрический | ||
xÎ[p/2; 3p/2], Dx = p/30 | с предусловием | ||
xÎ[0; p/2], Dx = p/40 | с постусловием | ||
xÎ[3p/2, 5p/2], Dx = p/60 | параметрический | ||
xÎ[–p/2; p/2], Dx = p/40 | с предусловием | ||
xÎ[-5; 3], Dx = 0,4 | с постусловием | ||
xÎ[2,5; 7,5], Dx = 0,25 | параметрический | ||
xÎ[0; p/3], Dx = p/60 | с предусловием |
Дата добавления: 2021-12-14; просмотров: 330;