Презентация по основам алгоритмизации и программированию на тему "Переменные и константы""
- Рубрика: Презентации / Другие презентации
- Просмотров: 0
Презентация для классов "Презентация по основам алгоритмизации и программированию на тему "Переменные и константы""" онлайн бесплатно на сайте электронных школьных презентаций uchebniki.org.ua
Ленинск-Кузнецкий, 2022
ГПОУ «Ленинск-Кузнецкий политехнический техникум»
Преподаватель Щеглова Алена Александровна
Теоретическое занятие
для студентов II курса
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
Переменные и константы. Типы данных.
.
Переменная
Переменная - именованная область памяти, в которой хранится значение определенного типа.
Каждая переменная имеет имя, тип, размер и значение.
Перед использованием переменную надо определить.
Синтаксис определения переменной выглядит следующим образом:
тип имя_переменной;
Тип определяет, какого рода информацию может хранить переменная.
00000001
Ячейки памяти
int number = 1;
Имя переменной number
Значение переменной 1
Тип переменной int
Имя переменных
Имя переменной - любое название, которое удовлетворяет требованиям:
имя может содержать цифры, буквы и символ подчеркивания
первый символ в имени должен быть буквой или символом подчеркивания
в имени не должно быть знаков пунктуации и пробелов
имя не может быть ключевым словом языка C#. Ключевые слова подсвечиваются синим цветом
имя переменой носит описательный характер, который говорит о предназначении переменной
Тип данных
Тип определяет, какие данные, множество значений могут быть записаны в ячейку памяти, допустимые действия, которые можно применять над объектом
Типы
Простые (скалярные)
Логический
Целые
Указатели
Вещественные
Составные
массивы
структуры
классы
объединения
Типы данных C#
char: хранит одиночный символ
char a = 'A';
char b = '\x5A';
char c = '\u0420';
string: хранит набор символов
string hello = "Hello";
string word = "world";
Базовые типы данных
sbyte: хранит целое число от -128 до 127
sbyte bit1 = -101;
sbyte bit2 = 102;
short: хранит целое число от -32768 до 32767
short n1 = 1;
short n2 = 102;
ushort: хранит целое число от 0 до 65535
ushort n1 = 1;
ushort n2 = 102;
Базовые типы данных
int: хранит целое число от -2147483648 до 2147483647
int a = 10;
int b = 0b101;
int c = 0xFF;
Базовые типы данных
uint: хранит целое число от 0 до 4294967295
uint a = 10;
uint b = 0b101;
uint c = 0xFF;
long: хранит целое число
от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
long a = -10;
long b = 0b101;
long c = 0xFF;
Базовые типы данных
ulong: хранит целое число от 0 до 18 446 744 073 709 551 615
ulong a = 10;
ulong b = 0b101;
ulong c = 0xFF;
string name;
string Name;
Определите, какие данные могут хранить следующие переменные. Назовите имена переменных.
Указанные переменные программа будет воспринимать, как разные переменные или как одну?
Переменные
string name;
string Name;
Определите, какие данные могут хранить следующие переменные. Назовите имена переменных.
Указанные переменные программа будет воспринимать, как разные переменные или как одну и ту же?
Переменные
Вопросы:
3. Какие из следующих вариантов представляют корректное определение переменных:
string person = "Tom";
person = "Tom";
string "Tom";
string person;
Базовые типы данных
object: может хранить значение любого типа данных
object a = 22;
object b = 3.14;
object c = "hello code";
Базовые типы данных
Пример
string name = "Tom";
int age = 33;
bool isEmployed = false;
double weight = 78.65;
Console.WriteLine($"Имя: {name}");
Console.WriteLine($"Возраст: {age}");
Console.WriteLine($"Вес: {weight}");
Console.WriteLine($"Работает: {isEmployed}");
Алфавит языка С++
Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого контекста переменная не существует.
void func1(void)
{
int x;
x = 10;
}
Целая переменная х объявлена дважды: один раз в func1() и второй — в func2(). При этом переменная х в одной функции никак не связана и никак не влияет на переменную с тем же именем в другой функции. Это происходит потому, что локальная переменная видима только внутри блока, в котором она объявлена, за пределами этого блока она невидима.
void func2(void)
{
int x;
x = -199;
}
Алфавит языка С++
Существуют различные контексты:
1) Контекст класса. Переменные, определенные на уровне класса, доступны в любом методе этого класса. Их называют глобальными переменными или полями
Переменная type существует в контексте всего класса Person и доступна в любом месте и блоке кода в методах PrintName и PrintSurname.
сlass Person // начало контекста класса
{
string type = "Person"; // переменная уровня класса
public void PrintName() // начало контекста метода PrintName
{ .... }
public void PrintSurname() // начало контекста метода PrintSurname
{ … }
Алфавит языка С++
Существуют различные контексты:
2) Контекст метода. Переменные, определенные на уровне метода, являются локальными и доступны только в рамках данного метода. В других методах они недоступны
class Person
{ string type = "Person";
public void PrintName()
{ string name = "Tom"; }
public void PrintSurname()
{ string surname = "Smith"; } }
Переменная name существует в рамках метода PrintName. Переменная surname существует в рамках метода PrintSurname. В методе PrintName мы не можем обратиться к переменной surname, так как она в другом контексте.
Алфавит языка С++
Существуют различные контексты:
3) Контекст блока кода. Переменные, определенные на уровне блока кода, также являются локальными и доступны только в рамках данного блока. Вне своего блока кода они не доступны.
class Person // начало контекста класса
{ string type = "Person"; // переменная уровня класса
public void PrintName() // начало контекста метода PrintName
{ string name = "Tom"; // переменная уровня метода
{ // начало контекста блока кода
string shortName = "Tomas"; // переменная уровня блока кода
Console.WriteLine(type); // в блоке доступна переменная класса
Console.WriteLine(name); /* в блоке доступна переменная окружающего метода*/
Литералы
Литералы - неизменяемые значения.
Бывают: логическими, целочисленными, вещественными, символьными, строчными, отдельный литерал представляет ключевое слово null.
Логические литералы
Есть две логических константы - true (истина) и false (ложь):
Console.WriteLine(true);
Console.WriteLine(false);
Литералы
Целочисленные литералы
Целочисленные литералы представляют положительные и отрицательные целые числа, например, 1, 2, 3, 4, -7, -109. Целочисленные литералы могут быть выражены в десятичной, шестнадцатеричной и двоичной форме.
Console.WriteLine(-11);
Console.WriteLine(5);
Console.WriteLine(505);
Литералы
Числа в двоичной форме предваряются символами 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
Литералы
Вещественные литералы представляют дробные числа. Этот тип литералов имеет две формы. Первая форма - вещественные числа с фиксированной запятой, при которой дробную часть отделяется от целой части точкой. Например:
3.14
-0.38
2. Вещественные литералы в экспоненциальной форме MEp, где M — мантисса, E - экспонента, которая фактически означает "*10^" (умножить на десять в степени), а p — порядок. Например:
Console.WriteLine(3.2e3); // 3.2 * 103 = 3200
Console.WriteLine(1.2E-1); // 1.2 * 10-1= 0.12
Литералы
Символьные литералы представляют одиночные символы. Символы заключаются в одинарные кавычки.
Символьные литералы бывают нескольких видов. Прежде всего это обычные символы:
'2'
'A'
'T'
Также мы можем передать их вывести на консоль с помощью Console.WriteLine:
Console.WriteLine('2');
Console.WriteLine('A');
Console.WriteLine('T');
Литералы
Управляющая последовательность представляет символ, перед которым ставится слеш.
'\n' - перевод строки
'\t' - табуляция (длинный отступ)
'\' - слеш
Литералы
Символы могут определяться в виде шестнадцатеричных кодов ASCII (https://www.asciitable.com/)
Console.WriteLine('\x78'); //х
Console.WriteLine('\x5A'); // какой результат?
Литералы
Символы могут определяться в виде шестнадцатеричных кодов ASCII (https://www.asciitable.com/)
Console.WriteLine('\x78'); //х
Console.WriteLine('\x5A'); // какой результат?
Литералы
Символы могут определяться в виде шестнадцатеричных кодов Unicode(https://unicode-table.com/ru/)
Console.WriteLine('\u0020'); // @
Console.WriteLine('\u0041'); // какой результат?
Литералы
Строковые литералы представляют строки. Строки заключаются в двойные кавычки:
Console.WriteLine("hello");
Console.WriteLine("фыва");
Console.WriteLine("hello word");
Если внутри строки необходимо вывести двойную кавычку, то такая внутренняя кавычка предваряется обратным слешем:
Console.WriteLine("Компания \"Рога и копыта\"");
последовательность '\n' осуществляет перевод на новую строку:
Console.WriteLine("Привет \nмир");
null представляет ссылку, которая не указывает ни на какой объект. То есть по сути отсутствие значения.
Суффиксы
Вещественные литералы (дробные числа) рассматриваются как значения типа double. И чтобы указать, что дробное число представляет тип float или тип decimal, необходимо к литералу добавлять суффикс:
F/f - для float
M/m - для decimal.
float a = 3.14F;
float b = 30.6f;
decimal c = 1005.8M;
decimal d = 334.8m;
Суффиксы
Целочисленные литералы рассматриваются как значения типа int. Чтобы явным образом указать, что целочисленный литерал представляет значение типа uint, надо использовать суффикс U/u, для типа long - суффикс L/l, а для типа ulong - суффикс UL/ul:
uint a = 10U;
long b = 20L;
ulong c = 30UL;
Суффиксы
Использование системных типов
Выше при перечислении всех базовых типов данных для каждого упоминался системный тип. Потому что название встроенного типа представляет собой сокращенное обозначение системного типа. Например, следующие переменные будут эквивалентны по типу:
int a = 4;
System.Int32 b = 4;
Явная типизация
int x;
Компилятор при запуске знал, что x хранит целочисленное значение.
Неявная типизация:
var hello = "Hell to World";
var c = 20;
Для неявной типизации вместо названия типа данных используется ключевое слово var.
При компиляции компилятор сам выводит тип данных исходя из присвоенного значения.
Т.к. по умолчанию все целочисленные значения рассматриваются как значения типа int, то переменная c будет иметь тип int.
hello будет иметь тип string
Суффиксы
При использовании неявного типа нельзя:
1. сначала объявить переменную, а затем инициализировать:
// этот код работает
int a;
a = 20;
// этот код не работает
var c;
c= 20;
2. указать в качестве значения неявно типизируемой переменной null:
// этот код не работает
var c=null;
Вопросы:
1. Какой тип данных языка C# будет представлять следующая переменная?
bool enabled = true;
Вопросы:
5. Какой тип данных языка C# будет представлять следующая переменная?
var weight = 84.45f;
Константы
Константы предназначены для описания таких значений, которые не должны изменяться в программе.
Для определения констант используется ключевое слово const, которое указывается перед типом константы:
const string NAME = "Tom"; /* Определена константа NAME, которая хранит строку "Tom”*/
Объявить константу можно один раз, ее нельзя изменить в процессе работы программы:
Если нужно хранить в программе некоторые данные, но их не следует изменить, они определяются в виде констант.