Zavod sv. Stanislava Škofijska klasična gimnazija Program za računanje Maturitetna seminarska naloga iz informatike Kandidat: Tinkara Čadež Mentor: Helena Starc Grlj Ljubljana Šentvid, april 2019
POVZETEK Za maturitetno seminarsko nalogo pri informatiki sem se odločila, da bom izdelala program za računanje in na ta način osnovnošolcem pomagala pri utrjevanju snovi pri matematiki. Izdelala sem program, kjer lahko uporabnik izbira med seštevanjem, odštevanjem, množenjem, deljenjem in preizkusom znanja, pri katerem na koncu izve tudi rezultat, ki ga je dosegel. Program sem izdelala s pomočjo programa Python, objavila pa sem ga tudi na svoji novi spletni strani. ABSTRACT For my matura examination paper at informatics, I decided to create a program for calculating. That way, I could help primary school students at refreshing their maths knowledge. I have created a program, where user can choose between addition, subtraction, multiplication, division and test, which he also find out his results for. When creating my program, I was using Python, the program for programming. I also published the program on my new website. KLJUČNE BESEDE Računanje, programiranje, Python, matematika. 2
Vsebina 1 UVOD... 6 1.1 Vpeljevanje v problem... 6 1.2 Predstavitev problema... 7 1.2.1 Seštevanje... 7 1.2.2 Odštevanje... 7 1.2.3 Množenje... 7 1.2.4 Deljenje... 8 1.2.5 Preizkus znanja... 8 2 TEORETIČNA REŠITEV... 9 3 PRAKTIČNA REŠITEV... 12 3.1 Potrebna oprema... 12 3.2 Potrebni podatki... 12 3.3 Izdelava programa... 12 3.3.1 Uvodna stran... 12 3.3.2 Seštevanje... 13 3.3.3 Odštevanje... 13 3.3.4 Množenje... 13 3.3.5 Deljenje... 14 3.3.6 Preizkus znanja... 14 3.3.7 Zaustavitev programa... 16 3.4 Navodila za uporabnika... 16 3.4.1 Zagon programa... 16 3.4.2 Vpis podatkov... 17 4 SKLEP... 19 4.1 Strnjena vsebina naloge... 19 4.2 Odprta vprašanja in možne izboljšave... 20 3
4.3 Ocena rešitve... 20 5 VIRI IN LITERATURA... 21 Stvarno kazalo deljenje, 6, 14, 15, 19 Deljenje, 7, 8, 14 matematika, 2, 6 množenje, 6, 13, 15 Množenje, 7, 13 odštevanje, 6, 13, 15 Odštevanje, 7, 13 Preizkus, 7, 8, 14 program, 2, 6, 7, 8, 9, 11, 12, 16, 19, 20 računanje, 1, 2, 6, 12 seštevanje, 6, 13, 14 Seštevanje, 7, 13 uporabnik, 2, 6, 7, 9, 11, 14, 16 Kazalo slik Slika 1: Skica prve strani programa.... 9 Slika 2: Skica programa v primeru izbire seštevanja.... 9 Slika 3: Skica programa v primeru izbire števil 2, 3 ali 4.... 10 Slika 4: Diagram poteka iskanja delitelja naključnega števila.... 10 Slika 5: Skica programa v primeru izbire preizkusa znanja in razlaga, kako končati program.... 11 Slika 6: Izbira računske operacije.... 12 Slika 7: Program ob izbiri seštevanja.... 13 Slika 8: Program ob izbiri odštevanja... 13 Slika 9: Program ob izbiri množenja.... 13 Slika 10: Program ob izbiri deljenja.... 14 Slika 11: Program ob izbiri preizkusa znanja in prve tri naloge (seštevanje).... 14 Slika 12: Program z drugimi tremi nalogami preizkusa znanja (odštevanje).... 15 Slika 13: Naslednje tri naloge preizkusa znanja (množenje)... 15 Slika 14: Zadnje tri naloge preizkusa znanja (deljenje).... 15 Slika 15: Program z izračunom procentov in ocene.... 16 Slika 16: Program ob izbiri števila 6 (konec)... 16 Slika 17: Zagon programa z dvojnim klikom miške.... 16 Slika 18: Zagon programa z desnim klikom ("Edit with IDLE").... 17 4
Slika 19: Uporaba programa ob izbiri seštevanja, pravilni odgovori in izstop iz računske operacije.... 17 Slika 20: Zadnji trije računi preizkusa znanja, javljanje rezultata in izstop iz programa.... 18 5
1 UVOD 1.1 Vpeljevanje v problem Ko sem bila sama v osnovni šoli in tudi zdaj, ko opazujem osnovnošolce, sem opazila, da jim v šoli precejšnje težave povzroča matematika, predvsem računanje. Čeprav se učitelji v šolah tej snovi veliko posvečajo se mi zdi, da naloge, narejene v šoli pogosto ne zadostujejo razumevanju osnovne matematične spretnosti. Doma pa, namesto da bi vadili za šolo, novodobni otroci raje sedejo za računalnike in čas zapravljajo z igranjem različnih računalniških igric, ki jih zlahka odvrnejo od šolskega dela. Prav zato sem se odločila, da jim računanje približam tako, da naredim računalniški program, kjer ga bodo lahko vadili. O tem, kaj vse bi moral program vsebovati, sem se pogovarjala z družino, prijatelji in profesorico. Svetovali so mi, da vključim vse štiri glavne računske operacije, torej seštevanje, odštevanje, množenje in deljenje, predlagali pa so mi tudi, da na konec dodam kratek preizkus znanja, ki ga uporabnik lahko opravi. Ker poznam in se učim razumeti samo jezik Python ter se z ostalimi tovrstnimi jeziki še nisem seznanila, sem ga uporabila za ta projekt. Na tem področju še nimam izkušenj, vendar menim, da je Python jezik, ki je uporabniku prijazen za uporabo in zato najprimernejši za mojo nalogo. Tabela 1: Uporabljena strojna in programska oprema. Strojna oprema Programska oprema Intel Core i7-4510u Windows 10 Ultimate RAM 12 GB Python 3.7 Trdi disk 1 TB Filezilla Windows Beležnica Microsoft Word 2013 IDLE 3.7 6
1.2 Predstavitev problema Seveda bi sama rada, da je moj program tudi estetsko dovršen, vendar za njegovo uporabnost to ni bistvenega pomena. Moj cilj je v prvi vrsti enostavno razumljiv program, ki uporabniku nudi različne načine za utrjevanje računskih operacij s pomočjo računov osnovnošolske težavnosti. Končni program mora biti nujno sestavljen iz več sklopov, vsaka računska operacija mora biti predstavljena ločeno, prav tako pa ima vsaka svoje zahteve. Sklopi, ki jih bo program vseboval bodo: Seštevanje Odštevanje Množenje Deljenje Preizkus znanja 1.2.1 Seštevanje Pri seštevanju se je treba zavedati, da osnovnošolci večinoma računajo s števili do 100, zato vsota ne sme presegati tega števila. Računi, ki jih bo program zastavil uporabniku, morajo biti sestavljeni iz celih števil. Če bo vnesen rezultat pravilen, mora program to potrditi, sicer pa mora povedati pravilni odgovor. 1.2.2 Odštevanje Pri odštevanju je pomembno, da je prvo število v podanem računu večje od drugega, saj mora biti razlika dveh števil pri osnovnošolskem računanju pozitivna. Tudi tu je treba upoštevati, da morajo biti vsa števila iz množice celih števil in da nobena ne sme presegati vrednosti 100. Prav tako mora program javiti pravilnost odgovora in rešitev. 1.2.3 Množenje Pri množenju je prav tako največji problem vrednost faktorjev v računu, le da mora biti tu posamezen faktor večji ali enak 10, da produkt ne presega zastavljene maksimalne vrednosti. Tudi tu se uporablja cela števila in program javi, če je uporabnik izračunal pravilen rezultat, oziroma kako bi moral odgovoriti. 7
1.2.4 Deljenje Pri deljenju je potrebno paziti predvsem na to, da je prvo število v podanem številu (deljenec) deljivo z drugim številom (delitelj) in da so vse vrednosti, spet, manjše od 100. Tudi pri tej operaciji morajo biti prisotna le cela števila, program pa mora uporabnika obvestiti o uspešnosti reševanja in navesti rešitev posameznega računa. 1.2.5 Preizkus znanja Kar se tiče preizkusa znanja pa je prav, da pokrije vse računske operacije tako, da uporabniku ponudi nekaj računov iz vsakega sklopa ter mu na koncu javi, kolikšen rezultat je dosegel, in kakšno oceno bi za reševanje dobil v šoli. Pravilo celih števil in doseženih vrednosti števil da mora biti v skladu z zgoraj navedenim. 8
2 TEORETIČNA REŠITEV Program se bo začel z izbiro uporabnika, katere računske operacije bi se lotil najprej. Na izbiro bo imel 4 osnovne računske operacije, preizkus znanja in možnost konca uporabe programa. To bo storil tako, da bo v program vpisal številko, ki se nahaja pred izbrano možnostjo. Slika 1: Skica prve strani programa. Če bo uporabnik za izbrano število vpisal število 1, mu bo računalnik navajal različne račune seštevanja, dokler ne bo za rezultat vpisal števila 0 (prvotno mišljeno naj bi uporabnik za zaključitev programa vpisal presledek). Slika 2: Skica programa v primeru izbire seštevanja. Podobno bo program deloval v primeru izbire števil 2, 3 in 4, do prekinitve (vnos števila 0 kot rezultat - na slikah presledek) bo namreč navajal račune odštevanja (število 2), množenja (število 3) oziroma deljenja (število 4). 9
Slika 3: Skica programa v primeru izbire števil 2, 3 ali 4. Pri deljenju bo postopek nekoliko drugačen, saj bo moralo biti prvo število deljivo z drugim. Obe števili (večje-m in manjše-n) bosta izbrani naključno s pomočjo modula random za naključna števila. Program bo dvojice takih števil iskal, dokler se deljenje ne bo izšlo, pri čemer je treba upoštevati tudi to, da mora za osnovnošolce biti delitelj enomestno število ali 10. Program bo za to poskrbel po naslednjem postopku: Slika 4: Diagram poteka iskanja delitelja naključnega števila. 10
Če se bo uporabnik odločil za preizkus znanja, pa bo dobil vprašalnik, sestavljen iz 12 računov (na sliki 20 računov) - po 3 iz vsake računske operacije (na sliki 5), na koncu pa tudi podatek, koliko procentov je dosegel in kakšna je glede na rezultat njegova ocena. Slika 5: Skica programa v primeru izbire preizkusa znanja in razlaga, kako končati program. 11
3 PRAKTIČNA REŠITEV 3.1 Potrebna oprema Programska oprema: Za izdelavo programa za računanje sem potrebovala program Python (najbolje najnovejšo verzijo) ter operacijski sistem (OS) v mojem primeru je to Windows. Strojna oprema: Potrebovala sem delujoč računalnik z ohišjem, napajalnikom, matično ploščo, procesorjem, grafično kartico, trdim diskom in RAM-om. Naprava mora biti dovolj zmogljiva za uporabo Pythona. 3.2 Potrebni podatki Pred izdelavo programa v Pythonu moramo poznati nekaj osnovnih funkcij, modulov in zank, saj je brez tega tak projekt praktično nemogoč. Za program za računanje sem od modulov potrebovala le modul random (za dostop do le-tega sem potrebovala ukaz import), saj sem pogosto potrebovala naključna števila določene vrednosti. V povezavi z zankami pa sem večinoma potrebovala zanki if in while. 3.3 Izdelava programa 3.3.1 Uvodna stran Ob pritisku na program, se uporabniku odpre stran z navodili, kako mora program uporabljati. Izbira lahko med različnimi računskimi operacijami. Slika 6: Izbira računske operacije. 12
3.3.2 Seštevanje Ob vpisu števila 1 je izbrana operacija seštevanje. 3.3.3 Odštevanje Slika 7: Program ob izbiri seštevanja. Ob vpisu števila 2 je izbrana operacija odštevanje. 3.3.4 Množenje Slika 8: Program ob izbiri odštevanja. Ob vpisu števila 3 je izbrana operacija množenje. Slika 9: Program ob izbiri množenja. 13
3.3.5 Deljenje Ob vpisu števila 4 je izbrana operacija deljenje. Slika 10: Program ob izbiri deljenja. 3.3.6 Preizkus znanja Ob vpisu števila 5 je izbran preizkus znanja, kjer mora uporabnik najprej izračunati 3 račune seštevanja. Slika 11: Program ob izbiri preizkusa znanja in prve tri naloge (seštevanje). 14
Sledijo 3 računi odštevanja. Slika 12: Program z drugimi tremi nalogami preizkusa znanja (odštevanje). Naslednji so 3 računi množenja. Zadnji so 3 računi deljenja. Slika 13: Naslednje tri naloge preizkusa znanja (množenje). Slika 14: Zadnje tri naloge preizkusa znanja (deljenje). 15
Program uporabniku izračuna še procente in navede doseženo oceno. 3.3.7 Zaustavitev programa Slika 15: Program z izračunom procentov in ocene. Če uporabnik izbere število 6, zaustavi program. Slika 16: Program ob izbiri števila 6 (konec). 3.4 Navodila za uporabnika 3.4.1 Zagon programa Uporabnik lahko do programa dostopa na moji spletni strani, od koder jo lahko prenese na svoj računalnik. Da ga lahko uporablja, mora imeti naloženo zadnjo verzijo programa Python in program Idle. Ko ima datoteko prenešeno na računalnik, lahko program zažene na dva različna načina: prvi je, da le z dvojnim klikom miške odpre okno, v katerem se mu izpišejo navodila za začetek programa. Slika 17: Zagon programa z dvojnim klikom miške. Druga možnost pa je, da z desnim klikom miške med možnostmi izbere možnost»edit with IDLE«in nato s pritiskom na tipko F5 zažene program. V nadaljevanju bom prikazala uporabo programa z zagonom na ta način (čeprav je uporaba pri obeh načinih popolnoma enaka). 16
Slika 18: Zagon programa z desnim klikom ("Edit with IDLE"). 3.4.2 Vpis podatkov Ko uporabnik uspešno zažene program, le vpiše številko, ki se nahaja pred izbrano računsko operacijo in s pritiskom na tipko»enter«potrdi svojo izbiro. Prikaže se mu prvi račun, na katerega odgovori tako, da v prostor za ukazom»vpiši rezultat:«vpiše rezultat in ga potrdi s pritiskom na tipko»enter«. Program mu tedaj javi, če je bil pri reševanju uspešen (prvi račun na ekranski sliki), oziroma kakšen je pravilen odgovor (drugi račun na ekranski sliki). Če želi uporabnik zaključiti z uporabo programa pa za rezultat vpiše število 0 in ponovno pritisne tipko»enter«. Takrat mu program ponudi možnost izbire druge računske operacije ali pa zaključitev programa (z izbiro številke 6). Slika 19: Uporaba programa ob izbiri seštevanja, pravilni odgovori in izstop iz računske operacije. 17
Tak krog se ponavlja pri vsaki računski operaciji in traja v nedogled, dokler ni izbrano število 6. Nekoliko drugače je le pri izbiri preizkusa znanja, ki ga ni mogoče zaključiti, dokler niso odgovorjena vsa vprašanja. Na koncu program tudi javi rezultate preizkusa. Slika 20: Zadnji trije računi preizkusa znanja, javljanje rezultata in izstop iz programa. 18
4 SKLEP 4.1 Strnjena vsebina naloge Program sem izdelala točno tako, kot sem si zamislila. Izdelava mi je vzela kar precej časa, saj je bila zadana naloga težavnejša, kot sem pričakovala. Na začetku sem potrebovala kar precej časa za to, da sem se odločila, kakšen program točno bom izdelala. Ni mi bilo treba pretirano brskati po internetu in drugih virih, saj sem nalogo lahko izdelala z znanjem, ki sem ga pridobila pri urah informatike. Za samo idejo in zgradbo programa sem potrebovala sorazmerno malo časa, saj sem takoj vedela kako želim, da izgleda. Programiranja sem se lotila februarja, večino programa pa sem napisala v marcu. Največ časa mi je vzelo določanje omejitev vrednosti števil, ki sem jih uporabila v računih. Menim, da je bila najzahtevnejša operacija deljenje, saj sem morala misliti na to, da sta navedeni števili deljivi in da je težavnost računov primerna za osnovnošolce. Prav težavnost računov pa mi je povzročala težave tudi pri ostalih računskih operacijah, saj tudi sama nisem prepričana, kakšni računi so primerni za osnovnošolce in njihovo znanje računanja. Graf 1: Porabljen čas pri izdelavi naloge. Poraba časa pri izdelavi programa Izbira naloge Načrtovanje Programiranje Pisni del 19
4.2 Odprta vprašanja in možne izboljšave Čeprav je rezultat naloge izpolnil moja pričakovanja menim, da bi program lahko še precej izboljšala: Programu bi lahko dodala nek grafični vmesnik in ga naredila tudi vizualno privlačnejšega. Zaenkrat vse poteka v okviru programa Python, ki ga uporabniki ne razumejo in jim deluje precej dolgočasno. Rada bi, da bi se jim ob zagonu programa odprlo novo, preglednejše okence, kjer bi nato lahko računali (vse skupaj bi bilo bolj podobno spletni strani). Kar se tiče posameznih računskih operacij sem večinoma zadovoljna, le pri preizkusu znanja sem sprva želela, da program uporabniku ob skupnem rezultatu sporoči tudi vse pravilne odgovore na zastavljena vprašanja. Program je omejen samo na osnovne računske operacije, kar bi se dalo še precej razširiti. Lahko bi sklope razdelila na posamezne razrede osnovne šole in uporabnikom nudila širšo izbiro nalog glede na njihovo učno snov. Prav tako bi lahko dodala še vaje za srednješolce (tudi tu bi vključila vse letnike in snov razdelila na posamezne sklope). Preizkus znanja je v mojem programu le eden in povezuje vse računske operacije. Dobro bi bilo, če bi program omogočal tudi preizkus znanja samo iz posamezne operacije. Z uspešno opravljenimi preizkusi znanja pa bi lahko uporabnika tudi na kak način nagradila ali mu omogočila drugačno napredovanje v programu. Zaradi uporabljenih Pythonovih funkcij lahko pride do pojava, ko se dva računa ponovita. Še ena dobra izboljšava bi bila, da bi omogočila, da so računi edinstveni in s tem le še povečala pestrost računov v mojem programu. 4.3 Ocena rešitve Moj program ima precejšnjo uporabno vrednost, saj je koristen za vsakogar, ki bi se rad preizkusil v osnovnih računskih operacijah. Čeprav je v prvi vrsti namenjen osnovnošolcem se mi zdi, da je uporaben tudi za širšo množico ljudi. Z izdelkom sem zelo zadovoljna in vem, da ga bom tudi sama še kdaj uporabljala in preizkusila svoje matematično znanje. 20
5 VIRI IN LITERATURA Refsnes Data: HTML5 Tutorial (online). [Uporabljeno 10. 11. 2018] Dostopno na https://www.w3schools.com/html/default.asp Refsnes Data: CSS Tutorial (online). [Uporabljeno 12. 11. 2018] Dostopno na https://www.w3schools.com/css/default.asp Refsnes Data: Python tutorial (online). [Uporabljeno 24. 2. 2019, 28. 2. 2019, 30. 3. 2019 ] Dostopno na https://www.w3schools.com/python/default.asp Starc Grlj, H.: Zahteve za maturitetno seminarsko nalogo (online). [Uporabljeno 29. 3. 2019, 30. 3. 2019, 8. 4. 2019] Dostopno na https://ucilnica.stanislav.si/course/view.php?id=7 Wechtersbach, R.: Informatika: Učbenik za srednje izobraževanje. Ljubljana, Saji, 2005. Starc Grlj, H. [Ustno izročilo]. Ljubljana, 2019 Živalič, K. [Ustno izročilo]. Ljubljana in Debeni, 2019 21