СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Переменные, типы данных

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Переменные, типы данных»

ГПОУ «Ленинск-Кузнецкий политехнический техникум» Основы алгоритмизации и программирование Переменные и константы. Типы данных Преподаватель Щеглова Алена Александровна Теоретическое занятие для студентов II курса Ленинск-Кузнецкий, 2022

ГПОУ «Ленинск-Кузнецкий политехнический техникум»

Основы алгоритмизации

и программирование

Переменные и константы. Типы данных

Преподаватель Щеглова Алена Александровна

Теоретическое занятие

для студентов II курса

Ленинск-Кузнецкий, 2022

Переменная Переменная - именованная область памяти, в которой хранится значение определенного типа. Каждая переменная имеет имя, тип, размер и значение. Перед использованием переменную надо определить. Синтаксис определения переменной выглядит следующим образом: тип имя_переменной; Тип определяет, какого рода информацию может хранить переменная.    Ячейки памяти Имя переменной number Тип переменной int Значение переменной 1  int number = 1;   00000001

Переменная

Переменная - именованная область памяти, в которой хранится значение определенного типа.

Каждая переменная имеет имя, тип, размер и значение.

Перед использованием переменную надо определить.

Синтаксис определения переменной выглядит следующим образом:

тип имя_переменной;

Тип определяет, какого рода информацию может хранить переменная.

Ячейки памяти

Имя переменной number

Тип переменной int

Значение переменной 1

int number = 1;

00000001

Имя переменных Имя переменной - любое название, которое удовлетворяет требованиям: имя может содержать цифры, буквы и символ подчеркивания первый символ в имени должен быть буквой или символом подчеркивания в имени не должно быть знаков пунктуации и пробелов имя не может быть ключевым словом языка C#. Ключевые слова подсвечиваются синим цветом имя переменой носит описательный характер, который говорит о предназначении переменной    1 1 тип имя_переменной; string name;

Имя переменных

Имя переменной - любое название, которое удовлетворяет требованиям:

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

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

1

1

тип имя_переменной;

string name;

Тип данных Тип определяет, какие данные, множество значений могут быть записаны в ячейку памяти, допустимые действия, которые можно применять над объектом          Типы    Простые (скалярные) Составные Вещественные Целые массивы классы Указатели Логический объединения структуры

Тип данных

Тип определяет, какие данные, множество значений могут быть записаны в ячейку памяти, допустимые действия, которые можно применять над объектом

 

Типы

 

Простые (скалярные)

Составные

Вещественные

Целые

массивы

классы

Указатели

Логический

объединения

структуры

Типы данных C# Тип Описание bool Диапазон значений логический true и false   Логический тип: bool alive = true; bool isDead = false;

Типы данных C#

Тип

Описание

bool

Диапазон значений

логический

true и false

Логический тип:

bool alive = true;

bool isDead = false;

Типы данных C#  char: хранит одиночный символ char a = 'A'; char b = '\x5A'; char c = '\u0420'; string: хранит набор символов string hello =

Типы данных C#

char: хранит одиночный символ

char a = 'A';

char b = '\x5A';

char c = '\u0420';

string: хранит набор символов

string hello = "Hello";

string word = "world";

Тип

char

Описание

string

символьный

Диапазон значений

строка

0 … 65535

последовательность символов

1

2

Типы данных C# Тип Описание sbyte Диапазон значений целое byte -128 … 127 short целое целое ushort 0 … 255 int -32768 … 32767 целое целое uint 0 … 65535 -2147483648 …2147483647 целое long 0 … 4294967295 целое ulong  – 9 223 372 036 854 775 808 … 9 223 372 036 854 775 807  целое    0 … 18 446 744 073 709 551 615

Типы данных C#

Тип

Описание

sbyte

Диапазон значений

целое

byte

-128 … 127

short

целое

целое

ushort

0 … 255

int

-32768 … 32767

целое

целое

uint

0 … 65535

-2147483648 …2147483647

целое

long

0 … 4294967295

целое

ulong

 – 9 223 372 036 854 775 808 … 9 223 372 036 854 775 807 

целое

   0 … 18 446 744 073 709 551 615

Базовые типы данных   byte: хранит целое число от 0 до 255  byte bit1 = 1; byte bit2 = 102;

Базовые типы данных

byte: хранит целое число от 0 до 255 

byte bit1 = 1;

byte bit2 = 102;

Базовые типы данных    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;

Базовые типы данных

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; 

Базовые типы данных

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;

Базовые типы данных

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;

Базовые типы данных

ulong: хранит целое число от 0 до 18 446 744 073 709 551 615 

ulong a = 10;

ulong b = 0b101;

ulong c = 0xFF;

Типы данных C#   Тип Описание float Диапазон значений Вещественное double 3,4e-38 … 3,4e+38 с повышенной точностью 1,7e-308 … 1,7e+308

Типы данных C#

Тип

Описание

float

Диапазон значений

Вещественное

double

3,4e-38 … 3,4e+38

с повышенной точностью

1,7e-308 … 1,7e+308

Переменные string name; string Name; Определите, какие данные могут хранить следующие переменные. Назовите имена переменных. Указанные переменные программа будет воспринимать, как разные переменные или как одну и ту же?

Переменные

string name;

string Name;

Определите, какие данные могут хранить следующие переменные. Назовите имена переменных.

Указанные переменные программа будет воспринимать, как разные переменные или как одну и ту же?

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

Переменные

После определения переменной можно присвоить некоторое значение:

string name;

name = "Tom";

Вопросы: 1. Что выведет следующий код:    string name =

Вопросы:

1. Что выведет следующий код:

string name = "Tom";

Console.WriteLine(Name);

Вопросы: 2. Что выведет следующий код:    string person =

Вопросы:

2. Что выведет следующий код:

string person = "Tom";

person = "Sam";

Console.WriteLine(person);

Вопросы: 3. Какие из следующих вариантов представляют корректное определение переменных: string person =

Вопросы:

3. Какие из следующих вариантов представляют корректное определение переменных:

string person = "Tom";

person = "Tom";

string "Tom";

string person;

Базовые типы данных object: может хранить значение любого типа данных   object a = 22; object b = 3.14; object c =

Базовые типы данных

object: может хранить значение любого типа данных

object a = 22;

object b = 3.14;

object c = "hello code";

Базовые типы данных Пример    string name =

Базовые типы данных

Пример

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}");

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

Переменные

После определения переменной можно присвоить некоторое значение:

string name;

name = "Tom";

Алфавит языка С# Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого контекста переменная не существует.  void func1(void) { int x;   x = 10; } Целая переменная х объявлена дважды: один раз в func1() и второй — в func2(). При этом переменная х в одной функции никак не связана и никак не влияет на переменную с тем же именем в другой функции. Это происходит потому, что локальная переменная видима только внутри блока, в котором она объявлена, за пределами этого блока она невидима. void func2(void) {  int x;   x = -199; }

Алфавит языка С#

Каждая переменная доступна в рамках определенного контекста или области видимость. Вне этого контекста переменная не существует. 

void func1(void)

{

int x;

  x = 10;

}

Целая переменная х объявлена дважды: один раз в func1() и второй — в func2(). При этом переменная х в одной функции никак не связана и никак не влияет на переменную с тем же именем в другой функции. Это происходит потому, что локальная переменная видима только внутри блока, в котором она объявлена, за пределами этого блока она невидима.

void func2(void)

{

int x;

  x = -199;

}

Алфавит языка C# Существуют различные контексты: 1) Контекст класса. Переменные, определенные на уровне класса, доступны в любом методе этого класса. Их называют глобальными переменными или полями   сlass Person        // начало контекста класса { string type =

Алфавит языка C#

Существуют различные контексты:

1) Контекст класса. Переменные, определенные на уровне класса, доступны в любом методе этого класса. Их называют глобальными переменными или полями

сlass Person        // начало контекста класса

{

string type = "Person";    // переменная уровня класса

public void PrintName()  // начало контекста метода PrintName

{       ....           }            

public void PrintSurname()  // начало контекста метода PrintSurname

{        …             }  

Переменная type существует в контексте всего класса Person и доступна в любом месте и блоке кода в методах PrintName и PrintSurname.

Алфавит языка C# Существуют различные контексты: 2) Контекст метода. Переменные, определенные на уровне метода, являются локальными и доступны только в рамках данного метода. В других методах они недоступны    class Person                            {    string type =

Алфавит языка C#

Существуют различные контексты:

2) Контекст метода. Переменные, определенные на уровне метода, являются локальными и доступны только в рамках данного метода. В других методах они недоступны

class Person                           

{    string type = "Person";   

     public void PrintName() 

{   string name = "Tom";   }          

     public void PrintSurname()       

    {        string surname = "Smith";    } }  

Переменная name существует в рамках метода PrintName. Переменная surname существует в рамках метода PrintSurname. В методе PrintName мы не можем обратиться к переменной surname, так как она в другом контексте.

Алфавит языка C# Существуют различные контексты: 3) Контекст блока кода. Переменные, определенные на уровне блока кода, также являются локальными и доступны только в рамках данного блока. Вне своего блока кода они не доступны.   class Person      // начало контекста класса {    string type =

Алфавит языка C#

Существуют различные контексты:

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);

Литералы

Литералы - неизменяемые значения.

Бывают: логическими, целочисленными, вещественными, символьными, строчными, отдельный литерал представляет ключевое слово null.

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

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

Console.WriteLine(true);

Console.WriteLine(false);

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

