1.2. Коментари
// Това е текстът, който се счита до края на реда
* отбелязани с някакъв специален знак, например знакът
* за командата, особено когато въвеждането е направено с букви
1.3. Запазени думи и типове данни
Всеки език за програмиране включва командите и инструкциите, необходими за изпълнението на тези команди. За записване на такива действия се използват специални думи. Тези думи носят определен семантичен товар и следователно са написани според определени правила, за които постепенно ще говорим. Тези думи се наричат ключови думи или запазени думи.
Запазени думие предварително определен списък от английски думи и няколко знака, които се използват като езикови команди. Вече сме срещали някои от тях, например думитеосновен,определя. Срещайки такава дума, компютърът „разбира“ какво трябва да се направи по-нататък и няма да го обърка с друга дума. В C++ има малко такива думи, по-малко от 60. Можем да кажем, че щом научим всички тях, веднага ще разберем възможностите на езика C++. Запазеният символ, който също срещнахме, е хаштагът#.
Сега нека преминем към така наречените типове данни, но първо нека поговорим какво представляват данните. Като начало можем да кажем следното: данните са това, с което програмата работи, тоест не команди, а това, което е необходимо за изпълнението на тези команди. Например събирането изисква числа, символи за образуване на текст и евентуално думи и цели фрази. След такова не много добро определение, нека се опитаме да разберем какво е тип данни.
Информацията, съдържаща се в клетките на паметта, може да има напълно различни значения. Това могат да бъдат например цели числа, числа с дробна част или символи. Всичко това обаче се изразява катопоредици от нули и единици. Позовавайки се на място в паметта, компилаторът може да интерпретира съдържащата се в него информация като число, буква, инструкция или друг тип информация. Например, двоичното число 01000001 може да представлява буквата A или десетичното число 65. Следователно, когато създавате програми, трябва да посочите каква информация се съхранява във всяка клетка. В този случай, поради използването на различни схеми за кодиране, е възможно правилно да се интерпретира съдържащата се информация. За щастие това не е трудно да се направи, почти всичко се прави автоматично. За да направите това, езиците за програмиране използват концепцията за "типове данни".
Нека се опитаме да дадем първоначална дефиниция на това понятие. Типът данни е правило за определяне на размера на клетка от паметта и как информацията, съдържаща се в нея, се кодира и декодира.
Типовете данни образуват списък от типове данни, които се използват в езика. Например, някои езици използват само цели числа, дробни числа и символи. В други този списък е разширен с въвеждането на булеви числаtrueиfalse, както и низове, състоящи се от символи, в трети той е разширен още повече, например с въвеждането на записи, набори и т.н.
Често този списък е затворен. Това означава, че програмистът може да работи само с ограничен брой променливи, включени в посочения списък. В C++ това не е така. Програмист, работещ на C++, може да разширява броя на типовете променливи за неопределено време. Има обаче няколко основни типа. Тук ще разгледаме само някои от тях. На първо място, това е тип характер. Типът знак включва всички знаци, които се появяват на клавиатурата. Именно символи, а не спомагателни клавиши. Може да има 2 8 =256 еднобайтови знака. Един байт е достатъчен за кодиране на знаци.
Всеки тип данниима собствено име. Символният тип има иметоcharот английската дума character(буква, йероглиф, цифра, знак). Между другото, за йероглифите. За кодиране на много национални азбуки 256 знака не са достатъчни. Следователно два байта понякога се използват за кодиране на знаци. Този тип кодиране се нарича Unicode. Unicode ви позволява да поддържате всички известни в света азбуки и елементи от йероглифи.
Целите числа са друг тип. В C++ целочислен тип се нарича типintот думатаinteger(цяло число). 4 байта се използват за съхраняване на число от тип int. В четири байта можете да поставите 232 различни числа без знак или числа от - 2 147 483 648 до 2 147 483 647. Обикновено този диапазон от цели числа е достатъчен. Ранните компютри са използвали само два байта, така че диапазонът от int е значително по-тесен, от -32768 до 32767. В компютри с 32-битови процесори също могат да се използват такива числа, само че те се наричат short(къси) илиshortint. И двете имена могат да се използват в програми, защото те означават едно и също нещо.
Освен с цели числа, програмата трябва да работи и с дробни числа. В C++ за това се използват така нареченитечисла с плаваща запетая(запетая). Не се страхувайте, отдавна сте запознати с такива числа. Например 123,456 може да се запише като 1,23456∙10 2, т.е. такива числа имат дробна част. Този тип число или по-скоро тип данни се наричаfloat(плаващ). Имайте предвид, че дробната част е отделена от целочислената част с точка, а не със запетая. Това важи за писане на дробни сисели от всякакъв тип. 4 байта се използват за запис на плаващо число. Числата от този тип могат да бъдат както положителни, така и отрицателни. Обхватът на промените на такива числа е приблизително равен на от 10-38 до 10 38 .
Друг вид дробни числа е число от типdouble(двойно). Такива числа имат дробна част. Например 3,1415926. 8 байта се използват за запис на двойно число. Числата от този тип могат да бъдат както положителни, така и отрицателни. Минималното число по модул е приблизително равно на 10 -308, максималното е 10 308. Трябва да се разбере, че целите числа се задават точно, а дробните числа се съхраняват като приближение, т.е. само
Нека сравним нотацията на цели числа и числа с плаваща запетая. Ако в програмата има числа 2 и 2.0, компилаторът на C++ ще ги интерпретира по различен начин. Първото се третира като цяло число - int (4 байта), второто като двойно (8 байта), защото има дробна част. Няма значение дали е нула. Двойно число може да бъде записано векспоненциална форма. По-специално, такова представяне е удобно за много големи и много малки числа по модул. Например числото 2873620000, което иначе може да се запише като 2.87362∙10 9 в C++, се записва като 2.87362е9, тоест след знакаeима степента, до която трябва да се повиши числото 10. Тази нотация се използва, защото конвенционалните клавиатури не предоставят начин за писане с горен индекс. Числото преди знакаeсе нарича мантиса. Числото след знакаeсе нарича експонента, то може да се разглежда като индикатор за посоката и броя на цифрите, с които трябва да се премести десетичната запетая. Например, за да запишете числото 3.62e4 като обикновена десетична дроб, трябва да преместите десетичната запетая четири позиции вдясно, което води до числото 36200.0. Ако символътeе последван от отрицателно число, десетичната точка трябва да се премести наляво, като се добавят нули след нея, ако е необходимо. Значи числото 3.62e-4 означавасъщото като 0,000362. Тези примери показват, че с експоненциалното представяне на число, десетичната запетая, така да се каже, плава с броя на цифрите, съответстващи на степента. Оттук и името на този тип - числа с плаваща запетая.
Числото, което идва преди знакаeможе или не може да съдържа десетична точка. Числото следeне трябва да съдържа десетична запетая.
В 8 байта можете да съхранявате ограничен брой значещи цифри от мантисата, обикновено най-малко 14, така че можете да очаквате изненади при закръгляване от двойни. Няма закръгляване за цели числа.
Вероятно след такова кратко въведение в видовете числа читателят има нови въпроси. Например, какви други типове числа могат да се използват в C++?. Защо числото с дробна част се нарича двойно? Има ли един вид? Читателят може да получи отговор на тези въпроси от следната таблица: