Скаларни типове данни

Целочислен тип (int)

Множество от допустими стойности:

-2 147 483 648 до 2 147 483 647за 32 битов компилатор (4B)
32 768 до 32 767 за 16 битов компилатор (2B)

Множество от допустими операции:

Аритметични операции (извършват се над даден операнд или операнди)

Унарни операции (извършват се над един операнд: + и -)

Бинарни операции (извършват се точно над два операнда: +, -, *, / и %)

//ПРИМЕРИ
int a=21, b=-12, c=9;
a=+b; a=-b //унарни операции
c=25+4; a=b-a; b=c/a; a=2*b; //бинарни операции
c=(12-3)*5; a=2*c+b; //аритметични операции (изрази)

Приоритет на операторите в низходящ ред:

Отношения (релации) между елементите: Оператори за сравнение

ОператорОписание
<по-малко
<=по-малко или равно
>по-голямо
>=по-голямо или равно
==равно
!=различно

резултат от сравнението е логическа стойност 1 или 0 (true или false)

Множество от стандартни функции

Вградена функция abs(x)– връща абсолютната стойност на х. За да се използва, е необходимо в началото на програмата да се включи библиотеката cmath.

cout<<abs(-12;) //извежда 12
int a=abs(12); cout<<a; //извежда 12

Реален тип

Множество от допустими стойности

ИмеОбхватЗаемана памет
float-3.4*1038до 3.4*10384B
double-1.74*10308до -1.74*103088B

Записват се по два начина:

  в дробнодесетичен формат: 12.4, -32.1243

  в експоненциален (научен) формат: -5.11Е+2, 3.5Е-12

Точността на тип float е до 7 значещи цифри след десетичната точка

Точността на тип double е до 15 значещи цифри след десетичната точка

Множество от допустими операции

Като при целочислен тип (без %)

Операции за сравнение

Прилагат се над реални числа и тяхното действие е същото като при целите числа и тяхното действие е същото като при целите числа.

Вградени функции

ФункцияОписание
ceil(x)Намира най-малкото цялочисло >=х
Намереното число е от тип double
floor(x)Намира най-голямото цялочисло <=х
Намереното число е от тип double
sqrt(x)Квадратен коренот х
pow(x,n)повдига х в степен n
fabs(x)Намира абсолютната стойност на х
Намереното число е от тип double
sin(x)Намира sin(x)
числото х се задава в радиани
cos(x)Намира cos(x)
числото х се задава в радиани
tan(x)Намира tg(x)
числото х се задава в радиани

Необходимо е да се включи заглавния файл cmath.

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

Декларира се със запазената дума bool (на името на английския математик Джордж Бул).
За променливите и константите от тип bool, се заделя памет 1B.
Допустими стойности: true (1) и false (0).
Логически оператори(подредени по приоритет):  логическо отрицание (!), логическо умножение „И“ (&&), логическо събиране “ИЛИ“ (||)

Таблици за истинност

a!a
truefalse
falsetrue
aba&&b
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse
aba||b
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

Символен тип

Декларира се със запазената дума char.За променливите и константите от тип char, се заделя памет 1B.
ВC++символният тип използва символите от така наречената ASCIIкодова таблица, вградена в компютъра. Броят на тези символи е 256, като на всеки съответства код от 0 до 255. Първите 128 символа са стандартни и при всички компютри те са едни и същи, докато при останалите съществуват различия.
Символите биват два вида: графични и управляващи. От клавиатурата се въвеждат главно графични символи (букви, цифри и други знаци), както и някои управляващи – Enter, Backspace и др.

Означения на някои специални символи

ОзначениеОписание на символа
\nЗнак за преминаване на нов ред
\tХоризонтална табулация
\vВертикална табулация
\bВръща курсора с един символ назад
\rВръща курсора в началото на реда
\aИздава звуков сигнал
\0Нулев символ, знак за край на низ

Операции надсимволни данни 

  • НамиранеASCII код на даден символ: 
    cout<< (int) ‘a’-> 97
  • Намиране на символ по зададен негов ASCII код: 
     cout<< (char) 97 -> a
  • Аритметични операции – над символни данни могат да се прилагат всички аритметични операции, допустими над целочислен тип. Тези операции се извършват над ASCIIкодовете на съответните символи. Резултатът е цяло число.
    cout<< ‘a’ + 3 -> 100
  • Логически операции: сравняват се кодовете на символите и получения резултат е от логически тип.
типове данни в С++, заемана памет и диапазон на стойностите

Преобразуване на типове

Неявно преобразуване (извършва се от компилатора, без указване от програмиста)

Винаги когато се използват логически оператори, се извършва неявно преобразуване на вградените типове с С++ до логически тип.При числовите типове числото 0 се преобразува до false, а всички останали числа до true.При символен тип, само символът ’\0’ се преобразува във false,а всички останали символи до true.

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

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

При присвояване на стойност на променлива от числов и логически тип се прави преобразуване на типа на операнда (израза) до типа на променливата. В таблицата са дадени преобразувания, при които няма загуба на точност:

ТипПреобразува се до
boolвсички числови типове
shortint
unsigned shortunsigned int
floatdouble

double a=5; -> 5.0
intb=3.52; -> 3

Явно преобразуване на тип

(<име_на_тип>) <израз>

Преобразува стойността на израза до указания в скобите тип.

(int)3.8;//3
(char) 42; //*
(double) 10/4; //2.5
(double) (10/4); //2.0

Манипулатори за форматиране на изхода

За да се укаже как точно трябва да се изведат резултатите, се използват манипулатори за форматиране на изхода. Те стандартно са дефинирани във файла iomanip. Този файл трябва да бъде включен в началото на програмата.

Манипулатор setw

Синтаксис: setw(<цял_израз>);

Семантика: Задава брой позиции на следващото извеждане, подравнено отдясно.

Манипулатор setprecision

Синтаксис: setprecision(<цял_израз>);

Семантика: Задава броя на цифрите, с които ще бъде изведено следващото реално число, като прави закръгление.

Забележка: При различните среди за програмиране, този манипулатор има различно действие.

Реклами