Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Računarstvo i informatika za 2. razred gimnazije

5. Фреквенцијска анализа и секторски дијаграми

У овој лекцији ћеш научити:

  1. како да извршиш фреквенцијску анализу низа података (што је једно компликовано име за једну веома једноставну и корисну ствар); и
  2. како да прикажеш заступљеност неких величина на секторском дијаграму.

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

Фреквенцијска анализа низа података се своди на то да се преброје подаци у низу и да се на основу тако добијених фреквенција података покуша доћи до неког закључка (реч фреквенција значи "учесталост"). На пример, у једном разреду има 30 ученика и њихове оцене из информатике су дате у следећем низу:

In [1]:
oceneInf = [3, 4, 5, 4, 5, 3, 4, 5, 2, 4, 5, 4, 5, 4, 2, 3, 1, 4, 5, 4, 3, 2, 3, 4, 5, 4, 5, 5, 4, 3]

Фреквенцијска анализа овог низа се своди на то да се утврди колико има петица, четворки, тројки, двојки и јединица у том разреду. Уместо да то урадимо ручно (рецимо, да направимо табелицу па да "лупамо рецке"), пустићемо Пајтон да то уради за нас. Пајтон има уграђену функцију count која може да преброји колико пута се у некој листи јавља неки елемент:

In [2]:
ocena5 = oceneInf.count(5)
ocena4 = oceneInf.count(4)
ocena3 = oceneInf.count(3)
ocena2 = oceneInf.count(2)
ocena1 = oceneInf.count(1)
print("Ocene u razredu su raspodeljene kako sledi:")
print("Ocenu 5 ima", ocena5, "ucenika")
print("Ocenu 4 ima", ocena4, "ucenika")
print("Ocenu 3 ima", ocena3, "ucenika")
print("Ocenu 2 ima", ocena2, "ucenika")
print("Ocenu 1 ima", ocena1, "ucenika")
Ocene u razredu su raspodeljene kako sledi:
Ocenu 5 ima 9 ucenika
Ocenu 4 ima 11 ucenika
Ocenu 3 ima 6 ucenika
Ocenu 2 ima 3 ucenika
Ocenu 1 ima 1 ucenika

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

Ако желимо да одредимо релативне односе бројева оцена, добијене бројеве ћемо исказати у процентима:

In [3]:
ukupno = len(oceneInf)
procenat5 = 100.0 * ocena5 / ukupno
procenat4 = 100.0 * ocena4 / ukupno
procenat3 = 100.0 * ocena3 / ukupno
procenat2 = 100.0 * ocena2 / ukupno
procenat1 = 100.0 * ocena1 / ukupno
print("Ocene u razredu su raspodeljene kako sledi:")
print("Ocenu 5 ima ", round(procenat5, 2), "% ucenika", sep="")
print("Ocenu 4 ima ", round(procenat4, 2), "% ucenika", sep="")
print("Ocenu 3 ima ", round(procenat3, 2), "% ucenika", sep="")
print("Ocenu 2 ima ", round(procenat2, 2), "% ucenika", sep="")
print("Ocenu 1 ima ", round(procenat1, 2), "% ucenika", sep="")
Ocene u razredu su raspodeljene kako sledi:
Ocenu 5 ima 30.0% ucenika
Ocenu 4 ima 36.67% ucenika
Ocenu 3 ima 20.0% ucenika
Ocenu 2 ima 10.0% ucenika
Ocenu 1 ima 3.33% ucenika

Дакле, фреквенцијска анализа нам даје вредности у конкретном износу (рецимо, у разреду има 9 петица, 11 четворки и тако даље). Ако ове податке представимо процентима добијамо податке који нам говоре о заступљености оцена у релативним односима.

Тако, у овом разреду има 30% петица (9 / 30 = 30%), 36,67% четворки (11 / 30 = 36,67%), 20% тројки (6 / 30 = 20%), 10% двојки (3 / 30 = 10%) и 3,33% јединица (1 / 30 = 3,33%).

5.2. Секторски дијаграми

