Основы программирования. Переменные

Содержание

Слайд 2

Переменные Для хранения данных в программе применяются переменные. Переменная представляет именнованную

Переменные

Для хранения данных в программе применяются переменные. Переменная представляет именнованную область памяти,

в которой хранится значение определенного типа. Переменная имеет тип, имя и значение. Тип определяет, какого рода информацию может хранить переменная.
Синтаксис определения переменной выглядит следующим образом:
тип имя_переменной;
Вначале идет тип переменной, потом ее имя.
Слайд 3

Правила именования переменных имя может содержать любые цифры, буквы и символ

Правила именования переменных

имя может содержать любые цифры, буквы и символ подчеркивания
первый

символ в имени должен быть буквой или символом подчеркивания
в имени не должно быть знаков пунктуации и пробелов
имя не может быть ключевым словом языка C#
Слайд 4

Объявление переменных Например, определим простейшую переменную: string name; В данном случае

Объявление переменных

Например, определим простейшую переменную:
string name;
В данном случае определена переменная name,

которая имеет тип string. то есть переменная представляет строку. Поскольку определение переменной представляет собой инструкцию, то после него ставится точка с запятой.
При этом следует учитывать, что C# является регистрозависимым языком, поэтому следующие два определения переменных будут представлять две разные переменные:
string name;
string Name;
Слайд 5

Инициализация переменных После определения переменной можно присвоить некоторое значение: string name;

Инициализация переменных

После определения переменной можно присвоить некоторое значение:
string name;
name = "Tom";
Так

как переменная name представляет тип string, то есть строку, то мы можем присвоить ей строку в двойных кавычках. Причем переменной можно присвоить только то значение, которое соответствует ее типу.
В дальнейшем с помощью имени переменной мы сможем обращаться к той области памяти, в которой хранится ее значение.
Также мы можем сразу при определении присвоить переменной значение. Данный примем называется инициализацией:
string name = "Tom";
Слайд 6

Переменные Отличительной чертой переменных является то, что в программе можно многократно

Переменные

Отличительной чертой переменных является то, что в программе можно многократно менять

их значение. Например, создадим небольшую программу, в которой определим переменную, поменяем ее значение и выведем его на консоль:
string name = "Tom"; // определяем переменную и зададим ее
Console.WriteLine(name); // Tom
name = "Bob"; // меняем значение переменной
Console.WriteLine(name); // Bob
Console.ReadLine();
Слайд 7

Литералы Литералы представляют неизменяемые значения (иногда их еще называют константами). Литералы

Литералы

Литералы представляют неизменяемые значения (иногда их еще называют константами). Литералы можно

передавать переменным в качестве значения. Литералы бывают логическими, целочисленными, вещественными, символьными и строчными.
Слайд 8

Логические литералы Есть две логических константы - true (истина) и false (ложь): Console.WriteLine(true); Console.WriteLine(false);

Логические литералы

Есть две логических константы - true (истина) и false (ложь):
Console.WriteLine(true);
Console.WriteLine(false);

Слайд 9

Целочисленные литералы Целочисленные литералы представляют положительные и отрицательные целые числа, например,

Целочисленные литералы

Целочисленные литералы представляют положительные и отрицательные целые числа, например, 1,

2, 3, 4, -7, -109. Целочисленные литералы могут быть выражены в десятичной, шестнадцатеричной и двоичной форме.
С целыми числами в десятичной форме все должно быть понятно, так как они используются в повседневной жизни:
Console.WriteLine(-11);
Console.WriteLine(5);
Console.WriteLine(505);
Слайд 10

Целочисленные литералы Числа в двоичной форме предваряются символами 0b, после которых

Целочисленные литералы

Числа в двоичной форме предваряются символами 0b, после которых идет

набор из нулей и единиц:
Console.WriteLine(0b11); // 3
Console.WriteLine(0b1011); // 11
Console.WriteLine(0b100001); // 33
Для записи числа в шестнадцатеричной форме применяются символы 0x, после которых идет набор символов от 0 до 9 и от A до F, которые собственно представляют число:
Console.WriteLine(0x0A); // 10
Console.WriteLine(0xFF); // 255
Console.WriteLine(0xA1); // 161
Слайд 11

Вещественные литералы Вещественные литералы представляют вещественные числа. Этот тип литералов имеет

Вещественные литералы

Вещественные литералы представляют вещественные числа. Этот тип литералов имеет две

формы. Первая форма - вещественные числа с фиксированной запятой, при которой дробную часть отделяется от целой части точкой. Например:
Console.WriteLine(3.14);
Console.WriteLine(100.001);
Console.WriteLine(-0.38);
Также вещественные литералы могут определяться в экспоненциальной форме MEp, где M — мантисса, E - экспонента, которая фактически означает "*10^" (умножить на десять в степени), а p — порядок. Например:
Console.WriteLine(3.2e3); // равно 3.2 * 10 ^ 3 = 3200
Console.WriteLine(1.2E-1); // равно 1.2 * 10 ^ -1 = 0.12
Слайд 12

Символьные литералы Символьные литералы представляют одиночные символы. Символы заключаются в одинарные

Символьные литералы

Символьные литералы представляют одиночные символы. Символы заключаются в одинарные кавычки.
Символьные

литералы бывают нескольких видов. Прежде всего это обычные символы:
Console.WriteLine('2');
Console.WriteLine('A');
Console.WriteLine('T');
Слайд 13

Символьные литералы Специальную группу представляют управляющие последовательности Управляющая последовательность представляет символ,

Символьные литералы

Специальную группу представляют управляющие последовательности Управляющая последовательность представляет символ, перед которым ставится

обратный слеш. И данная последовательность интерпретируется определенным образом. Наиболее часто используемые последовательности:
'\n' - перевод строки
'\t' - табуляция
'\\' - обратный слеш
И если компилятор встретит в тексте последовательность \t, то он будет воспринимать эту последовательность не как слеш и букву t, а как табуляцию - то есть длинный отступ
Слайд 14

Строковые литералы Строковые литералы представляют строки. Строки заключаются в двойные кавычки:

Строковые литералы

Строковые литералы представляют строки. Строки заключаются в двойные кавычки:
Console.WriteLine("hello");
Console.WriteLine("hello world");
Если

внутри строки необходимо вывести двойную кавычку, то такая внутренняя кавычка предваряется обратным слешем:
Console.WriteLine("Компания \"Рога и копыта\"");
Также в строках можно использовать управляющие последовательности. Например, последовательность '\n' осуществляет перевод на новую строку:
Console.WriteLine("Привет \nмир");
При выводе на консоль слово "мир" будет перенесено на новую строку.
Слайд 15

Типы данных bool: хранит значение true или false (логические литералы). bool

Типы данных

bool: хранит значение true или false (логические литералы).
bool alive =

true;
bool isEmpty = false;
byte: хранит целое число от 0 до 255 и занимает 1 байт.
byte bit1 = 1;
byte bit2 = 102;
sbyte: хранит целое число от -128 до 127 и занимает 1 байт.
sbyte bit1 = -101;
sbyte bit2 = 102;
Слайд 16

Типы данных short: хранит целое число от -32768 до 32767 и

Типы данных

short: хранит целое число от -32768 до 32767 и занимает

2 байта.
short n1 = 1;
short n2 = 102;
ushort: хранит целое число от 0 до 65535 и занимает 2 байта.
ushort n1 = 1;
ushort n2 = 102;
int: хранит целое число от -2147483648 до 2147483647 и занимает 4 байта.
int a = 10;
int b = 0b101; // бинарная форма b =5
int c = 0xFF; // шестнадцатеричная форма c = 255
Слайд 17

Типы данных uint: хранит целое число от 0 до 4294967295 и

Типы данных

uint: хранит целое число от 0 до 4294967295 и занимает

4 байта.
uint a = 10;
uint c = 0xFF;
long: хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт.
long a = -10;
long b = 0b101;
ulong: хранит целое число от 0 до 18 446 744 073 709 551 615 и занимает 8 байт.
ulong b = 0b101;
ulong c = 0xFF;
Слайд 18

Типы данных float: хранит число с плавающей точкой от -3.4*10^38 до

Типы данных

float: хранит число с плавающей точкой от -3.4*10^38 до 3.4*10^^38

и занимает 4 байта.
double: хранит число с плавающей точкой от ±5.0*10^-324 до ±1.7*10^308 и занимает 8 байта.
decimal: хранит десятичное дробное число. Если употребляется без десятичной запятой, имеет значение от 0 до +/–79 228 162 514 264 337 593 543 950 335; если с запятой, то от 0 до +/–7,9228162514264337593543950335 с 28 разрядами после запятой и занимает 16 байт.
Слайд 19

Типы данных char: хранит одиночный символ в кодировке Unicode и занимает

Типы данных

char: хранит одиночный символ в кодировке Unicode и занимает 2

байта.
char a = 'A';
char b = '\n';
char c = '9';
string: хранит набор символов Unicode.
string hello = "Hello";
string word = "world";
Слайд 20

Операции присваивания +=: присваивание после сложения. Присваивает левому операнду сумму левого

Операции присваивания

+=: присваивание после сложения. Присваивает левому операнду сумму левого и

