Типове данни

Download Report

Transcript Типове данни

Типове данни
Деклариране, инициализиране, използване на
променливи
Ивелин Давидов
[email protected]
Съдържание на темата
1. Примитивни типове данни
•
•
•
•
•
•
Целочислени
Реални
Булеви
Символни
Стрингове
Обекти
2. Деклариране и използване на променливи
•
•
•
Идентификатори
Деклариране на променливи и присвояване на
стойности
Литерали
2
Примитивни типове данни
Как компютрите изчисляват?
 Компютрите са машини, които обработват
данни
 Данните се запазват в паметта на комютъра
под формата на променливи
 Променливите имат име, тип и стойност
 Пример за деклариране на променлива и
присвояване на стойност в C#
Име
Тип
int number = 5;
Стойност
4
Какво е тип данни
 Какво е тип данни
 Множество от стойности с подобни
характеристики
 Дефинира типа на информацията запазена в
паметта на компютъра
 Цели числа (integers): -1,5,10,15, …
 Букви: a, b, c, d, …
 Стрингове: “Pesho”, “Gosho”, “Hi, Vanka”, …
5
Характеристики на типовете данни
 Всеки тип данни има
 Име
 Размер (колко памет използва)
 Стойност по подразбиране
 Пример
 Цели числа в C#
 Име: int
 Размер: 32 бита (4 байта)
 Стойност по подразбиране: 0
6
Целочислени типове
Целочислени типове
 Целочислените типове
 Представят цели числа: 1, 2, 5, 10
 Имат област от стойности
 Стойността им по подразбиране е 0, с
изключение на
 0L за long типът данни
8
Целочислени типове
 sbyte (-128 to 127): signed 8 бита
 byte (0 to 255): unsigned 8 бита
 short (-32,768 to 32,767): signed 16 бита
 ushort (0 to 65,535): unsigned 16 бита
 int (-2,147,483,648 to 2,147,483,647): signed 32 бита
 uint (0 to 4,294,967,295): unsigned 32 бита
 long (-9,223,372,036,854,775,808 to
9,223,372,036,854,775,807): signed 64 бита
 ulong (0 to 18,446,744,073,709,551,615): unsigned 64
бита
9
Целочислени типове
Демонстрация
Реални типове данни
Реални типове с плаваща запетая
 float (±1.5 × 10−45 to ±3.4 × 1038): 32 бита,
точност до 7 символа
 Стойност по подразбиране: 0.0F
 double (±5.0 × 10−324 to ±1.7 × 10308): 64 бита,
точност до 15-16 символа
 Стойност по подразбиране: 0.0D
12
Аномалии при сметки с реални
типове с плаваща запетая
 Аномалии при събиране на числа с плаваща
запетая
 Сравнение на числа с == често връща грешен
резултат
 Пример
double a = 1.0f;
double b = 0.33f;
double sum = 1.33f;
bool equal = (a+b == sum); // False!!!
Console.WriteLine(equal);
13
Реален тип с десетична точност
 Съществува специален реален тип с
десетична точност в C# - decimal
 decimal (±1,0 × 10-28 до ±7,9 × 1028): 128 бита,
прецизност до 28-29 цифри
 Използва се за финансови изчисления
 Стойността по подразбиране за decimal е:
•
0.0M
14
Реални типове
Демонстрация
Булев тип
Истина или лъжа
Булев тип
 Декларира се с ключовата дума
bool
 Има само две стойности: true и
false
 Изпозлва се за логически изрази
 Стойността по подразбиране
false
17
Булев тип
 Пример за използване на булева
променлива:
int a = 1;
int b = 2;
bool isAGreaterThanB = (a > b);
Console.WriteLine(isAGreaterThanB);
bool isAEqualToOne = (a == 1);
Console.WriteLine(isAEqualToOne);
// False
//True
int sum = a + b;
bool isSumSmallerThanFive = (sum < 5);
Console.WriteLine(isSumSmallerThanFive);
//True
18
Булев тип
Демонстрация
Символен тип
Символен тип
 Представя единичен символ
 Декларира се с ключовата дума char
 На всеки символ съответства цяло число
 Стойност по подразбиране '\0'
 Ограждат се с единични кавички при
декларация
21
Символи
 Всеки символ в C# има уникална Unicode