У ситуацијама када се приказује колико процената које компоненте учествује у саставу неке целине погодно је податке приказати секторским дијаграмом који представља круг исечен на исечке попут пице. Круг тада представља целину (100%), док исечци представљају компоненте које учествују у целини исказане у процентима.

На пример, оцене из информатике су у једном разреду са 30 ученика расподељене овако:

Оцена Заступљеност оцене
5 9
4 11
3 6
2 3
1 1

Податке из ове табеле ћемо илустровати секторским дијаграмом. Прво ћемо увести библиотеку:

In [4]:
import matplotlib.pyplot as plt

Онда ћемо податке записати помоћу два низа овако:

In [5]:
frekvencije = [9,   11,  6,   3,   1]
ocene       = ["5", "4", "3", "2", "1"]

И сада можемо да пређемо на представљање података дијаграмом. Функција која податке представља секторским дијаграмом се зове pie зато што се у америчком сленгу секторски дијаграми зову pie charts = "тортасти дијаграми". Први аргумент представља низ вредности, док се другим задају ознаке (енгл. label = ознака:):

In [6]:
plt.figure(figsize=(6,6))
plt.pie(frekvencije, labels=ocene)
plt.title("Оцене из информатике")
plt.show()
plt.close()

Ако желимо да нагласимо број петица у разреду можемо одговарајући сектор да "измакнемо" мало из средишта. То се постиже аргументом explode функције pie који за сваки податак у низу каже колико треба да га измакнемо из средишта (0 = не треба изместити сектор из средишта дијаграма; што је већи број, то је и измештање веће).

In [7]:
frekvencije = [9,   11,  6,   3,   1]
ocene       = ["5", "4", "3", "2", "1"]
izmestanje  = [0.1, 0,   0,   0,   0]
plt.figure(figsize=(6,6))
plt.pie(frekvencije, labels=ocene, explode=izmestanje)
plt.title("Оцене из информатике")
plt.show()
plt.close()

Као други пример посматрајмо структуру наше атмосфере. Наша атмосфера је смеша разних гасова, а сув ваздух има следећи састав:

Гас Заступљеност (%)
Азот 78,08
Кисеоник 20,94
Аргон 0,93
Угљен диоксид 0,05

Важно је напоменути да ово није тачан састав наше атмосфере: у њој има и других гасова, али у траговима (како то хемичари воле да кажу) па они нису приказани у табели.

Структуру атмосфере ћемо представити секторским дијаграмом овако:

In [8]:
procenti = [78.08,  20.94,      0.93,    0.05]
oznake   = ["Азот", "Кисеоник", "Аргон", "Угљен диоксид"]
plt.figure(figsize=(7,7))
plt.pie(procenti, labels=oznake)
plt.title("Састав наше атмосфере")
plt.show()
plt.close()

Опет наилазимо на проблем: ознаке за последња два податка су се преклопиле јер се ради о веома уском секторима. Да бисмо решили проблем можемо још више да повећамо дијаграм, а можемо пробати и да последња два "мала" сектора "измакнемо" из средишта, овако:

In [9]:
procenti   = [78.08,  20.94,      0.93,    0.05]
oznake     = ["Азот", "Кисеоник", "Аргон", "Угљен диоксид"]
izmestanje = [0,      0,          0.75,    0.75]
plt.figure(figsize=(7,7))
plt.pie(procenti, labels=oznake, explode=izmestanje)
plt.title("Састав наше атмосфере")
plt.show()
plt.close()

5.3. Задаци

Задатке реши у Џупитеру.

Задатак 1. Број становника наше планете по континентима се процењује овако:

Континент Број становника
Азија 4.584.807.072
Африка 1.320.038.716
Европа 743.102.600
Јужна Америка 658.305.557
Северна Америка 366.496.802
Океанија 41.826.176

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

