Ана Савић. Светлана Штрбац - Савић. Амела Зековић ДИСКРЕТНА МАТЕМАТИКА И АЛГОРИТАМИ ПРИРУЧНИК ЗА ЛАБОРАТОРИЈСКЕ ВЕЖБЕ

Σχετικά έγγραφα
Теорија електричних кола

Aлати и основне функције

2. Наставни колоквијум Задаци за вежбање ОЈЛЕРОВА МЕТОДА

Скупови (наставак) Релације. Професор : Рака Јовановић Асиситент : Јелена Јовановић

1.2. Сличност троуглова

СИСТЕМ ЛИНЕАРНИХ ЈЕДНАЧИНА С ДВЕ НЕПОЗНАТЕ

налазе се у диелектрику, релативне диелектричне константе ε r = 2, на међусобном растојању 2 a ( a =1cm

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА МАТЕМАТИКА ТЕСТ

Упутство за избор домаћих задатака

Први корак у дефинисању случајне променљиве је. дефинисање и исписивање свих могућих eлементарних догађаја.

г) страница aa и пречник 2RR описаног круга правилног шестоугла јесте рац. бр. јесу самерљиве

7. ЈЕДНОСТАВНИЈЕ КВАДРАТНЕ ДИОФАНТОВE ЈЕДНАЧИНЕ

предмет МЕХАНИКА 1 Студијски програми ИНДУСТРИЈСКО ИНЖЕЊЕРСТВО ДРУМСКИ САОБРАЋАЈ II ПРЕДАВАЊЕ УСЛОВИ РАВНОТЕЖЕ СИСТЕМА СУЧЕЉНИХ СИЛА

Ана Савић Амела Зековић MATEMAТИКА 1 ПРИРУЧНИК ЗА ЛАБОРАТОРИЈСКЕ ВЕЖБЕ

2. EЛЕМЕНТАРНЕ ДИОФАНТОВЕ ЈЕДНАЧИНЕ

Писмени испит из Метода коначних елемената

Теорија електричних кола

6.2. Симетрала дужи. Примена

Tестирање хипотеза. 5.час. 30. март Боjана Тодић Статистички софтвер март / 10

2.3. Решавање линеарних једначина с једном непознатом

Једна од централних идеја рачунарства Метода која решавање проблема своди на решавање проблема мање димензије

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЛИНЕАРНА ФУНКЦИЈА. k, k 0), осна и централна симетрија и сл. 2, x 0. У претходном примеру неке функције су линеарне а неке то нису.

Семинарски рад из линеарне алгебре

ТРАПЕЗ РЕГИОНАЛНИ ЦЕНТАР ИЗ ПРИРОДНИХ И ТЕХНИЧКИХ НАУКА У ВРАЊУ. Аутор :Петар Спасић, ученик 8. разреда ОШ 8. Октобар, Власотинце

Положај сваке тачке кружне плоче је одређен са поларним координатама r и ϕ.

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Анализа Петријевих мрежа

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

b) Израз за угиб дате плоче, ако се користи само први члан реда усвојеног решења, је:

ЗБИРКА ЗАДАТАКА ИЗ МАТЕМАТИКЕ СА РЕШЕНИМ ПРИМЕРИМА, са додатком теорије

5.2. Имплицитни облик линеарне функције

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Cook-Levin: SAT је NP-комплетан. Теодор Најдан Трифунов 305M/12

КРУГ. У свом делу Мерење круга, Архимед је први у историји математике одрeдио приближну вред ност броја π а тиме и дужину кружнице.

Вежба 4. Графика. Наредба има облик plot(x,y) Аргументи x и y су вектори, који морају имати исти број елемената.

Математички факултет у Београду

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Аксиоме припадања. Никола Томовић 152/2011

ОБЛАСТИ: 1) Тачка 2) Права 3) Криве другог реда

7.3. Површина правилне пирамиде. Површина правилне четворостране пирамиде

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Штампарске грешке у петом издању уџбеника Основи електротехнике, 1. део, Електростатика

8. ПИТАГОРИНА ЈЕДНАЧИНА х 2 + у 2 = z 2

ПРИЈЕМНИ ИСПИТ. Јун 2003.

Предмет: Задатак 4: Слика 1.0

Вектори vs. скалари. Векторске величине се описују интензитетом и правцем. Примери: Померај, брзина, убрзање, сила.

Школска 2010/2011 ДОКТОРСКЕ АКАДЕМСКЕ СТУДИЈЕ

I Линеарне једначине. II Линеарне неједначине. III Квадратна једначина и неједначина АЛГЕБАРСКЕ ЈЕДНАЧИНЕ И НЕЈЕДНАЧИНЕ

1. 2. МЕТОД РАЗЛИКОВАЊА СЛУЧАЈЕВА 1

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

Факултет организационих наука Центар за пословно одлучивање. PROMETHEE (Preference Ranking Organization Method for Enrichment Evaluation)

ВЕЖБЕ ИЗ ОСНОВА РАЧУНАРСКЕ ТЕХНИКЕ 1

6.5 Површина круга и његових делова

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ И НАУКЕ ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

4. Троугао. (II део) 4.1. Појам подударности. Основна правила подударности троуглова

РЕШЕНИ ЗАДАЦИ СА РАНИЈЕ ОДРЖАНИХ КЛАСИФИКАЦИОНИХ ИСПИТА

РЕШЕЊА ЗАДАТАКА - IV РАЗЕД 1. Мањи број: : x,

ВИСОКА ТЕХНИЧКА ШКОЛА СТРУКОВНИХ СТУДИЈА У НИШУ

МАТРИЧНА АНАЛИЗА КОНСТРУКЦИЈА

6.3. Паралелограми. Упознајмо још нека својства паралелограма: ABD BCD (УСУ), одакле је: а = c и b = d. Сл. 23

ЗАШТИТА ПОДАТАКА Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

3.1. Однос тачке и праве, тачке и равни. Одређеност праве и равни

Ваљак. cm, а површина осног пресека 180 cm. 252π, 540π,... ТРЕБА ЗНАТИ: ВАЉАК P=2B + M V= B H B= r 2 p M=2rp H Pосн.пресека = 2r H ЗАДАЦИ:

ВОЈИСЛАВ АНДРИЋ МАЛА ЗБИРКА ДИОФАНТОВИХ ЈЕДНАЧИНА

Испитвање тока функције

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА


ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

Количина топлоте и топлотна равнотежа

6.1. Осна симетрија у равни. Симетричност двеју фигура у односу на праву. Осна симетрија фигуре

АНАЛОГНА ЕЛЕКТРОНИКА ЛАБОРАТОРИЈСКЕ ВЕЖБЕ

TAЧКАСТА НАЕЛЕКТРИСАЊА

6. ЛИНЕАРНА ДИОФАНТОВА ЈЕДНАЧИНА ах + by = c

Објектно орјентисано програмирање. Владимир Филиповић Александар Картељ

Метод таблоа у настави математичке логике у средњој школи

2.1. Права, дуж, полуправа, раван, полураван

Хомогена диференцијална једначина је она која може да се напише у облику: = t( x)

Данка Вујанац. Бојење графова. мастер рад

10.3. Запремина праве купе

Универзитет у Београду, Саобраћајни факултет Предмет: Паркирање. 1. вежба

L кплп (Калем у кплу прпстпперипдичне струје)

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА

ЗАВОД ЗА УЏБЕНИКЕ БЕОГРАД

Објектно орјентисано програмирање. Владимир Филиповић Александар Картељ

ПОВРШИНа ЧЕТВОРОУГЛОВА И ТРОУГЛОВА

4.4. Паралелне праве, сечица. Углови које оне одређују. Углови са паралелним крацима

8.2 ЛАБОРАТОРИЈСКА ВЕЖБА 2 Задатак вежбе: Израчунавање фактора појачања мотора напонским управљањем у отвореној повратној спрези

ТЕСТ МАТЕМАТИКА УПУТСТВО ЗА ПРЕГЛЕДАЊЕ

ЗАШТИТА ПОДАТАКА. Шифровање јавним кључем и хеш функције. Diffie-Hellman размена кључева

МАСТЕР РАД. Увођење полинома у старијим разредима основне школе. Математички факултет. Универзитет у Београду. Студент: Милица Петровић.

Сваки задатак се бодује са по 20 бодова. Израда задатака траје 150 минута. Решење сваког задатка кратко и јасно образложити.

МАСТЕР РАД УНИВЕРЗИТЕТ У БЕОГРАДУ МАТЕМАТИЧКИ ФАКУЛТЕТ. Тема: ГОРЊА И ДОЊА ГРАНИЧНА ВРЕДНОСТ НИЗА И НИЗА СКУПОВА И ЊИХОВЕ ПРИМЕНЕ У РЕЛНОЈ АНАЛИЗИ

Слика 1. Слика 1.2 Слика 1.1

ЗАВРШНИ РАД КЛИНИЧКА МЕДИЦИНА 5. школска 2016/2017. ШЕСТА ГОДИНА СТУДИЈА

ЗБИРКА РЕШЕНИХ ЗАДАТАКА ЗА ПРИЈЕМНИ ИСПИТ ИЗ МАТЕМАТИКЕ

Ознаке: f и. Парцијални изводи, парцијалних извода су парцијални изводи другог реда функције z = f (x, y): 2. извод другог реда по x 2 2

(1) Дефиниција функције више променљивих. Околина тачке (x 0, y 0 ) R 2. График и линије нивоа функције f: (x, y) z.

Transcript:

Ана Савић Светлана Штрбац - Савић Амела Зековић ДИСКРЕТНА МАТЕМАТИКА И АЛГОРИТАМИ ПРИРУЧНИК ЗА ЛАБОРАТОРИЈСКЕ ВЕЖБЕ ТРЕЋЕ ИЗДАЊЕ Висока школа електротехнике и рачунарства струковних студија Београд, 2012.

Аутори: др Ана Савић мр Светлана Штрбац - Савић дипл.инж. Амела Зековић Дискретна математика и алгоритами, приручник за лабораторијске вежбе Рецензенти: др Слободан Обрадовић, доцент, Факултет за рачунарске науке у Београду мр Зоран Мишковић, предавач, Висока школа електротехнике и рачунарства струковних студија у Београду Насловна страна: струк. инж. Ненад Толић Слике: струк. инж. Мирко Ступар Тираж: 90 Штампа: МСТ Гајић III издање Сва права су задржана. Није дозвољено да ниједан део овог приручника буде снимљен, емитован, или репродукован на било који начин, укључујући, али не и ограничавајући се на фотокопирање, фотографију, магнетни или било који други вид записа, без претходне писмене дозволе издавача. Издавач Висока школа електротехнике и рачунарства струковних студија, Војводе Степе 283, Београд Наставно веће Високе школе електротехнике и рачунарства струковних студија у Београду одобрило је издавање и коришћење овог приручника у настави.

Студент Број индекса Школска година Евиденција израде вежби Вежба број 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Датум Овера Напомена Датум Овера Бодови Одбрана вежби

Предговор Овај приручник је намењен студентима прве године Високе школе електротехнике и рачунарства у Београду, за предмет Дискретна математика и алгоритми, на смеровима Рачунарска техника и Нове рачунарске технологије. Прво издање приручника је реализовано помоћу софтверског пакета Matlab. Лабораторијске вежбе у другом измењеном и допуњеном издању приручника су реализоване помоћу софтверских пакета OCTAVE и Matlab. Оctave је део GNU Project-а. Оctave је језик намењен нумеричким израчунавањима. Програм садржи командну линију за обављање линеарних и нелинеарних нумеричких израчунавања. Како Оctave не садржи графички интерфејс, за рад са овим програмом смо користили његову надоградњу QtOctave. Приручник садржи 14 лабораторијских вежби. Прве две вежбе се односе на основе рада у софтверским пакетима OCTAVE и Matlab. У осталим вежбама су обрађени основни појмови и проблеми из Дискретне математике и алгоритама. Обрађене области обухватају логику, скупове, графове, комбинаторику, а велики део приручника је посвећен алгоритмима. Вежбе садрже теоријски увод, решене примере и задатке за самостално решавање. Аутори се захваљују рецезентима др Слободану Обрадовићу и мр Зорану Мишковићу на корисним предлозима и сугестијама који су допринели квалитету овог приручника. Поред највеће пажње током формирања и писања овог приручника могуће је да су се поткрале грешке. Аутори ће бити захвални свим читаоцима који укажу на њих или дају предлоге и сугестије. Београд, 2012. Аутори

САДРЖАЈ 1. Bежба 1 Упознавање са софтверским пакетима Octave и Matlab 1.1. Основни прозор софтверског пакета qtоctave 1.2. Основни прозор софтверског пакета Matlab 1.3. Помоћ у раду 1.4. Бројеви 1.5. Излазни формат 1.6. Аритметички оператори 1.7. Основне функције 1.8. Основне константе 1.9. Задаци за самосталан рад 2. Bежба 2 Улазне и излазне величине у Octave 2.1. Променљиве 2.2. Матрице 2.3. Уграђене матрице 2.4. Операције са матрицама 2.5. Задаци за самосталан рад 3. Bежба 3 Математичка логика 3.1. Искази 3.2. Основне логичке операције 3.3. Таутологија и логички закони 3.4. Примена математичке логике у рачунарству 3.5. Задаци за самосталан рад 4. Bежба 4 Математичка логика у рачунарству помоћу софтвера Logic Gate Simulator 4.1. Увод 4.2. Основна логичка кола 4.3. Исказне формуле помоћу логичких кола 4.4. Задаци за самосталан рад

5. Bежба 5 Скупови 5.1. Појам скупа 5.2. Операције са скуповима 5.3. Задаци за самосталан рад 6. Bежба 6 Графови 6.1. Увод 6.2. Основни појмови 6.3. Представљање графова у рачунару 6.4. Задаци за самосталан рад 7. Bежба 7 Стабла 7.1 Увод 7.2 Стабла 7.3 Задаци за самосталан рад 8. Bежба 8 Комбинаторика 8.1. Увод 8.2. Пермутације 8.3. Пермутације са понављањем 8.4. Варијације без понављања елемената 8.5. Варијације са понављањем 8.6. Комбинације 8.7. Комбинације са понављањем 8.8. Задаци за самосталан рад 9. Bежба 9 M документи 9.1. Увод 9.2. Командни документи 9.3. Фунцијски документи 9.4. Задаци за самосталан рад 10. Bежба 10 Линијски алгоритми 10.1. Увод 10.2. Линијски алгоритми 10.3. Задаци за самосталан рад

11. Bежба 11 Циклични алгоритми 11.1. Увод 11.2. Циклични алгоритми 11.3. Задаци за самосталан рад 12. Bежба 12 Сложени алгоритми 12.1. Сложени алгоритми 12.2. Задаци за самосталан рад 13. Bежба 13 Рекурзивни алгоритми 13.1. Рекурзивне формуле 13.2. Задаци за самосталан рад 14. Bежба 14 Булова алгебра 14.1. Дефиниција Булове алгебре 14.2. Теореме Булове алгебре 14.3. Алгебарско представљање прекидачких функција 14.4. Задаци за самосталан рад 15. Списак наредби и функција 16. Литература

Вежба 1 Упознавање са софтверским пакетима Octave и Matlab ЦИЉ ВЕЖБЕ Упознавање студената са софтверским пакетима ОCTAVE и Matlab. Студенти уче основни изглед прозора, његове делове, начинe добијања помоћи при раду у програму, ако и основне аритметичке, логичке и релацијске операторе који ће им омогућити даљи рад у овом програму. 1.1. ОСНОВНИ ПРОЗОР СОФТВЕРСКОГ ПАКЕТА QTОCTAVE ОCTAVE је слободан програм. То значи да је дозвољено, без новчане надоканаде, користити програм, дистрибуирати, копирати, изучавати и мењати. ОCTAVE је део GNU Project-а. ОCTAVE је језик намењен нумеричким израчунавањима. ОCTAVE садржи командну линију за обављање линеарних и нелинеарних нумеричких израчунавања. Иако име програма ОCTAVE асоцира на музику, заправо је програм ОCTAVE добио име по професору Octave Levenspiel, који је био професор једног од аутора програма. Прву верзију програма написали су James Rawlings и John Ekerdt. Како ОCTAVE не садржи графички интерфејс, за рад са овим програмом ћемо користити његову надоградњу QTOCTAVE. QTOCTAVE нуди конформнији за рад у програму ОCTAVE. Инсталација за ОCTAVE и његову надоградњу QTOCTAVE могу се бесплатно преузети са интернета. Када су програми инсталирани, покретањем софтвера QTOCTAVE појављује је основни прозор програма који изгледа као на следећој слици. Основни прозор софтвера QTOCTAVE, се састоји из неколико делова: Variable List, Navigator и Command Line. 1

Variable List даје листу дефинисаних променљивих. На листи се приказују, њихова имена, величина и тип променљиве. Navigator омогућава повезивање, проналажење и отварање докумената. Command Line је део који ћемо највише користити. Овај део служи за унос команди. Резултат извршавања команди се приказује сукцесивно у делу прозора који започиње са >>>. Овај део прозора се назива Terminal. За брисање претходног рада, тј. његовог приказа на Terminal-у користи се иконица. У оквиру командне линије могуће је унети више наредби, раздвајајући их зарезима. Притискањем стралица на горе и на доле на тастатури, могуће је у оквиру командне линије изабрати неку од преходно написаних команди. 1.2. ОСНОВНИ ПРОЗОР СОФТВЕРСКОГ ПАКЕТА MATLAB Matlab се покреће двоструким кликом на иконицу или из старт менија All Programs/Matlab. Основне целине Matlab прозора су Command Window и Workspace. Укључивање додатних целина, као што су на пример Command History и Current Dиrectory, 2

могуће је из менија View. Целина Workspace чува податке о променљивим, као што је име, врста и вредност променљиве. У целини Command Window појављује се знак >> иза кога се пише команда. За прихватање и обраду команде потребно је притиснути тастер Enter. Matlab користи резервисану реч ans за приказивање резултата. Уколико није потребно приказивање резултата команде, онда се завршава са знаком ;. >> 5+6; >> У овом случају команда је извршена, али се резултат не приказује. Дугачка командна линија може бити настављена и у следећем реду уколико се на крају линије налази ознака за прекид линије... (три тачке). Команде линије које започињу са знаком % се третирају као кориснички коментари. Matlab игнорише садржај командних линија које почињу са знаком % и отвара нову командну линију за унос следеће наредбе. >> %Ovo je komentar >> Напомене о раду са Command window: Уписана команда биће извршена кад се притисне тастер Enter. 3

У исти ред се може уписати више команди ако се раздвоје зарезом. Не може се вратити у претходни ред командног прозора. Тастер стрелица на горе ( ) приказује иза командног одзивника (>>) претходну команду. За брисање садржаја целог командног прозора користи се команда clc. Затварање Matlab-а постиже се уобичајеним кликом на крстић у горњем десном углу или куцањем команде exit или quit у командну линију. 1.3. ПОМОЋ У РАДУ Наредбом help обезбеђена је помоћ и информације током рада. То је велика погодност за кориснике јер је тешко меморисати велики број функција које су дефинисане. Ако откуцамо help у простор предвиђен за командну линију (Command Line) и притиснемо тастер Enter у оквиру дела Terminal ће се појавити објашњење. ПРИМЕР 1: Откуцати следеће наредбе help sin и help *. Видети шта се добија на екрану. >>> help sin `sin' is a built-in function -- Mapping Function: sin (X) Compute the sine for each element of X in radians. See also: asin, sind, sinh >>> help * Multiplication operator. See also `.*' Additional help for built-in functions and operators is available in the on-line version of the manual. Use the command `doc <topic>' to search the manual index. Help and information about Octave is also available on the WWW at http://www.octave.org and via the help@octave.org mailing list. 1.4. БРОЈЕВИ OCTAVE и Matlab омогућавају дефинисање реалних и комплексних бројева. За децимални зарез у овим софтверским пакетима се користи тачка, док се за имагинарну јединицу равноправно користе i и j. За експоненцијални запис броја користи мало слово e, које означава 10 на степен. 4

