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

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

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

Препис

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

2 Програмен стек Схема на програмната памет... Програмен стек Статични данни Програмен код... Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 2 / 13

3 Програмен стек Програмен стек... граница на стека дъно на стека данни данни данни данни връх на стека Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 3 / 13

4 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

5 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

6 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

7 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

8 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Програмистът няма контрол над управлението на паметта Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

9 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Програмистът няма контрол над управлението на паметта Паметта не може да се освободи по-рано (преди края на блока) Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

10 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Програмистът няма контрол над управлението на паметта Паметта не може да се освободи по-рано (преди края на блока) Паметта не може да се запази за по-дълго (след края на блока) Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

11 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Програмистът няма контрол над управлението на паметта Паметта не може да се освободи по-рано (преди края на блока) Паметта не може да се запази за по-дълго (след края на блока) Количеството заделена памет до голяма степен е определено по време на компилация Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

12 Програмен стек Свойства на програмния стек Паметта се заделя в момента на дефиниция Всеки заделен блок памет носи името на променливата Паметта се освобождава при изход от блока (или функцията), в който е дефинирана променливата Последно заделената памет се освобождава първа Програмистът няма контрол над управлението на паметта Паметта не може да се освободи по-рано (преди края на блока) Паметта не може да се запази за по-дълго (след края на блока) Количеството заделена памет до голяма степен е определено по време на компилация При какви случаи заделената памет може да варира по време на изпълнение? Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 4 / 13

13 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

14 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

15 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Програмата може да заяви блок с произволна големина Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

16 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Програмата може да заяви блок с произволна големина Операционната система се грижи за управлението на динамичната памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

17 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Програмата може да заяви блок с произволна големина Операционната система се грижи за управлението на динамичната памет поддържа карта кои клетки са свободни и кои заети Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

18 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Програмата може да заяви блок с произволна големина Операционната система се грижи за управлението на динамичната памет поддържа карта кои клетки са свободни и кои заети контролира коя част от паметта от коя програма се използва (защитен режим) Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

19 Динамична памет Област за динамична памет (heap) Динамичната памет може да бъде заделена и освободена по всяко време на изпълнение на програмата Областта за динамична памет е набор от свободни блокове памет Програмата може да заяви блок с произволна големина Операционната система се грижи за управлението на динамичната памет поддържа карта кои клетки са свободни и кои заети контролира коя част от паметта от коя програма се използва (защитен режим) позволява използването на външни носители (виртуална памет) Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 5 / 13

20 Динамична памет Схема на динамичната памет "abcd" Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 6 / 13

21 Динамична памет Заделяне на динамична памет Заделянето на динамична памет става с операциите new и new[] Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 7 / 13

22 Динамична памет Заделяне на динамична памет Заделянето на динамична памет става с операциите new и new[] new <тип> заделя блок от памет за една променлива от <тип> Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 7 / 13

23 Динамична памет Заделяне на динамична памет Заделянето на динамична памет става с операциите new и new[] new <тип> заделя блок от памет за една променлива от <тип> new <тип>[<брой>] заделя блок от памет за масив от <брой> елемента от <тип> Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 7 / 13

24 Динамична памет Заделяне на динамична памет Заделянето на динамична памет става с операциите new и new[] new <тип> заделя блок от памет за една променлива от <тип> new <тип>[<брой>] заделя блок от памет за масив от <брой> елемента от <тип> new <тип>(<инициализация>) заделя блок от памет за една променлива от <тип> и я инициализира със зададените един или повече параметри Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 7 / 13

25 Динамична памет Заделяне на динамична памет Заделянето на динамична памет става с операциите new и new[] new <тип> заделя блок от памет за една променлива от <тип> new <тип>[<брой>] заделя блок от памет за масив от <брой> елемента от <тип> new <тип>(<инициализация>) заделя блок от памет за една променлива от <тип> и я инициализира със зададените един или повече параметри връща указател <тип>* към новозаделения блок Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 7 / 13

26 Динамична памет Примери за заделяне int* p = new int; p...?... Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 8 / 13

27 Динамична памет Примери за заделяне int* p = new int; float* q = new float(1.23); p q...? Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 8 / 13

28 Динамична памет Примери за заделяне int* p = new int; float* q = new float(1.23); char* s = new char[6]; strcpy(s, "hello"); p q s...? h e l l o \0... Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 8 / 13

29 Динамична памет Примери за заделяне int* p = new int; float* q = new float(1.23); char* s = new char[6]; strcpy(s, "hello"); char** ss = new char*(s); p q s ss...? h e l l o \ Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 8 / 13

30 Динамична памет Освобождаване на памет Динамична памет се освобождава с операциите delete и delete[] Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 9 / 13

31 Динамична памет Освобождаване на памет Динамична памет се освобождава с операциите delete и delete[] delete <указател> освобождава блок от памет с начало, сочено от <указател> Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 9 / 13

32 Динамична памет Освобождаване на памет Динамична памет се освобождава с операциите delete и delete[] delete <указател> освобождава блок от памет с начало, сочено от <указател> delete[[<брой>]] <указател> освобождава блок от памет, съдържащ масив от <брой> обекти, първият от които е сочен от <указател> Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 9 / 13

33 Динамична памет Освобождаване на памет Динамична памет се освобождава с операциите delete и delete[] delete <указател> освобождава блок от памет с начало, сочено от <указател> delete[[<брой>]] <указател> освобождава блок от памет, съдържащ масив от <брой> обекти, първият от които е сочен от <указател> указването на <брой> не е задължително, понеже операционната система знае колко е голям заделения блок Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 9 / 13

34 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

35 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

36 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

37 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

38 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Не е позволено частично освобождаване на памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

39 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Не е позволено частично освобождаване на памет int* a = new int[10];... delete (a+2); Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

40 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Не е позволено частично освобождаване на памет int* a = new int[10];... delete (a+2); Не е позволено използването на памет след като е освободена Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

41 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Не е позволено частично освобождаване на памет int* a = new int[10];... delete (a+2); Не е позволено използването на памет след като е освободена Не е позволено повторното освобождаване на една и съща памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

42 Особености на работа с динамична памет Ограничения при освобождаването на памет На delete може да се подаде само указател, върнат от new Не е позволено освобождаването на памет в програмния стек или областта за програмен код int x; int* p = &x;... delete p; delete sin; delete main; Не е позволено частично освобождаване на памет int* a = new int[10];... delete (a+2); Не е позволено използването на памет след като е освободена Не е позволено повторното освобождаване на една и съща памет int* p = new int[5],*q = p; delete p; q[1] = 5; delete q; Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 10 / 13

43 Особености на работа с динамична памет Задачи за динамична памет 1 Да се напише програма, която въвежда няколко положителни дробни числа в динамичната памет и намира средното им аритметично Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 11 / 13

44 Особености на работа с динамична памет Задачи за динамична памет 1 Да се напише програма, която въвежда няколко положителни дробни числа в динамичната памет и намира средното им аритметично 2 Да се напише програма, която създава матрица от числа в динамичната памет и я транспонира Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 11 / 13

45

46 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

47 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Програмистът носи отговорност за правилната работа с динамичната памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

48 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Програмистът носи отговорност за правилната работа с динамичната памет Заделената динамична памет остава непокътната до освобождаването ѝ с delete или до завършване на програмата Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

49 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Програмистът носи отговорност за правилната работа с динамичната памет Заделената динамична памет остава непокътната до освобождаването ѝ с delete или до завършване на програмата След приключване на програмата, цялата заделена от нея памет се освобождава от операционната система Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

50 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Програмистът носи отговорност за правилната работа с динамичната памет Заделената динамична памет остава непокътната до освобождаването ѝ с delete или до завършване на програмата След приключване на програмата, цялата заделена от нея памет се освобождава от операционната система Честото заделяне и освобождаване на малки блокове памет води до фрагментация Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

51 Особености на работа с динамична памет Особености на динамичната памет Програмистът има контрол над заделянето на памет Програмистът носи отговорност за правилната работа с динамичната памет Заделената динамична памет остава непокътната до освобождаването ѝ с delete или до завършване на програмата След приключване на програмата, цялата заделена от нея памет се освобождава от операционната система Честото заделяне и освобождаване на малки блокове памет води до фрагментация Динамично заделените блокове памет не се свързват с имена Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 12 / 13

52 Особености на работа с динамична памет Грешки при работа с динамична памет Работа с указател към незаделена или освободена памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 13 / 13

53 Особености на работа с динамична памет Грешки при работа с динамична памет Работа с указател към незаделена или освободена памет Освобождаване на непозволена памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 13 / 13

54 Особености на работа с динамична памет Грешки при работа с динамична памет Работа с указател към незаделена или освободена памет Освобождаване на непозволена памет Загубване на указател към заделена памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 13 / 13

55 Особености на работа с динамична памет Грешки при работа с динамична памет Работа с указател към незаделена или освободена памет Освобождаване на непозволена памет Загубване на указател към заделена памет Неосвобождаване на неизползвана памет Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 13 / 13

56 Особености на работа с динамична памет Грешки при работа с динамична памет Работа с указател към незаделена или освободена памет Освобождаване на непозволена памет Загубване на указател към заделена памет Неосвобождаване на неизползвана памет Изтичане на памет (memory leak) Трифон Трифонов (УП 16/17) Динамична памет 21 декември 2016 г. 13 / 13

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

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

Подробно

Канонична форма на клас или 4 (голямата четворка) Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно и

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

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 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 Масиви Логическо

Подробно

Масиви и низове Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 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 Масиви

Подробно

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

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

Подробно

4

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

Подробно

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

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

Подробно

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

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

Подробно

C++

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

Подробно

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

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

Подробно

Lush Green

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

Подробно

Проф

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

Подробно

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

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

Подробно

Lush Green

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

Подробно

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

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

Подробно

Black and White

Black and White Advanced C++ Memory Management Йордан Димитър Зайков Трендафилов Memory Management Effective C++ 2 nd ed: 3, 5, 7, 8, 9, 10 More Effective C++: 1, 3, 8 Exceptional C++: 35, 36 Какво всъщност прави new?