правого операндов: выражение A += B равнозначно выражению A = A + B
-=: присваивание после вычитания. Присваивает левому операнду разность левого и правого операндов: A -= B эквивалентно A = A - B
*=: присваивание после умножения. Присваивает левому операнду произведение левого и правого операндов: A *= B эквивалентно A = A * B
/=: присваивание после деления. Присваивает левому операнду частное левого и правого операндов: A /= B эквивалентно A = A / B
%=: присваивание после деления по модулю. Присваивает левому операнду остаток от целочисленного деления левого операнда на правый: A %= B эквивалентно A = A % B
Слайд 21

Операции присваивания int a = 10; a += 10; // 20

Операции присваивания

int a = 10;
a += 10; // 20
a -= 4;

// 16
a *= 2; // 32
a /= 8; // 4
Слайд 22

Логические выражения Отдельный набор операций представляет логические выражения. Такие операции возвращают

Логические выражения

Отдельный набор операций представляет логические выражения. Такие операции возвращают логическое

значение, то есть значение типа bool: true, если выражение истинно, и false, если выражение ложно. К подобным операциям относятся операции сравнения и логические операции.
Слайд 23

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
==
Сравнивает два операнда на равенство. Если они равны, то операция возвращает true, если не равны, то возвращается false.
int a = 10;
int b = 4;
bool c = a == b; // false
Слайд 24

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
!=
Сравнивает два операнда и возвращает true, если операнды не равны, и false, если они равны.
int a = 10;
int b = 4;
bool c = a != b; // true
bool d = a != 10; // false
Слайд 25

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
<
Операция "меньше чем". Возвращает true, если первый операнд меньше второго, и false, если первый операнд больше второго.
int a = 10;
int b = 4;
bool c = a < b; // false
Слайд 26

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
>
Операция "больше чем". Сравнивает два операнда и возвращает true, если первый операнд больше второго, иначе возвращает false.
int a = 10;
int b = 4;
bool c = a > b; // true
bool d = a > 25; // false
Слайд 27

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
<=
Операция "меньше или равно". Сравнивает два операнда и возвращает true, если первый операнд меньше или равен второму. Иначе возвращает false.
int a = 10;
int b = 4;
bool c = a <= b; // false
bool d = a <= 25; // true
Слайд 28

Операции сравнения В операциях сравнения сравниваются два операнда и возвращается значение

Операции сравнения

В операциях сравнения сравниваются два операнда и возвращается значение типа bool - true,

если выражение верно, и false, если выражение неверно.
>=
Операция "больше или равно". Сравнивает два операнда и возвращает true, если первый операнд больше или равен второму, иначе возвращается false.
int a = 10;
int b = 4;
bool c = a >= b; // true
bool d = a >= 25; // false
Слайд 29

Логические операции Также в C# определены логические операторы, которые также возвращают

Логические операции

Также в C# определены логические операторы, которые также возвращают значение