ПРИМЕР 1: Написати бројеве. 2 5,56; 8,55; 3 9i ; 6 8 i; 56 10 ; 5 10 3 >>> 5.56, -8.55, 3+9i, 6+8j, 56e+2, 5e-3 ans = 5.5600 ans = -8.5500 ans = 3 + 9i ans = 6 + 8i ans = 5600 ans = 0.0050000 Највећи и најмањи број који Matlab користи се може добити командама realmax и realmin. >>> realmax ans = 1.7977e+308 >>> realmin ans = 2.2251e-308 Бесконачно се означава са Inf (Infinity), док је ознака за недефинисану вредност NaN (Not a Number). ПРИМЕР 2: Одредити вредност израза 0 4 и 0 0. >>> 4/0 ans = Inf >>>warning: division by zero >>> 0/0 ans = NaN >>>warning: division by zero 1.5. ИЗЛАЗНИ ФОРМАТ Излазни облик приказивања резултата може се контролисати наредбом format. Ова команда утиче само на приказ на екрану, а не на то како се нешто израчунава или смешта у меморију. Постоје различити излазни формати: format short, format long, format long e, format short e, format rat. Ако није дефинисан неки други формат подразумевани формат је format short, стандардни формат са 5 значајних цифара. ПРИМЕР 3: Број приказати користећи различите формате. >>> format short, pi ans = 3.1416 5

>>> format long, pi ans = 3.14159265358979 >>> format long e, pi ans = 3.14159265358979e+000 >>> format short e, pi ans = 3.1416e+000 >>> format rat, pi ans = 355/113 Следећи број са којим будемо радили биће у последњем формату који смо користили. Да би се вратили у уобичајени format short, довољно је откуцати само наредбу format. 1.6. АРИТМЕТИЧКИ ОПЕРАТОРИ Аритметички изрази се формирају коришћењем аритметичких операција за које у програмима ОCTAVE и Matlab користимо симболе дате у следећој табели. + САБИРАЊЕ - ОДУЗИМАЊЕ * МНОЖЕЊЕ / ДЕЉЕЊЕ ^ СТЕПЕНОВАЊЕ ПРИМЕР 4: Израчунати вредност израза 3 2 2. >>> 3+2*2 ans = 7 ПРИМЕР 5: Израчунати вредност израза 1 x 2 2 4. 4 >>> x=2+(2*4-1/4) x = 9.7500 6

ПРИМЕР 6: Израчунати вредност израза y 3x, ако је >>> x=3^2; >>>y=3*x y = 27 2 x 3. Ако не желимо да се резултат или међурезултат одмах прикаже на екрану, на крају наредбе унесе се знак ;. Ово се често користи у раду када нас међурезултати не интересују. На овај начин се убрзава рад на рачунару, јер се елиминише исписивање великог броја, често непотребних међурезултата. ПРИМЕР 7: Израчунати вредност израза 6 7 z. 2 4 >>> z=6*7/(2+4) z = 7 1.7. ОСНОВНЕ ФУНКЦИЈЕ Функције се позивају тако што се иза имена функције у малој загради наведе аргумент функције. Функције се пишу малим словима. Неке од елементарних функција које су уграђене у софтверске пакете ОCTAVE и Matlab можемо видети у следећој табели. abs() sqrt() sin() cos() tan() cot() exp() log() АПСОЛУТНА ВРЕДНОСТ КВАДРАТНИ КОРЕН СИНУС КОСИНУС ТАНГЕНС КОТАНГЕНС ЕКСПОНЕНЦИЈАЛНА ФУНКЦИЈА ЛОГАРИТАМ ОСНОВЕ Е log10() ЛОГАРИТАМ ОСНОВЕ 10 mod(x,y) ОСТАТАК ПРИ ДЕЉЕЊУ X СА Y 7

ПРИМЕР 8: Израчунати >>> sin(pi/3) ans = 0.86603 sin. 3 ПРИМЕР 9: Израчунати >>> exp(4) ans = 54.598 4 e. ПРИМЕР 10: За x 5 и y 7 израчунати вредност израза z ln y x. >>> x=5; >>> y=7; >>> log(y)+sqrt(x) ans = 4.1820 Приметимо да вредности променљивих x и y нису приказане на екрану, јер се иза променљивих налази знак ;. ПРИМЕР 11: Израчунати вредност израза z log10 x y, за вредности променљивих x и y задатих у предходном примеру. >>> # x i y su vrednosti promenljivih iz prethodnog primera >>> z=log10(x)+abs(y) z = 7.6990 Ознаке # или % се користе за писање коментара у програму ОCTAVE. 1.8. ОСНОВНЕ КОНСТАНТЕ Неке променљиве су већ предефинисане у програму ОCTAVE. Ове променљиве заједно са њиховим објашњењем дате су у следећој табели. ans Вредност израза када није придружен променљивој 8

i, j Имагинарна јединица, 1 pi e Inf NaN =3.14159265 e = 2.71828182845905, или резултат 1/0 (Infinity) Није број, или резултат 0/0 (Not a Number) У програму Matlab није дефинисана променњива e, већ се за њу користи exp 1. ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Представити следеће бројеве: 5 7 10 1, 234 10, 8,674 10,10, 5 i 85, i 78,555. РЕШЕЊЕ: 2. Укључити формат који приказује више од 5 цифара иза децималног зареза и наћи како у том случају изгледају дати бројеви. РЕШЕЊЕ: 3. За инсталирану верзију OCTAVE проверити који је најмањи и највећи реалан број коју та верзија подржава. РЕШЕЊЕ: 9

x tgx sin x 4. Тригонометријска формула је дата једначином cos 2. 2 2tgx Проверити да ли је тачна за x тако што ћете израчунати 5 вредност са обе стране једначине. РЕШЕЊЕ: 5. Наћи вредност израза 8 5sin 2. РЕШЕЊЕ: 6. Наћи вредност израза 56,18 dbm 10log. 10 3 РЕШЕЊЕ: 7. Наћи вредност израза e 2. РЕШЕЊЕ: 10

Вежба 2 Улазне и излазне величине у Octave ЦИЉ ВЕЖБЕ Циљ вежбе је упознавање студената са дефинисањем променљивих у OCTAVE, као и са матрицама као основним типом променљивих. У вежби су обрађене и предефинисане матрице. Дати су примери операција са матрицама. Описане променљиве се на исти начин дефинишу и у Matlab-у. 2.1. ПРОМЕНЉИВЕ OCTAVE омогућава дефинисање променљивих којима се може мењати нумеричка вредност током рада програма. Променљива има своје име и вредност. Додељивање се врши знаком =. Име променљиве је низ знакова који обавезно почиње словом, за којим следе низ знакова који се састоји од слова, цифара или знака _. Тако су a, ab1, Ovo_je_promenljiva регуларна имена за променљиве, док 23a, _a, a# представљају недозвољена имена. OCTAVE разликује велика и мала слова, па су тако променљиве a и A рaзличите. Вредност променљиве се може дефинисaти конкретном вредношћу, мaтемaтичким изрaзом или уз помоћ већ дефинисaне променљиве. ПРИМЕР 1: Дефинисaти променљиве 2 2 a 5, b a 2, A 1, C A a. >>> a=5 a = 5 >>> b=a+2 b = 7 >>> A=1 A = 1 >>> C=A^2+a^2 C = 26 За списак свих променљивих које се тренутно налазе у меморији потребно је написати команду who у командну линију. За списак 11

2.2. МAТРИЦЕ променљивих, њихову величину и укупну заузету меморију користи се команда whos. За брисање променљивих потребно је написати clear у командну линију. ПРИМЕР 2: Одредити све променљиве, њихову величину и зaузету меморију. >>> who Variables in the current scope: A C a b >>> whos Variables in the current scope: Attr Name Size Bytes Class ==== ==== ==== ===== ===== A 1x1 8 double C 1x1 8 double a 1x1 8 double b 1x1 8 double Total is 4 elements using 32 bytes OCTAVE садржи и неколико резервисаних имена променљивих. Нека од ових имена су већ поменута, и то су NaN и Inf. Резервисана променљива је и pi која представља број (3,141...). Једна од основних намена програма OCTAVE је рад са матрицама. Матрица представља дводимензионални низ бројева. Уколико матрица има само једну колону или само један ред онда такву матрицу зовемо вектор. У OCTAVE се скалари посматрају као матрице чије су димензије 1x1. Постоји неколико начина за дефинисање матрице: експлицитно дефинисање листе елемената матрице, коришћењем већ дефинисане матрице или генерисањем матрице коришћењем уграђених функција. Приликом дефинисање листе елемената матрице поштују се следећа правила: - елементи једног реда се раздвајају зарезом или размаком - крај реда се означава са ; - цела листа је ограничена угластим заградама, []. ПРИМЕР 3: Дефинисaти мaтрицу 1 2 3 M. 4 8 9 >>> M=[1,2,3;4,8,9] 12

M = 1 2 3 4 8 9 Дат је пример матрице M, која је дефинисана уз помоћ набрајања листе симбола. Ова матрица има димензије 2x3, односно има 2 реда и 3 колоне. Уколико је матрица једнодимензионална, односно уколико се ради о вектору дефинисање је могуће и коришћењем знака :. Форма оваквог дефинисања вектора је <први елемент вектора>:<инкремент>:<број који је већи или једнак последњој вредности добијеној инкрементирањем>. Уколико се изостави инкремент, његова подразумевана вредност је 1. ПРИМЕР 4: Дефинисaти векторе V 1 1 2 3 4 5, 1 3 5 7 9 1 V 100 93 86 79 72 и V 0 4 2 3 4. 1 >>> V1=1:5 V1 = 1 2 3 4 5 >>> V2=1:2:9 V2 = 1 3 5 7 9 >>> V3=100:-7:70 V3 = 100 93 86 79 72 1 >>> V4=0:pi/4:pi V4 = 0.00000 0.78540 1.57080 2.35619 3.14159 V, Пошто је матрица генерисана могуће је приступање појединим елементима матрице или њеним деловима. Тако, уколико је дата матрица А, за приступање елементу у i -том реду и ј-тој колони се користи ознака A(i,j). ПРИМЕР 5: Издвојити елемент мaтрице који се нaлaзи у 1. врсти и 3. колони, кaо и елемент из 3. врсте и 2. колоне. >>> A=[5,8,6;3,4,9;7,1,2] A = 5 8 6 3 4 9 7 1 2 >>> A(1,3) 13

