[Autumn Series] Променливи и типове данни

Аватар
Autumn Shade
Извън линия
Потребител
Потребител
Мнения: 269
Регистриран на: 14 Мар 2019, 13:20
Се отблагодари: 48 пъти
Получена благодарност: 150 пъти

[Autumn Series] Променливи и типове данни

Мнение от Autumn Shade » 12 Авг 2019, 11:35

Съдържание:
  • Типове данни
  • Модификатори
  • Типове данни дефинирани от потребителя
  • Typedef и enumerables
  • Дефиниране на променливи
  • Упражнение
  • Какво следва?

Типове данни

Езикът C++ ни дава възможност да използваме набор от вградени типове данни, включително и потребителски(които сами си определяме). Нека дам пример с някои вградени типове данни:
  • boolean - Изписва се bool - съдържа в себе си две стойности: true или false.
  • Integer - Изписва се int или char - представлява цяло число, което може да е положително или отрицателно.
  • Числа с плаваща запетая - Изписва се float или double - предсталвява реалните числа(дробните).
  • void - Изписва се void - Представлява тип данни, който няма стойност, още познато като да има null(никаква) стойност
  • Голям charset - Изписва се wchar_t - Предсталява тип данни, който използва най-голямото множество от символи. (Китайски, латински, гръцки, кирилица и още куп символи, които не знаем)
  • auto - Препоръчвам използването му, защото е супер удобно. Само си избира типа данни на базата на подадена информация. Например:

    Код за потвърждение: Избери целия код

    auto a = 1; 	// int
    auto b = 3.14; 	// double
    auto c = 'f'; 	// char
    
Различните типове данни определят сами своят капацитет. Например, char има допустими стойности от -128 до 127 включително, докато типа long има допустими стойности от -2147483648 до 2147483647.

Модификатори

По-горните типове могат да бъдат подправени и дооправени откъм размерност и капацитет. За тази цел имаме три модификатора:
  • signed - може да съдържа в себе си нула, отрицателно или положително число.
  • unsigned - може да съръджа в себе си само нула и положително число
  • long - може да съдържа в себе си поне от -2147483648 до 2147483647

Типове данни дефинирани от потребителя

Структури и класове. Това са двата потребителски типа данни. За тях ще говорим по-нататък.

В C++ се позволява използването на масив от символи, така наречено символен низ, водещо се под названието string. Също така, за да не се занимавате с излишни операции, в C++ има такава библиотекa, наречена string. И с нея ще се занимаваме скоро.

Typedef и enumerables

Typedef позволява създаването на нови имена за вече съществуващи типове данни. Какво значи това? Представете си го така: Вие се казвате Чичопей Чичопеев и имате никнейм, който е Чочо. Това представлява typedef - имате един тип int, искате да се казва Integer, а не int, защото на вас така ви е удобно и в същото време можете да използвате и Integer, и int.

Синтаксисът за използване е следният:

Код за потвърждение: Избери целия код

typedef int Integer;

Integer a = 4;
И сега следват enumerables. Какво представляват те? Това е тип данни, чрез който можем да изброяваме неща. Веднага давам пример:
Имаме плодове и си ги подреждаме в един списък - Ябълки, праскови, домати, дини, череши. Същото нещо можем да го направим точно чрез enumerables типа данни, още наричан изброим тип данни. Неговият синтаксис е следният:

Код за потвърждение: Избери целия код

enum <име на списъка ни> {
	<един предмет от списъка ни>,
	<втори предмет от списъка ни>
} <име на променливата на списъка ни>;
Нека го видим и в действие с горният пример:

Код за потвърждение: Избери целия код

enum fruits {
	apple,
	peach,
	tomato,
	watermelon,
	cherries
} myFruits;
Забележете, че променливата я задавам след enum fruits { ... }. Това не е задължително. Можете и по-късно да го използвате. Какво забелязваме друго? Между всеки плод имаме разделител - запетая. Това е задължителна част при изброяването, за да разграничим плодовете си.

И сега нещо, което може би не знаете и ще ви съветвам да запомните. Винаги използвайте enum class пред enum, абсолютно задължително. Обяснявам веднага:

Първо - този стар стил на enum нямат собствен обсег. Какво ще означава това?

Код за потвърждение: Избери целия код

enum Animals {
	Parrot,
	Cat,
	Dog
}

enum Birds {
	Eagle,
	Parrot,
	Hawk
}
При вторият enum, където се припокриват Parrot като животно ще излезе грешка, че вече е декларирано. Това не представлява проблем за enum class:

Код за потвърждение: Избери целия код

enum class Animals {
	Parrot,
	Cat,
	Dog
}

enum class Birds {
	Eagle,
	Parrot,
	Hawk
}
Второ - те се превръщат в интегрални типове, което може да доведе до доста странно поведение на самата програма и доста разлики по нея, както и объркване:

Код за потвърждение: Избери целия код

bool b = Eagle && Dog;
Това може да се изпълни и да седите и да се чудите какво става, също така преждевременно, докато си пиете кафето/водичката или чайчето да искате съвсем случайно да убиете някого, за дето го е написал. (Понякога този някого сте самите вие :coolface: )

И трето - последно можете да задавате основният интегрален тип на enum class:

Код за потвърждение: Избери целия код

enum class Test : char { A, B, C }
Преди тази възможност я нямаше, което водеше до доста проблеми в съвместимостта между платформите.

Използването на enum class става по следният начин:

Код за потвърждение: Избери целия код

enum class Fruits {
	Apple,
	Peach,
	Watermelon
};

auto myFruit = Fruits::Apple;
Забележете тези двоеточия как са поставени. Това е по-особеното при използване.

Дефиниране на променливи

Променливата, само името по себе си казва какво прави, нейната стойност може да бъде променена във всеки един момент от изпълнението на дадена програма. За числа най-често ще използваме типа int, което е цяло число. Имаме допустими стойности от -2147483648 до 2147483647. За да дефинираме променливите amxx и bg, ще трябва да използваме следният синтаксис:

Код за потвърждение: Избери целия код

int amxx;
int bg = 1;
Променливата amxx може да бъде използвана, но след като не сме и задали начална стойност, ние не знаем какво има вътре в нея. Променливата bg съдържа числото 1.

Сега ако вкараме малко математиика, да кажем, че имаме a, b, c, d и e като променливи, ще се опитаме да направим прости операции и да добавим нова стойност на променливата a:

Код за потвърждение: Избери целия код

int a = 0, b = 1, c = 2, d = 3, e = 4;

a = b - c + d * e;

cout << a << endl;
След операцията, на екрана ще се изпише числото 11, което се съдържа в променливата a.

Упражнение
Да се напише програма, която извежда на екрана сумата на четири променливи, две от които да са цели числа, а другите да са реални числа.

Какво следва?
В следващият пост, ще поговорим за масивите.

  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Системно Програмиране”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта