Машинно обучение Лабораторно упражнение 2 Въведение в Python Машинно обучение Лабораторно упражнение 2 Въведение в Python 1. Символни низове. - могат

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

Download "Машинно обучение Лабораторно упражнение 2 Въведение в Python Машинно обучение Лабораторно упражнение 2 Въведение в Python 1. Символни низове. - могат"

Препис

1 1. Символни низове. - могат да са затворени в единични или двойни кавички Примери: >>> 'hello' 'hello' >>> "hello" 'hello' 1.1. Вмъкване на нов ред. - \n >>> print("hello\n") hello 1.2. Вмъкване на разстояние между думите. - \ t >>> print("hello\t", "world") hello world 1.3. Конкатенация. чрез знака + >>> ' a'+'b' ' ab' >>> "a"+"b" 'ab' >>> 'a'+"b" 'ab' 1.4. Индексиране на символни низове. първия индекс е 0 >>> x='ab'+'cd' >>> x 'abcd' >>> x[0] 'a' >>> x[1:3] # извежда символи от индекс 1 до индекс 2

2 'bc' >>> x[-1] # извежда последния символ 'd' >>> x[-2] # извежда предпоследния символ 'c' >>> x[:3] # извежда първите три символа 'abc' >>> x[3:] # извежда всичко, освен първите три символа 'd' >>> x[5:] # извежда празен символен низ, защото индекса е твърде голям ' ' 1.5. Символни низове. Методи Дължина на низ >>> len(x) # извежда дължина на низа Брой символи >>> x.count('a') Преобразуване на символния низ в големи букви >>> print(x.upper()) ABCD Преобразуване на символния низ в малки букви >>> print(x.lower()) abcd Разделяне на символния низ на отделни думи >>> mytext="hello world!" >>> mytext.split() ['Hello', 'world!'] Замяна на подниз в даден символния низ с друг подниз >>> mytext=mytext.replace("hello","hi")

3 >>> mytext 'Hi world!' Сортиране на списък от низове Сортиране на списък от низове чрез sort() >>> x=['x','abc','acb'] >>> x.sort() >>> x ['abc', 'acb', 'x'] Сортиране на списък от низове чрез sorted в нарастващ ред >>> x=['x','abc','acb'] >>> sorted(x) ['abc', 'acb', 'x'] Но: >>> x ['x', 'abc', 'acb'] Сортиране на списък от низове чрез sorted в намаляващ ред >>> sorted(x,reverse=true) ['x', 'acb', 'abc'] Сортиране на списък от низове чрез sorted в зависимост от дължината на низа >>> x=['ac','acb','x'] >>> sorted(x,key=len) ['x', 'ac', 'acb'] >>> sorted(x,key=len,reverse=true) ['acb', 'ac', 'x'] Сортиране на низ чрез sorted >>> sorted('python') ['h', 'n', 'o', 'p', 't', 'y'] За повече информация: напишете в командния интерпретатор: help(). След появата на промпта: help> напишете STRINGMETHODS. 2. Библиотека NumPy

4 2.1. Основни понятия NumPy е основната библиотека за реализация на изчисления в Python. Предоставя следните най-важни функционалности: - Обработване на N-мерни масиви. - Бързо изпълнение на математически операции с многомерни масиви - Средства за реализация на операции от линейна алгебра, генериране на числени стойности и др. Основен обект в NumPy са многомерните масиви. Многомерният масив представлява таблица от елементи (най-често числени стойности) от еднакъв тип, индексирани с положителни цели числа. Размерностите на масивите в NumPy се наричат оси (axes). Например координатите на точка в 3D пространство [1, 2, 1] се представят като масив с една ос. Тази ос има 3 елемента, т.е. дължина 3. Класът за реализация на масив в NumPy се нарича ndarray. Важно е да се отбележи, че numpy.array се различава от стандартния клас array.array в Pthon, който обработва едномерни масиви и предлага помалко функционалности. Най-важните атрибути на ndarray обект са: ndarray.ndim брой оси (размерности) на масива ndarray.shape връща размерностите на масива. Резултатът представлява комплект (tuple) от целочислени стойности, показващи всяка размерност на масива. За матрица с n реда и m колони shape връща двойка (n,m). ndarray.size общ брой на елементите в масива равен на произведението на броя елементи във всяка размерност ndarray.dtype този обект описва типовете на елементите в масива. Освен стандартните типове данни в Python NumPy предлага собствени типове numpy.int32, numpy.int16, numpy.float64 и др. За създаване на последователности от числени стойности NumPy предоставя функцията arange. >>> np.arange( 10, 30, 5 ) array([10, 15, 20, 25]) >>> np.arange( 0, 2, 0.3 ) # it accepts float arguments array([ 0., 0.3, 0.6, 0.9, 1.2, 1.5, 1.8]) Пример: >>> import numpy as np >>> a = np.arange(15).reshape(3, 5)

5 >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]) >>> a.shape (3, 5) >>> a.ndim 2 >>> a.dtype.name 'int64' >>> a.itemsize 8 >>> a.size 15 >>> type(a) <type 'numpy.ndarray'> >>> b = np.array([6, 7, 8]) >>> b array([6, 7, 8]) >>> type(b) <type 'numpy.ndarray'> 2.2. Създаване на масиви Има различни начини за създаване на масиви. Например масив може да се създаде чрез стандартен списък (list) или комплект (tuple) с използване на функцията array. Пример: >>> import numpy as np >>> a = np.array([2,3,4]) >>> a array([2, 3, 4])

6 >>> a.dtype dtype('int64') >>> b = np.array([1.2, 3.5, 5.1]) >>> b.dtype dtype('float64') Методът array преобразува масив с две размерности в двумерен масив, масив с три размерности в тримерен и т.н. >>> b = np.array([(1.5,2,3), (4,5,6)]) >>> b array([[ 1.5, 2., 3. ], [ 4., 5., 6. ]]) Типът на елементите на масива може да се зададе при създаването: >>> c = np.array( [ [1,2], [3,4] ], dtype=complex ) >>> c array([[ 1.+0.j, 2.+0.j], [ 3.+0.j, 4.+0.j]]) Често се налага създаване на масив с неизвестни елементи, но с известни размерности. NumPy предлага функции за създаване на масиви, чиито елементи са инициализирани автоматично. По този начин се премахва необходимостта от обработване на динамично променящи се размерности, което е бавна операция. Функцията zeros създава масив от нулеви стойности, функцията ones създава масив със стойности едно, а функцията empty създава масив от случайни числени стойности, чиито тип по подразбиране e float64. >>> np.zeros( (3,4) ) array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]]) >>> np.ones( (2,3,4), dtype=np.int16 ) # dtype can also be specified array([[[ 1, 1, 1, 1], [ 1, 1, 1, 1],

7 [ 1, 1, 1, 1]], [[ 1, 1, 1, 1], [ 1, 1, 1, 1], [ 1, 1, 1, 1]]], dtype=int16) >>> np.empty( (2,3) ) # uninitialized, output may vary При използване на aranage с реални числа не е възможно да се определи броят на генерираните елементи, който зависи от точността на представяне на числата. По тази причина за генериране на реални числа се използва функцията linspace, приемаща като аргумент броя на елементите: >>> from numpy import pi >>> np.linspace( 0, 2, 9 ) # 9 numbers from 0 to 2 array([ 0., 0.25, 0.5, 0.75, 1., 1.25, 1.5, 1.75, 2. ]) >>> x = np.linspace( 0, 2*pi, 100 ) # useful to evaluate function at lots of points >>> f = np.sin(x) 2.3. Отпечатване на масиви NumPy отпечатва масиви с print. Едномерен масив се изобразява като ред, двумерен като матрица, а многомерен като списък от матрици. >>> a = np.arange(6) # 1d array >>> print(a) [ ] >>> >>> b = np.arange(12).reshape(4,3) # 2d array >>> print(b) [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ ]] >>> c = np.arange(24).reshape(2,3,4) # 3d array >>> print(c) [[[ ]

8 [ ] [ ]] [[ ] [ ] [ ]]] 2.3. Основни операции с масиви Аритметичните операции с масиви се изпълняват поелементно (elementwise). >> a = np.array( [20,30,40,50] ) >>> b = np.arange( 4 ) >>> b array([0, 1, 2, 3]) >>> c = a-b >>> c array([20, 29, 38, 47]) >>> b**2 array([0, 1, 4, 9]) >>> 10*np.sin(a) array([ , , , ]) >>> a<35 array([ True, True, False, False]) За разлика от други езици операторът за умножение * обработва NumPy масиви поелементно. За произведение на матрици се използва или функцията dot. >>> A = np.array( [[1,1], [0,1]] ) >>> B = np.array( [[2,0],[3,4]] ) >>> A * B # elementwise product array([[2, 0],

9 [0, 4]]) >>> B # matrix product - добавен в Python 3.5 array([[5, 4], [3, 4]]) >>> A.dot(B) # another matrix product array([[5, 4], [3, 4]]) Някои операции като += и *= се използват за модифициране на съществуващ масив вместо за създаване на нов. >>> a = np.ones((2,3), dtype=int) >>> b = np.random.random((2,3)) >>> a *= 3 >>> a array([[3, 3, 3], >>> b += a >>> b [3, 3, 3]]) array([[ , , ], [ , , ]]) >>> a += b # b is not automatically converted to integer type Traceback (most recent call last):... TypeError: Cannot cast ufunc add output from dtype('float64') to dtype('int64') with casting rule 'same_kind' При обработване на масиви от различен тип типът на резултантния масив съответства на масива с по-голяма точност (upcasting). >>> a = np.ones(3, dtype=np.int32)

10 >>> b = np.linspace(0,pi,3) >>> b.dtype.name 'float64' >>> c = a+b >>> c array([ 1., , ]) >>> c.dtype.name 'float64' >>> d = np.exp(c*1j) >>> d array([ j, j, j]) >>> d.dtype.name 'complex128' Много унарни операции като изчисляване на сума на елементите са имплементирани като методи на класа ndarray. >>> a = np.random.random((2,3)) >>> a array([[ , , ], >>> a.sum() [ , , ]]) >>> a.min() >>> a.max() По подразбиране тези операции се изпълняват за всяка ос на масива. Възможно е да се зададе ос, за която да се изпълнява операцията: >>> b = np.arange(12).reshape(3,4)

11 >>> b array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> b.sum(axis=0) # sum of each column array([12, 15, 18, 21]) >>> b.min(axis=1) # min of each row array([0, 4, 8]) >>> b.cumsum(axis=1) # cumulative sum along each row array([[ 0, 1, 3, 6], [ 4, 9, 15, 22], [ 8, 17, 27, 38]]) 2.4. Универсални функции NumPy предоставя често използвани математически функции като sin, cos, exp. В NumPy тези функции се наричат универсални (ufunc). Те се изпълняват поелементно върху масив и връщат в резултат нов масив. >>> B = np.arange(3) >>> B array([0, 1, 2]) >>> np.exp(b) array([ 1., , ]) >>> np.sqrt(b) array([ 0., 1., ]) >>> C = np.array([2., -1., 4.]) >>> np.add(b, C) array([ 2., 0., 6.]) Повече информация за NumPy:

12 3. Стандартен модул NLTK - NLTK (Natural Language Toolkit)e open source библиотека на Python, предоставящи безплатни онлайн книги. За повече информация въведете в командния интерпретатор >>> help(nltk) и/или посетете сайта За да инсталирате данните въведете в командния интерпретатор nltk.download(). >>> import nltk >>> mytext='hello, world!' >>> nltk.word_tokenize(mytext) # разделя текста на отделни токъни ['Hello', ',', 'world', '!'] 3.1. Работа със стандартниs модул NLTK - nltk.book >>> from nltk.book import * След посланието за добре дошли, зареждат се текстовете на няколко книги, като първия текст е книгата Moby Dick. >>> texts() text1: Moby Dick by Herman Melville 1851 text2: Sense and Sensibility by Jane Austen 1811 text3: The Book of Genesis text4: Inaugural Address Corpus text5: Chat Corpus text6: Monty Python and the Holy Grail text7: Wall Street Journal text8: Personals Corpus text9: The Man Who Was Thursday by G. K. Chesterton 1908 >>> text1 <Text: Moby Dick by Herman Melville 1851> Търсене на текст съгласуван с определена дума в текста >>> text1.concordance("love")