Задатак 2. Почетком овог века на тржишту оптичких медија тихо се водио рат формата. Са ширењем нових формата видео записа (HD формат пре свега) појавила се потреба за оптичким медијумима већег капацитета, јер на један класичан DVD може да се смести само око 4,5GB података, што није довољно за један филм у HD формату. У финалну битку су ушла два формата: Blu-ray Disc (краће BR) и HD-DVD. Око две године (скоро цела 2006. и цела 2007. година) ова два формата су била приближно изједначена у томе колики удео тржишта обухватају. Онда се почетком 2008. десило нешто неочекивано: у року од недељу дана се ситуација драстично променила. У табели испод је показано учешће ова два формата на светском тржишту на дан 5.1.2008. и 12.1.2008:

Датум Blu-ray Disc HD-DVD
5.1.2008. 51,17% 48,83%
12.1.2008. 92,53% 7,47%

Тако је за само седам дана Blu-ray формат победио и данас је то доминантан формат за складиштење велике количине информација на оптичким медијумима.

(а) Направи два независна секторска дијаграма: један који показује однос ова два формата на тржишту на дан 5.1.2008, и други који показује однос ова два формата на тржишту на дан 12.1.2008.

(б*) Пробај да нађеш на Интернету шта се то десило између 5.1.2008. и 12.1.2008. (Има везе са компанијом Sony, која је подржавала Blu-ray формат, и једним њеним производом.)

Задатак 3. Савршена лимунада се прави овако: једну шољу шећера размутити у једној шољи топле воде док се шећер потпуно не растопи. Сипати у то једну шољу сока од лимуна и додати још три шоље хладне воде. Израчунати у процентима количину воде, шећера и сока од лимуна у савршеној лимунади и приказати те податке секторским дијаграмом, али тако да податак који представља количину шећера буде издвојен.

Задатак 4. Изабел је, гледајући како пада киша у Маконду, одлучила да целе једне године води метеоролошки дневник. Кад год би киша пала у понедељак у дневник би уписала 1; ако би киша пала у уторак у дневник би уписала 2; за среду би уписала 3 и тако редом до недеље (за кишовите недеље у дневник би уписивала 7). Тако је добила следећи низ бројева:

In [ ]:
IzabelinDnevnik = [1,2,4,7,2,4,7,6,7,5,6,7,3,5,7,1,3,6,2,3,4,2,3,1,4,7,7,
                   6,5,6,4,5,6,2,3,4,5,1,3,4,2,5,7,2,3,5,3,5,7,6,7,2,3,7,
                   1,2,3,4,5,6,7,2,7,3,4,1,5,6,1,2,4,5,6,7,1,3,4,1,2,3,4,
                   2,5,7,6,4,5,6,1,3,7,5,7,1,2,3,7,7,3,4,7,1,2,4,7,4,7,2,
                   3,4,4,6,8,1,7,7,7,3,4,5,6,7,1,2,4,7,1,2,3,1,7,2,7]

(а) Колико кишних дана је Изабел уписала у свој дневник?

(б) Искажи број кишних дана у процентима, ако знаш да та година није била преступна.

(в) Утврди колико је Изабел регистровала кишних понедељака, уторака, среда, четвртака, петака и субота у тој години.

(г) Искажи у процентима број кишних понедељака у односу на број свих понедељака у тој години, којих је било 53.

(д) Утврди најкишнији дан у недељи у Изабелином дневнику и прикажи податке добијене под (в) секторским дијаграмом. Издвој у дијаграму најкишнији дан.

Задатак 5. У ћелији испод налази се првих неколико децимала броја $\pi$:

In [ ]:
pi_decimale="141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931"

(а) Утврди колико децимала броја $\pi$ је наведено у стрингу. (Функција len ти може користити.)

(б) Направи фреквенцијску анализу овог стринга тако што ћеш утврдити колико у њему има нула, јединица, двојки, ...., деветки. (Функција count се може применити и на стрингове; рецимо

pi_decimale.count("0")

ће утврдити број нула. Обрати пажњу на то да је нула под наводницима, јер се ради са стринговима!)

(в) Представи број нула, јединица, двојки, ..., деветки које си добио под (б) у процентима.

(г) Прикажи добијене податке секторским дијаграмом.

In [ ]: