Similar presentations:
Алгоритмизация и программирование. Поля и методы встроенных типов
1. АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ
12. Поля и методы встроенных типов
Любой встроенный тип C# построен на основе стандартного классабиблиотеки .NET. Это значит, что у встроенных типов данных C# есть
методы и поля. С помощью них можно, например, получить:
– double.MaxValue (или System.Double.MaxValue) - максимальное
число типа double;
– uint.MinValue (или System.UInt32.MinValue) - минимальное
число типа uint.
В вещественных классах есть элементы:
– положительная бесконечность PositiveInfinity;
– отрицательная бесконечность NegativeInfinity;
– «не является числом»: NaN.
3. Математические функции: класс Math
ИмяОписание
Результат
Пояснения
Abs
Модуль
перегружен
|x| записывается как Abs(x)
Acos
Арккосинус
double
Acos(double x)
Asin
Арксинус
double
Asin(double x)
Atan
Арктангенс
double
Atan(double x)
Atan2
Арктангенс
double
Atan2(double x, double y)—
угол, тангенс которого есть
результат деления y на x
BigMul
Произведение
long
BigMul(int x, int y)
Ceiling
Округление до
большего целого
double
Ceiling(double х)
Cos
Косинус
double
Сos(double x)
Cosh
Гиперболический
косинус
double
Cosh(double x)
DivRem
Деление и остаток
перегружен
DivRem(x, y, rem)
E
База натурального
логарифма (число
е)
double
2,71828182845905
Exp
Экспонента
double
ex записывается как Exp(x)
4.
FloorОкругление до
меньшего целого
double
Floor(double х)
IEEERemain
der
Остаток от деления
double
IEEERemainder(double x, double
y)
Log
Натуральный
логарифм
double
logex записывается как Log(x)
Log10
Десятичный
логарифм
double
log10x записывается как Log10(x)
Max
Максимум из двух
чисел
перегружен
Max(x, y)
Min
Минимум из двух
чисел
перегружен
Min(x, y)
PI
Значение числа π
double
3,14159265358979
Pow
Возведение в степень
double
xy записывается как Pow(x, y)
Round
Округление
перегружен
Round(3.1) даст в результате 3 Round
(3.8) даст в результате 4
Sign
Знак числа
int
аргументы перегружены
Sin
Синус
double
Sin(double x)
Sinh
гиперболический
синус
double
Sinh(double x)
Sqrt
Квадратный корень
double
√x записывается как Sqrt(x)
Tan
Тангенс
double
Tan(double x)
Tanh
Гиперболический
тангенс
double
Tanh(double x)
5. Условные операторы
Условные конструкции - одни из базовых компонентов многих языковпрограммирования, которые направляют работу программы по
одному из путей в зависимости от определенных условий.
Одной из таких конструкций в языке программирования C# является
конструкция
if..else
Конструкция проверяет истинность некоторого условия и в
зависимости от результатов проверки выполняет определенный код.
Простая форма:
if (условие)
{
выполняемые инструкции
}
После ключевого слова if ставится условие. Условие должно
представлять значение типа bool. Это может быть непосредственно
значение типа bool или результат условного выражения или другого
выражения, которое возвращает значение тиа bool. И если это
условие истинно (равно true), то срабатывает код, который помещен
после условия внутри фигурных скобок.
6. Условные операторы
Полная форма:if (условие)
{
выполняемые инструкции
}
else
{
выполняемые инструкции
}
Блок else выполняется, если условие после if ложно, то есть
равно false.
7. Условные операторы
Конструкция if … else if :if (условие)
{
выполняемые инструкции
}
еlse if (условие)
{
выполняемые инструкции
}
еlse
{
выполняемые инструкции
}
8. Оператор ветвления
Оператор ветвления switch:Оператор ветвления switch является альтернативой оператору if … else. Его
обычно использую в случаях, когда имеется более сложный набор условий,
состоящий из нескольких вариантов.
Суть работы: программа ищет значение, которое соответствует переменной
для сравнения, и далее выполняет указанные инструкции.
Структура оператора:
switch (выражение)
{
сase возможный вариант выражения1:
код, выполняемый если выражение имеет значение1;
break; //место выхода из case
case возможный вариант выражения2:
код, выполняемый если выражение имеет значение2;
break;//место выхода из case
…
case возможный вариант выраженияN:
код, выполняемый если выражение имеет значениеN
break;
default:
код, выполняемый если выражение не имеет ни одно из выше
указанных значений
break;
}
9.
Оператор ветвленияЕсли необходимо, чтобы после выполнения текущего блока case выполнялся
другой блок case, можно использовать вместо break оператор goto case:
int number = 1;
switch (number)
{
case 1:
Console.WriteLine("case 1");
goto case 5; // переход к case 5
case 3:
Console.WriteLine("case 3");
break;
case 5:
Console.WriteLine("case 5");
break;
default:
Console.WriteLine("default");
break;
}
10. Оператор ветвления
Возвращение значения из switchКонструкция switch позволяет возвращать некоторое значение.
возвращения значения в блоках case используется оператор return.
Пример:
int D1(int o1, int a, int b)
{
switch (o1)
{
case 1: return a + b;
case 2: return a - b;
case 3: return a * b;
default: return 0;
}
}
int result1 = D1(1, 10, 5);
Console.WriteLine(result1);
int result2 = D1(3, 10, 5);
Console.WriteLine(result2);
// 15
// 15
// 50
// 50
Для
11. Оператор ветвления
Получение результата непосредственно из конструкции switch:Пример_1:
int D1(int o1, int a, int b)
{
int result = o1 switch {
1 => a + b,
2 => a - b,
3 => a * b,
_ => 0
};
return result;
}
Теперь не требуется оператор case, а после сравниваемого значения ставится
оператор стрелка =>. Значение справа от стрелки выступает в качестве
возвращаемоего значения. Вместо оператора default используется почерк
_. В итоге результат конструкции switch будет присвиваиваться переменной
result.
12. Оператор ветвления
Получение результата непосредственно из конструкции switch:Пример_2:
int D1(int o1, int a, int b)
{
return o1 switch
{
1 => a + b,
2 => a - b,
3 => a * b,
_ => 0
};
}
Пример_3:
int D1(int o1, int a, int b) => o1 switch
{
1 => a + b,
2 => a - b,
3 => a * b,
_ => 0
};
13. Циклы
Циклы являются управляющими конструкциями, позволяя в зависимости отопределенных условий выполнять некоторое действие множество раз. В C#
имеются следующие виды циклов:
for
foreach
while
do...while
Цикл for
Цикл for имеет следующее формальное описание:
for ([действия_до_выполнения_цикла]; [условие]; [действия_после_выполнения])
{
// тело цикла
}
Объявление цикла for состоит из трех частей.
Первая часть объявления цикла - действия, которые выполняются один раз
до выполнения цикла (определение переменные, которые будут использоваться
в цикле).
Вторая часть - условие, при котором будет выполняться цикл. Пока условие
равно true, будет выполняться цикл.
Третья часть - действия, которые выполняются после завершения блока
цикла. Эти действия выполняются каждый раз при завершении блока цикла.
14. Циклы
Пример:for (int i = 1; i < 4; i++)
{
Console.WriteLine(i);
}
Первая часть объявления цикла - int i = 1 - создает и инициализирует
переменную i.
Вторая часть - условие i < 4. Пока переменная i меньше 4, будет
выполняться цикл.
Третья часть - действия, выполняемые после завершения тела цикла увеличение переменной i на единицу.
Весь процесс цикла можно представить следующим образом:
• Определяется переменная int i = 1
• Проверяется условие i < 4. Оно истинно (так как 1 меньше 4), поэтому
выполняется блок цикла, а именно инструкция Console.WriteLine(i),
которая выводит на консоль значение переменной i
• Блок цикла закончил выполнение, поэтому выполняется третья часть
объявления цикла - i++. После этого переменная i будет равна 2.
15. Циклы
• Проверяется условие i < 4. Оно истинно (так как 2 меньше 4),выполняется блок цикла - Console.WriteLine(i)
• Блок цикла закончил выполнение, выполняется выражение i++. После
этого переменная i будет равна 3.
• Проверяется условие i < 4. Оно истинно (так как 3 меньше 4),
выполняется блок цикла - Console.WriteLine(i)
• Блок цикла закончил выполнение, выполняется выражение i++. После
этого переменная i будет равна 4.
• Проверяется условие i < 4. Теперь оно возвражает false, так как
значение переменной i НЕ меньше 4, цикл завершает выполнение.
Далее выполняется остальная часть программы, которая идет после
цикла
В итоге блок цикла сработает 3 раза, пока значение i не станет
равным 4. И каждый раз это значение будет увеличиваться на 1.
Однократное выполнение блока цикла называется итерацией. Таким
образом, здесь цикл выполнит три итерации.
16. Циклы
Пример:int i= 1;
for (Console.WriteLine("Начало выполнения цикла"); i < 4; Console.WriteLine($"i = {i}"))
{
i++;
}
Пример:
int i = 1;
for (; ;)
{
Console.WriteLine($"i = {i}");
i++;
}
Пример:
int i = 1;
for (; i<4;)
{
Console.WriteLine($"i = {i}");
i++;
}
17. Циклы
Пример:for (int i = 1, j = 1; i < 10; i++, j++)
Console.WriteLine($"{i * j}");
Пример:
int i = 1;
for (; i<4 && i>0;)
{
Console.WriteLine($"i = {i}");
i++;
}
18.
ЦиклыЦикл do..while
В цикле do сначала выполняется код цикла, а потом происходит
проверка условия в инструкции while. И пока это условие истинно, цикл
повторяется.
Цикл имеет следующее формальное описание:
do
{
//тело цикла
}
while (условие)
Пример:
int i = 6;
do
{
Console.WriteLine(i);
i--;
}
while (i > 0);
Цикл do гарантирует хотя бы единократное выполнение действий,
даже если условие в инструкции while не будет истинно.
19.
ЦиклыЦикл while
Цикл while сразу проверяет истинность некоторого условия, и если
условие истинно, то код цикла выполняется.
Цикл имеет следующее формальное описание:
while (условие)
{
//тело цикла
}
Пример:
int i = 6;
while (i > 0)
{
Console.WriteLine(i);
i--;
}
20.
ЦиклыЦикл foreach
Цикл foreach предназначен для перебора набора или коллекции
элементов.
Цикл имеет следующее формальное описание:
foreach(тип_данных переменная in коллекция)
{
// тело цикла
}
После оператора foreach в скобках сначала идет определение
переменной. Затем ключевое слово in и далее коллекция, элементы
которой надо перебрать.
При выполнении цикл последовательно перебирает элементы
коллекции и помещает их в переменную, и таким образом в блоке цикла
можно выполнить с ними некоторые действия.
Пример:
foreach(char c in "Tom")
{
Console.WriteLine(c);
}
21.
ЦиклыЦикл foreach
Определяемая в объявлении цикла переменная должна по типу
соответствовать типу элементов перебираемой коллекции. Так,
элементы строки - значения типа char - символы. Поэтому
переменная c имеет тип char.
При неопределенности типа элементов коллекции, можно определить
переменную с помощью оператора var:
foreach (var c in "Tom")
{
Console.WriteLine(c);
}
Вложенные циклы
for (int i = 1; i < 10; i++)
{
for (int j = 1; j < 10; j++)
{
Console.Write($"{i * j} \t");
}
Console.WriteLine();
}
22.
Операторы continue и breakОператор break
Оператор позволяет выйти из цикла, не дожидаясь его завершения.
Пример:
for (int i = 0; i < 9; i++)
{
if (i == 5)
break;
Console.WriteLine(i);
}
Оператор continue
Оператор позволяет не завершать цикл, а просто пропускал текущую
итерацию.
Пример:
for (int i = 0; i < 9; i++)
{
if (i == 5)
continue;
Console.WriteLine(i);
}
23. ПРИМЕРЫ
Пример 1. Работа цикла.using System;
class ForDemo {
static void Main() {
int count;
for(count = 0; count < 5; count = count+1)
Console.WriteLine("Это подсчет: " + count);
Console.WriteLine("Выход из цикла со значением переменной count "+ count);
}
}
24. ПРИМЕРЫ
Пример 2. Работа цикла.using System;
class ForDemo {
static void Main() {
for(int count = 0; count < 5; count = count+1)
Console.WriteLine("Это подсчет: " + count);
Console.WriteLine("Выход из цикла со значением переменной count "+ count);
}
}
25. ПРИМЕРЫ
Пример 3. Работа цикла.using System;
class ForDemo {
static void Main() {
int count;
for(count = 0; count < 5; count ++)
Console.WriteLine("Это подсчет: " + count);
Console.WriteLine("Выход из цикла со значением переменной count "+ count);
}
}
26. ПРИМЕРЫ
Пример 4. Работа цикла.using System;
class ForDemo {
static void Main() {
int count;
for(count = 0; count < 5; ++count)
Console.WriteLine("Это подсчет: " + count);
Console.WriteLine("Выход из цикла со значением переменной count "+ count);
}
}
27. ПРИМЕРЫ
Пример 5. Работа цикла.using System;
class ForDemo {
static void Main() {
int count;
for(count = 0; count < 5; count = count+2)
Console.WriteLine("Это подсчет: " + count);
Console.WriteLine("Выход из цикла со значением переменной count "+ count);
}
}
28. ПРИМЕРЫ
Пример 6. Вычислить произведение и сумму чисел от 1 до 10.using System;
class ProdSum {
static void Main() {
int prod;
int sum;
int i;
sum = 0;
prod = 1;
for(i=1; i <= 10; i++) {
sum = sum + i;
prod = prod * i;
}
Console.WriteLine("Сумма равна " + sum);
Console.WriteLine("Произведение равно " + prod);
}
}
29. ВОЗМОЖНОСТИ ВЫВОДА
30. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
ПРИМЕР программы, которая выводит таблицу результатов возведениячисел в квадрат и куб. В ней команды форматирования используются
для вывода соответствующих значений..
using System;
class KvKub
{
static void Main()
{
int i;
Console.WriteLine("Число\tКвадрат\tКуб");
for(i = 1; i < 10; i++)
Console.WriteLine("{0}\t{1}\t{2}", i, i*i, i*i*i);
}
}
В приведенном примере
сами выводимые значения не форматировались.
31. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
Чаще всего форматированию подлежат следующие типы данных: с плавающейточкой и десятичный.
Самый простой способ указать формат данных - описать шаблон, который будет
использоваться в методе WriteLine().
Для этого указывается образец требуемого формата с помощью символов #,
обозначающих разряды чисел.
Можно указать десятичную точку и запятые, разделяющие цифры.
ПРИМЕР.
using System;class Forma
{
static void Main()
{
Console.WriteLine("Деление 10/3 дает без форматирования: "+ 10.0/3.0);
Console.WriteLine("Деление 10/3 дает: {0:#.##}", 10.0/3.0);
}
}
В примере шаблон #.## указывает методу WriteLine() отобразить два десятичных
разряда в дробной части числа. Следует помнить, что метод WriteLine()
может отобразить столько цифр слева от десятичной точки, сколько
потребуется для правильной интерпретации выводимого значения.
32. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
ПРИМЕР.using System;
class UseDecimal {
static void Main() {
Console.WriteLine("{0:###,###.##}", 123456.56);
}
}
ПРИМЕР.
using System;
class UseDecimal {
static void Main() {
decimal price;
decimal discount;
decimal discounted_price;
// рассчитать цену со скидкой,
price = 19.95m;
discount = 0.15m; // норма скидки составляет 15%
discounted_price = price - ( price * discount);
Console.WriteLine("Цена со скидкой: {0}", discounted_price);
Console.WriteLine("Цена со скидкой: {0:C}", discounted_price);
Console.WriteLine("Цена со скидкой: {0:#.##}", discounted_price);
}}
33. ПРИМЕРЫ
ПРИМЕР. Отличие между префикснойоператора инкремента (++).
и
постфиксной
формами
using System;
class tDemo
{
static void Main()
{
int x, y, i;
x = 1;
y = 0;
Console.WriteLine("Ряд чисел, полученных с помощью оператора у = у + х++;");
for(i = 0; i < 10; i++)
{
y = y + x++; // постфиксная форма оператора ++
Console.WriteLine(y + " ");
}
Console.WriteLine();
x = 1;
y = 0;
Console.WriteLine("Ряд чисел, полученных с помощью оператора у = у + ++х;");
for(i = 0; i < 10; i++)
{
y = y + ++x; // префиксная форма оператора ++
Console.WriteLine(y + " ");
}
Console.WriteLine(); }}
34. ПРИМЕРЫ
35. ПРИМЕРЫ
ПРИМЕР. Применение операторов отношения и логических операторов.using System;
class RelLogOps {
static void Main() {
int i, j;
bool b1, b2;
i = 10;
j = 11;
if(i < j) Console.WriteLine("i < j");
if(i <= j) Console.WriteLine("i <= j");
if(i != j) Console.WriteLine("i != j");
if(i == j) Console.WriteLine("Нельзя выполнить");
if(i >= j) Console.WriteLine("Нельзя выполнить");
if(i > j) Console.WriteLine("Нельзя выполнить");
b1 = true;
b2 = false;
if(b1 & b2) Console.WriteLine("Нельзя выполнить");
if(!(b1 & b2)) Console.WriteLine("!(b1 & b2) — true");
if(b1 | b2) Console.WriteLine("b1 | b2 - true");
if(b1 ^ b2) Console.WriteLine("bl ^ b2 — true");
}
}
36. ПРИМЕРЫ
ПРИМЕР. /Исключение деления на нуль с помощью оператора ?.using System;
class NoZeroDiv {
static void Main() {
int result;
for(int i = -5; i < 6; i++) {
result = i != 0 ? 100 / i : 0;
if (i != 0)
Console.WriteLine("100 / " + i + " равно " + result);
}
}
}
37. ПРИМЕРЫ
ПРИМЕР. Определить, является ли числовое значение положительнымили отрицательным.
using System;
class PosNeg {
static void Main() {
int i;
for(i=-3; i <= 3; i++)
{
Console.WriteLine("Проверка " + i);
if(i < 0) Console.WriteLine("отрицательное число");
else Console.WriteLine("положительное число");
}
}
}
38. ПРИМЕРЫ
ПРИМЕР. Определить, является ли числовое значение положительным,отрицательным или нулевым.
using System;
class PosNegZero {
static void Main() {
int i;
for(i=-3; i <= 3; i++) {
Console.Write("Проверка " + i + ": ");
if(i < 0) Console.WriteLine("отрицательное число");
else if(i == 0) Console.WriteLine("число без знака");
else Console.WriteLine ("положительное число");
}
}
}
39. ПРИМЕРЫ
ПРИМЕР, Определить сумму элементов от 1до 10.using System;
class Primer {
static void Main() {
int i,s=0;
for(i=1; i <= 10; i++)
s+=i;
Console.WriteLine ("Сумма равна "+s);
}
}
40. ПРИМЕРЫ
ПРИМЕР, Определить среди элементов отрезка [0;10] произведениечетных.
using System;
class Primer {
static void Main() {
int i,p=1;
for(i=1; i <= 10; i++)
if (i%2==0) p*=i;
Console.WriteLine ("Произведение четных элементов равно "+p);
}
}
41. ПРИМЕРЫ
ПРИМЕР, Определить в последовательности элементов количествосмены знака.
using System;
class Primer {
static void Main() {
int i,p=0;
int n=Convert.ToInt32(Console.ReadLine());
int a=Convert.ToInt32(Console.ReadLine());
for(i=1; i < n; i++)
{
int b=Convert.ToInt32(Console.ReadLine());
if (a*b<0) p+=1;
a=b;
}
Console.WriteLine ("Количество смен знака равно "+p);
}
}
42. ПРИМЕРЫ
ПРИМЕР. Применение оператора switch.using System;
class SwitchDemo {
static void Main() {
int i;
for(i=0; i<10; i++)
switch(i) {
case 0:
Console.WriteLine("i равно нулю");
break;
case 1:
Console.WriteLine("i равно единице");
break;
case 2:
Console.WriteLine("i равно двум");
break;
case 3:
Console.WriteLine("i равно трем");
break;
case 4:
Console.WriteLine("i равно четырем");
break;
default:
Console.WriteLine("i равно или больше пяти");
break;
}
}
}
43. ПРИМЕРЫ
ПРИМЕР. Проваливание пустых ветвей case.using System;
class EmptyCasesCanFall {
static void Main() {
int i;
for(i=1; i < 5; i++)
switch(i) {
case 1:
case 2:
case 3: Console.WriteLine("i равно 1, 2 или 3");
break;
case 4: Console.WriteLine("i равно 4");
break;
}
}
}
44. ПРИМЕРЫ
ПРИМЕР. Определить, является ли число простым. Если оно непростое,вывести его наибольший множитель.
using System;
class Primer {
static void Main() {
int num, i,factor;
bool isprime;
for(num = 2; num < 20; num++) {
isprime = true;
factor = 0;
// Выяснить, делится ли значение переменной num нацело.
for(i=2; i <= num/2; i++) {
if((num % i) == 0) {
isprime = false;
factor = i;
}}
if(isprime) Console.WriteLine(num + " — простое число.");
else Console.WriteLine("Наибольший множитель числа " + num +
" равен " + factor);
} }}
45. ПРИМЕРЫ
46. ПРИМЕРЫ
ПРИМЕР. Использование запятых в операторе цикла for.using System;
class Comma {
static void Main() {
int i, j;
for(i=0, j=10; i < j; i++, j--)
Console.WriteLine("i и j: " + i + " " + j);
}
}
47. ПРИМЕРЫ
ПРИМЕР. Использование запятых в операторе цикла for для выявлениянаименьшего и наибольшего множителя числа.
using System;
class Primer {
static void Main() {
int i, j;
int s, l;
int num;
num = 100;
s = l = 1;
for(i=2, j=num/2; (i <= num/2) & (j >= 2); i++, j--) {
if((s == 1) & ((num % i) == 0))
s = i;
if((l == 1) & ((num % j) == 0))
l = j;
}
Console.WriteLine("Наибольший множитель: " + l);
Console.WriteLine("Наименьший множитель: " + s);
}
}
48. ПРИМЕРЫ
ПРИМЕР. Использование выражения типа bool.using System;
class forDemo {
static void Main()
{
int i, j;
bool done = false;
for(i=0, j=100; !done; i++, j--) {
if(i*i >= j) done = true;
Console.WriteLine("i, j: " + i + " " + j);
}
}
}
49. ПРИМЕРЫ
ПРИМЕР. Вычислить порядок величины целого числа.using System;
class WhileDemo {
static void Main() {
int num;
int mag;
num = 435679;
mag = 0;
Console.WriteLine("Число: " + num);
while(num > 0) {
mag++;
num = num / 10;
};
Console.WriteLine("Порядок величины: " + mag);
}
}
50. ПРИМЕРЫ
ПРИМЕР. Отобразить цифры целого числа в обратном порядке.using System;
class DoWhileDemo {
static void Main() {
int num;
int nextdigit;
num = 198;
Console.WriteLine("Число: " + num);
Console.Write("Число в обратном порядке: ");
do {
nextdigit = num % 10;
Console.Write(nextdigit);
num = num / 10;
} while(num > 0);
Console.WriteLine();
}
}
51. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
При выводе списков данных каждый элемент списка можно отделятьзнаком +, как в следующей строке.
Console.WriteLine("Вы заказали " + 2 + " предмета по цене $" + 3 + "
каждый.");
Такой способ вывода числовой информации не позволяет управлять
внешним видом выводимой информации.
Для управления форматированием числовых данных служит другая
форма метода WriteLine(), позволяющая встраивать информацию
форматирования.
WriteLine("форматирующая строка", arg0, arg1, ... , argN);
Форматирующая строка состоит из двух элементов: обычных
печатаемых символов, предназначенных для вывода в исходном
виде, а также спецификаторов формата. Последние указываются в
следующей общей форме:
{argnum, width: fmt}
где argnum - номер выводимого аргумента, начиная с нуля; width минимальная ширина поля; fmt - формат.
52. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
Параметры width и fmt являются необязательными.Если во время выполнения в форматирующей строке встречается
спецификатор формата, то вместо него подставляется и
отображается соответствующий аргумент, обозначаемый параметром
argnum.
Местоположение спецификатора формата в форматирующей строке
определяет место отображения соответствующих данных.
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("В феврале {0} или {1} дней.", 28, 29);
}
}
53. ПРИМЕРЫ ВОЗМОЖНОСТИ ВЫВОДА
Параметры width и fmt являются необязательными.Если во время выполнения в форматирующей строке встречается
спецификатор формата, то вместо него подставляется и
отображается соответствующий аргумент, обозначаемый параметром
argnum.
Местоположение спецификатора формата в форматирующей строке
определяет место отображения соответствующих данных.
using System;
class HelloWorld
{
static void Main()
{
Console.WriteLine("В феврале {0,10} или {1,5} дней.", 28, 29);
}
}
programming