ans = 6 >>> A(3,2) ans = 1 За приступање делу матрице се користи синтакса A(r1:r2, k1:k2), где r1:r2 говори да се издвајају елементи од r1 до r2 reda, али тако да се налазе од k1 до k2 колоне. ПРИМЕР 6: Издвојити елементе мaтрице који се нaлaзе у 1. и 2. врсти и 2. и 3. колони, кaо и елементе који се нaлaзе у 2. врсти и 2. и 3. колони. >>> A(1:2,2:3) ans = 8 6 4 9 >>> A(2,2:3) ans = 4 9 За издвајање свих редова или свих колона довољно је ставити знак :, док се за издвајање последњег реда или последње колоне може користити end. ПРИМЕР 7: Издвојити елементе мaтрице који се нaлaзе у 3. колони, кaо и елементе који се нaлaзе у 3. врсти. >>> A(:,2) ans = 8 4 1 >>> A(3,:) ans = 7 1 2 2.3. УГРAЂЕНЕ МAТРИЦЕ За генерисање матрице могу се користити и уграђене функције OCTAVE, као што су magic, eye, ones и zeros.у овом случају је потребно само дефинисати димензије матрице. Функција magic(n) генерише Дирерову квадратну матрицу димензије н. Ова матрица има особину да су суме по колонама, редовима и дијагоналама исте. ПРИМЕР 8: Направити Дирерову матрицу димензија 3 3. 14

>>> magic(3) ans = 8 1 6 3 5 7 4 9 2 Функција eye(n,m) генерише јединичну матрицу која има н редова и м колона. ПРИМЕР 9: Направити јединичну матрицу димензија 3 3. >>> eye(3,3) ans = Diagonal Matrix 1 0 0 0 1 0 0 0 1 Уз помоћ функција ones(n,m) и zeros(n,m) се генеришу матрице са н редова и м колона које имају све јединце, односно све нуле. ПРИМЕР 10: Нaпрaвити мaтрицу којa сaдржи све јединице димензијa 2 3 и мaтрицу којa сaдржи све нуле димензијa 3 2. >>> ones(2,3) ans = 1 1 1 1 1 1 >>> zeros(3,2) ans = 0 0 0 0 0 0 2.4. ОПЕРАЦИЈЕ СА МАТРИЦАМА Пример дефинисања нове матрице N коришћењем већ дефинисане матрице М дат је у наставку текста. ПРИМЕР 11: Додати матрици M скалар 1. >>> N=M+1 N = 2 3 4 5 9 10 15

За рад са матрицама могуће је користити операторе + и -, док се за операторе *, / и ^, додаје тачка испред оператора, уколико је потребно да се операција изврши за сваки елемент матрице појединачно. Уколико нема тачке испред оператора, онда ће операције бити извршене по правилима за операције са матрицама. ПРИМЕР 12: Креирати матрице J, K и L. Матрице се формирају од матрице M тако што се свако елемент матрице помножи са 2, подели са 3, односно подигне на квадрат. >>> J=M.*2 J = 2 4 6 8 16 18 >>> K=M./3 K = 0.33333 0.66667 1.00000 1.33333 2.66667 3.00000 >>> L=M.^2 L = 1 4 9 16 64 81 ПРИМЕР 13: Уочити рaзлику између множењa * и.* >>> A=[1 2; 2 3]; B=[1 0; 2 3]; >>> A*B ans = 5 6 8 9 >>> A.*B ans = 1 0 4 9 За матрице је карактеристична операција транспоновања. Ова операција се у OCTAVE обавља оператором. Уколико урадимо транспоновање матрице то значи да ће колоне матрице сада постати редови и обрнуто, некадашњи редови су сада колоне. ПРИМЕР 14: Креирати матрицу Mt помоћу матрице M, при T чему је Mt M. >>> Mt=M' 16

Mt = 1 4 2 8 3 9 ПРИМЕР 15: Генерисaти вектор x сa 4 елементa у опсегу [2,8] a зaтим изрaчунaти елементе векторa y= x 2-4x. >>> x=2:2:8 x = 2 4 6 8 >>> y=x.^2-4*x y = -4 0 12 32 ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Формирати матрицу димензија 3 x 2 чији су сви елементи једнаки 5, коришћењем наредбе ones. РЕШЕЊЕ: 2 3 5 2. Ако је дата матрица A 9 7 6, издвојити у нову 1 4 8 матрицу први ред матрице А, као и последња два елемента последње колоне. Формирати порменљиву користећи први елемент матрице. РЕШЕЊЕ: 17

2 3 3. Додати 2 сваком од елеменате матрице A. Такође, 9 5 формирати матрицу чији су елементи добијени множењем са 3 сваког од елемената матрице А. РЕШЕЊЕ: 4. Дефинисати векторе x = 2, 4, 6, 8, 10 и y= 3, 6, 9, 12, 15. РЕШЕЊЕ: y x y x Израчунати z x y x 2. 18

Вежба 3 Математичка логика ЦИЉ ВЕЖБЕ Циљ ове вежбе је упознавање са основним логичким операцијама и законима математичке логике, кроз примере реализоване помоћу OCTAVE. 3.1. ИСКАЗИ Реченица која има тачно једну истинитосну вредност назива се исказ или суд. Искази се обележавају малим словима, на пример p, q, r и називају се исказна слова. Истинитосна вредност исказа је: Τ, p је тачан исказ p., p je нетачан исказ Уместо ознака Τ и користе се и ознаке 1 и 0. За дефинисање исказа у OCTAVE се користе релацијски оператори дати у табели 1. < Мање < = Мање или једнако > Веће > = Веће или једнако = = Једнако! = Различито Табела 1. ПРИМЕР 1: Проверити истинитосне вредности исказа p и исказа q, при чему први исказ гласи 2 је једнако 3, а други 2 је различито од 3. >>> p=(2==3) p = 0 >>> q=(2!=3) q = 1 ПРИМЕР 2: Проверити истинитосне вредности исказа, при чему први исказ гласи 5 је веће или једнако од 3, други 2 је веће од 3, а трећи 8 је мање или једнако од 10. 19

>>> 5>=3 ans = 1 >>> 2>3 ans = 0 >>> 8<=10 ans = 1 3.2. ОСНОВНЕ ЛОГИЧКЕ ОПЕРАЦИЈЕ Основне логичке операције су: - негација (НЕ), чија је ознака, - конјункција (И), у ознаци, - дисјункција (ИЛИ), у ознаци, - импликација (АКО - ОНДА), са ознаком - и еквиваленција (АКО И САМО АКО), са ознаком. Истинитосна вредност логичких операција дата је у тебели 2. p q p q p q p q p q p T T T T T T T T T T T T T T T Табела 2. Оператори који омогућавају основне логичке операције у OCTAVE дате су у табели 3. Логичка операција Оператор у OCTAVE Негација ~ Конјункција & Дисјункција Импликација ( p q ) ~ p q Еквиваленција ( p q ) P = = q Табела 3. ПРИМЕР 3: Ако исказ p гласи 2 је једнако 3, а исказ q гласи 5 је веће од 2. Извршити операције конјункције, дисјункције, импликације, еквиваленције и негације. Тачност добијених вредности проверити у истиносној таблици. >>> p=(2==3); >>> q=(5>2); >>> p&q ans = 0 >>> p q ans = 1 20

>>> ~ p q ans = 1 >>> p==q ans = 0 >>> ~p ans = 1 >>> ~q ans = 0 ПРИМЕР 4: Проверити истиносну таблицу за операције конјункције и дисјункције на примеру исказа p и q. Исказ p је тачан када гласи 2 је једнако 2, а нетачан за 2 је различито од 2. Исказ q је тачан када гласи 2 је мање од 3, а нетачан за 2 је веће од 3. >>> p=(2==2); >>> q=(2<3); >>> p&q ans = 1 >>> p q ans = 1 >>> p=(2==2); >>> q=(2>3); >>> p&q ans = 0 >>> p q ans = 1 >>> p=(2!=2); >>> q=(2<3); >>> p&q ans = 0 >>> p q ans = 1 >>> p=(2!=2); >>> q=(2>3); >>> p&q ans = 0 >>> p q ans = 0 ПРИМЕР 5: Проверити истиносну таблицу за операције импликације на примеру исказа p и q. Исказ p је тачан када гласи 3 је једнако 3, а нетачан за 3 је различито од 3. Исказ q је тачан када гласи 6 је мање од 8, а нетачан за 6 је веће од 8. >>> p=(3==3); >>> q=(6<8); >>> ~p q ans = 1 >>> p=(3==3); 21

>>> q=(6>8); >>> ~p q ans = 0 >>> p=(3!=3); >>> q=(6<8); >>> ~p q ans = 1 >>> p=(3!=3); >>> q=(6>8); >>> ~p q ans = 1 3.3. ТАУТОЛОГИЈА И ЛОГИЧКИ ЗАКОНИ Формулу чине исказна слова p, q, r, (ознаке исказа) и основне логичке операције (негација, конјункција, дисјункција, импликација, еквиваленција). Приорити логичких оператора дати су у табели 4. Логички оператор Приоритет 1, 2, 3 Табела 4. Исказна формула која је увек тачна назива се таутологија. Исказна формула која је увек нетачна назива се контрапозиција. Основни логички закони су: - Закон идемпотенције p p p p p p - Двострука негација p p - Комутативност p q q p p q q p - Асоцијативност p q r p q r p q r p q r - Де Морганови закони p q p q p q p q. ПРИМЕР 6: Ако исказ p гласи 6 је једнако 6, проверити на овом примеру закон идемпотенције и закон двострука негација. 22

