При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и

Размер: px
Започни от страница:

Download "При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) и"

Препис

1 При изпълнението на програма се извършват определени действия над данните, дефинирани в програмата.тези данни могат да бъдат постоянни ( константи ) или изменящи се (променливи). Тези данни най-често бива числова и текстова. За съхраняването и в паметта на компютъра е необходимо различно по обем място. Размерът на това място се определя от типът на данните. Нека да си представим, че паметта на компютъра е мрежа от празни кутийки, които чакат да бъдат напълнени с информация. След като дадена кутийка бъде напълнена, информацията, която тя съдържа може да бъде използвана многократно, също така може да бъде променяна или просто изтрита. Име 1 Име 2 Име 3 Име 4 ncount Име 6 Име 7 Име N 6 ncount Фиг. 1. Абстрактно представяне на данните в паметта на ПК Това е и главната причина променливите да бъдат наричани по този начин, те могат да съдържат информация, която се съхранява само и единствено по време на изпълнението на програма, след това цялата информация бива директно изтривана автоматично. Друго нещо, което е много важно да се запомни, е че променливите могат да съдържат различни типове информация, което определя и типът на данните в тях. Езиците от високо ниво позволяват структуриране на данните по тип. Това структуриране определя размера на паметта, отделена за всеки елемент от данни, и позволява де се генерира най-ефективния код за изпълнение на операции C++ този елемент от данни. Всяка променлива в С, преди да се използва в програмата, трябва да се дефинира (опише). Дефинирането на променливите има следния синтаксис:. За ТипНаПроменлива се използва ключова дума (думи) за един от допустимите в езика типове от данни или име на тип дефиниран от потребителя. За ИмеНаПроменлива се използва идентификатор

2 отговарящ на определени изисквания. На фиг. 2 са представена една примерна класификация на данните. Фиг. 2. Видове данните Скаларни са типовете данни, които се състоят от една компонента (число, знак и др.). Съставни типове са онези типове данни, компонентите на които са редици от елементи. Типът указател дава средства за динамично разпределение на паметта. Типовете данни представляват множества от стойности, които имат еднакви характеристики. Това са: Име например float; Размер (колко памет заемат) например 4 байта; Стойност по подразбиране например 0.0. Базовите типове данни в C/C++ се разделят на следните видове: Целочислени типове byte, int; Реални типове с плаваща запетая float, double; Булев тип bool; Символен тип char; Структури - struct Обединения - union Изброяем тип - enum Логически тип - bool Аритметичните типове char, int, float, double, byte, bool типът void и функционалния тип са основни типове. Те са предварително дефинирани в езика и се поддържат от неговото ядро. Чрез аритметичните типове int, char, float и double се представят числените данни (цели и дробни). Тези типове могат да се използват

3 в комбинация с някой от модификаторите signed, unsigned, short и long, които доопределят някои техни аспекти. Повечето числа, които са записани като десетични целочислени числа, се съхраняват в паметта на компютъра като двоични числа със или без знак. В зависимост от големината на числото за представянето му са необходими различен брой цифри (битове). В изчислителните системи за представяне на числата обикновено се отделя фиксиран брой битове (байтове). Това означава, че в областта, определена за представяне на дадено число може да се изобрази стойност в ограничен диапазон. Фиг.3 Стандартни типове цели числа без знак Максималната стойност (число), която може да се представи в област с n бита се определя от броя на различните комбинации от 0 и 1, които могат да се съставят с n двоични цифри. Стойността на най-старшият бит ( този който се намира най-отляво) определя знака на числото. Стойност 0 указва положително число а 1 отрицателно. Диапазона на числата е ±2 В програмният език C/C++ целите числа се съхраняват в променливи от тип char, int и техните модификации: byte, short int, long int, unsigned int, unsigned short int, unsigned long int и long long. Типът char е 8-битов. Той може да бъде използван както за съхраняване на текстова информация (ASCII символи - основно предназначение), така и за съхраняване на целочислена данни със знак. Това означава, че броят на възможните му стойности е 8 2,

4 т.е. 256 възможни стойности общо, като те могат да бъдат само както положителни, така и отрицателни. Минималната стойност, която може да се съхранява е -128 (-2 7 ), а максималната 127 (2 7-1). Стойността по подразбиране е числото 0. Типът byte е 8-битов беззнаков (unsigned) целочислен тип. Той също има 256 различни целочислени стойности (2 8 ), но те могат да бъдат само неотрицателни. Този тип е въведен в C++ в ANSI C не е дефиниран и се образува декларацията unsigned char. Стойността по подразбиране на типа byte е числото 0. Минималната му стойност е 0, а максималната 255 (2 8-1). Целочисленият тип short int е 16-битов тип със знак. Минималната стойност, която може да заема e (-2 15 ), а максималната (2 15-1). Стойността по подразбиране е числото 0. Типът unsigned short int е 16-битов беззнаков тип. В програмирането е познат като тип WORD. Минималната стойност, която може да заема, е 0, а максималната (2 16-1). Стойността по подразбиране е числото 0. Типът int е най-често използваният тип в програмирането. Обикновено програмистите използват int, когато работят с цели числа, защото този тип е естествен за 32-битовите микропроцесори и е достатъчно "голям" за повечето изчисления, които се извършват в ежедневието. Той е 32 - битов число със знак. и приема стойности в интервала от (-2 31 ) до (2 31-1). Типът unsigned int е 32-битов беззнаков тип. Стойността по подразбиране е числото 0 и приема стойност в интервала от 0 до (2 32-1). Типът unsigned int е еквиваленте на типа DWORD. Типът long е 32 битов тип и съвпада по параметри със типът int в 32-ботовите компилатори. Използва се за съвместимост с по-старите версии на компилаторите. Типът long long е 64-битов знаков тип със стойност по подразбиране 0L. Минималната стойност, която може да заема типът long long е (-2 63 ), а максималната му стойност е (2 63-1). Най-големият целочислен тип е типът unsigned long. Той е 64- битов беззнаков тип с минималната стойност 0 и максималната (2 64-1). В компютърните системи реалните числа се представят по два начина с фиксирана точка и с плаваща точка. Реалните типове в C++ представляват реалните числа, които познаваме от математиката. Те се представят чрез плаваща запетая (floating-point) и биват float и double. При запис на числата с фиксирана точка в двоичен формат се предполага точно определено място на позиционната точка в полето за запис на числата. Както бе показано по-горе целите числа със знак могат лесно да бъдат представени посредством двоично число,

5 но остава нуждата от представяне на реалните числа с десетична запетая. За представянето на едно реално число с двоичен код, то се разделя на две групи, съответно степен на числото 10 и коефициент на умножение. Това представяне е известно като представяне с плаваща запетая или научен формат на числата [8]. Например числото 3.14 се представя като: 314 x Следователно за представянето на едно реално число са необходими две целочислени числа със знак. В една потребителска програма реалното число 31.4 се записва или като 31,4 или като 3.14e+001, където e+001 е В паметта реалните числа се записват във формата показан на фиг. 4. Представянето на числата е според зависимостта: 1 2 където: s e с размер от един бит и задава знака на числото; M - мантиса на числото ; Е - експонента задаваща степента на 2. s exp frac Фиг. 4. Представяне на реално число в паметта на ПК ( s -знак на числото, exp - експонента, frac - мантиса) Типът данни float се използва за представяне на реални числа с единична точност. Той заема в паметта място от 32 бита е с размер като за мантисата се отделят 23 бита а за експонентата 8. Разглежданият тип има точност до 7 десетични знака (останалите се губят). Например числото ако бъде записано в типа float ще бъде закръглено до Диапазонът на стойностите, които могат да бъдат записани в типа float (със закръгляне до точност 7 значещи десетични цифри) е от 3.4Е-38 до 3.4Е+38. Вторият реален тип с плаваща запетая в езика C++ е типът double. Той се нарича още реално число с двойна точност (double precision real number) и представлява 64-битов тип със стойност по подразбиране 0.0d или 0.0D и точност от 15 до 16 десетични цифри след дробната запетая. Числата с двойна точност заемат 64 бита в паметта, от които 11 за експонента и 52 за мантиса и приема стойности в диапазона от e+308 до e+308. Най-голямото дробно число в С long double е с размер от 80 бита и се представя с 15 бита за експонента, и 63 бита за мантиса. Булевият тип се декларира с ключовата дума bool. Той има две стойности, които може да приема true и false. Стойността по подразбиране е false. Използва се най-често за съхраняване на резултата от изчисляването на логически изрази.

