Upload
yakubovichda
View
94
Download
6
Embed Size (px)
Citation preview
Основы объектно-ориентированного программирования на языке C#
Часть 2. Базовый синтаксис
Якубович Денис Андреевич
Владимир 2016
Содержание
• Структура программы
• Переменные
• Типы данных
• Арифметические и логические операторы
• Операторы условного выбора
• Циклические операторы
• Область видимости переменных. Преобразование типа
• Массивы
• Литералы. Ввод и вывод данных
• Математические функции. Класс Math
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Структура программы
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Структура программы и основные компоненты
Класс 1
Пространство имен
Класс 2 . . . Класс N
Класс
• Поле (я) / свойство (а) класса
• Метод (ы) класса
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Первая программа
/* Моя первая программа */ using System; // Подключение пространства имен System namespace MySpace // Пространство имен { class First // Основной класс { static void Main() // Точка входа { Console.WriteLine("Hello, world!"); } } }
Компилятор языка C# чувствителен к регистру букв.
Например, идентификатор main и Main – различные имена.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Первая программа
Пространство имен ограничивает область видимости класса.
Задается командой namespace.
Название может быть любым, кроме стандартных.
1
Класс описывает форму представления данных и код для их обработки.
Задается командой class.
Название может быть любым, кроме системных.
2
Методы организуют работу с данными. 3
Операторы «{ }» задают тело описания блока.
Используются для пространств имен, классов, методов и ряда других
операций.
4
Оператор «;» завершает выполнение любой команды.
Не используется для завершения «{ }». 5
Оператор «//» задает однострочный комментарий.
Между операторами «/* */» можно определить комментарий в несколько
строк.
6
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Первая программа
/* Моя первая программа */ using System; // Подключение пространства имен System class First // Основной класс { static void Main() // Точка входа { Console.WriteLine("Hello, world!"); } }
В случае отсутствия конфликтов имен между классами пространство имен
можно не указывать.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Переменные
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Переменная
Переменная – участок оперативной памяти, хранящий данные для
приложения.
Процессор обращается к ячейкам ОЗУ по адресу:
Минимальный размер ячейки – 1 байт.
Чаще используется более крупные ячейки.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Переменная
Программисту неудобно обращаться к ячейкам памяти по адресу.
Поэтому переменным даются имена.
В языке C# программист обращается к переменной по её имени.
Процессор обращается к переменной по её адресу.
Имя переменной лишь скрывает адрес ячейки в оперативной
памяти.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Типы данных. Описание переменных
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Типы данных
Роль типизации данных
C# - строго типизированный язык.
Это означает, кто каждая переменная
должна иметь тип.
Тип данных определяет:
• диапазон возможных значений
переменной;
• допустимые операции над
переменными данного типа.
Значимые и ссылочные типы
Отличаются способом распределения
оперативной памяти:
• для значимых типов заранее
выделяется компилятором;
• для ссылочных типов – во время
выполнения программы.
Дерево типов C# (в скобках – размер типа в байтах)
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Целочисленные типы
Тип Размер в байтах Диапазон
byte 1 0..255
sbyte 1 -128..127
short 2 -32768..32767
ushort 2 0..65535
int 4 -2147483648..2147483647
uint 4 0..4294967295
long 8 -9223372036854775808..9223372036854775807
ulong 8 0..18446744073709551615
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Вещественные типы
Тип Размер в байтах Диапазон
float 4 -3,402823 E38 .. -3,402823 E38
double 8 -1,79769313486232 E308 ..
1,79769313486232 E308
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Символьный и строковый типы
Тип Размер в байтах Диапазон
char 2 0..65535
string X Зависит от длинны строки
На хранение одного символа отводится 2 байта (Unicode).
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Логический тип
Тип Размер в байтах Диапазон
bool 1 true или false
Логический тип данных участвует в операциях сравнения и проверке условий.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Описание переменных
Каждая переменная должна быть описана:
тип имя_переменной;
Примеры:
byte n; // задана переменная типа byte
char sim; // задана символьная переменная
string Text; // задана строковая переменная
double x, y, z; // заданы три вещественные переменные
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор присваивания
имя_переменной = значение;
тип имя_переменной = значение;
В C# нельзя работать с переменной, пока ей не присвоено значение!
Примеры:
// Переменные должны быть описаны выше!
n = 233; // n := 233;
sim = 'A'; // sim := код символа A
Text = "Пример строки"; // Text :="Пример строки"
x = y = z = 100; // x := 100; y := 100; z := 100;
// Описание и присваивание одновременно
int num = 2015;
double dx = 0.1, dy = 0.2;
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Арифметические и логические операторы
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Арифметические операторы
Основные
+ - сложение
- - разность
* - умножение
/ - деление
% - остаток от деления
Расширенные
++ - инкремент (+1)
-- - декремент (-1)
+= - увеличить на ...
-= - уменьшить на ...
*= - умножить на ...
/= - поделить на ...
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
int a = 100; // a:=100
int b = 20; // b:=20
int c = 20 * (a + b) / (a - b); // c:= значение выражения
c = c % 20; // перезаписать в c остаток от
// его деления на 20
string strA = "Привет, ";
string strB = "C#!";
// «склеить» строки
string strC = strA + strB + " Сегодня я изучаю основы.";
Арифметические операторы
Примеры:
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
int S = 0;
double X = 10.2;
double Y = 20.6;
S += 20; // аналогична команде S = S + 20;
X *= Y + 1; // аналогична команде X = X * (Y + 1);
Арифметические операторы
Расширенные арифметические операторы используются для сокращения
записи.
Например:
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
int i = 10;
++i; // аналогична команде i = i + 1;
--i; // аналогична команде i = i - 1;
i++; // аналогична команде i = i + 1;
i--; // аналогична команде i = i - 1;
Арифметические операторы
int a = 0, b = 0;
a = b++; // a := 0; b := 1
int a = 0, b = 0;
a = ++b; // a := 1; b := 1
Операции инкремента и декремента позволяют увеличить (уменьшить)
значение переменной на 1:
Оператор ++ (--), записанный слева, называют префиксным, а справа –
постфиксным.
Префиксный оператор имеет более высокий приоритет!
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Операторы отношения
Оператор Описание
== равно
!= не равно
> больше
< меньше
>= больше или равно
<= меньше или равно
Операторы отношения используются при сравнении объектов.
Результат имеет логический тип bool.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Логические операторы
Оператор Описание
& И
| ИЛИ
! НЕ
^ исключающее ИЛИ
&& укороченное И
|| укороченное ИЛИ
Логические операторы связывают логические выражения.
Результат имеет логический тип bool.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Операторы условного выбора
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор if (полная форма)
C# Схема
if(условие)
{
// Оператор(ы) если истина
}
else
{
// Оператор(ы) если ложь
}
Если в блоке только один оператор (команда), то фигурные скобки
этого блока можно опустить.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор if (неполная форма)
C# Схема
if(условие)
{
// Оператор(ы) если истина
}
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
int number = 10; if (number >= 0) { Console.Write("Число неотрицательное"); } else { Console.Write("Число отрицательное"); }
Оператор условного перехода if
Пример 1 (для полной формы).
double X = 0.5, A = 0.3, B = 1.6;
if (X >= A & X <= B)
Console.Write("Точка X принадлежит отрезку [A,B]");
Пример 2 (для неполной формы).
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор if (расширенная форма)
C# Схема
if(условие_1)
{
// блок операторов 1
}
else if(условие_2)
{
// блок операторов 2
}
. . .
else if(условие_n)
{
// блок операторов n
}
[else
{
// блок операторов "иначе",
// необязателен
}]
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
using System;
class Program
{
static void Main()
{
int number = -34;
if (number > 0)
Console.WriteLine("Положительное");
else if (number == 0)
Console.WriteLine("Нуль");
else
Console.WriteLine("Отрицательное");
Console.ReadKey();
}
}
Пример 3. Определить знак числа.
Оператор if (расширенная форма)
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор выбора switch
C# Пример
switch(выражение)
{
case const1:
// послед. операторов
break;
case const2:
// послед. операторов
break;
. . .
default:
// послед. операторов
break;
}
string lang = "C#"; switch (lang) { case "C": Console.WriteLine("Я учу Cи"); break; case "C++": Console.WriteLine("Я учу C++"); break; case "C#": Console.WriteLine("Я учу C#"); break; default: Console.WriteLine("Лень..."); break; }
Оператор switch выполняет блок, значение которого совпадает со значением
указанного выражения.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Циклические операторы
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Циклические операции
Циклическую операцию можно организовать:
• с помощью условных и безусловных переходов;
• с использованием специальных циклических операторов.
В C# реализовано четыре типа циклов:
• цикл со счетчиком;
• цикл с предусловием;
• цикл с постусловием;
• цикл перебора объектов в коллекции.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор goto
// . . .
goto @MyLable; // перейти на метку @MyLable
/* Этот
участок
кода
пропускаем */
@MyLable:
// . . .
goto метка;
Оператор осуществляет переход на указанную метку.
Пример:
Избегайте практики использования меток.
Они приводят к «спагетти-коду».
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Цикл с использованием безусловного перехода
using System;
class Program
{
static void Main()
{
string Password;
@Again:
Password = Console.ReadLine(); // вводим текст
if (Password != "C#") // проверяем с ключом
{
Console.WriteLine("Пароль неверный!");
goto @Again; // повторяем ввод
}
}
}
Пример 1. Зациклить программу до тех пор, пока с клавиатуры не будет введено
слово «C#».
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор for
for(инициализация; условие_работы; итерация) { // оператор(ы) }
Оператор реализует цикл со счетчиком:
• инициализация – начальное значение;
• условие_работы – пока истинно, цикл продолжает работу;
• итерация – шаг цикла.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор for
using System; class Program { static void Main() { int Sum = 0; // счетчик для суммы int n; // счетчик для перебираемых чисел for (n = 1; n <= 100; n = n + 1) { Sum = Sum + n; } Console.Write("Сумма = " + Sum); Console.ReadKey(); } }
Пример 2. Найти сумму натуральных чисел от 1 до 100, используя оператор
for.
for (n = 1; n <= 100; n++)
Sum += n;
Сокращенный вариант цикла
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор for
using System; class Program { static void Main() { int i; for (i = 0; i <= 1000; i += 5) // перебор с шагом 5 Console.WriteLine(i); Console.ReadKey(); } }
Пример 3. Вывести все числа в отрезке [0; 1000], кратные 5.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Операторы break и continue
Для преждевременного выхода из цикла используется оператор
break.
Для прерывания текущего шага цикла и перехода к новому
используется оператор continue.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Вложение циклов for
using System; class Program { static void Main() { for (int i = 1; i <= 9; i++) { for (int j = 1; j <= 9; j++) Console.Write("{0}\t", i * j); Console.WriteLine(); } Console.ReadKey(); } }
Циклы допускают многократное вложение.
Пример 4. Построить таблицу умножения от 1 до 9.
Внутренний цикл (для столбцов)
Внешний цикл (для строк)
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Вариации цикла for
for (int i = 0; i < 10; i++)
{
// . . .
}
1й аналог (без шага):
2й аналог (без начала и шага):
Обычная реализация:
Бесконечный цикл:
for (; ; )
{
// . . .
}
int i = 0;
for (; i < 10; )
{
// . . .
i++;
}
for (int i = 0; i < 10; )
{
// . . .
i++;
}
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор while
while(условие) { // оператор(ы) }
Оператор повторяет внутренний блок до тех пор, пока условие
истинно.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор while
using System; class Program { static void Main()
{
double x = 0; // начальное значение (левый конец) while (x <= 2) // пока не достигли правой границы { // выводим x и y(x) Console.WriteLine("{0}\t{1}", x, 1 - x * x); x += 0.1; // следующий x } Console.ReadKey(); } }
Пример 5. Построить таблицу для 𝑦 𝑥 = 1 − 𝑥2 на отрезке [0,2] c шагом 0.1.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор do-while
do
{
// оператор(ы)
} while(условие)
Оператор вначале выполняет внутренний блок, а затем проверяет
условие. Если оно истинно, то цикл повторяется.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор do-while
using System;
class Program
{
static void Main()
{
int number = 2016; // число
byte category = 0; // количество разрядов
do
{
number /= 10; // делим на 10, записываем неполное частное
category++; // добавляем разряд
} while (number > 0); // если текущий результат > 0,
// повторяем цикл
Console.Write("Количество цифр: " + category);
Console.ReadKey();
}
}
Пример 6. Посчитать количество цифр заданного целого числа.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор foreach
foreach(тип имя_переменной in коллекция) { // оператор(ы) }
Оператор перебирает все элементы коллекции и осуществляет с
ними указанные операции.
Простейший пример коллекции – массив.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Оператор foreach
using System;
class Program
{
static void Main()
{
int[] Mass = { 45, 0, -23, 112, 345, -45 }; // массив
int pstv = 0, neg = 0; // счетчики
// делаем для каждого элемента n из массива Mass
foreach (int n in Mass)
{
if (n >= 0) pstv++;
else neg++;
}
Console.WriteLine("Неотрицательных: " + pstv);
Console.WriteLine("Отрицательных: " + neg);
Console.ReadKey();
}
}
Пример 7. Посчитать количество отрицательных и неотрицательных элементов
массива.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Область видимости переменных. Преобразование типа
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Область видимости переменных
Переменная i «глобальна», т.е. видна
относительно всего блока, в котором
описана.
int i; for (i = 0; i < 10; i++) { // . . . }
for (int i = 0; i < 10; i++)
{
// . . .
}
Переменная i «локальна», т.е.
доступна только внутри цикла.
Область видимости переменной – блок программы, в котором она
описана и доступна для использования.
Область видимости переменной может быть ограничена:
• блоками if (else), switch, for, while, do-while, foreach и т.п.
• областью класса или его метода.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Преобразование типа
(тип) выражение
Оператор преобразовывает выражение к более широкому / узкому
типу.
При преобразовании к более узкому типу возможна потеря данных.
int n = 10;
double x = 100.4;
double y = 49.52;
x = n; // Все хорошо: тип x более широкий, чем у n
n = x; // Ошибка! Нельзя преобразовать double в int!
n = (int) y; // Ошибки нет, но происходит потеря дробной части!
Примеры:
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Массивы
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Одномерный массив
Массив – множество проиндексированных элементов одного типа.
Массивы бывают:
• одномерные;
• многомерные.
Индексация элементов начинается с нуля.
Схема одномерного массива:
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Одномерный массив
тип[] имя_массива = new тип[размер];
тип[] имя_массива = {элемент_1, элемент_2, ..., элемент_N};
Первая команда резервирует в памяти место для массива с
указанным числом элементов.
Вторая команда задает массив перечислением элементов.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Одномерный массив
using System;
class Program
{
static void Main()
{
int[] Mass = new int[10]; // массив на 10 элементов
for (int i = 0; i < 10; i++)
Mass[i] = i + 1; // i-му элементу присваиваем число
Console.ReadKey();
}
}
Пример 1. Задать массив натуральных чисел элементами от 1 до 10.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Одномерный массив
using System;
class Program
{
static void Main()
{
int[] Mass = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.ReadKey();
}
}
Пример 2. Задать массив натуральных чисел элементами от 1 до 10
напрямую.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Многомерный массив
тип[,...,] имя_массива = new тип[размер1,...,размерN];
Команда задает многомерный массив (размерность 2 и более).
Многомерный массив – таблица данных в многомерном
пространстве.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Двумерный массив
Двумерный массив – обыкновенная таблица.
Пример:
Не имеет значения, какую размерность считать строкой, а какую – столбцом.
Реализация определяется программистом.
int[,] M = new int[20, 10];
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Двумерный массив
using System;
class Program
{
static void Main()
{
int n = 9;
int[,] Table = new int[n, n]; // двумерный массив 9х9
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
Table[i, j] = (i + 1) * (j + 1);
}
}
Пример 3. Сформировать двумерный массив, хранящий таблицу умножения.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Двумерный массив
using System;
class Program
{
static void Main()
{
string[,] TextMass = {
{ "Блок 1.1", "Блок 1.2" },
{ "Блок 2.1", "Блок 2.2" },
{ "Блок 3.1", "Блок 3.2" }
};
}
}
Пример 4. Сформировать двумерный массив по указанной таблице.
Блок 1.1 Блок 1.2
Блок 2.1 Блок 2.2
Блок 3.1 Блок 3.2
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Ступенчатый массив
тип[][] имя_массива = new тип[размер][];
Одно из измерений ступенчатого массива может изменяться.
M[0][0] M[0][1] M[0][2] M[0][3] M[0][4]
M[1][0] M[1][1] M[1][2]
M[2][0] M[2][1] M[2][2] M[2][3]
byte[][] Mass = new byte[3][]; // выделяем память под массив
Mass[0] = new byte[5]; // резерв. 5 элементов для первой строки
Mass[1] = new byte[3]; // резерв. 3 элемента для второй строки
Mass[2] = new byte[4]; // резерв. 4 элемента для третьей строки
Mass[0][0] = 1;
Mass[0][1] = 2;
. . .
Mass[2][3] = 12;
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Свойство Length
Массив.Length
Возвращает число элементов массива.
int[] Mass = { 34, -45, 56, 12, 45 };
for (byte i = 0; i < Mass.Length; i++)
{
// * * *
}
Console.Write(Mass.Length); // 5
string[,] Tab = new string[10, 20];
Console.Write(Tab.Length); // 200
int[][] Ar = new int[n][];
. . .
long Pro = 1;
for(i = 0; i < Ar.Length; i++) // Ar.Length = n
for(j = 0; j < Ar[i].Length; j++) // Ar[i].Length = числу элементов
Pro *= Ar[i][j]; // i-й в строке
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Литералы. Ввод и вывод данных
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Литералы
Литерал – постоянная величина, явна указывающая, к какому типу
данных относится.
Целочисленные:
100, -23 – литералы типа int
100l, -235L – литералы типа long
23u, 56U – литералы типа uint
0x1A, 0xFF – шестнадцатеричный литерал
Вещественные:
23.45, -3.034d, 45.6D – литералы типа double
45.6f, 34.0F – литералы типа float
Символьные и строковые:
'd', 'A', '%' – литералы типа char
"слово", "А это предложение" - литералы типа string
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Ввод и вывод. Методы классов Console и Convert
Write(параметр) – выводит символ, строку, числа и их комбинации.
WriteLine() – переводит каретку на следующую строку.
WriteLine(параметр) – комбинация первых двух.
Read() – читает символ из входного потока.
ReadLine() – читает строку из входного потока.
ReadKey() – ожидает нажатия клавиши.
Необходимо учитывать, что введенный текст рассматривается как поток
символов (тип string). Для перевода в числовой тип его нужно конвертировать.
ToByte(параметр) – переводит в беззнаковое число размером в байт.
ToInt16(параметр) – переводит в знаковое число размером в 2 байта.
ToInt32(параметр) – переводит в знаковое число размером в 4 байта.
ToInt64(параметр) – переводит в знаковое число размером в 8 байт.
ToDouble(параметр) – переводит в число с плавающей точкой.
ToString(параметр) – переводит в строку.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Console.Write("Hello, world!");
Console.WriteLine(23);
Console.Write(x + y + 10);
Console.Write("Hello, " + "world!");
Console.WriteLine("Сейчас " + year + " год.");
string S = Console.ReadLine();
int A = Convert.ToInt32(Console.ReadLine());
double X = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите n: ");
byte n = Convert.ToByte(Console.ReadLine());
Ввод и вывод. Классы Console и Convert
Пример.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Форматированный вывод
WriteLine("Форматирующая строка",arg0,arg1,...,argN);
Форматирующая строка = выводимые символы + спецификаторы:
спецификатор {аргумент, ширина: формат}
Console.WriteLine("Сегодня {0} число", date);
i = 5; A[i] = 10;
Console.WriteLine("Элемент A({0})={1}", i, A[i]); // Элемент A(5)=10
Console.Write("{0:#.###}",10.234344); // 10.234
Console.WriteLine("Один\tДва\tТри");
Console.WriteLine("Разрыв \n строки");
Console.Write(@"А здесь \n разрыва \t не будет");
Управляющие символы: \n – новая строка \t – табуляция
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Математические функции. Класс Math
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Математические функции. Класс Math
Класс Math реализует функции для математических вычислений.
Abs(число) Модуль числа.
Sqrt(число) Квадратный корень числа.
Max(число1,число2) Min(число1,число2)
Наибольшее / наименьшее из двух указанных чисел.
Exp(число) Експонента числа (𝑒𝑥).
Sin/ Cos/ Tan/ Asin/ Acos/ Atan(число)
Возвращает значение тригонометрической функции.
Pow(число,степень) Возводит число в указанную степень.
Round() Округляет число до указанного разряда.
Trancate() Вычисляет целую часть числа.
PI Хранит значение константы 𝜋.
E Хранит значение константы 𝑒.
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016
Математические функции. Класс Math
Пример.
double a = Math.Sqrt(100); // корень из 100
double Pi = Math.PI; // постоянное число PI
double b = Math.Cos(2 * Pi); // cos(2PI)
int max = Math.Max(33, 67); // максимальное из чисел 33 и 67
int min = Math.Min(45, max); // минимальное из чисел 45 и max
double r = Math.Round(1.0391, 2); // округлит до 1.04
double tr = Math.Truncate(1.391); // 1
Основы объектно-ориентированного программирования на языке C# ©Якубович Д.А., Владимир 2016