>>> p=(6==6) p = 1 >>> (p & p)== p ans = 1 >>> (p p)== p ans = 1 >>> ~(~p)==p ans = 1 ПРИМЕР 7: Исказ p је тачан када гласи 2 2 4, а нетачан за 2 2 4. Исказ q је тачан када гласи10 3, а нетачан за 10 3 p p q таутологија,. Показати да је формула испробавајући све четири комбинације вредности исказа p и q. >>> p1=(2+2==4); >>> q1=(10>=3); >>> p2=(2+2==4); >>> q2=(10<3); >>> p3=(2+2~=4); >>> q3=(10>=3); >>> p4=(2+2~=4); >>> q4=(10<3); >>> p1 ~(p1&q1) ans = 1 >>> p2 ~(p2&q2) ans = 1 >>> p3 ~(p3&q3) ans = 1 >>> p4 ~(p4&q4) ans = 1 ПРИМЕР 8: Исказ p је тачан када гласи 3 8 11, а нетачан за 3 8 11. Исказ q је тачан када гласи 10 4 6, а нетачан за 10 4 6 p q p q. Показати да је формула контрапозиција, испробавајући све четири комбинације вредности исказа p и q. >>> p1=(3+8>=11); >>> q1=(10-4==6); >>> p2=(3+8>=11); >>> q2=(10-4~=6); >>> p3=(3+8<11); >>> q3=(10-4==6); >>> p4=(3+8<11); >>> q4=(10-4~=6); >>> (p1&q1)&~(p1 q1) ans = 0 23

>>> (p2&q2)&~(p2 q2) ans = 0 >>> (p3&q3)&~(p3 q3) ans = 0 >>> (p4&q4)&~(p4 q4) ans = 0 3.4. ПРИМЕНА МАТЕМАТИЧКЕ ЛОГИКЕ У РАЧУНАРСТВУ Модерни рачунари користе бројни ситем који има две цифре 0 и 1. Једна бинарна цифра 0 или 1 представља минималну количину информација. Јединица репрезентује истину, а нула неистину. Логичке операције се могу спроводити и над бинарним бројевима, па се тада конјункција често означава као операција AND, а дисјункција као OR. OCTAVE има могућност обављања операција над бинарним бројевима, користећи исте операторе као у случају исказа. Бинарни бројеви се дефинишу у угластим заградама са размацима између цифара. Пример једног бинарног броја у OCTAVE дат је изразом: a = [1 0 1 0 1 1 0 0]. ПРИМЕР 9: Одредити негацију бинарних бројева 00101110 и 11110101. >>> ~[0 0 1 0 1 1 1 0] ans = 1 1 0 1 0 0 0 1 >>> ~[1 1 1 1 0 1 0 1] ans = 0 0 0 0 1 0 1 0 ПРИМЕР 10: Извршити операцију И над бинарним бројевима 10101100 и 00001111. Прокоментарисати резултат. >>> a=[1 0 1 0 1 1 0 0] a = 1 0 1 0 1 1 0 0 >>> b=[0 0 0 0 1 1 1 1] b = 0 0 0 0 1 1 1 1 >>> a&b ans = 0 0 0 0 1 1 0 0 ПРИМЕР 11: Извршити операцију ИЛИ над бинарним бројевима 10001110 и 10001101. Прокоментарисати резултат. 24

>>> m=[1 0 0 0 1 1 1 0] m = 1 0 0 0 1 1 1 0 >>> n=[1 0 0 0 1 1 0 1] n = 1 0 0 0 1 1 0 1 >>> m n ans = 1 0 0 0 1 1 1 1 ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Одредити истинитосну вредност израза у OCTAVE a) 2 6 8, б) 8 2 4, в) 5 2 3. РЕШЕЊЕ: 2. Ако исказ p гласи 3 3 6, а исказ q гласи 2 4 6. Извршити операције конјункције, дисјункције, импликације, еквиваленције и негације. Тачност добијених вредности проверити у истиносној таблици датој у тексту вежбе. РЕШЕЊЕ: 3. Проверити да ли је формула p q p q таутологија. Исказ p је тачан када гласи 6 2 8, а нетачан за 6 2 8. Исказ q је тачан када гласи17 16, а нетачан за 17 16. 25

РЕШЕЊЕ: 4. Извршити следеће операције над бинарним бројевима а=00001010, b=10100111 и c=11101111 a) а, б) а AND b, в) (a OR b) AND c. РЕШЕЊЕ: 26

Вежба 4 Математичка логика у рачунарству помоћу софтвера Logic Gate Simulator ЦИЉ ВЕЖБЕ Циљ вежбе је упознавање студената са логичким колима, као практичним примером примене математичке логике. Вежба је реализована помоћу софтвера Logic Gate Simulator који омогућава пројектовање логичких кола по исказној формули и проверу њиховог рада. 4.1. УВОД Модерни рачунари користе бинарни бројни систем који има две цифре 0 и 1. Бинарни систем је изабран зато што рачунар мора да прикаже било коју цифру на јединствен начин, а постоји велики број електронских склопова који се налазе у два једиствена стабилна стања. Ова стања могу бити отворен-затворен, леводесно, укључен-искључен и слично. Зато је бинарни систем погодан за коришћење применом математичке логике. Једна бинарна цифра 0 или 1 представља минималну количину информација, односно најмањи податак који се може обрадити у рачунару и зове се бит (bit). Бит може да репрезентује истину (true) и неистину (false). Јединица репрезентује истину, а нула неистину. Логичке операције се представљау и као конјукција AND, а дисјункција као OR, имајући у виду истинитосне таблице за дате логичке операције. У већини рачунара користи се група од осам бита која се назива бајт (byte). Дакле, бинарни бројеви су основа за функционисање рачунара. Дигитална кола комбинују нуле и јединице, и генеришу нове нуле и јединице. Дигитална кола су тако пројектована да имплементирају принципе бинарне аритметике и математичке логике. Софтвер Logic Gate Simulator омогућава једноставно испитивање математичке логике помоћу логичких кола. Логичка кола у софтверу дата су у табели 1. Повезивање логичких кола у софтверу остарује се левим кликом миша на улаз, односно излаз кола и држањем клика до жељеног места са којим се повезивање врши. Елементи софтвера који омогућавају улаз и излаз података дати су у табели 2. Улаз у логичко коло може бити само један бит или 27

уколико је коло на пример са четири улаза и четворобитна реч. Улаз бинарне речи нуди бинарни, али и октавни и децимални приказ броја. Промена приказа је могућа једностаним кликом на ознаку типа приказа кола. У табели 2 та ознака је bin, што значи да је изабран бинарни приказ речи. Када се у простор за рад доведе улазно коло са једним битом његова вредност је 0 и када се позиционира мишем изнад њега обојен је плаво. Вредност улазног бита се мења кликом на коло за улазни бит, при чему се боја кола промени из плавог у црвено. Исте боје сигнализирају и вредност бита на излазу логичког кола. Конвертор Логичко И Логичко ИЛИ Логичко НИ Логичко НИЛИ Ексклузивно ИЛИ Ексклузивно НИЛИ Табела 1. Улаз бита Излаз бита Улаз бинарне речи Излаз бинарне речи Табела 2. 28

4.2. ОСНОВНА ЛОГИЧКА КОЛА Рад неколико основних логичких кола у софтверу Logic Gate Simulator демонстриран је у следећим примерима. Рад логичких кола је у складу са истинитосним табелама одговарајућих математичких операција које су дате у вежби Математичка логика. ПРИМЕР 1: Направити помоћу софтвера двоулазно логичко коло И и проверити његов рад за све комбинације логичких бита. ПРИМЕР 2: Направити помоћу софтвера четвороулазно логичко коло ИЛИ и проверити његов рад за све комбинације логичких бита. Све комбинације бита дају следећи резултат: улаз излаз улаз излаз 0000 0 1000 1 0001 1 1001 1 29

0010 1 1010 1 0011 1 1011 1 0100 1 1100 1 0101 1 1101 1 0110 1 1110 1 0111 1 1111 1 Напомена: Промена бита на улазу се врши кликом у коло за унос и уписивањем жељене комбинације бита. Ротирање кола се врши држањем десног клика. ПРИМЕР 3: Направити помоћу софтвера двоулазно логичко коло ексклузивно ИЛИ и проверити његов рад за све комбинације логичких бита. 4.3. ИСКАЗНЕ ФОРМУЛЕ ПОМОЋУ ЛОГИЧКИХ КОЛА Помоћу логичких кола могуће је представити и целе исказне формуле, а не само основне логичке операције. ПРИМЕР 4: Помоћу логичких кола представити формулу p q p q и написати истинитосну табелу. 30

p q f 0 0 1 0 1 0 1 0 0 1 1 1 ПРИМЕР 5: Помоћу логичких кола представити формулу p q p q p. ПРИМЕР 6: Помоћу логичких кола представити формулу p p q p q и проверити да ли је формула таутолаогија. 31

p q Излаз1 Излаз2 f 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 Формула је таутологија. ПРИМЕР 7: Помоћу логичких кола представити формулу p q r p q r и проверити да ли је формула контрапозиција. Користити НИ коло. p q r Излаз1 Излаз2 f 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 0 0 Формула је контрапозиција. ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Направити помоћу софтвера двоулазно логичко коло ИЛИ и проверити његов рад за све комбинације логичких бита. 32

РЕШЕЊЕ: 2. Направити помоћу софтвера четвороулазно логичко коло ексклузивно НИЛИ и проверити његов рад за све комбинације логичких бита. РЕШЕЊЕ: 3. Представити формулу p q p q логичким колима и направити истинитосну табелу. Да ли је формула таутологија? РЕШЕЊЕ: 4. Представити формулу p r q r p q p r q r логичким колима и направити истинитосну табелу. Да ли је формула контрапозиција? Користити коло које има уграђену негацију. 33

РЕШЕЊЕ: 34