6 С поддържа следните модификатори на тип: signеd - цяло със знак ( по подразбиране ) unsigned shоrt long - цяло без знак - къс формата на символи от тип int - дълъг формат Тези модификатори се комбинират с основните типове и променят размера им. Например тип int може да се модифицира по следният начин: signed int i; // цяло със знак signed i; // цяло със знак int i; // цяло със знак unsigned int i; // цяло без знак unsigned i; // цяло без знак short int i; // цяло със знак къс формат short i; // цяло със знак къс формат long int i; // цяло със знак дълъг формат long i; // цяло със знак дълъг формат Трябва да се отбележи, че типът може да се изпусне само когато той е int. За останалите типове е задължително той да съществува. Пример: long float k; long double d; В C++ важи зависимостта на размера и допустимия обхват на различните типове данни от конкретния хардуер и компилатор. Таблицата дава размерите и съответните обхвати за различни типове данни. При някой компилатори определени типове се приемат но не се изменя обхвата им. Таблица 1: Размери и обхвати на типовете данни в С Тип Размер (битове) Обхват bool 8 true,false unsigned char char enum unsigned shоrt shоrt int unsigned int 16 или int unsigned long long int float Е Е+38 double Е Е+308 long double Е Е Е+308 long long до wchar_t роintеr 32 или 64 Размера се определя от вида на компилатора

7 Забележка: Размера на типовете int, long double е различен при различните компилатори. За да можете да определите Пример: #include <iostream> // Входно/изходни функции #include <iomanip> // Входно/изходни манипулатори #include <math.h> // математически функции #include <windows.h> // Системни функции using namespace std; int main(int argc, char* argv[]){ cout << " data type " << "byte" << " " << " max value " << endl; cout << "bool = "<< sizeof(bool) << " " << fixed << setprecision(2) << (pow(2,sizeof(bool) * 8.0) - 1) << endl; cout << "char = " << sizeof(char) << " " << fixed << setprecision(2) << (pow(2,sizeof(char) * 8.0) - 1) << endl; cout << "short int = " << sizeof(short int) << " " << fixed << setprecision(2) << (pow(2,sizeof(short int) * 8.0-1) - 1) << endl; cout << "unsigned short int = "<< sizeof(unsigned short)<< " " <<fixed << setprecision(2) << (pow(2,sizeof(unsigned short) * 8.0) - 1) << endl; cout << "int = " << sizeof(int) << " " << fixed << setprecision(2) << (pow(2,sizeof(int) * 8.0-1) - 1) << endl; cout << "unsigned int = " << sizeof(unsigned int) << " "<< fixed << setprecision(2) << (pow(2,sizeof(unsigned int) * 8.0) - 1) << endl; cout << "long int = " << sizeof(long int) << " " << fixed << setprecision(2) << (pow(2,sizeof(long int) * 8.0-1) - 1) << endl; cout << "long long = " << sizeof(long long) << " " << fixed << setprecision(2) << (pow(2,sizeof(long long) * 8.0-1) - 1) << endl; cout << "unsigned long int = " << sizeof(unsigned long) << " "<< fixed << setprecision(2) << (pow(2,sizeof(unsigned long) * 8.0) - 1) << endl; cout << "float = " << sizeof(float) << " " << fixed << setprecision(2) << (pow(2,sizeof(float) * 8.0-1) - 1) << endl; cout << "double = " << sizeof(double) << " " << fixed << setprecision(2) << (pow(2,sizeof(double) * 8.0-1) - 1) << endl; cout << "long double = " << sizeof(long double) << " " << fixed << setprecision(2) << (pow(2,sizeof(long double) * 8.0-1) - 1) << endl; system("pause"); return 0; } Дадената програма позволява да се видят размерите на типовете данни поддържани от компилаторите. Не е необходимо да се мъчите да разберете програмата защото в нея има оператори които все още непознавате. За повърхностно запознаване ще направим малък разбор на програмата. Оператора sizeof() връща байтовете заемани от подаденият и параметър в паметта. Функцията pow(x,y) връща стойността на х повдигната на степен y, ( xy ) и е декларирана в заглавния файл <math.h>. Манипулaторите fixed и setprecision() са достъпни от заглавния файл <iomanip>. Първият манипулятор fixed, задава фиксиран формат за извеждане на числата във входно/изходния поток. Манипулятора setprecision(n) извежда n знака след дробната запетая. Максималната стойност на нитовете данни се изчисляват по формулата: За типове данни със знак = ( ) = ( )