Подробно

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

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

Подробно

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

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

Подробно

Маисви

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Т

Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Т Годишното тематично разпределение по Компютърно моделиране за 4. клас N седмица Тема очаквани резултати Методи бележки и коментари Първи учебен срок Тема 1. Информация 1 1 Видове информация Познава начините

Подробно

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

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

Подробно

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

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

Подробно

-

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

Подробно

Homework 3

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

Подробно

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

Подробно

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Какво могат и какво не могат компилаторите Съдържание 1. Оптимизационен континуум 2. Някои известни видове оптимизации 2/49 Оптимизационен

Подробно

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е векторизация? 2. Примери 3. на цикли 4. Масиви от структури или структури от масиви 5. на при различни

Подробно

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

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

Подробно

Класове в 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 Обектно-ориентирана

Подробно

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ НИЛ ПО КОМПЮТЪРНА ГРАФИКА И ГИС СОФТУЕРНА ГРУПА АКСТЪР тел./факс(02) , (02) ; E-MAI

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ НИЛ ПО КОМПЮТЪРНА ГРАФИКА И ГИС СОФТУЕРНА ГРУПА АКСТЪР тел./факс(02) , (02) ;   E-MAI ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ НИЛ ПО КОМПЮТЪРНА ГРАФИКА И ГИС СОФТУЕРНА ГРУПА АКСТЪР тел./факс(02) 965-3469, (02) 965-2422; HTTP://WWW.ACSTRE.COM E-MAIL: OFFICE@ACSTRE.COM АКСТЪР Портал за електронни административни

Подробно

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

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

Подробно

Структура на програма в C - Част 9 - низове от символи, C-string

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

Подробно

Анализ и оптимизация на софтуерни приложения

Анализ и оптимизация на софтуерни приложения Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев (от гледна точка на производителността) Съдържание 1. Видове транслатори 2.Фази по време на компилация 3. Оптимизационна фаза

Подробно

Microsoft Word - centrala_SB_02_bul.doc

Microsoft Word - centrala_SB_02_bul.doc L8542350 Rev. 04/04/02 Централа за управление SB.02 Инструкция за експлоатация Упътване за настройка на централа SB. 02 Централа SB.02 може да се използва с мотори, чиято мощност не превишава 500W. Внимание:

Подробно

Microsoft Word - KZ_TSG.doc

Microsoft Word - KZ_TSG.doc ПРИЛОЖЕНИЕ НА ТЕОРИЯТА НА СИГНАЛНИТЕ ГРАФИ ЗА АНАЛИЗ НА ЕЛЕКТРОННИ СХЕМИ С ОПЕРАЦИОННИ УСИЛВАТЕЛИ В теорията на електронните схеми се решават три основни задачи: ) анализ; ) синтез; ) оптимизация. Обект

Подробно

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

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

Подробно

Microsoft PowerPoint - Ppt ppt [Read-Only]

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

Подробно

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

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

Подробно

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

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

Подробно

РЕПУБЛИКА БЪЛГАРИЯ Министър на образованието и науката З А П О В Е Д РД / г. На основание чл. 93, ал. 1 от Закона за предучилищното и

РЕПУБЛИКА БЪЛГАРИЯ Министър на образованието и науката З А П О В Е Д РД / г. На основание чл. 93, ал. 1 от Закона за предучилищното и РЕПУБЛИКА БЪЛГАРИЯ Министър на образованието и науката З А П О В Е Д РД 09 4144/29.08.2017 г. На основание чл. 93, ал. 1 от Закона за предучилищното и училищното образование, във връзка с чл. 13в. от Закона

Подробно

IATI Day 1 / Senior Задача Activity (Bulgarian) X INTERNATIONAL AUTUMN TOURNAMENT IN INFORMATICS SHUMEN 2018 При лошо време навън Лора и Боби обичат д

IATI Day 1 / Senior Задача Activity (Bulgarian) X INTERNATIONAL AUTUMN TOURNAMENT IN INFORMATICS SHUMEN 2018 При лошо време навън Лора и Боби обичат д Задача Activity (Bulgarian) При лошо време навън Лора и Боби обичат да се събират и да играят настолни игри. Една от любимите им игри е Activity. В тази задача ще разгледаме обобщение на играта. Играта

Подробно

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ УТВЪРЖДАВАМ Ректор: /проф. д-р инж. М. Христов/ Срок на обучение: Форма на обучение: 4 години редовна У Ч Е Б Е Н П Л А Н

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ УТВЪРЖДАВАМ Ректор: /проф. д-р инж. М. Христов/ Срок на обучение: Форма на обучение: 4 години редовна У Ч Е Б Е Н П Л А Н ТЕХНИЧЕСКИ УНИВЕРСИТЕТ СОФИЯ УТВЪРЖДАВАМ Ректор: /проф. д-р инж. М. Христов/ Срок на обучение: Форма на обучение: 4 години редовна У Ч Е Б Е Н П Л А Н за образователно-квалификационна степен бакалавър

Подробно