Вежба 5 Скупови ЦИЉ ВЕЖБЕ Циљ вежбе је упознавање са скуповима и основним операцијама са скуповима. Обрађени су основни закони алгебре скупова. Студенти кроз примере и задатке, у софтверском пакету OCTAVE, за самостално решавање савладавају градиво. 5.1. ПОЈАМ СКУПА Скуп је основни појам који се не дефинише. Чине га елементи који имају бар једно заједничко својство. Објекти скупа називају се његовим елементима. Скупови се најчешће обележавају велики словима, нпр. A, B, C, а његови елементи малим словима, нпр. a, b, c. Скуп који нема елементе назива се празан скуп и обележава са. Дефинисање скупа у OCTAVE обавља се помоћу вектора (једнодимензионални низ бројеве). Елементи скупа у OCTAVE се пишу у угластим заградама, при чему се раздвајају размаком или зарезом. Други начин дефинисања скупа је помоћу бројача, који у OCTAVE има синтаксу: почетна вредност : корак : крајња вредност. Уколико се изостави корак подразумевана вредност је 1. Празан скуп се у OCTAVE пише као []. ПРИМЕР 1: Дефинисати скупове A 1,3,6,8, 0, 1,5 C 1,6,10,20 у OCTAVE. >>> A=[1 3 6 8] A = 1 3 6 8 >>> B=[0-1 5] B = 0-1 5 >>> C=[1,6,10,20] C = 1 6 10 20 B и 35

ПРИМЕР 2: Дефинисати скупове A 1,2,3, 4,5,6,7,8,9,10, B 2,4,6,8,10 и C 3,6,9,12,15,18,21,24,27,30 у OCTAVE помоћу бројача. >>> A=1:10 A = 1 2 3 4 5 6 7 8 9 10 >>> B=2:2:10 B = 2 4 6 8 10 >>> C=3:3:30 C = 3 6 9 12 15 18 21 24 27 30 Неки елемент a може припадати датом скупу A, што се означава са a A, или не припадати истом скупу, што се означава са a A. Кажемо да је A подскуп скупа B и пишемо A B, ако сваки елемент скупа A припада истовремено и скупу B. За утврђивање да ли неки елемент припада скупу и да ли је неки скуп подскуп неког другог скупа у OCTAVE се користи наредба ismember. Синтaкса ове нарeдбе је у случају провере да ли неки елемент припада скупу је: ismember( element, skup). Резултат наредбе је 1 ако елемент припада скупу, а 0 ако не. Синтакса наредбе за утврђивање да ли је неки скуп подскуп неког скупа је: ismember( podskup, skup). Само уколико је резултат претходне наредбе све јединице тачно је да је скуп подскуп скупа. ПРИМЕР 3: Нека је дат скуп 2, 1,0,1, 2,3,4,5,7,8 B. a елемент овог скупа и да ли је скуп A 1,0,3 подскуп скупа B. Испитати да ли је 6 >>> A=[-1 0 3] A = -1 0 3 >>> B=[-2,-1,0,1,2,3,4,5,7,8] B = -2-1 0 1 2 3 4 5 7 8 >>> ismember(6,b) ans = 0 >>> ismember(a,b) ans = 1 1 1 36

ПРИМЕР 4: Дефинисати скуп A чији су елементи парни бројеви између 1 и 30, као и скуп B чији елементи задовољавају услов x B x x N 10 x 40 N. Користити бројач. 5 >>> A=2:2:30 A = 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 >>> B=10:5:40 B = 10 15 20 25 30 35 40 5.2. ОПЕРАЦИЈЕ СА СКУПОВИМА Унија два скупа A и B је скуп A B x x A x B. Пресек скупова A и B је скуп A B x x A x B. Ако је пресек два скупа A и B празан, тј. A B, тада за та два скупа кажемо да су дисјунктни. A \ B x x A x B. Разлика скупова A и B је скуп 37

Симетрична разлика скупова A и B је унија скупова A \ B и B \ A, тј. A B ( A \ B) ( B \ A). Комплемент скупа A у односу на скуп B (или допуна скупа A до скупа B ) где је A B. је скуп C A B \ A. B Операција са скуповима Наредба у OCTAVE Унија, A B union(a,b) Пресек, A B intersect(a,b) Разлика, A \ B setdiff(a,b) Симетрична разлика скупова, A B setxor(a, B) 38

У основне законе алгебре скупова спадају: 1. Асоцијативност A B C A B C A B C A B C, 2. Комутативност A B B A A B B A, 3. Дистрибутивност A B C A C B C A B C A C B C. ПРИМЕР 5: Ако је A 1, 2,3, B 2,3, 4,5 и C 3,4,5,6,7 одредити A B и A B C. Проверити у OCTAVE да ли је A B C A B C. Како се назива ова особина? >>> A=[1 2 3] A = 1 2 3 >>> B=[2 3 4 5] B = 2 3 4 5 >>> C=[3 4 5 6 7] C = 3 4 5 6 7 >>> union(a,b) ans = 1 2 3 4 5 >>> union(union(a,b),c) ans = 1 2 3 4 5 6 7 >>> union(a,union(b,c)) ans = 1 2 3 4 5 6 7 ПРИМЕР 6: Ако је A 1, 2,3, B 2,3, 4,5 и C 3,4,5,6,7 одредити A B и A B C. Проверити у OCTAVE да ли је A B C A B C. Како се назива ова особина? >>> A=1:3 A = 1 2 3 >>> B=2:5 B = 2 3 4 5 >>> C=3:7 C = 3 4 5 6 7 >>> intersect(a,b) ans = 39

2 3 >>> intersect(intersect(a,b),c) ans = 3 >>> intersect(a,intersect(b,c)) ans = 3 ПРИМЕР 7: Ако је A 1, 2,3, B 2,3, 4,5 и C 3,4,5,6,7 одредити A \ B и C \ A. >>> A=1:1:3; >>> B=2:1:5; >>> C=2:1:7; >>> setdiff(a,b) ans = 1 >>> setdiff(c,a) ans = 4 5 6 7 ПРИМЕР 8: Ако је A 1, 2,3,4,5, B 2,3, 4,5, 6, 7,8,9,10 одредити симетричну разлику скупова A и B. >>> A=1:5 A = 1 2 3 4 5 >>> B=2:10 B = 2 3 4 5 6 7 8 9 10 >>> P1=setdiff(A,B) P1 = 1 >>> P2=setdiff(B,A) P2 = 6 7 8 9 10 >>> union(p1,p2) ans = 1 6 7 8 9 10 >>> setxor(a,b) ans = 1 6 7 8 9 10 ПРИМЕР 9: Ако је A 1, 4,7,10, 12,14,16,18, 20 C 8,9,10...17 одредити A C \ A и A C и упоредити. >>> A=[1 4 7 10] A = 1 4 7 10 >>> B=12:2:20 B = B и 40

12 14 16 18 20 >>> C=8:17 C = 8 9 10 11 12 13 14 15 16 17 >>> union(a,setdiff(c,a)) ans = 1 4 7 8 9 10 11 12 13 14 15 16 17 >>> union(a,c) ans = 1 4 7 8 9 10 11 12 13 14 15 16 17 ПРИМЕР 10: Ако је A 1, 2,3, B 2,3, 4,5 и C 3,4,5,6,7 одредити B \ C \ A. >>> A=1:3 A = 1 2 3 >>> B=2:5 B = 2 3 4 5 >>> C=3:7 C = 3 4 5 6 7 >>> setdiff(setdiff(b,c),a) ans = [](1x0) ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Дефинисати следеће скупове у OCTAVE: а) 1,5,7,8,9,14,18 б) B 2,4,6,...,20, в) C 7,14,21,...,77, A, x г) D x x N 20 x 60 N, 6 д) E. РЕШЕЊЕ: 41

2. Користећи наредбу OCTAVE одредити који од претходно дефинисаних скупова (у задатку 1) садржи елемент 18. РЕШЕЊЕ: 3. Нека су дати скупови M 1,2,3, 4,5, N 1,2,3,...,10 и L 2, 4,6,8,10 извршити операције: а) M L, N L, N \ L, б) M L \ N и M L \ N, в) симетрична разлика скупова M и L, г) комплемент скупа L у односу на скуп N. РЕШЕЊЕ: 4. Проверити особину дистрибутивности за скупове M, N и L из претходног задатка. РЕШЕЊЕ: 42

Вежба 6 Графови ЦИЉ ВЕЖБЕ Циљ вежбе је разумевање појма графови и њихов значај. Кроз примере студенти уче различите типове графова и њихов начин представљања у рачунару. 6.1. УВОД Теорија графова је самостални и важан део математике. Графови су посебно занимљиви јер помоћу њих можемо моделовати сложене проблеме веома једноставно, као што је постављање саобраћајница, постављање електричних мрежа, рачунарских мрежа и сл. 6.2. ОСНОВНИ ПОЈМОВИ Граф је апстрактни математички објекат. Графови су састављени од тачака, односно чворова (врхова) и линија међу њима, односно грана. Скуп чворова убудуће ћемо обележавати са В, а скуп грана са Е. Граф је задат ако су позната два скупа, скуп чворова В и скуп грана Е. Пример Дат је скуп V a, b, c, d и E a, b, a, c, a, d, b, c, c, d Граф је приказан на слици.. 43

Две гране су суседне ако имају исти чвор. Чворови једне гране називају се крајеви. Грана која спаја чвор са самим собом назива се петљом. Граф који нема ниједну петљу називају се простим графом. Комплетан или потпун граф је онај граф код кога су свака два чвора повезана граном. Пут је низ грана које су међусобно повезане. Циклус је граф који се добија од пута, додавањем гране која спаја крајеве пута. 44

Степен графа је број грана графа који имају крај у једном чвору. Чвор степена 1 назива се изоловани чвор или лист. Пример Чворови b, c и d су степена 2, а чворови a и f степена 3. Граф је регуларан ако су сви чворови истог степена. Пример. Регуларан граф где су сви чворови степена 2. 6.3. ПРЕДСТАВЉАЊЕ ГРАФОВА У РАЧУНАРУ Графови се могу употребити за моделирање и решавање многих практичних проблема. Такве проблеме решавамо помоћу рачунара и посебно писаних програма. За представљање графова преко рачунара користе се матрице. Матрица суседства је најчешћа матрична интерпретација графова. Матрица суседства је матрица која на позицији пресека i- те врсте и j-те колоне садржи 1, ако је i-ти чвор спојен са j-тим чвором, иначе је 0. Матрица суседства је квадратна матрица, симетрична у односу на главну дијагоналу. Пример: Графу на слици одговара матрица суседства 45