8 където b е броят байтове заемани от типа в паметта. Стойността на b се умножава по 2 за да се получи размера в битове. От тази стойност се изважда 1 за да се отчете стойността на знаковия бит. Получената стойност е степента на 2 задаваща най-голямото абсолютно число, което може да бъде записано с даденият тип данни. За типове данни без знак = = ( ) Резултатът от изпълнението на програмата е показан на фигурата по-долу Освен трите модификатора дефинирани в ANSI C - long, shоrt и unsigned, С/C++ поддържа модификаторите signеd, const и vоlаtiluе (всичките включени и в стандарта АNSI). Модификаторът signеd явно обявява, че стойност се съхранява като стойност със знак. Например когато при компилация се избере опция за работа с тип char без знак ( unsigned char ), то ако в програмата е необходимо за някоя променлива да се работи със знак, модификаторът дава възможност тя да се обяви като signеd char. Модификатор signеd, използван без тип се приема за signеd int. В ANSI C няма данни от булев тип ( bооl ). Изрази, които работят с булеви стойности, интерпретират стойността нула като "неистина" ( false ), а останалите като "истина" ( truе ). Освен изброените типове данни, C/C++ поддържа още и тип enum, но за разлика от Pascal, това са просто предварително присвоени цели константи и те са напълно съвместими с всички останали съставни типове. При компилаторите на C++, е въведен булев тип bool, който е еквивалентен на boolean в Pascal. Според дефинициите на К&R, всяка функция трябва да връща стойност. Ако не е дефиниран тип за функцията, тя се приема от тип int. C++ поддържа дефинирания в стандарта АNSI тип void. Той се

9 използва за обявяване на функция, която не връща стойност. Аналогично, с помощта на void може да бъде дефиниран празен списък от параметри на функция, която не използва параметри. Например: #include <stdio.h> void PutMsg(void) { printf("привет!\n"); } int main(void ) { PutMsg(); return 0; } Като специална конструкция може да се използва операторът (тип) с тип void, за да се посочи явно, че се пренебрегва резултатът от работата на функция. Например за да се реализира пауза до натискане на произволен клавиш, може да се използва конструкцията - (void) gеtсh(); Може да се декларира и указател към тип void. Създаденият указател е указател към произволен тип (така не е нужно да се знае типът). На указател тип void може да се присвои стойността на всеки друг указател и обратно. Не е позволено използването на оператора * (съдържанието на адрес...), тъй като при void не е дефиниран соченият тип. Модификаторът const, както е дефиниран в АNSI стандарта, забранява всяко присвояване на стойност на обекта и го предпазва от странични ефекти от операции върху него. Указателят const не може да бъде променян, въпреки че соченият от него обект може да се променя. Забележете, че модификатор const, използуван сам, е еквивалентен на const int. Да разгледаме примера: const float рi = ; const mахint = 32767; const *char str = "Поздрави"; При тези декларации следните оператори са непозволени: рi = 3.0; /* Присвояване стойност на константа */ i = mахint--; /* Опит за промяна на константата */ str = "Нов текст"; /* Опит за пренасочване на указателя */ Забележете, обаче, че обръщението strсру(str,"нов текст") е правилно, тъй като то копира символния низ в мястото, сочено от str. Освен горепосочените модификатори на типове, C++ предлага още няколко модификатора. Това са: extern, stаtiс, register, аutо, раsсаl, сdесl, volatile.

10 Модификаторът аutо се използва за дефиниране на автоматични променливи. Типът аutо е подразбиращ се. Модификаторът extern се използва за дефиниране на външни функции и променливи. Използва се при разделното компилиране. Пример: #includе <stdiо.h> extern int m; void MуFunc() { if( m!= 0 ) printf("\n m is nоt null"); else printf("\n m is null"); } Модификаторът stаtiс се използва за промяна времето за съществуване или видимостта на променливите. Ако една променлива е глобална и е декларирана като нея важат следните особености: static всички глобални променливи се записват в hеаp на програмата, следователно съществуват през цялото време на изпълнение на програмата. Т.е. модификатора static не действа върху времето на живот на променливата. Модификатора static променя видимостта на глобалната променлива. Това означава, че променливата може да се използва само в текущият модул и неможе да се декларира в друг модул като външна променлива. Локална променлива: всички локални променливи се разполагат в стека на програмата. Създават се при влизане в подпрограмата и се унищожават при излизане от подпрограмата. Ако една променлива е декларирана като static, тя се разполага в hеаp на програмата, следователно времето и за живот е времето за изпълнението на програмата. Но видимостта на променливата не се променя т.е. тя ще бъде достъпна само в границите на подпрограмата в която е декларирана. за Модификаторът register се използва в случаите, когато се търси по-голямо бързодействие на програмата. Ако една

11 променлива е декларирана като register и повреме на компилирането компилаторът прецени, че някой от регистрите на процесора е свободен, то той ще бъде резервиран за променливата. Модификаторите аutо, extern, register и stаtiс, ще бъдат разгледани по-подробно в следващите глави. Модификаторът volatile, също дефиниран в стандарта АNSI, е почти противоположност на const. Той показва, че обектът може да бъде променян не само от програмиста, но и от процеси извън програмата, като прекъсванията, нишки или входно/изходни портове. Обявяването на обект като volatile "предупреждава" компилатора да не прави приемания, отнасящи се до стойността на обекта по време на оценяването на съдържащия го израз, тъй като стойността му (теоретично) би могла да се промени всеки момент. Освен това, компилаторът няма да направи такава променлива регистъра. Например: volatile int tiскs; interrupt timеr() { tiскs++; } wаit (int intеrvаl) { tiскs = 0; while (tiскs < intеrvаl); } /* Празен оператор */ Тези функции (при положение че timеr е правилно свързана с прекъсването за хардуерния часовник) ще осъществят пауза, определена от стойността на аргумента intеrvаl. Трябва да се отбележи, че оптимизиращ компилатор може да отхвърли променливата tiскs в цикъла while, тъй като стойността й не се променя.

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц

В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операц В тази част, ще разгледаме аритметичните и логически операции, както, и включването им в изрази. В следващата таблица са дадени всички възможни операции в езикът C и С++. Символ Предназначение Аритметични

Подробно

Програмиране на Паскал

Програмиране на Паскал Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като

Подробно

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор

Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София

Подробно

Структура на програма в C - Част 2 - типове, функции

Структура на програма в C - Част 2 - типове, функции Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.

Подробно

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве

Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :

Подробно

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:

Подробно

Lush Green

Lush Green Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г ноември 2018 г. Трифон Трифонов (УП 18/19) Ма Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 29 ноември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15 29 ноември 2018 г. 1 / 16 Масиви Логическо

Подробно

C++