типа bool. В качестве операндов они принимают значения типа bool. Как правило, применяются к отношениям и объединяют несколько операций сравнения.
|
Операция логического сложения или логическое ИЛИ. Возвращает true, если хотя бы один из операндов возвращает true.
bool x1 = (5 > 6) | (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается true
bool x2 = (5 > 6) | (4 > 6); // 5 > 6 - false, 4 > 6 - false, поэтому возвращается false
Слайд 30

Логические операции Также в C# определены логические операторы, которые также возвращают

Логические операции

Также в C# определены логические операторы, которые также возвращают значение

типа bool. В качестве операндов они принимают значения типа bool. Как правило, применяются к отношениям и объединяют несколько операций сравнения.
&
Операция логического умножения или логическое И. Возвращает true, если оба операнда одновременно равны true.
bool x1 = (5 > 6) & (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается false
bool x2 = (5 < 6) & (4 < 6); // 5 < 6 - true, 4 < 6 - true, поэтому возвращается true
Слайд 31

Логические операции Также в C# определены логические операторы, которые также возвращают

Логические операции

Также в C# определены логические операторы, которые также возвращают значение

типа bool. В качестве операндов они принимают значения типа bool. Как правило, применяются к отношениям и объединяют несколько операций сравнения.
||
Операция логического сложения или логическое ИЛИ. Возвращает true, если хотя бы один из операндов возвращает true.
bool x1 = (5 > 6) || (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается true
bool x2 = (5 > 6) || (4 > 6); // 5 > 6 - false, 4 > 6 - false, поэтому возвращается false
Слайд 32

Логические операции Также в C# определены логические операторы, которые также возвращают

Логические операции

Также в C# определены логические операторы, которые также возвращают значение

типа bool. В качестве операндов они принимают значения типа bool. Как правило, применяются к отношениям и объединяют несколько операций сравнения.
&&
Операция логического умножения или логическое И. Возвращает true, если оба операнда одновременно равны true.
bool x1 = (5 > 6) && (4 < 6); // 5 > 6 - false, 4 < 6 - true, поэтому возвращается false
bool x2 = (5 < 6) && (4 < 6); // 5 < 6 - true, 4 < 6 - true, поэтому возвращается true
Слайд 33

Логические операции Также в C# определены логические операторы, которые также возвращают

Логические операции

Также в C# определены логические операторы, которые также возвращают значение

типа bool. В качестве операндов они принимают значения типа bool. Как правило, применяются к отношениям и объединяют несколько операций сравнения.
!
Операция логического отрицания. Производится над одним операндом и возвращает true, если операнд равен false. Если операнд равен true, то операция возвращает false.
bool a = true;
bool b = !a; // false
Слайд 34

Логические операции Здесь две пары операций | и || (а также

Логические операции

Здесь две пары операций | и || (а также &

и &&) выполняют похожие действия, однако же они не равнозначны.
В выражении z=x|y; будут вычисляться оба значения - x и y.
В выражении же z=x||y; сначала будет вычисляться значение x, и если оно равно true, то вычисление значения y уже смысла не имеет, так как у нас в любом случае уже z будет равно true. Значение y будет вычисляться только в том случае, если x равно false
Слайд 35

Логические операции То же самое касается пары операций &/&&. В выражении

Логические операции

То же самое касается пары операций &/&&. В выражении z=x&y;

будут вычисляться оба значения - x и y.
В выражении же z=x&&y; сначала будет вычисляться значение x, и если оно равно false, то вычисление значения y уже смысла не имеет, так как у нас в любом случае уже z будет равно false. Значение y будет вычисляться только в том случае, если x равно true
Поэтому операции || и && более удобны в вычислениях, так как позволяют сократить время на вычисление значения выражения, и тем самым повышают производительность. А операции | и & больше подходят для выполнения поразрядных операций над числами.
Слайд 36

Условные конструкции Условные конструкции - один из базовых компонентов многих языков

Условные конструкции

Условные конструкции - один из базовых компонентов многих языков программирования,

которые направляют работу программы по одному из путей в зависимости от определенных условий.
В языке C# используются следующие условные конструкции: if..else и switch..case
Слайд 37

Конструкция if/else Конструкция if/else проверяет истинность некоторого условия и в зависимости

Конструкция if/else

Конструкция if/else проверяет истинность некоторого условия и в зависимости от

результатов проверки выполняет определенный код.
int num1 = 8;
int num2 = 6;
if (num1 > num2)
{
Console.WriteLine("num1 > num2");
}
Слайд 38

Конструкция if/else Может присутствовать необязательный блок else. int num1 = 8;

Конструкция if/else

Может присутствовать необязательный блок else.
int num1 = 8;
int num2 =

6;
if (num1 > num2)
{
Console.WriteLine("num1 > num2");
}
else
{
Console.WriteLine("num1 < num2");
}
Слайд 39

Конструкция if/else Используя конструкцию else if, мы можем обрабатывать дополнительные условия.

Конструкция if/else

Используя конструкцию else if, мы можем обрабатывать дополнительные условия.
int num1

= 8;
int num2 = 6;
if (num1 > num2)
Console.WriteLine("num1 > num2");
else if (num1 < num2)
Console.WriteLine("num1 < num2");
else
Console.WriteLine("num1 = num2");
Слайд 40

Конструкция switch Конструкция switch/case аналогична конструкции if/else, так как позволяет обработать

Конструкция switch

Конструкция switch/case аналогична конструкции if/else, так как позволяет обработать сразу

несколько условий.
После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после оператора сase. И если совпадение будет найдено, то будет выполняться определенный блок сase.
В конце каждого блока сase должен ставиться один из операторов перехода, как правило, используется оператор break. При его применении другие блоки case выполняться не будут.
Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default.
Слайд 41

Конструкция switch int number = 1; switch (number) { case 1:

Конструкция switch

int number = 1;
switch (number)
{
case 1:
Console.WriteLine("case 1");
break;
case 3:
Console.WriteLine("case 3");
break;
default:
Console.WriteLine("default");
break;
}

Слайд 42

Считывание данных с клавиатуры Для считывания данных с клавиатуры будем использовать

Считывание данных с клавиатуры

Для считывания данных с клавиатуры будем использовать команду

Console.ReadLine(). Данная команда получает введенную строку в консоли.
string str = Console.ReadLine(); //считать строку
int i = Convert.ToInt32(Console.ReadLine()); //считать целое число
double d = Convert.ToDouble(Console.ReadLine()); //считать вещественное число