Skip to main content

Рачунарство и информатика за 2. разред гимназије - 22169

Page 1


Рецензенти

Проф. Др Негован Стаменковић, редовни професор

Срђан

Јасмина

Уредници

Министар просвете, науке и технолошког развоја Републике Србије, решењем број 650-02-401/2020-03 од 18.02.2021. године, одобрио је овај уџбеник за издавање и употребу.

37.016:004(075.3)

Марина, 1979Рачунарство и информатика : за други разред гимназије / Марина Лакчевић, Александра Иванов. - 1. изд. - Београд : Завод за уџбенике, 2021 (Београд : Планета принт). - 256 стр. : илустр. ; 24 cm

Тираж 2.000. - Речник: стр. 254-255. - Библиографија: стр. 256.

ISBN 978-86-17-20563-6

1. Иванов, Александра, 1979- [аутор] COBISS.SR-ID 37008649

ISBN 978-86-17-20563-6

Садржај

1.2.

1.16.

1.23.

1.23.2. Форматирање ћелија за приказ датума

1.23.3. Форматирање ћелија за приказ валутних симбола

1.23.4. Форматирање ћелија за приказ процента

1.23.5.

1.23.6.

1.23.6. Оквири ћелија

1.23.7. Поравнање садржаја ћелија

1.29. Креирање графикона коришћењем података из табела

1.29.1. Промена врсте графикона

1.29.2. Премештање графикона

1.29.3. Промена димензија графикона

1.29.4. додавање елемената у графикон

1.29.5. Промена боје позадине графикона

1.30. Припрема излаза

1.30.1. Промена маргина радног листа

1.30.2. Промена оријентације радног листа

1.30.3. Подешавање величине папира

1.30.4. Подешавање радног листа да стане на одређени број страница

1.30.5. заглавље и подножје радног листа

1.30.6. Провера исправности текста и рачунања у

1.30.7.

1.30.8. Подешавање

1.30.9.

1.31. задаци за самосталан рад

2.1. увод у Jupyter notebook

2.2. инсталација Python-a и Jupyter-a

2.3. Jupyter раднa свеска

2.4. Примери решавања једноставних задатака

2.5. Низови података

2.5.1. Основне операције с низовима

2.5.2. Представљање низова помоћу дијаграма

2.6. Табеле

2.6.1. индексирана табела

2.6.2. Транспоноване табеле

2.6.3. анализа табеларно записаних података

2.6.4. Сортирање података у табели

2.6.5. Филтрирање података у табели

2.6.6. Фреквенцијска анализа података у табели

2.6.7. Представљање табеларних података на графикону

2.7. учитавање података из локалних CSV и Excel датотека

2.8. учитавање датотека са интернета

2.9. записивање табеле у датотеку

2.10. задаци за самосталан рад

3.1.

3.2. учитавање

3.3.

3.4.

3.5.

3.5.1. Сабирање

3.5.2. Одузимање

3.5.3. Множење

3.5.4. дељење

3.5.6. Сортирање

3.5.7. Пресликавање

3.5.8. Филтрирање

3.5.9. Минимум и максимум

3.5.10. Линеарна и бинарна претрага

3.6. алгоритми

3.7.

3.8.

Кључне речи

табела, врста, ред, колона, ћелија, тип података, означавање, премештање, копирање, условно

форматирање, формула, адреса, референца, сума, сортирање, филтрирање, референцирање, дијаграм, графикон, анализа података, штампање

CleanSheets, Google Docs Spreadsheet

1.1. Увод у програм Microsoft Excel,

1. насловну линију (Title bar);

2. дугме за

(Minimize),

(Restore/ Maximize) и затварање

(Exit);

3. колоне;

4. формулa бар;

5. ћелију;

6. радни лист (Sheet);

7. редове;

8. траку алата (Ribbon) и

9. линију менија.

опција програма

(Auto recover exceptions for),

(Preserve visual appearance of the workbook),

слика 1.9.

3.

à Најпознатији програм за табеларна израчунавања је Microsoft Excel.

à Када се отвори радна књига, уочава се да она садржи радне

листове. Радни лист има облик табеле. Табела се састоји од

колона (Columns), које су постављене вертикално, и редова (Rows), који су постављени хоризонтално.

à Колоне се обележавају словима абецеде A, B, C…, док се ре-

дови обележавају бројевима 1, 2, 3…

à Ћелија је пресек колоне и реда.

à Адреса или референца је комбинација слова и броја која нам показује у којој колони и ком реду се налази

5.

6.

þ

þ

þ

þ Сачувајте исти документ у верзији Excel 2003 и именујте га као Drugi.

þ Отворите оба документа (Prvi и Drugi).

þ Прелазите с једног на други отворени документ користећи све четири могућности за прелаз.

þ У оквиру подешавања основних опција програма поставите своје име у

за персонализовање копија.

þ Обришите радни лист Novi из документа Prvi.

þ Затворите документ Drugi.

þ Документ Prvi сачувајте у pdf формату.

þ Затворите документ Prvi. Распон