0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 За представљање графова у Matlab-у користи се наредба gplot(a,xy). Параметар А представља матрицу суседства, док параметар xy даје коридинате за положај чворова на слици. ПРИМЕР 1: Нацртати граф дат на слици користећи матрицу суседства. >> A = [0 1; 1 0]; >> xy=[2 2;2 1]; >> gplot(a,xy) ПРИМЕР 2: Нацртати граф дат на слици користећи матрицу суседства. >>A = [0 1 0; 1 0 1; 0 1 0]; >> xy=[2 2;3.5 4; 5 2]; >> gplot(a,xy,'-r*') 46

ПРИМЕР 3: Нацртати потпун граф који садржи три чвора користећи матрицу суседства. >> A = [0 1 1; 1 0 1; 1 1 0]; >>xy=[2 2;3.5 4; 5 2]; >> gplot(a,xy,'-ms') >> axis([1 6 1 5]) Матрица инцидeнције за овај граф је 47

1 1 0 1 0 1 0 1. 1 ПРИМЕР 4: Нацртати пут који садржи три чвора користећи матрицу суседства. >> A = [0 1 0; 1 0 1; 0 1 0] A = 0 1 0 1 0 1 0 1 0 >> xy=[2 2;4 2; 6 2]; >> gplot(a,xy,'-k+') >> axis([1 7 1 3]) Матрица инцидeнције за претходни граф је 1 0 1 1. 0 1 ПРИМЕР 5: Нека је дат неусмерен граф G=(V,E), где је скуп чворова V 1,2,3,4,5,6, a скуп грана E 1,2, 2,3, 2,5, 3,6, 5,6. Нацртати граф. Да ли је граф повезан? 48

>> A = [1 0 0 0 0 0; 1 0 1 0 1 0; 0 1 0 0 0 1;0 0 0 1 0 0;0 1 0 0 0 1;0 0 1 0 1 0] xy=[1 2;2 2; 3 2;1 1;2 1; 3 1]; gplot(a,xy,'-gs') axis([0 4 0 3]) A = 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 Граф није повезан. ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Нацртати пут који садржи три чвора користећи матрицу суседства. Одредити матрицу инцидeнције. РЕШЕЊЕ: 49

2. Нацртати регуларан граф где су сви чворови степена 2 користећи матрицу суседства. Граф има 5 чворова. Одредити матрицу инцидeнције. РЕШЕЊЕ: 3. Нацртати потпун граф који садржи четири чвора користећи матрицу суседства. Одредити матрицу инцидeнције. РЕШЕЊЕ: 4. Нацртати граф са слике и одредити матрицу суседства и инцидeнције. 50

РЕШЕЊЕ: 5. Нека је дат неусмерен граф G=(V,E), где је скуп чворова V 1,2,3,4, a скуп грана E 1,2, 1,3, 2,3 2,4. Нацртати овај граф. Да ли је граф повезан? РЕШЕЊЕ: 51

52

Вежба 7 Стабла ЦИЉ ВЕЖБЕ Циљ вежбе је разумевање појма стабла. Кроз примере студенти уче различите врсте стабла и њихову примену. Вежба је реализована коришћењем Matlab-а. 7.1. УВОД 7.2. СТАБЛА Теорија графова је самостални и важан део математике. Графови су посебно занимљиви јер помоћу њих можемо моделовати сложене проблеме веома једноставно, као што је постављање саобраћајница, постављање електричних мрежа, рачунарских мрежа и сл. Стабла представљају најједноставнију, али и најважнију класу графова.стабло или дрво је повезан граф који не садржи циклусе или контуре. Породична стабла су је једна врста стабла. Организациона структура фирме су такође врста стабала. Стабло је граф са v чворова и е=v-1 грана и без контура. Стабло је минимално повезан граф. Стабло садржи бар два чвора степена 1. За сваки пар чворова u,v постоји тачно један пут који их повезује. Чвор на врху стабла назива се кореном. Стабло у коме је један чвор посебно означен назива се корено стабло. Означени чвор назива се корен стабла. 53

Сваки чвор кореног стабла повезан је јединственим путем за корен стабла. Број грана у овом путу представља ниво тог чвора. Корен стабла има ниво 0, а највећи ниво имају од корена најудаљенији чворови. Висина стабла је дужина најдужег могућег пута од корена до листа. Ако је највећи излазни степен, било ког чвора стабла, једнак m, тада се то стабло назива m - арним стаблом. У посебном случају, ако је m=2, добијамо бинарно стабло. У бинарном стаблу сваки отац има тачно 2 сина и свако дете се посматра као лево или десно дете. Ако су у бинарном стаблу завршни чворови сви истог нивоа, бинарно стабло се назива потпуно. На нивоу к постоји тачно 2 k чворова. Ако потпуно бинарно стабло има поред нивоа 0 још к нивоа, тада је број чворова н у стаблу једнак 2 k k 1 n 1 2 2 2 2 1 54

k n 1 Број завршних чворова (листова) је 2, а осталих 2 k n 1 2 1. 2 У Matlab-у стабло се формира користећи наредбу: ntree(ord,d). У Matlab-у се увек формира корено стабло. Параметар ORD представља ред стабла, док је параметар D висина стабла. Оваква функција увек прави потпуно стабло. Проширењем параметара наредбе може се подешавати потпуност стабла. У овом случају наредба има облик: ntree(ord,d,s). Параметар S је вектор који има 1 на месту чвора који има потомке, а 0 за чворове који их немају. ПРИМЕР 1: Нацртати стабло реда 3 и висине 2. >> t=ntree(3,2) Tree Object Structure ======================= Order : 3 Depth : 2 Terminal nodes : [4 5 6 7 8 9 10 11 12] -------------------------------------- >> plot(t) ПРИМЕР 2: Нацртати бинарно стабло висине 4. 55

>> t=ntree(2,4) Tree Object Structure ======================= Order : 2 Depth : 4 Terminal nodes : [15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30] -------------------------------------- >> plot(t) Када је формирано потпуно корено стабло, ако је потребно да неки чвор добије или изгуби потомке користе се наредбе: Т=nodesplt(T,N), Т=nodejoin(T,N). Параметри наредби су T које означава стабло и N број чвора на који се наредба односи. ПРИМЕР 3: Нацртати бинарно стабло са слике. >> plot(t) >> t=ntree(2,3) Tree Object Structure ======================= Order : 2 Depth : 3 Terminal nodes : [7 8 9 10 11 12 13 14] -------------------------------------- >> plot(t) >> %u prozoru sa grafikom u meniju Node Label izabrati Index >> t=nodejoin(t,3) Tree Object Structure ======================= Order : 2 56

Depth : 3 Terminal nodes : [3 9 10 11 12 13 14] -------------------------------------- >> t=nodejoin(t,4) Tree Object Structure ======================= Order : 2 Depth : 3 Terminal nodes : [7 8 4 11 12 13 14] -------------------------------------- >> plot(t) ПРИМЕР 4: Нацртати стабло реда 4 и висине 2, тако да само два чвора нивоа 1 имају потомке. >> t=ntree(4,2) Tree Object Structure ======================= Order : 4 Depth : 2 Terminal nodes : [5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20] -------------------------------------- >> plot(t) >> %u prozoru sa grafikom u meniju Node Label izabrati Index >> t=nodejoin(t,1) Tree Object Structure ======================= Order : 4 Depth : 2 Terminal nodes : [9 10 11 12 13 14 15 16 17 18 19 20] -------------------------------------- >> t=nodejoin(t,4) Tree Object Structure ======================= Order : 4 Depth : 2 Terminal nodes : [13 14 15 16 17 18 19 20] -------------------------------------- >> plot(t) 57

ПРИМЕР 5: Нацртати стабло са слике ако се чвор v 1 узме за корени чвор. >> t=ntree(3,2); t=nodejoin(t,1); t=nodejoin(t,2); plot(t) 58

За одређивање листова стабла користи се наредба leaves(t). За одређивање броја листова стабла користи се наредба ntnode(t). За одређивање чворова који нису листови користи се наредба noleaves(t). За одређивање родитеља стабла користи се наредба nodepar(t,n). ПРИМЕР 6: За потпуно бинарно стабло висине 3 одредити листове и њихов број. Одредити чворове који нису листови. Који је укупан број чворова? >> t=ntree(2,3); >> leaves(t) ans = 7 8 9 10 11 12 13 14 >> l=ntnode(t) l = 8 >> noleaves(t) ans = 0 1 2 3 4 59

5 6 >> m=length(noleaves(t)) m = 7 >> m+l ans = 15 ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. Нацртати потпуно стабло висине 3 и реда три. Одредити број листова овог стабла. За један изабрани лист одредити претке. РЕШЕЊЕ: 2. Нацртати стабло са слике ако се чвор v 2 узме за корени чвор. РЕШЕЊЕ: 60

3. Нацртати бинарно стабло које одговара стаблу насталом бинарним претраживањем имена: Милош, Софија, Владе, Стефан, Новак, Ана и Марија. РЕШЕЊЕ: 4. Нацртати бинарно стабло које садржи бројеве поредане у нумеричком поретку: 25, 6, 44, 2, 30, 58, 12. РЕШЕЊЕ: 61

62

Вежба 8 Комбинаторика ЦИЉ ВЕЖБЕ Циљ вежбе је упознавање студената са основним начинима распоређивања елемената у скупове. Кроз примере реализоване помоћу Matlab-а уче пермутације, варијације и комбинације. 8.1. УВОД 8.2. ПЕРМУТАЦИЈЕ Предмет комбинаторике је распоређивање елемената у коначне скупове и одређивање броја таквих распореда. Разликујемо три врсте различитих распореда и то су: пермутације, варијације, и комбинације. Нека је дат скуп A a a a 1, 2,, n. Пермутација је било који распоред свих n елемената скупа A. Број пермутација скупа од n елемената износи: P n n n 1 2 1 n!. Симбол n! је скраћеница за записивање узастопног производа од n елемената и чита се n факторијел. По дефиницији се узима да је 0! 1. За одређивање пермутација у Matlab-у користи се наредба perms(v), где је са v означен скуп елемената чије се пермутације одређују. Скупови се у Matlab-у представљају помоћу вектора. Факторијел се у Matlab-у одређује помоћу наредбе factorial(n). ПРИМЕР 1: Нека је дат скуп A 1, 2,3. Одредити све пермутације елемената овог скупа. >> A=[1 2 3] A = 63