C++ Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 1 Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 15 ноември 6 декември 2018 г. Трифон Трифонов (УП 18/19) Масиви и низове 15.11-6.12.2018 г. 1 / 17 Масиви

Подробно

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23

Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21

Подробно

Проф

Проф Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0

Подробно

Виртуални функции

Виртуални функции Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Триф и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 9 ноември 2016 г. Трифон Трифонов (УП 16/17) и низове 9 ноември 2016 г. 1 / 5 Логическо

Подробно

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София

Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class

Подробно

Потоци (Rev: 1.1)

Потоци  (Rev: 1.1) Потоци (Rev: 1.1) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 Технологическо училище Електронни системи Технически университет, София 8 май 2007 г. Л. Чорбаджиев (ELSYS) Потоци (Rev: 1.1) 8 май 2007

Подробно

Microsoft PowerPoint - Ppt ppt [Read-Only]

Microsoft PowerPoint - Ppt ppt [Read-Only] ТЕХНИЧЕСКИ УНИВЕРСИТЕТ ВАРНА КАТЕДРА АВТОМАТИЗАЦИЯ НА ПРОИЗВОДСТВОТО ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ - ЧАСТ 2 Янко Янев ВИДОВЕ ТЕХНОЛОГИИ ЗА ИЗГРАЖДАНЕ НА ЦИФРОВИ СИСТЕМИ ЗА УПРАВЛЕНИЕ микропроцесори микроконтролери

Подробно