стойност
char symbol = 'a';
Console.WriteLine("The code of '" + symbol + "'
is: " + (int)symbol);
symbol = 'b';
Console.WriteLine("The code of '" + symbol + "'
is: " + (int)symbol);
symbol = 'A';
Console.WriteLine("The code of '" + symbol + "'
is: " + (int)symbol);
22
Символи
Демонстрация
Типът String
Типът String
 Поредица от символи
 Декларира се с ключовата дума String
 Има стойност по подразбиране null
 Огражда се в кавички
string firstName = "Ivan";
25
String
Демонстрация
Типът Object
That’s how it all started
Типът Object
 Декларира се с ключовата дума object
 Родител на всички други типове
 Може да съдържа стойности от всякакъв тип
object container1 = 5;
object container2 = "Five";
Console.Write("The value of container1 is: “);
Console.WriteLine(container1);
Console.Write("The value of container2 is: “);
Console.WriteLine(container2);
28
Object
Демонстрация
Променливи
Променливи
 Променливата е
 Контейнер за информация
 Променливите дават възможност за
 Запазване на информация
 Извличане на запазената информация
 Променяне на запазената информация
31
Променливи
 Променливите имат:
 Име
 Тип (int, double, string и тн)
 Стойност
Име
Тип
int age = 18;
Стойност
32
Именуване на променливи
 Имената на променливите могат да
съдържат:
 Букви
 Цифри (0, 1, 2, ..., 9)
 Подчертавка "_"
 Mогат да започват с буква или подчертавка
 Не могат да са запазени думи от C#
 Пр. int, double, if, for и др
33
Именуване на променливи (2)
 Имената на променливите трябва да са:
 Описващи променливата
 Без съкгращения
 На английски
 camelCase
 Правилно именувани променливи
age, firstName, telephoneNumber, maxPositiveNumber
 Грешно именувани променливи
a, r1, FirstName, telephoneNmbr, max
34
Присвояване на стойност
string name = “Pesho Georgiev”;
int age = 23;
bool isMale = true;
Присвояване на стойност
 Използва се със оператора =
int firstValue = 5;
int secondValue;
secondValue = firstValue;
Console.WriteLine(firstValue);
Console.WriteLine(secondValue);
36
Литерали
Литерали
 Литералите са представянето на стойности в
сорс кода
 Разделят се на 6 вида
 Булеви
 Целочислени
 Реални
 Символни
 String
 И null литералът
38
Литерали
 Булеви литерали
 true и false
 Целочислени литерали
 Използват се за променливи от челочислен тип:
byte, int, long и тн.
 Състоят се от числа
 Могат да имат математически знаци (+, -, *, /)
39
Литерали
 Реалните литерали:
 Използват се за променливи от реален тип
float, double, decimal и тн.
 Съдържат цифри и знакът точка '.'
 Символни литерали
 Използват се за променливи от тип char
 Съдържат стойност обграден в единични скоби
 Стойността може да е
 Символ
 Unicode кодът на този символ
40
Литерали
 Стринг литерали
 Използват се за променливи от тип string
 Съдържат стойност обграден в двойни скоби
string message = "Hello, Pesho";
 А как ще напишем:
 "Hello, Pesho ", said Gosho с литерал?
41
Литерали
Демонстрация
Въпроси?
Упражнения
1. Декларирайте няколко променливи, като
изберете за всяка една най-подходящия от
типовете sbyte,
byte, short, ushort, int, uint, long и за
да им присвоите следните стойности:
52110, -125, 4825933, 87, -10001, 20200;
229; 971700000; 114
44
Упражнения
2. Кои от следните стойности може да се
присвоят на променливи от
тип float, double и decimal:
34.567839023; 12.345; 8923.1234857;
3456.091124875956542151256683467?
3. Напишете програма, която събира с точност
3 пъти числото 0.000001 и принтира сумата
на конзолата.
4. Декларирайте променлива от тип char и
присвоете като стойност първата буква от
вашето име на латиница.
45
Упражнения
5. Декларирайте променлива isMale от
тип bool и присвоете стойност в зависимост
от вашия пол.
6. Декларирайте две променливи от
тип string със стойности "Hello" и
"World". Декларирайте променлива от
тип object. Присвоете на тази променлива
стойността, която се получава от
конкатенацията на двата стринга. Отпечатайте променливата от тип object
46
Упражнения
7. Напишете програма, която принтира фигура
във формата на сърце със знака "o".
 Жокер: Използвайте @
8. Фирма иска да пази запис с данни на
нейните служители. Всеки запис трябва да
има следната характеристика – име,
възраст, пол (‘m’ или’f’) и уникален номер
на служителя (1000 до 5000). Декларирайте
необходимите променливи, нужни за да се
запази информацията за един служител.

47
Упражнения
9. Декларирайте две променливи от тип int.
Задайте им стойности съответно 11 и 18.
Разменете стойностите им и ги отпечатайте.
48