1 2 3 >> P = perms(a) P = 3 2 1 3 1 2 2 3 1 2 1 3 1 2 3 1 3 2 ПРИМЕР 2: Нека је дат скуп A 1, 2,3. Колико има пермутација елемената овог скупа? >> factorial(3) ans = 6 ПРИМЕР 3: Колико троцифрених бројева се може написати помоћу цифара 4, 5 и 6? Свака цифра у броју се може појавити само једном. >> v=[4 5 6] v = 4 5 6 >> perms(v) ans = 6 5 4 6 4 5 5 6 4 5 4 6 4 5 6 4 6 5 ПРИМЕР 4: Наћи све пермутације скупа A a, b, c, d. Напомена: Како су елементи скупа слова, а не бројеви пре њиховог коришћења потребно их је дефинисати помоћу наредбе syms. Набрајају се сва слова и раздвајају размаком. >> syms a b c d >> v=[a b c d] v = [ a, b, c, d] >> P=perms(v) P = [ d, c, b, a] [ d, c, a, b] [ d, b, c, a] [ d, b, a, c] 64

[ d, a, b, c] [ d, a, c, b] [ c, d, b, a] [ c, d, a, b] [ c, b, d, a] [ c, b, a, d] [ c, a, b, d] [ c, a, d, b] [ b, c, d, a] [ b, c, a, d] [ b, d, c, a] [ b, d, a, c] [ b, a, d, c] [ b, a, c, d] [ a, c, b, d] [ a, c, d, b] [ a, b, c, d] [ a, b, d, c] [ a, d, b, c] [ a, d, c, b] ПРИМЕР 5: На колико начина се могу распоредити 6 различитих књига на полицу? >> n=6; >> factorial(n) ans = 720 8.3. ПЕРМУТАЦИЈЕ СА ПОНАВЉАЊЕМ Нека је дат скуп A a a a 1, 2,, n. Број пермутација са понављањем, скупа од n елемената, међу којима има k1, k2,, km једнаких износи P k1, k2, km n n n k1 n k1 k3 km n! k1 k2 k3 km k1! k2! km!. ПРИМЕР 6: Одредити број пермутација елемената 0,0,0,1,1,1,1. Напомена: Број пермутација за овај пример се рачуна по формули 7 7 3 7! P3,4 7. 3 4 3!4! >> n=7; >> k1=3; >> k2=4; >> factorial(n)/(factorial(k1)*factorial(k2)) ans = 35 65

ПРИМЕР 7: Одредити број петоцифрених бројева који се може написати помоћу цифара 4,4,5,5,5. >> n=5; >> k1=2; >> k2=3; >> factorial(n)/(factorial(k1)*factorial(k2)) ans = 10 8.4 ВАРИЈАЦИЈЕ БЕЗ ПОНАВЉАЊА ЕЛЕМЕНАТА Нека је дат скуп A a a a 1, 2,, n. Варијација класе од k елемената је било која k -торка различитих елемената скупа A. Број варијација износи n k k 1 1 1. V n i n n n k i 1 ПРИМЕР 8: Дат је скуп A a, a, a друге класе елемената овога скупа? >> n=3; >> k=2; >> n-k+1 ans = 2 >> 3*2 ans = 6 1 2 3. Колико има варијација ПРИМЕР 9: На конкурс у фирму јавило се 6 кандидата за радна места директора, секретара и потрира. На колико начина их је могуће изабрати? >> n=6; >> k=3; >> n-k+1 ans = 4 >> 6*5*4 ans = 120 8.5. ВАРИЈАЦИЈЕ СА ПОНАВЉАЊЕМ ЕЛЕМЕНАТА Нека је дат скуп A a a a 1, 2,, n. Варијација са понављањем класе од n елемената је било која k - торка елемената скупа A. 66

Број варијација износи V n k k n. ПРИМЕР 10: Колико има двоцифрених бројева који се могу написати са цифрама 2, 4 и 6? >> n=3; >> k=2; >> n^k ans = 9 8.6. КОМБИНАЦИЈЕ Нека је дат скуп A a a a 1, 2,, n. Комбинација класе од k елемената је било која k -торка различитих елемената скупа A. За одређивање свих комбинација класе k у Matlab-у се користи наредба: nchoosek(v,k), где је v скуп елемената. Скупови се у Matlab-у представљају помоћу вектора. Број комбинација износи n n V 1 1 k n n n n k Ck k! k k! n Израз назива се биномни коефицијент и чита се н над к. k За одређивање вредности биномног коефицијена у Matlab-у се користи наредба: nchoosek(n,k). ПРИМЕР 11: Дат је скуп A a, a, a 1 2 3. Колико има комбинација друге класе елемената овога скупа и које су то комбинације? >> syms a1 a2 a3 >> v=[a1 a2 a3] v = [ a1, a2, a3] >> n=3; >> k=2; >> nchoosek(n,k) ans = 3 >> nchoosek(v,k) ans = [ a1, a2] 67

[ a1, a3] [ a2, a3] 8.7. КОМБИНАЦИЈЕ СА ПОНАВЉАЊЕМ ЕЛЕМЕНАТА Нека је дат скуп A a a a 1, 2,, n. Комбинација класе од k елемената са понављањем је n n k 1 n k 1! Ck. k k! n 1! ПРИМЕР 12: Колико различитих бацања је могуће са две коцкице за јамб? A 1, 2,3, 4,5,6, а Напомена: У овом примеру елементи скупа су узимају се по два елемента, јер се бацају две коцкице. >> n=6; >> k=2; >> nchoosek(n+k-1,k) ans = 21 Важна напомена: Основне разлике између пермутација, варијација и комбинација дате су у табели 1. Број елемената Распоред елемената Пермутације Користе све елементе Важан Варијације Не користе све Важан елементе Комбинације Не користе све елементе Није важан Табела 1. ЗАДАЦИ ЗА САМОСТАЛАН РАД: 1. У једној учионици ред са 16 столица заузет је са тачно 16 студената. Колико има могућности за распоред седења студената? РЕШЕЊЕ: 68

2. Одредити број пермутација од елемената a, b, b, c. РЕШЕЊЕ: 3. На тикету спортске прогнозе има 14 сусрета. Колико попуњених колона обезбеђује 14 тачних погодака? РЕШЕЊЕ: 4. Колико различитих лото листића 7/39 је потребно попунити да би се сигурно остварио добитак? РЕШЕЊЕ: 5. Колико има троцифрених бројева који се могу написати са цифрама 2,3,6,7 и 9, при чему цифре не смеју да се понављају? РЕШЕЊЕ: 69

70

Вежба 9 М документи ЦИЉ ВЕЖБЕ Циљ ове вежбе је даље упознавање са радом у софтверским пакетима ОCTAVE и Matlab. Студенти кроз примере уче писање командних и функцијских докумената. Писање докумената различитог типа помоћи ће студентима у решавању сложенијих проблема. 9.1. УВОД Недостатак извршавања наредби у командном прозору је губљење унетих података и свих добијених резултата након завршетка рада у софтверским пакетима Оctave и Matlab. Зато се намеће потреба за формирањем докумената (фајлова) у које се могу сместити програми, нумерички резултати, графици, структуре, a који ће остати трајно сачувани и по потреби бити позивани од стране корисника. Команде се упишу у фајлове, сниме и затим покрену. Покретањем таквог фајла команде се извршавају редом којим су наведене. M фајлови су специфичност програма Оctave и Matlab. То су фајлови који садрже текст у ASCII коду и у имену имају екстензију.m. Постоје две врсте М фајлова: командни (script) и функцијски (function). 9.2. KOMАНДНИ ДОКУМЕНТИ Командни или скрипт документ представља низ OCTAVE или Matlab команди снимљених као засебан програм, које се извршавају када се фајл позове. Формирање фајлова врши се коришћењем едитора текста који се у OCTAVE програмском пакету покреће тако што се из менија View командног прозора бира команда Dock Tools, а затим опција 71

Editor. Други начин да се отвори Editor је кликом на иконицу. Тада се отвара нов прозор за писање програма. Команде се пишу ред по ред. OCTAVE аутоматски додељује број новом реду када се притисне тастер Enter. Скрипт фајл мора бити снимљен да би се могао покренути. То се ради наредбом Save As из менија File Editor-a, после чега бира се место где ће се снимити фајл и име под којим се снима. Правила за имена су иста као и за имена променљивих (почињу словом, могу садржати цифре и имају највише 63 знака). Имена скрипт фајлова не могу бити имена OCTAVE команди или имена променљивих које дефинишете. Програм се извршава укуцавањем имена фајла без екстензије и притиском на тастер Enter или кликом на иконицу. Промена између Editor-a и Octave Terminal-a где ће бити приказан резултат извршавање документа врши се помоћу падајућег менија приказаног на следећој слици. 72

Формирање фајлова врши се коришћењем едитора текста који се у Matlab програмском пакету покреће тако што се из менија File командног прозора бира команда New, а затим опција M-file. Тада се отвара нов прозор за писање програма. Команде се пишу ред по ред. Matlab аутоматски додељује број новом реду када се притисне тастер Enter. Скрипт фајл мора бити снимљен да би се могао покренути. То се ради наредбом Save As из менија File, после чега бира се место где ће се снимити фајл и име под којим се снима. Правила за имена су иста као и за имена променљивих. Имена скрипт фајлова не могу бити имена Matlab-ових команди или имена променљивих које дефинишете. Програм се извршава укуцавањем имена фајла без екстензије и притиском на тастер Enter. Бржи начин за позивање фајла је помоћу иконице у облику листа папира, са плавом стрелицом усмереном на доле. ПРИМЕР 1: Написати фајл за одређивање збира квадрата првих двадесет природних бројева и сачувати фајл под именом zbirkvadrata. 73