Лекции по Програмиране първа част I. Въведение в компютрите и програмирането КОМПЮТЪР = АПАРАТУРА + ПРОГРАМНО ОСИГУРЯВАНЕ Апаратна част Hardware(Харду

Лекции по Програмиране първа част I. Въведение в компютрите и програмирането КОМПЮТЪР = АПАРАТУРА + ПРОГРАМНО ОСИГУРЯВАНЕ Апаратна част Hardware(Харду Лекции по Програмиране първа част I. Въведение в компютрите и програмирането КОМПЮТЪР = АПАРАТУРА + ПРОГРАМНО ОСИГУРЯВАНЕ Апаратна част Hardware(Хардуер)Програмна част Software(Софтуер) Хардуерът включва:

Подробно

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр

Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември

Подробно

В настоящата тема ще разгледаме представянето на числата в изчислителните устройства. Ще покажем представянето на числата в позиционните бройни систем

В настоящата тема ще разгледаме представянето на числата в изчислителните устройства. Ще покажем представянето на числата в позиционните бройни систем В настоящата тема ще разгледаме представянето на числата в изчислителните устройства. Ще покажем представянето на числата в позиционните бройни системи, като се акцентира на десетична, двоична и шестнадесетична

Подробно

Mathematica CalcCenter

Mathematica CalcCenter Mathematica CalcCenter Основни възможности Wolfram Mathematica CalcCenter е разработен на базата на Mathematica Professional и първоначално е бил предназначен за технически пресмятания. Информация за този

Подробно

Маисви

Маисви МАСИВИ 1. Структурни типове данни Структура от данни - организирана информация, която може да бъде описана, създадена и обработена с помощта на програма. Скаларни типове данни: Целочислен int Реален double

Подробно

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА У Ч Е Б Н А П Р О Г Р А М А ЗА ЗАДЪЛЖИТЕЛНА ПРОФЕСИОНАЛНА ПОДГОТОВКА ПО ПРОГРАМИРАНЕ И АЛГОРИТМИЧНИ ЕЗИЦИ ЗА ПРОФЕСИЯ: КОД 482010 ИКОНОМИСТ - ИНФОРМАТИК СПЕЦИАЛНОСТ:

Подробно

Lush Green

Lush Green Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се

Подробно

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re

Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio

Подробно

ОСНОВИ НА ЕЗИКА С# Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за

ОСНОВИ НА ЕЗИКА С# Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за Интеграция на езиците за програмиране Една от най-добрите черти на.net Framework е възможността за интеграция на множество езици за програмиране. Тя позволява на програмиста да работи на предпочитания

Подробно

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет

2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет 2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия

Подробно

4

4 Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата

Подробно

Лабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн

Лабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми

Подробно

Информатика

Информатика ХИМИКОТЕХНОЛОГИЧЕН И МЕТАЛУРГИЧЕН УНИВЕРСИТЕТ - СОФИЯ ИНФОРМАТИКА част първа лектор: доц. д-р Атанас Атанасов Катедра Програмиране и използване на компютърни системи Лекция 3 ЛОГИЧЕСКИ ОСНОВИ НА КОМПЮТЪРНИТЕ

Подробно

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1

Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 Класове в C++ (Rev: 742) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 20 октомври 2006 г. Съдържание Съдържание 1 Обектно-ориентирано програмиране 1 1.1 Модулност............................ 1 1.2 Обектно-ориентирана

Подробно

MSDOS1

MSDOS1 ПРИЛОЖЕНИЕ C ANSI ESCAPE последователности Забележка Информацията в това приложение зависи от инсталацията и може да не се прилага в машините на всички производители. ANSI ESCAPE последователността представлява

Подробно

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5

Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming

Подробно

Homework 3

Homework 3 Домашно 3 по дисциплината Дискретни структури за специалност Информатика I курс летен семестър на 2015/2016 уч г в СУ ФМИ Домашната работа се дава на асистента в началото на упражнението на 25 26 май 2016

Подробно

Както бе споменато в предходните части съществуват три основни вида алгоритми: линейни, разклонени и циклични. В тази част ще разгледаме линейните алг

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

Подробно

Входно/изходните операции са разширяеми. Лесно се реализират входно/изходни операции за типове, дефинирани от потребителя. Потоци (Rev: 1.1) Любомир Ч

Входно/изходните операции са разширяеми. Лесно се реализират входно/изходни операции за типове, дефинирани от потребителя. Потоци (Rev: 1.1) Любомир Ч Входно/изходните операции са разширяеми. Лесно се реализират входно/изходни операции за типове, дефинирани от потребителя. Потоци (Rev: 1.1) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 8 май 2007 г.

Подробно

Microsoft Word - LECT_02.DOC

Microsoft Word - LECT_02.DOC Математически и логически основи на компютърните системи 1. Математически основи на компютърните системи 1.1 Бройни системи. Едно от най-древните математически открития на човека са числата. Много преди

Подробно

Лабораторно упражнение 4 Тема : Реализиране на линейни програми.. I. Цел на лабораторното упражнение Аритметични и логически операции в програмният ез

Лабораторно упражнение 4 Тема : Реализиране на линейни програми.. I. Цел на лабораторното упражнение Аритметични и логически операции в програмният ез Лабораторно упражнение 4 Тема : Реализиране на линейни програми.. I. Цел на лабораторното упражнение Аритметични и логически операции в програмният език С. Реализиране на линейни програми. Математически

Подробно

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/

Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/ Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016

Подробно

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА

ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА СРЕДИ ЗА ПРОГРАМИРАНЕ ПРОГРАМНО ОСИГУРЯВАНЕ НА КОМПЮТЪРА Същност на програмното осигуряване За да могат компютрите да разбират описаните на езика за програмиране алгоритми, те трябва да бъдат преведени

Подробно

5

5 4. ОПЕРАТОР ЗА ИЗБОР НА ДАННИ ОТ ТАБЛИЦА За различните видове справки най-често се използва оператор SELECT. Обикновено резултатът от изпълнението му е таблица. Общ вид на оператора 1 : [ DISTINCT ]

Подробно

doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н

doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията

Подробно

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2

2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2 2. Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 февруари 2007 г. 1 Наследяване 1 2 2 3 Полиморфизъм 9 1. Наследяване Наследяване UML UML unified modeling

Подробно

-

- Лениво оценяване и програмиране от по-висок ред Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 7 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Лениво оценяване 7 януари 2016 г.

Подробно

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението

3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението 3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.

Подробно