Insert Sheet Rows (сл. 1.30,

левим тастером миша.

à Распон суседних ћелија се означава

те левим тастером миша.

à За уметање новог реда oзначите

Питања за обнављање градива

1. На који начин се означавају ћелија, ред и колона у Excel-у?

2. К ако се означавају суседне колоне и суседни редови, а како несуседне колоне и несуседни редови?

3. Објасните поступак уметања новог реда/нових редова?

4. Објасните поступак уметања нове колоне/нових колона?

ЗадаТа К З а самосТа лан рад

þ Покрените програм Excel.

þ Означите ћелију G5.

þ Oзначите други ред.

þ Означите четврту колону (колону D).

þ Истовремено означите редове 2, 3 и 4.

þ Истовремено означите колоне B, C и D.

þ Истовремено означите редове 2, 4 и 6.

þ Истовремено означите колоне D, F и H.

þ У ћелију А7 упишите своје име.

þ Додајте три реда

1.

2.

2.

2.

3.

1.

2.

3.

Largest to Smallest

My data

Largest (од

Largest to Smallest

à Унети број или датум поравнаће се у ћелији са десне стране, а текст с леве стране.

à Садржај ћелије се мења тако што двапут кликнете на ћелију, обришете нежељени садржај и упишете нови садржај.

à Жељени податак можете пронаћи тако што у менију Home, у палети команди Editing, кликнете на команду Find & Select и у падајућем менију изаберете

à Замена једног податка другим се врши

1.

2.

3.

4.

5. Објасните разлику између

6.

7.

садржај.

à Најлакши начин да

þ Покрените програм Excel.

þ Напишите следеће податке почевши од ћелије F1 до F4: Сомбор, Београд, Нови Сад, Лесковац.

þ Напишите следеће податке почевши од ћелије G1 до ћелије G4: 24, 26, 30, 19.

þ У ћелији F5 напишите Ниш и копирајте садржај

G3.

þ

с

Column

2.

3.

4.

5.

6.

1.23.

2.

Format Cells (сл. 1.79).

Format Cells 3.

Home

Ознака валуте је важна уколико радите на некој књиговодственој табели.

Прво означите ћелије у којима желите да форматирате валутне по-

датке, а потом у менију Home, у па-

лети команди Number, кликнете на

стрелицу са десне стране правоугаоника и у падајућем менију изаберете опцију Currency

Други начин је да означите ће-

лију, отворите прозор Format Cells и у њему кликнете на опцију Currency у пољу Category. Затим кликнете на стрелицу која се налази у оквиру поља Symbol, изабере-

слика

Форматирање

у оквиру поља Border, a затим у падајућем менију одаберите: ú положај оквира (Bottom Border – доња линија, Top Border – горња линија, Left Border – лева

Right

оквира, All Borders –

ње, Outside Borders –

около табеле, Thick Outside Borders –

оквира (Line Color); ú стил

(Line Style) (сл. 1.89).

слика 1.89.

Можете, такође, отворити

прозор Format Cells, у њему

изабрати картицу Alignment

и у оквиру ње:

ú у одељку Horizontal

можете кликнути на

стрелицу и у падајућем менију одабрати опцију како бисте

садржај ћелије пора-

внали хоризонтално;

ú у одељку Vertical

можете кликнути на

стрелицу и у падајућем менију одабра-

како бисте садржај ћелије поравнали вертикално;

ú у одељку Orientation

можете унети број степени у поље Degrees

једноставно по-

линију на сличици

Top/Bottom

ú цео број (Whole Number);

ú децимални број (Decimal);

ú листа (List);

ú датум (Date);

ú време (Time);

ú текст одређене дужине (Text Length); ú корисников критеријум (Custom).

1.

2.

3.

4.

5.

6.

7.

9.

þ

þ

=IF(Uslov, “IspunjenUslov”, “NeispunjenUslov”)

2.

3.

à

à

à

3.

4.

5.

(Existing Worksheet).

PivotTable Options

Classic PivotTable layout (сл. 1.138).

Добићете класичну пивот табелу, са следећим областима:

1. унутрашња област (Drop Value Fields Here) – за нумеричке вредности, као што су оцене, продаја, профит и тако даље,

2. област са леве стране (Drop Row Fields Here) – критеријуми за анализу података по местима, производима, објектима…,

3. област изнад нумеричких вредности (Drop Column Fields Here) – критеријуми за анализу података

(Drop Report Filter Fields Here)

1.138.

Classic PivotTable layout

Запамтите

à Пивот табеле се креирају тако што у менију Insert одаберете опцију PivotTable. Отвориће се прозор Create PivotTable

à Области несређене пивот табеле су:

1. унутрашња област (Drop Value Fields Here) – за нумеричке вредности, као што су оцене, продаја, профит и тако даље,

2. област са леве стране (Drop Row Fields Here) – критеријуми за анализу података по местима, производима, објектима…,

3. област изнад нумеричких

(Drop Column Fields Here)

4.

1.

2.

3. Објасни

6.

прикажете у графикону, а затим у менију Insert, у

команди Charts, одаберете једну

Charts

Insert Charts

1.29.5.

Data Labels

Data Labels

Fill and Line

à Графикони су

у некој табели.

à Основни елементи графикона су: наслов (Chart Title), област графикона (Chart Area), област цртања (Plot Area), назив оса (Axis Title), линије мреже (Gridlines), осе (Axis), легенда (Legend) и вредност података (Data Labels).

à Графикон

Charts

1.

графикона.

2. К ако знате која врста графикона је погодна за коју табелу?

3. На који начин можете променити врсту графикона?

4. К ако се графикон премешта по радном листу?

5. Објасните како се мењају димензије графикона.

6. Који су основни делови графикона?

7. На који начин се мењају делови графикона?

þ

ú Ignore Once

ú Ignore All

ú Add to Dictionary

ú Change

ú Change All

ú Auto Correct

Suggestions

1.

2.

ú Print Active Sheets

4.

Запамтите

à

1.

2.

3.

4.

5.

6.

7.

8. К ако се штампају линије мреже?

9. На који начин се подешава да

10.

11.

1.31.

1.

Кључне речи

Python, Jupyter, Command

Prompt, колона, врста, ћелија, датотека, библиотека, функција, операције, анализа, сортирање, филтрирање, фреквенцијска анализа, увоз, извоз

2.1. Увод у Jupyter notebook

(Guido Van Rossum) је

(Fernando Perez)

рес (Fernando Perez) покушавају

употребљен, али је то претеча Jupytera. Године 2011. направљен је прототип и

2.2. Инсталација Python-a и

Jupyter-a

2.3. Jupyter раднa свеска

Решење

3.

у Jupyter радној свесци

(сл. 2.24). слика 2.24.

Пример 7

Učestalost_nekog_elementa = ime_niza.count(element_koji_se_prebrojava)

Procenat = Učestalost_nekog_elementa*100% / Ukupan_broj_elemenata

sep, скраћено од сепаратор,

може да послужи да уместо размака ставите нешто друго између два аргумента. Посебно је корисно да се између наводника не стави ништа као у нашем примеру (sep= " "). На тај начин се

омогућава да излаз изгледа прегледно. Поступак је приказан на слици 2.31. с лика 2.31.

Релативне фреквенције

à Jupyter је део Python пројекта.

à У 2014. години пројекат Jupyter је започет

у оквиру IPythona.

à Један од захтева за инсталацију Jupyter-а јесте

инсталиран програмски језик Python.

à Command Prompt је командни центар који омо-

гућава куцање наредби у текстуалном облику и

покретање програма.

à Основне компоненте Jupyter-a су кернел (језгро), контролна табла и радна свеска.

à У оквиру Jupyter-a се осим текста могу писати математички изрази, али можемо и да кодирамо, то јест да пишемо Python програме.

à У Jupyter-у се

и фреквенцијска анализа низа.

à Елементи низа се записују у угластим заградама.

à Дужина низа се проналази коришћењем функције len

à Сума елемената низа се израчунава коришћењем функције sum.

à Просек елемената низа се одређује коришћењем функције sum и len

à Највећа и најмања

1.

2.

3.

4.

5. Шта је низ података и како се записује у Jupyter радној

6.

7.

8. Опишите

9. Опишите поступак

10. Опишите поступак

11. Дефинишите сортирање низа.

12. На који начин се сортира низ?

13. Дефинишите филтрирање низа.

14. На који начин се филтрира низ у Jupyter радној свесци?

15. Шта се подразумева под фреквенцијском

16. К ако се врши фреквенцијска анализа

1.

низа у Jupyter-у?

Процењен број становника је: 26.798, 169.495, 57.856, 86.908, 168.118, 175.550, 56.595, 51.613, 213.040, 72.085, 184.488, 107.827, 35.359, 19.788, 44.613, 177.108, 46.815. Живорођених

240, 1.885, 625, 855, 1.967, 1.898, 642, 483, 2.288, 745, 2.081, 999, 404, 168, 515, 1.849, 509. (Подаци су

ú import matplotlib.pyplot as plt

ú Opštine = [“Bar”, “Vož”, “Vra”, “Gro”, “Zve”, “Zem”, “Laz”, “Mla”, “NBg”, “Obr”, “Pal”, “Rak”, “SVe”, “Sopt”, “SGr”, “Čuk”, “Sur”], Procenjen_broj_stanovnika = [26798, 169495, 57856, 86908, 168118, 175550, 56595, 51613, 213040, 72085, 184488, 107827,35359, 19788, 44613, 177108, 46815] – приказивање низова;

ú plt.plot(Opštine, Procenjen_broj_stanovnika) – функција

ú plt.title(“Procenjen broj stanovnika u 2019. godini po opštinama u Beogradu”) – приказ наслова дијаграма:

ú plt.xlabel(“Opštine Beograda”)

ú plt.ylabel(“Broj stanovnika”)

ú plt.show()

plt.close()

то: w (бела), b (плава), g (зелена), r (црвена), m (розе), c (светлоплава), y (жута), k (црна).

понедељакутораксредачетвртакпетаксуботанедеља

Пример 14

Александра

à

à

à

à

à

à

à

2.

3.

4.

5.

6.

7.

па представите на стубичастом дијаграму и појединачне поене и медијану. Стубиће за поене обојте жутом бојом, а стубиће за медијану црвеном бојом. 3. У продавници

ти су следећи: 10, 12, 15, 9, 12, 11, 16, 10, 19, 10, 15, 11, 9, 12, 11, 13, 11, 15, 10, 12, 9, 13, 11, 20, 12, 16, 13, 9, 11, 15.

ú Запишите дате податке у облику низа.

ú Пребројте фреквенције појављивања

ú Представите ове фреквенције на секторском дијаграму.

ú Вредности које су најмање (9) измакните

ú Представите легенду.

на хистограму.

ú Стубиће који представљају податке о женама

2.6. Табеле

табела

Подаци

слика

Пример

Марко Симић666699

Весна Кљајић676799

Сандра Ивковић776799

Ивона Лалић676789

Сара Манов910791010

Бранко Гоговски676789

Ирена Влајић787889

Милош Здравковић889889

Лара Киш676889

2.7.

16

слика 2.69. Индексирана

слика

sortirana_po_broju_predstava = indeksirana_tabela.sort_values(by=”Broj_predstava”, ascending=False) (сл. 2.77).

à Индексирање табеле је поступак уклањања индекса

2.

4.

2.

ú Представите у Jupyter радној свесци

ú Индексирајте табелу и представите је.

ú Прикажите само податке о Милени.

ú Представите колону Број година.

ú Представите транспоновану табелу.

ú Прикажите вредност ћелије која показује број Јанкових година.

ú Прикажите прва три реда табеле.

ú Прикажите последња три реда табеле.

ú просек броја година;

ú медијану висине;

ú максималну масу.

Име и презиме радникасептембароктобарновембардецембар

Марјан Владић54.326,3048.325,5045.320,705.836,50

Милана Радојковић29.830,5032.892,6035.999,6041.328,20

Саша Васић89.325,5083.369,5085.365,506.532,60

Јован Манев27.650,0025.000,0021.365,3025.000,00

Горан Стојковић69.365,0069.555,0087.250,6069.365,00

Емина Лазић45.653,2048.365,3051.389,4044.365,30

Мустафа Муминовић58.325,6055.389,7050.030,0055.392,30

ú Представите ову табелу у Jupyter радној свесци.

ú Прикажите податке који су везани за Милану Радојковић.

ú Израчунајте просечну плату Горана Стојковића.

ú Прикажите

ú Прикажите

ú

Марко Симић666699

Весна Кљајић676799

Сандра Ивковић776799

Ивона Лалић676789

Сара Манов910791010

Бранко Гоговски676789

Ирена Влајић787889

Милош Здравковић889889

Лара Киш676889

3.

5.

6.

Саша Васић89.325,5083.369,5085.365,506.532,60

Јован Манев27.650,0025.000,0021.365,3025.000,00

Горан Стојковић69.365,0069.555,0087.250,6069.365,00

Емина Лазић45.653,2048.365,3051.389,4044.365,30

Мустафа Муминовић58.325,6055.389,7050.030,0055.392,30

Табелу прикажите

https://www.stats.govt.nz/large-datasets/csv-files-for-download/

слика

Jupyter notebook (сл.

слика 2.101.

(сл. 2.105).

слика 2.105. Приказ

2.

3.

6.

1. На веб-страни https://www.stats.govt.nz/large-datasets/csv-files-for-download/ са линка Business operations survey: 2019 – international engagement – CSV преузмите датотеку у CSV формату и сачувајте је у фолдеру Zadaci_Jupyter на десктопу. Преузмите табелу у Jupyter радну свеску.

ú Прикажите првих 15 редова табеле.

ú Прикажите последњих 10 редова табеле.

2. Са сајта Републичког завода за

3.

Програмирањe

3.2. Учитавање података

krave = 3 konji = 3 kokoske = 10

zbir = krave + konji + kokoske #

print (zbir)

ime_i_prezime = input ("Unesite svoje ime i prezime: "); ocene = int (input ("Unesi svoje ocene: ")), итд.

Пример

input(): #

ime_i_ prezime = str (input ("Unesite vase ime i prezime: ")) print ( 'Vase ime i prezime glasi: ', ime_i_prezime )

#

на фарми krave = 3

konji = 3

kokoske = 10

broj_ gusaka = int (input ("unesi broj gusaka: "))

zbir = krave+konji+kokoske+broj_ gusaka print (zbir)

# Број животиња на фарми x = int (input ("unesi ukupan zeljeni broj zivotinja na farmi: ")) krave = int (input ("unesi broj krava: ")) konji = int (input ("unesi broj konja: ")) kokoske = int (input ("unesi broj kokosaka: "))

# Укупан број животиња на фарми zbir = x-krave-konji-kokoske

# Резултат print('Broj ostalih vrsta zivotanja na farmi je: ', zbir)

Функција print()

Функција print()

Пример за функцију print():

# Испис мог имена print ('Moje ime je Marina')

Пример за функцију print():

# Испис мојих оцена print ('Moje ocene su: 4, 5, 5, 4 ,5, 4')

Претпоставимо

# Учитавање из датотеке lines = [line.strip () for line in open ('C:/Users/Marina/Desktop/Phyton/primeri1/text.txt')] print ( lines )

file = open ('C:/Users/Marina/Desktop/Phyton/primeri/text.txt')

text = file.read()

print(text)

1.

2.

3.

4.

5.

3.3. Генерисање података

sest_ brojeva_ sedam = 6*[7] print (sest_ brojeva_sedam)

sest_ brojeva sedam = [7]*6 print (sest_ brojeva_sedam)

from random import randint list = [] for i in range (50) : list.append (randint (1,100)) print (list)

à

програмима користити случајне бројеве.

à Помоћу функције randit добијамо бројеве случајно одабране у задатом опсегу или интервалу, укључујући

следећу изјаву: from random import randint

à Помоћу функције list формирамо листе.

# генерисање листе узастопних бројева од броја 0 до броја 20 redni_ brojevi = [] for i in range (0, 20): redni_ brojevi.append (i) print (redni_ brojevi)

redni_ brojevi = list ( range (0, 20)) print (redni_ brojevi)

cetvrti_ brojevi = list ( range (0, 20, 4)) print (cetvrti_ brojevi)

1.

2.

3.

4.

5.

6.

3.5.1. Сабирање

cokolada = 125 sok = 90 slani_ stapici = 24

potrosili_smo = cokolada+sok+slani_stapici print (potrosili_smo, 'dinara')

cokolada = int (input ("unesi cenu cokolade: ")) sok = int (input ("unesi cenu soka: ")) slani_stapici = int (input ("unesi cenu slanih stapica: "))

potrosio_je = cokolada+sok+slani_stapici print (potrosio_je, 'dinara')

слика 3.16. Програм покренут из окружења IDLE

корисник унесе цену чо-

програм му тражи да унесе цену сока.

слика 3.17.

покренут из

IDLE

слика 3.18.

покренут из

IDLE

слика 3.20.

Осмоугао

а = int (input ("Unesi duzinu stranice "))

b = int (input ("Unesi duzinu stranice "))

c = int (input ("Unesi duzinu stranice "))

d = int (input ("Unesi duzinu stranice "))

e = int (input ("Unesi duzinu stranice "))

f = int (input ("Unesi duzinu stranice "))

g = int (input ("Unesi duzinu stranice "))

h = int (input ("Unesi duzinu stranice "))

obim = a+b+c+d+e+f+g+h print (obim)

for

print

слика 3.22.

Запамтите

Петља for i in range ( ) for (за)

i (назив

in (у) range (распону) (

obim = 44 for i in range (7): a = int (input ("Unesite duzinu stranice ")) obim = obim-a

print ('Duzina stranice iznosi: ', obim) #

a = int (input ("Unesite duzinu stranice: ")) zapremina_kocke = a*a*a

print ('Zapremina kocke iznosi: ', zapremina_kocke)

слика 3.24.

# израчунавање

a = int (input ("Unesi ivicu kvadra a: ")) b = int (input ("Unesi ivicu kvadra b: ")) c = int (input ("Unesi ivicu kvadra c: ")) zapremina_kvadra = a*b*c

print ('Zapremina kvadra iznosi: ', zapremina_kvadra)

слика 3.25.

a = int (input ("Unesite broj: "))

b = int (input ("Unesite broj: "))

c = int (input ("Unesite broj: "))

d = int (input ("Unesite broj: "))

e = int (input ("Unesite broj: ")) proizvod = a*b*c*d*e

print ('Proizvod brojeva je: ', proizvod)

proizvod = 1 for i in range (5): z = int (input ("Unesite broj: ")) proizvod = proizvod * z print ('Proizvod brojeva je: ', proizvod)

3.5.4. Дељење

#

дељење bombone = int (75)

br_ ucenika = float (23)

operator_ deljenja = bombone / br_ ucenika

print ('Svaki ucenik ce dobiti po: ', operator_ deljenja )

operator_ modula = bombone % br_ ucenika

print ('Nakon jednakog deljenja ostaće bombona: ', operator_ modula )

operator_ceo_ broj = bombone // br_ ucenika

print ('Svaki ucenik ce dobiti po: ', operator_ceo_ broj )

3.5.6. Сортирање

# сортирање речи reci = ['Jabuka', 'jabucica', 'Azbuka', 'odbojka', 'Inspiracija'] reci.sort()

print(reci)

'Jabuka', 'jabucica', 'Azbuka', 'odbojka', 'Inspiracija'.

# сортирање речи reci = ['Jabuka', 'jabucica', 'Azbuka', 'odbojka', 'Inspiracija']

reci.sort(reverse=True)

print(reci)

слика 3.30.

def if return del import try elif in while

# сортирање листа помоћу - key параметра ucenici = [

{'Ime': 'Marko', 'razred': 7, 'pros_ocena': 4.75}, {'Ime': 'Jovan', 'razred': 8, 'pros_ocena': 4.82}, {'Ime': 'Petar', 'razred': 7, 'pros_ocena': 4.78}, {'Ime': 'Dragan', 'razred': 6, 'pros_ocena': 4.93}, ]

# сортирање по имену ученика (Узлазним редоследом) ucenici.sort(key=lambda x: x.get('Ime')) print(ucenici)

# сортирање по разреду ученика (Узлазним редоследом) ucenici.sort(key=lambda x: x.get('razred')) print(ucenici)

# сортирање по просечној

ucenici.sort(key=lambda x: x.get('pros_ocena'), reverse=True) print(ucenici)

3.5.7. Пресликавање

а = int (input ("Unesi duzinu stranice "))

b = int (input ("Unesi duzinu stranice "))

c = int (input ("Unesi duzinu stranice "))

d = int (input ("Unesi duzinu stranice "))

e = int (input ("Unesi duzinu stranice "))

f = int (input ("Unesi duzinu stranice "))

g = int (input ("Unesi duzinu stranice "))

h = int (input ("Unesi duzinu stranice "))

obim = a+b+c+d+e+f+g+h

print (obim)

def obim_ osmougla (a, b, c, d, e, f, g, h): return a+b+c+d+e+f+g+h

osmouglovi = [ (3, 4, 5, 6, 7, 8, 9, 10), (5, 12, 13, 16, 17, 21, 22, 30), (7, 24, 25, 31, 32, 2, 3, 9), (6, 10, 11, 12, 16, 24, 22, 17)

] for osmougao in osmouglovi: print (obim_ osmougla (*osmougao))

слика 3.32.

Програм покренут

из окружења IDLE 3.5.8. Филтрирање

Филтрирање

# филтрирање for i in range(3): visina = int(input("Kolika je tvoja visina: ")) if visina >= 160: print visina, "- nedozvoljen pristup u decjoj igraonici" else: print visina, "- dozvoljen pristup u decijoj igraonici"

слика 3.33.

Програм

Такође,

dozvoljena_ visina = [] n = int ( input ( "Unesi broj zainteresovanih: ")) for i in range(n): visina = int ( input ("Kolika je tvoja visina: " )) if visina > 160: print ('nedozvoljena_ visina') if visina <= 160: visina = dozvoljena_ visina.append ( visina ) print ('dozvoljena_ visina')

# минимум najmanji_ prosek_ ocena = min (3.47, 4.02, 3.59, 4.31, 3.67) print (najmanji_ prosek_ ocena) слика 3.34.

слика 3.35.

# минимум

odeljenje1 = min( 3.47, 4.02, 3.59 )

odeljenje2 = min( 4.31, 3.67, 4.11 )

odeljenje3 = min( 3.37, 4.12, 3.77 )

najmanji_ prosek_ ocena = min( odeljenje1, odeljenje2, odeljenje3) print ( najmanji_ prosek_ ocena )

3.36.

#

минимум br_ucenika_u_ odeljenjima = [ 27, 31, 28, 30, 25 ] min_ucenika_u_odeljenju = br_ucenika_u_odeljenjima [0] for i in range (1, len ( br_ucenika_u_odeljenjima )): min_ucenika_u_odeljenju = min ( min_ucenika_u_odeljenju, br_ucenika_u_odeljenjima [i] ) print ('Odeljenje sa najmanjim brojem ucenika ima',min_ucenika_u_odeljenju, 'ucenika')

# минимум

a = 4

b = 2

if a < b: print ('Broj', a ,'je manji od broja',b)

else: print ('Broj', b ,'je manji od broja',a)

слика 3.38.

#

a=5

b=7

c=9 if a<b: if a<c: print ('Broj',a,' je najmanji od brojeva',a,b,c) else: print ('Broj',c,' je najmanji od brojeva',a,b,c) else: if b<c: print ('Broj',b,' je najmanji od brojeva',a,b,c) else: print ('Broj',c,' je najmanji od brojeva',a,b,c)

# максимум najvisi_ prosek_ ocena = max (3.47, 4.02, 3.59, 4.31, 3.67) print (najvisi_ prosek_ ocena)

#

odeljenje1 = max( 3.47, 4.02, 3.59 )

odeljenje2 = max( 4.31, 3.67, 4.11 )

odeljenje3 = max( 3.37, 4.12, 3.77 ) najvisi_ prosek_ ocena = max( odeljenje1, odeljenje2, odeljenje3) print ( najvisi_ prosek_ ocena )

слика 3.41.

#

максимум br_ucenika_u_ odeljenjima = [ 27, 31, 28, 30, 25 ] max_ucenika_u_odeljenju = br_ucenika_u_odeljenjima [0] for j in range (1, len ( br_ucenika_u_odeljenjima )): max_ucenika_u_odeljenju = max ( ma x_ucenika_u_odeljenju, br_ucenika_u_odeljenjima [j] ) print ('Odeljenje sa najvecim brojem ucenika ima',ma x_ucenika_u_odeljenju, 'ucenika')

# максимум a = 4 b = 2

if a > b:

print ('Broj', a ,'je veci od broja',b)

else:

print ( 'Broj', b ,'je veci od broja',a )

#

a=5

b=7

c=9 if a>b: if a>c: print ('Broj',a,' je najveci od brojeva',a,b,c) else: print ('Broj',c,' je najveci od brojeva',a,b,c) else: if b>c: print ('Broj',b,' je najveci od brojeva',a,b,c) else: print ('Broj',c,' je najveci od brojeva',a,b,c)

Непозната реч:

Конјункција или логичко „и” (енгл. And) једна је од бинарних логичких операција чији је резултат „тачно” (енгл. True) само ако су сви операнди тачни, а у свим другим случајевима резултат је „нетачно“ (енгл. False).

pr_ uc1=4.47

pr_ uc2=4.52

pr_ uc3=4.59

pr_ uc4=4.31

pr_ uc5=4.67

if pr_ uc1>=4.50 and pr_ uc2>=4.50 and pr_ uc3>=4.50 and pr_ uc4 >=4.50 and pr_ uc5>=4.50: print ('Svi ucenici su odlicni') else: print ('Nisu svi ucenici odlicni')

слика

на основу њихових

Непозната реч:

просека оцена.

# линеарна претрага

pr_ uc1 = 4.47

pr_ uc2 = 4.52

pr_ uc3 = 4.59

pr_ uc4 = 4.31

pr_ uc5 = 4.67 if pr_ uc1>=4.50 or pr_ uc2>=4.50 or pr_ uc3>=4.50 or pr_ uc4>=4.50 or pr_ uc5>=4.50: print ('Bar jedan od ucenika je odlican') else: print ('Nijedan ucenik nije odlican')

слика 3.46.

Програм

# линеарна претрага proseci_ ucenika = [4.47, 4.52, 4.59, 4.31, 4.67] svi_ ucenici_su_ odlicni = True for prosek_ ucenika in proseci_ ucenika: if prosek_ ucenika < 4.50: svi_ ucenici_su_ odlicni = False if svi_ ucenici_su_ odlicni: print ('Ucenici su odlicni') else: print ('Nisu svi ucenici odlicni')

слика 3.47. Програм

# линеарна претрага proseci_ ucenika = ["", "4.57", "4.52", "4.59", "4.65", "4.67", "3.52", "4.19", "2.65", "3.67"] for pozicija in range (len(proseci_ ucenika)): if proseci_ ucenika [pozicija] == "4.67": print ('Pozicija ucenika je: ', pozicija)

коју

мања од наше тражене вредности, 15 је веће од 7. Наша тражена вредност је мања од пронађене вредности, и самим тим знамо да ће се наша вредност наћи у

левом делу низа. Потом делимо леви део

низа, и долазимо до елемента који садржи

број 5 и он је мањи од елемента који ми тражимо. С обзиром

# бинарна претрага from bisect import bisect_left def BinarySearch(a, x): i = bisect_left(a, x) if i != len(a) and a[i] == x: return i else: return -1

a = ["", 3, 7, 15, 21, 25, 27, 28, 31, 35, 38, 41, 43, 57] x = int(21) res = BinarySearch(a, x) if res == -1:

print('Broj ', x, 'ne postoji u ovom nizu') else:

print('Prvo pojavljivanje broja', x, 'se nalazi na poziciji', res) Пример

слика 3.51.

Програм

# бинарна претрага from bisect import bisect_left def BinarySearch(a, x): i = bisect_left(a, x) if i != len(a) and a[i] == x: return i else: return -1

a = ["", 3, 7, 15, 21, 25, 27, 28, 31, 35, 38, 41, 43, 57] x = int(33) res = BinarySearch(a, x) if res == -1:

print('Broj ', x, 'ne postoji u ovom nizu') else:

print('Prvo pojavljivanje broja', x, 'se nalazi na poziciji', res)

6.

7.

'telefon', 'jabuka', 'Alat', 'Ozren', 'Inspiracija', 'Televizor', 'pegla'.

'Telefon', 'jabuka', 'alat', 'Ozren', 'inspiracija', 'Televizor', 'Pegla'.

9.

10.

12.

13.

14.

15.

16.

17.

# угњежђена петља print ( 'Tablica mnozenja 4 x 4' ) for i in range ( 4 ): print ( 'Tablica mnozenja sa', i+1 )

# следи петља у петљи for j in range ( 4 ) : print ( i+1, "*", j+1, "=", (i+1) * (j+1))

# угњежђена петља print ( 'Tablica mnozenja 4 x 4' ) for i in range ( 4 ): for j in range( 4 ): print format((i + 1)*(j + 1), ' 4', ), print("")

# угњежђена петља print('Tablica mnozenja 10 x 10') for i in range(10): for j in range(10): print format((i + 1)*(j + 1), '4', ), print("")

# угњежђена петља print('Tablica mnozenja 4 x 4') for i in range(4): for j in range(4): print format((i + 1)*(j + 1), '8', ), print("")

for i in range (0, x+1): for j in range (x-i): print ('#'), print("")

#

x=10 for i in range (0, x+1): for j in range (x-i): print (""), for j in range (2*i-1): print ('#'), print("")

слика 3.61.

x = 5 for i in range (0, x+1): for j in range (10): print ('#'), print("")

1.

2.

3.

4.

5.

6.

8.

11.

matrica =[] for i in range (5): matrica.append ([]) for j in range (5): matrica[i].append ( i+j ) print(matrica)

#

5 * 5

мatrica=[[0,1,2,3,4], [5,6,7,8,9], [0,0,0,0,0], [9,8,7,6,5], [4,3,2,1,0], ] for i in range(5): for j in range(5): print(matrica[i][j]), print("")

# матрица 5 * 5 matrica =[] for i in range (5): matrica.append ([]) for j in range (5): matrica[i].append ( i+j ) print(matrica[i][j]), print("")

# сабирање елемената матрице matrica= [[1,2,3],[4,5,6],[8,7,9]] for i in range (3): for j in range (3): print (matrica [i][j]), print ("")

ukupno = 0 for r in matrica: for vrednost in r: ukupno = ukupno + vrednost print ('Zbir svih elemenata matrice je: ', ukupno)

#

matrica1= [[3,2],[2,4]]

matrica2= [[1,2],[3,4]] matrica3= [[0,0],[0,0]]

for i in range (2): for j in range (2): print (matrica1 [i][j]), print ("") print ("")

for i in range (2): for j in range (2): print (matrica2 [i][j]), print ("") print ("")

for i in range (len(matrica1)): for j in range (len(matrica2)): matrica3[i][j] = matrica3[i][j]+ matrica1[i][j]+ matrica2[i][j] print('Zbir matrice u listi: ', matrica3) print ("")

for i in range (2): for j in range (2): print format( matrica3 [i][j], '3'), print ("")

1.

2.

3.

4. Напишите

вредностима.

5. Коришћењем петље исписати матрицу са

[[2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8]].

6. Напишите програм са већ постојећом листом, [[1, 0, 1, 2, 3], [3, 3, 4, 2, 1], [4, 2, 3, 6, 8], [1, 2, 3, 4, 5]], који ће исписати матрицу коришћењем петље.

7. Коришћењем петље исписати матрицу са већ постојећом листом, [[2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8]], и

8. Напишите програм са већ постојећом листом, [[1, 0, 1, 2, 3], [3, 3, 4, 2, 1], [4, 2, 3, 6, 8], [1, 2, 3, 4, 5]], који ће исписати матрицу коришћењем петље

9. Правилно формирати

листом матрица, М1 = [[2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7], [5, 6, 7, 8]]

М2 = [[1, 0, 1, 2], [3, 3, 4, 2], [4, 2, 3, 6], [1, 2, 3, 4]]

М3 = М1 + М2, - исписати збирове њихових

- правилно формирати испис матрице М3.

10. Правилно формирати

листом матрица, А1 = [[1, 0, 1, 2, 3], [3, 3, 4, 2, 1], [4, 2, 3, 6, 8], [1, 2, 3, 4, 5]] А2 = [[4, 7, 3, 2, 3], [5, 4, 6, 2, 2], [5, 3, 1, 7, 7], [1, 2, 3, 4, 5]] А3 =А1+А2,

збир њених вредности.

a = int (input ("Unesi duzinu stranice "))

b = int (input ("Unesi duzinu stranice "))

c = int (input ("Unesi duzinu stranice "))

d = int (input ("Unesi duzinu stranice "))

e = int (input ("Unesi duzinu stranice "))

f = int (input ("Unesi duzinu stranice "))

g = int (input ("Unesi duzinu stranice "))

h = int (input ("Unesi duzinu stranice ")) prosecna_ duzina_stranice = float(a+b+c+d+e+f+g+h)/8 print (prosecna_ duzina_stranice)

duzina = 0 for i in range (8): z = float(input ("Unesite duzinu stranice ")) duzina = duzina + z prosecna_ duzina = duzina/8 print (prosecna_ duzina)

# множење матрица

matrica1=[[1,2],[4,5],[7,8],[4,5]]

matrica2=[[1,2,3],[4,5,6]]

matrica3=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]

for i in range (4): for j in range (2): print (matrica1 [i][j]), print ("") print ("")

for j in range (2): for k in range (3): print (matrica2 [j][k]), print ("") print ("")

for i in range (len(matrica1)): for j in range (len(matrica2[0])): for k in range (len(matrica2)): matrica3[i][j] = matrica3[i][j]+matrica1[i][k]*matrica2[k][j] print('Pomnozene matrice u listi: ', matrica3) print ("")

for i in range (4): for j in range (3): print format( matrica3 [i][j], '4'), print ("")

broj=24 matrica=[] for i in range (3): matrica.append([]) for j in range (3): matrica[i].append((i+j) * broj) print (matrica)

matrica=[]

matrica.append([1, 2, 3])

matrica.append([4, 5, 6])

matrica.append([7, 8, 9]) print (matrica) print ("")

for red in matrica: print red print ("")

print (matrica[0][0]) print (matrica[1][1]) print (matrica[2][2])

конјункција или логичко „и” (енгл. And) –

случајева, у којима је резултат „нетачно” (енгл.

оптимална

Литература

1. Alex Galea: Beginning Data Science with Paython and Jupyter, Packt Publishing 2018.

2. Curtis Frye: Excel 2016, Korak po korak, CET Beograd, 2016.

3. A Practical Introduction to Python Programming / Brian Heinold Department of Mathematics and Computer Science Mount St. Mary’s University

4. Python Tutorial / Guido van Rossum and the Python development team

5. Python Basics: A Practical Introduction to Python / Fletcher Heisler, David Amos, Dan Bader, Joanna Jablonski

6. https://petlja.org/biblioteka/r/kursevi/analiza-podataka-gim

7. https://jupyter.org/

8. https://www.python.org/

КБ 22169 • www.zavod.co.rs

Turn static files into dynamic content formats.

Create a flipbook
Рачунарство и информатика за 2. разред гимназије - 22169 by Zavod za udžbenike - Issuu