13 Друг текст в същия контекст на дума love, от предходния пример >>> text1.similar("love") sea man it ship view life queequeg land matter gush me place ships way him line boats bone by hope Проверка на контекста на дадена дума в различни текстове >>> text2.common_contexts(["monstrous"]) a_lucky is_pretty a_pretty be_glad am_glad was_happy a_deal is_fond >>> text1.common_contexts(["monstrous"]) what_cannibal the_pictures this_cabinet of_clubs that_bulk most_and a_size a_fable more_stories most_size Дължина на текста >>> len(text1) Речник на думите в текста чрез използване на множество >>> sorted(set(text3)) Брой срещания на дадена дума в текста >>> text1.count("love") Използване на индекси за получаване на достъп до дума >>> text1[1] 'Moby' >>> text1[2] 'Dick' >>> text1[1:5] ['Moby', 'Dick', 'by', 'Herman'] >>> text1[-2] # предпоследна дума в текста 'orphan' Честота на срещания на всички думи и символи в текста чрез функцията FreqDist

14 >>> fd=freqdist(text1) >>> fd FreqDist({',': 18713, 'the': 13721, '.': 6862, 'of': 6536, 'and': 6024, 'a': 4569, 'to': 4542, ';': 4072, 'in': 3916, 'that': 2982,...}) >>> fd['and'] 6024 Самостоятелна задача 1: Пребройте думите в текст1 с дължина по-голяма от Работа със стандартниs модул nltk. corpus Колекция от текстове brown >>> from nltk.corpus import brown Категории (жанрове) в корпуса brown >>> brown.categories() ['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies', 'humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance', 'science_fiction'] Използвани думи в определена категория от корпуса brown >>> brown.words(categories='news') ['The', 'Fulton', 'County', 'Grand', 'Jury', 'said',...] Или в повече от една категория(жанр) >>> brown.sents(categories=['news', 'editorial', 'reviews']) Самостоятелна задача 2: Намерете честотата на срещане на думите в жанра 'news', на текстовете в корпуса brown За повече информация: >>> import nltk >>> help(nltk) Или: 4. Множества (set) всеки елемент се съдържа точно един път. Елементите може да не са подредени. Създават се със служебната дума

15 set ( [ списък / комплект ] ) или {eлемент1, елемент2,, елементn}. Множеството трябва да съдържа поне един елемент. >>> x={3,1,2,5,5} >>> x {1, 2, 3, 5} 4.1. Обединение на множества ( дизюнкция ). >>> A={1,2,3} >>> B={2,1,4} >>> A B {1, 2, 3, 4} 4.2. Сечение на множества ( конюнкция ). >>> A&B {1, 2} 4.3. Разлика на множества. >>> A-B {3} 4.4. Симетрична разлика на множества.

16 >>> A^B {3, 4} 4.5. Подмножество. >>> C={1,2} >>> A>C True Множеството С е подмножество на множеството А Сортиране на елементите на множество >>> sorted(x) [1, 2, 3, 5] Самостоятелна задача 3: Разгледайте самостоятелно методите на множество, като използвате help(set). Тествайте със собствени примери. 5. Речници. представляват неподредено множество от двойка ключ(с уникална стойност) и стойност. Ключовете могат да бъдат число, низ, комплект. Стойностите могат да бъдат всеки тип. Можете да дефинирате, променяте, търсите и изтривате двойки ключ-стойност в речника Създаване на речник, чрез използване на фигурални скоби {}. >>> lang={'usa':'english','bulgaria':'bulgarian'} 5.2. Проверка дали дадена дума(key) я има в речника >>> lang['usa'] 'English' 5.3. Проверка дали дадена дума(key) я има в речника чрез оператора in >>> 'USA' in lang True >>> 'English' in lang False

17 5.4. Извеждане на ключовете и стойностите на речника, поотделно и по двойки >>> lang.keys() dict_keys(['usa', 'Bulgaria']) >>> lang.values() dict_values(['english', 'Bulgarian']) >>> lang.items() dict_items([('usa', 'English'), ('Bulgaria', 'Bulgarian')]) 5.5. Добавяне на нова двойка ключ-стойност в речника >>> lang['russia']='russian' >>> lang {'USA': 'English', 'Bulgaria': 'Bulgarian', 'Russia': 'Russian'} 5.6. Изтриване на двойка ключ-стойност в речника >>> del lang['russia'] >>> lang {'USA': 'English', 'Bulgaria': 'Bulgarian'} 5.7. Сортиране >>> sorted(lang) ['Bulgaria', 'USA'] 5.8. Създаване на речник, чрез използване на ключова дума dict и именувани параметри. >>> dict(usa='english',bulgaria='bulgarian') {'Bulgaria': 'Bulgarian', 'USA': 'English'} 5.9. Създаване на речник, чрез използване на ключова дума dict и списък от двойки. >>> dict([('usa','english'),('bulgaria','bulgarian')]) {'Bulgaria': 'Bulgarian', 'USA': 'English'} Самостоятелна задача 4: Разгледайте самостоятелно методите на речника, като използвате help(dict). Тествайте със собствени примери.

18 6. Преобразуване между списък, комплект и множество. чрез използване на ключовите думи: list, tuple и set Проверка на типа на променливата >>> x=[1, 2, 3] >>> type(x) <class 'list'> >>> y=1 >>> type(y) <class 'int'> 6.2. Преобразуване от set в list >>> list({1,2,3}) [1, 2, 3] 6.3. Преобразуване от tuple в list >>> list((1,2,3)) [1, 2, 3] 6.4. Преобразуване от list в tuple >>> tuple([1,2,3]) (1, 2, 3) 6.5. Преобразуване от set в tuple >>> tuple({1,2,3}) (1, 2, 3) 6.6. Преобразуване от tuple в set >>> set((1,2,3)) {1, 2, 3} 6.7. Преобразуване от list в set >>> set([1,2,3]) {1, 2, 3} 7. Модули Модулът(скриптът) е файл, състоящ се от оператори и дефиниции на Python, с разширение.py. Дефинициите от даден модул могат да бъдат импортирани в други модули. Python съдържа библиотека със стандартни модули. Обикновено всички оператори import(но, не задължително) се разполагат в началото на модула (скрипта).

19 След създаването на собствен файл, който можете да напишете в обикновен текстов редактор с примерно име name_modul.py, може да импортирате модула в интерпретатора на Python със следната команда: >>> import name_modul С вградената функция dir, можете да видите всички атрибути на модула: >>>dir(name_modul) 8. Функции def име на функция(списък от формални параметри): Документация за функцията блок от оператори # задължително трябва да има отстъп [return [аргумент]] # задължително трябва да има отстъп # return и/или аргумент не са задължителни Дефинирането на функция започва с ключовата дума def, последвана от име на функцията и списък от формални параметри, оградени в скоби. Първият ред завършва задължително с две точки. Операторите в тялото на функцията задължително са въведени с отстъп. Вторият ред, може да бъде стринг, който представлява документация за функцията. Този пояснителен текст, относно функцията се появява при въвеждане в интерпретатора на: help(myfunc), където myfunc е името на вашата функция. >>> def myfunc(x): "функция за.." >>> help(myfunc) Help on function myfunc in module main : myfunc(x) функция за.. Функции могат да се дефинират и в командния интерпретатор, което е удобство при първоначалното им тестване. Самостоятелна задача 5: Създайте програма на Python, съдържаща функция, която да проверява дали дадена дума е палиндром. Реализирайте функцията по два начина: чрез оператора print и оператора return. Стартиране на скрипта (вариант с оператора print): Първи начин: чрез командния интерпретатор