Литералы

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

Целочисленные литералы представляют положительные и отрицательные целые числа, например, 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

Литералы

Числа в двоичной форме предваряются символами 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

Литералы

Для записи числа в шестнадцатеричной форме применяются символы 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 - экспонента, которая фактически означает

Литералы

Вещественные литералы представляют дробные числа. Этот тип литералов имеет две формы. Первая форма - вещественные числа с фиксированной запятой, при которой дробную часть отделяется от целой части точкой. Например:

3.14

-0.38

2. Вещественные литералы в экспоненциальной форме 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

2

3

Литералы Символьные литералы представляют одиночные символы. Символы заключаются в одинарные кавычки. Символьные литералы бывают нескольких видов. Прежде всего это обычные символы: '2' 'A' 'T' Также мы можем передать их вывести на консоль с помощью Console.WriteLine: Console.WriteLine('2'); Console.WriteLine('A'); Console.WriteLine('T');     2 3

Литералы

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

Символьные литералы бывают нескольких видов. Прежде всего это обычные символы:

'2'

'A'

'T'

Также мы можем передать их вывести на консоль с помощью Console.WriteLine:

Console.WriteLine('2');

Console.WriteLine('A');

Console.WriteLine('T');

2

3

Литералы Управляющая последовательность представляет символ, перед которым ставится слеш. '\n' - перевод строки '\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');   // какой результат?

Литералы Символы могут определяться в виде шестнадцатеричных кодов 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');    // какой результат?

Литералы

Символы могут определяться в виде шестнадцатеричных кодов Unicode(https://unicode-table.com/ru/)

Console.WriteLine('\u0020');    // @

Console.WriteLine('\u0041');    // какой результат?

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

Литералы

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

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;

Суффиксы

Вещественные литералы (дробные числа) рассматриваются как значения типа 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. Чтобы явным образом указать, что целочисленный литерал представляет значение типа 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 a = 4;

System.Int32 b = 4;

Явная типизация int x; Компилятор при запуске знал, что x хранит целочисленное значение.   Неявная типизация: var hello =

Явная типизация

int x;

Компилятор при запуске знал, что x хранит целочисленное значение.

Неявная типизация:

var hello = "Hell to World";

var c = 20;

Для неявной типизации вместо названия типа данных используется ключевое слово var.

При компиляции компилятор сам выводит тип данных исходя из присвоенного значения.

Т.к. по умолчанию все целочисленные значения рассматриваются как значения типа int, то переменная c будет иметь тип int.

hello будет иметь тип string

string name;

name = "Tom";

Суффиксы   При использовании неявного типа нельзя: 1. сначала объявить переменную, а затем инициализировать: // этот код работает int a; a = 20;   // этот код не работает var c; c= 20; 2. указать в качестве значения неявно типизируемой переменной null: // этот код не работает var c=null;

Суффиксы

  При использовании неявного типа нельзя:

1. сначала объявить переменную, а затем инициализировать:

// этот код работает

int a;

a = 20;

  // этот код не работает

var c;

c= 20;

2. указать в качестве значения неявно типизируемой переменной null:

// этот код не работает

var c=null;

Вопросы: 1. Какой тип данных языка C# будет представлять следующая переменная? bool enabled = true;

Вопросы:

1. Какой тип данных языка C# будет представлять следующая переменная?

bool enabled = true;

Вопросы: 5. Какой тип данных языка C# будет представлять следующая переменная? var weight = 84.45f;

Вопросы:

5. Какой тип данных языка C# будет представлять следующая переменная?

var weight = 84.45f;

Константы Константы предназначены для описания таких значений, которые не должны изменяться в программе. Для определения констант используется ключевое слово const, которое указывается перед типом константы: const string NAME =

Константы

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

Для определения констант используется ключевое слово const, которое указывается перед типом константы:

const string NAME = "Tom"; /* Определена константа NAME, которая хранит строку "Tom”*/

Объявить константу можно один раз, ее нельзя изменить в процессе работы программы:

Если нужно хранить в программе некоторые данные, но их не следует изменить, они определяются в виде констант.

1

const string NAME;  // ! Ошибка - константа NAME не инициализирована

1

2

const string NAME = "Tom";  // определяем константу

NAME = "Bob";   // !Ошибка - у констаты нельзя изменить значение

Вопросы: 7. Верно ли объявление константы? 1 const string NAME;  Ошибка - константа NAME не инициализирована

Вопросы:

7. Верно ли объявление константы?

1

const string NAME; 

Ошибка - константа NAME не инициализирована

Вопросы: 7. Верно ли объявление константы? 1 2 const string NAME =

Вопросы:

7. Верно ли объявление константы?

1

2

const string NAME = "Tom"; 

NAME = "Bob";  

Ошибка - у константы нельзя изменить значение