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

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

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

Препис

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

2 Указатели! Калин Георгиев Увод в програмирането 21 декември 2016 г. 2 / 23

3 Дефиниране long a=1,b =2; long *pi = &a; Калин Георгиев Увод в програмирането 21 декември 2016 г. 3 / 23

4 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

5 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

6 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

7 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

8 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

9 Операции: през указател, С указател *pi = 10; pi = 104; // won t compile // pi =&b; // pi =( long *)104; *pi = 104; Калин Георгиев Увод в програмирането 21 декември 2016 г. 4 / 23

10 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

11 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

12 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

13 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

14 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

15 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

16 Пример с функции void f ( long x) x = x + 10; // (2 ) cout << x; void g ( long *px) *px = *px + 10; // (5) cout << *px; long main () long x = 0; // (1) f(x); // (2) cout << x; // (3) g (&x); // (4) cout << x; // (6) (1)main: (2,2 )main: f: x 10 (3)main: (4)main: g: px 100 (5)main: x 10 g: px 100 (6)main: x 10 Калин Георгиев Увод в програмирането 21 декември 2016 г. 5 / 23

17 Параметър по стойност vs. по указател long division ( long x, long y, long * remainder ) * remainder = x - (x/y)*y; return x/ y; long main () long r = 0; cout << " [14/4]= " << division (14,4,& r) << " 14/4 = " << r << endl ; Калин Георгиев Увод в програмирането 21 декември 2016 г. 6 / 23

18 Какво е нередно в този пример? long division ( long x, long y, long * remainder )... cout << division (2,2,0); Калин Георгиев Увод в програмирането 21 декември 2016 г. 7 / 23

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

20 Какво е a? Какво е arr? long a = 5; b = 10; long arr [3] = 1,2,3; arr2 [3] = 4,5,6; а и b: заместител на адреса / наименование на буфера a = 2; a = a + 3; b = a + b; if (a > b)... Операциите с масиви са операции с елементите им Отеделните елементи имат свойства на обикновени променливи от съответния тип arr [0] = 2; arr [0] = arr [1] + 3;... Какво са arr и arr2 сами по себе си? arr =???; arr2 = arr???; if ( arr > arr2 )??? Калин Георгиев Увод в програмирането 21 декември 2016 г. 9 / 23

21 Какво е a? Какво е arr? long a = 5; b = 10; long arr [3] = 1,2,3; arr2 [3] = 4,5,6; а и b: заместител на адреса / наименование на буфера a = 2; a = a + 3; b = a + b; if (a > b)... Операциите с масиви са операции с елементите им Отеделните елементи имат свойства на обикновени променливи от съответния тип arr [0] = 2; arr [0] = arr [1] + 3;... Какво са arr и arr2 сами по себе си? arr =???; arr2 = arr???; if ( arr > arr2 )??? Калин Георгиев Увод в програмирането 21 декември 2016 г. 9 / 23

22 Какво е a? Какво е arr? long a = 5; b = 10; long arr [3] = 1,2,3; arr2 [3] = 4,5,6; а и b: заместител на адреса / наименование на буфера a = 2; a = a + 3; b = a + b; if (a > b)... Операциите с масиви са операции с елементите им Отеделните елементи имат свойства на обикновени променливи от съответния тип arr [0] = 2; arr [0] = arr [1] + 3;... Какво са arr и arr2 сами по себе си? arr =???; arr2 = arr???; if ( arr > arr2 )??? Калин Георгиев Увод в програмирането 21 декември 2016 г. 9 / 23

23 Какво е a? Какво е arr? long a = 5; b = 10; long arr [3] = 1,2,3; arr2 [3] = 4,5,6; а и b: заместител на адреса / наименование на буфера a = 2; a = a + 3; b = a + b; if (a > b)... Операциите с масиви са операции с елементите им Отеделните елементи имат свойства на обикновени променливи от съответния тип arr [0] = 2; arr [0] = arr [1] + 3;... Какво са arr и arr2 сами по себе си? arr =???; arr2 = arr???; if ( arr > arr2 )??? Калин Георгиев Увод в програмирането 21 декември 2016 г. 9 / 23

24 Указател към първия елемент long arr [3] = 1,2,3; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 10 / 23

25 Указател към първия елемент long arr [3] = 1,2,3; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 10 / 23

26 Операции arr... *arr Отново писане и четене през указател * arr = 10; cout << * arr ; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 11 / 23

27 Операции arr... *arr Отново писане и четене през указател * arr = 10; cout << * arr ; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 11 / 23

28 Адресна аритметика arr... *arr Аритметични операции с указател: <указател>+<ест. число>=<указател> *( arr +2) = 10; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 12 / 23

29 Адресна аритметика arr... *arr Аритметични операции с указател: <указател>+<ест. число>=<указател> *( arr +2) = 10; arr... *arr Калин Георгиев Увод в програмирането 21 декември 2016 г. 12 / 23

30 Още за адресната аритметика arr... *arr arr+i == &arr[i] *(arr+i) <==> arr[i] (long)(arr+1)==104 //!= 101 char chararr [6] = " Hello "; (long)(chararr+1) - (long)(chararr+2) == 1 == sizeof(char) (long)(arr+1) - (long)(arr+2) == 4 == sizeof(long) Слеводателно arr[i] <==> *(arr+i), независимо от размера на елементите Калин Георгиев Увод в програмирането 21 декември 2016 г. 13 / 23

31 Още за адресната аритметика arr... *arr arr+i == &arr[i] *(arr+i) <==> arr[i] (long)(arr+1)==104 //!= 101 char chararr [6] = " Hello "; (long)(chararr+1) - (long)(chararr+2) == 1 == sizeof(char) (long)(arr+1) - (long)(arr+2) == 4 == sizeof(long) Слеводателно arr[i] <==> *(arr+i), независимо от размера на елементите Калин Георгиев Увод в програмирането 21 декември 2016 г. 13 / 23

32 Още за адресната аритметика arr... *arr arr+i == &arr[i] *(arr+i) <==> arr[i] (long)(arr+1)==104 //!= 101 char chararr [6] = " Hello "; (long)(chararr+1) - (long)(chararr+2) == 1 == sizeof(char) (long)(arr+1) - (long)(arr+2) == 4 == sizeof(long) Слеводателно arr[i] <==> *(arr+i), независимо от размера на елементите Калин Георгиев Увод в програмирането 21 декември 2016 г. 13 / 23

33 Още за адресната аритметика arr... *arr arr+i == &arr[i] *(arr+i) <==> arr[i] (long)(arr+1)==104 //!= 101 char chararr [6] = " Hello "; (long)(chararr+1) - (long)(chararr+2) == 1 == sizeof(char) (long)(arr+1) - (long)(arr+2) == 4 == sizeof(long) Слеводателно arr[i] <==> *(arr+i), независимо от размера на елементите Калин Георгиев Увод в програмирането 21 декември 2016 г. 13 / 23

34 Масиви и функции long sum ( long arr []) long sum = 0; for ( int i = 0; i < 3; i ++) sum += arr [i]; return sum ; int main () int a [3] = 1,2,3; int b [4] = 10,2,3,4; cout << sum ( a) << " " << sum ( b) << endl ; Калин Георгиев Увод в програмирането 21 декември 2016 г. 14 / 23

35 Не можем да определим размера на масиви динамично long sum ( long arr [], int n) long sum = 0; for ( int i = 0; i < n; i ++) sum += arr [i]; return sum ; int main () int a [3] = 1,2,3; int b [4] = 1,2,3,4; cout << sum (a,3) << " " << sum (b,4) << endl ; Калин Георгиев Увод в програмирането 21 декември 2016 г. 15 / 23

36 "Подмасиви" c c int main () int c [8] = 1,2,3,4,6,7,8,9; cout << sum (c,4); cout << sum (c +2,4); Калин Георгиев Увод в програмирането 21 декември 2016 г. 16 / 23

37 Внимание! Странични ефекти! void test ( long arr [], long x) // void test ( long * arr, long x) x ++; arr [0]++; // <==> * arr =* arr +1 arr [1]++; // <== > *( arr +1)=*( arr +1)+1 int main () long arr [2]=0,1; long x = 0; test (arr,x); cout << arr [0]; cout << x; Калин Георгиев Увод в програмирането 21 декември 2016 г. 17 / 23

38 Пример: Двоично търсене Калин Георгиев Увод в програмирането 21 декември 2016 г. 18 / 23

39 Алгоритъм на двоичното търсене #0 left:0 right:6 a[3]< left:0 right:6 #1 left:4 right:6 a[5]== left:4 right:6 Калин Георгиев Увод в програмирането 21 декември 2016 г. 19 / 23

40 Реализация с цикъл bool find ( int x, int a[], int size ) int left =0, right = size -1; while ( left < right && a[( left + right )/2]!= x) if (a[( left + right )/2] < x) left = ( left + right )/2 + 1; else right = ( left + right )/2; return a[( left + right )/2] == x; left:0 right: left:4 right:6 Калин Георгиев Увод в програмирането 21 декември 2016 г. 20 / 23

41 Реализация с рекурсия bool findrec ( int x, int a[], int size ) if ( size == 0) return false ; left:0 if ( size == 1) return a [0] == x; if (a[ size /2] > x) left:4 return findrec (x,a, size /2); if (a[ size /2] < x) return findrec (x,a+( int ) ceil ( size /2.0), ceil ( size /2.0) -1); return true ; right:6 right:6 Калин Георгиев Увод в програмирането 21 декември 2016 г. 21 / 23

42 А това защо работи? bool findreclogic ( int x, int a[], int size ) return ( size == 1 && a [0] == x) ( size > 1 && a[ size /2] > x && findreclogic (x,a, size /2)) left:0 right: ( size > 1 && a[ size /2] < x && findreclogic (x, a+( int )ceil (size /2.0), ceil (size /2.0) -1)) left:4 right:6 ( size > 1 && a[ size /2] == x); Калин Георгиев Увод в програмирането 21 декември 2016 г. 22 / 23

43 Благодаря за вниманието! Калин Георгиев Увод в програмирането 21 декември 2016 г. 23 / 23

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

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

Подробно

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23

Сериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:

Подробно

C++

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

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

Подробно

Маисви

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

Подробно

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

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

Подробно

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

Подробно

Проф

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

Подробно

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

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

Подробно

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

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

Подробно

Lush Green

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

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

Подробно

Lush Green

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

Подробно

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?

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври

ИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври 2008 JAVA ОБЕКТИ Забележка: Тази лекция е адаптация на лекция от курса: 6.092 Java

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи

Структура на програма в C - Част 6 - goto, switch, break и continue клаузи Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април

Подробно

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

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

Подробно

Потоци (Rev: 1.1)

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

Подробно

Homework 2

Homework 2 Домашна работа 2 по Дизайн и анализ на алгоритми за специалност Компютърни науки, 2. курс, 1. поток СУ, ФМИ, летен семестър на 2017 / 2018 уч. г. СЪСТАВЯНЕ НА АЛГОРИТМИ Задача 1 2 3, а 3, б 3, в Общо получен

Подробно

Kontrolno 5, variant 1

Kontrolno 5, variant 1 N P - П Ъ Л Н И З А Д А Ч И КОНТРОЛНО 5 ПО ДИЗАЙН И АНАЛИЗ НА АЛГОРИТМИ СУ, ФМИ ( ЗА СПЕЦИАЛНОСТ КОМПЮТЪРНИ НАУКИ, 1. ПОТОК; 3 МАЙ 018 Г. ) Задача 1. Разглеждаме задачата за разпознаване LongestCycle:

Подробно

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

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

Подробно

Homework 3

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

Подробно

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

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

Подробно

Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една

Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една Упражнение 3. Основни елементи на РНР синтаксис на езика, константи, променливи, изрази, оператори... Показване на текст в браузъра Да се създаде една PHP страница, със стандартни HTML ,

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

Microsoft Word - Lection06.doc

Microsoft Word - Lection06.doc Лекция 6 (8. Ноември, 2011) Връзки http://www.cplusplus.com/doc/tutorial/files/ http://www.cplusplus.com/reference/clibrary/cstdio/fprintf/ http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/ http://www.cplusplus.com/reference/clibrary/cstdio/freopen/

Подробно

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

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

Подробно

-

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

Подробно