20 >>> import func_palindrom # примерно име на скрипта func_palindrom >>> func_palindrom.palindrom("aba") Да! Думата aba е палиндром Втори начин: чрез използване на командата Run (F5) от средата, където записвате скрипта. >>> Palindrom("aba") Да! Думата aba е палиндром Стартиране на скрипта - вариант с оператора print, чрез използване на командата Run (F5) от средата, където записвате скрипта >>> Palindrom("aba") True Самостоятелна задача 6: Създайте функция на Python, която да изчислява най-големия общ делител на две числа, зададени като параметри на функцията.

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

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

Подробно

Slide 1

Slide 1 Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

Mathematica CalcCenter

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

Подробно

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

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

Подробно

Машинно обучение Лабораторно упражнение 3 Работа с функции, файлове и графики 1. Допълнителни сведения за функции 1.1. Стойности на аргументите по под

Машинно обучение Лабораторно упражнение 3 Работа с функции, файлове и графики 1. Допълнителни сведения за функции 1.1. Стойности на аргументите по под Машинно обучение Лабораторно упражнение 3 Работа с функции, файлове и графики 1. Допълнителни сведения за функции 1.1. Стойности на аргументите по подразбиране Пример за функция, която може да бъде извиквана

Подробно

C++

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

Подробно

Информатика

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

Подробно

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

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

Подробно

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

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

Подробно

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

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

Подробно

Microsoft Word - seminar12.docx

Microsoft Word - seminar12.docx Семинар 12 Линеен дискриминантен анализ В този семинар ще се запознаем с линейния дискриминантен анализ (ЛДА), който се използва в статистиката, разпознаването на образи и обучението на машини. От обектите

Подробно

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

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

Подробно

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

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

Подробно

Проф

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

Подробно

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

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

Подробно

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

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

Подробно

Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която фун

Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която фун Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която функцията на цената се минимизира чрез градиентно спускане.

Подробно

MSDOS1

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

Подробно

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

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

Подробно

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

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

Подробно

1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на в

1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на в 1 КаБел ЕООД Документация за софтуерния продукт КаБел ЕООД, подпомагащ организация на складовата дейност в железария Автор: Румен Ангелов История на версиите 1.10 *подредба име, размер в наличност екран

Подробно

HTML - списъци

HTML  - списъци СПИСЪЦИ Езикът HTML ви дава възможност да използвате три вида списъци - подредени, неподредени и списъци с обяснения. Подредените списъци са номерирани и изглеждат така : 1. Иван 2. Георги 3. Захари Неподредените

Подробно

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

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

Подробно

Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 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 Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5

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

Подробно

Lush Green

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

Подробно

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

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

Подробно

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

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

Подробно

Microsoft Word - ICA user-manual.doc

Microsoft Word - ICA user-manual.doc Софтуер за интеркритериален анализ Потребителска документация Версия ICA-32-20150206, 6 февруари 2015 Разработил софтуерното приложение: Деян, deyanmegara@gmail.com Разработил потребителската документация:

Подробно

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

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

Подробно

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

МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА 1. У Ч Е Б Н А П Р О Г Р А М А за задължителна професионална подготовка УТВЪРДЕНА СЪС ЗАПОВЕД РД 09-835/20.06.2005 г. 1. Учебен предмет: ПРИЛОЖНИ ПРОГРАМНИ ПРОДУКТИ

Подробно

Lush Green

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

Подробно

Линейна алгебра 7. Умножение на матрици. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс

Линейна алгебра 7. Умножение на матрици. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс . Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Кратка история Матричното умножение е въведено от немския математик

Подробно

Microsoft Word - variant1.docx

Microsoft Word - variant1.docx МИНИСТЕРСТВО НА ОБРАЗОВАНИЕТО И НАУКАТА ДЪРЖАВЕН ЗРЕЛОСТЕН ИЗПИТ ПО МАТЕМАТИКА.05.019 г. Вариант 1 МОДУЛ 1 Време за работа 90 минути Отговорите на задачите от 1. до 0. включително отбелязвайте в листа

Подробно

Microsoft Word - Sem03+04sup_KH_VM2-11.doc

Microsoft Word - Sem03+04sup_KH_VM2-11.doc Връзка между символ на Кронекер (Conece delta i ) и символ на Леви Чивита (Levi-Civita symbol ε i ) Примери от векторния анализ Всички разглеждания се правят за случая на тримерно евклидово пространство

Подробно