Algoritmide ja andmestruktuuride
Praktikum
Sügis 2009
Koostas: Elli Kopli
Juhendas: Ain Isotamm
Praktikum 2 (14.09.2009)
Ülesanne 1
Koosta programm, mis küsib kasutjalt lause ja siis pöörab selle ümber. Programmi ajaline
keeukus on O(n).
Lahendus
#include
.....8 ESIMENE TEEMA: sissejuhatav sõnavõtt ehk 'milleks on vaja programmeerimist?'..........................................................................................10 Programmeerimise koht muude maailma asjade seas...............................10 Masinad ja nende juhtimine...................................................................10 Masin arvutamise jaoks - arvuti .............................................................10 Kaudne juhtimine ehk programmeerimine ............................................11 Arvutite rakendusala laienemine ...........................................................11 Programmeerimine tänapäeval..............................................................12 Programmeerimiskeelte üldine jaotus .......................................................13 Imperatiivsed ehk käskivad keeled........................................................14 Funktsionaalsed keeled .................
Meetod (alamprogramm) Java rakendus sisaldab põhiprogrammi (main), millest tõenäoliselt pöördutakse ka mingite alamprogrammide poole. Javas nimetatakse alamprogramme meetoditeks (tulenevalt selle keele objektorienteeritusest) ning meetodid on rühmitatud klasside kaupa. Meetodid võivad olla kas programmeerija enda poolt loodud või Javasse sisse ehitatud (nn. API meetodid, mille kirjelduse leiab Java dokumentatsioonist). Sõltumata sellest, kust meetod pärineb, võib see olla kas klassi- või isendimeetod. Klassimeetod (class method) , mida Javas kirjeldab võtmesõna static, on kasutatav n.ö. "igas olukorras", s.t. ei ole vajalik objektorienteeritud paradigma järgimine (esialgu püüame oma kursuses läbi ajada klassimeetoditega). Täpsemalt öeldes - klassimeetodi poole pöördumiseks ei ole vajalik objekti olemasolu. Klassimeetodi poole pöördumiseks kirjutatakse reeglina: Klassi_nimi . meetodi_nimi ( faktilised_parameetrid ); Kui meetod on defineeritud jooksvas klassis,
................................................................... 76 ÜLESANDED........................................................................................................................... 77 Sissejuhatus................................................................................................................................85 Struktuurprogrammeerimine......................................................................................................85 Objektorienteeritud programmeerimine.................................................................................... 86 Objekt, atribuut, meetod........................................................................................................ 86 Klass.......................................................................................................................................87 Kapseldumine.....................................................................................................................
2. Algoritmi ajaline keerukus (jätk) 2.1. Olulisemad mõisted ([J.Kiho] põhjal ) Def: Algoritmi ajalist keerukust väljendab funktsioon f, mis igale antud algoritmi järgi lahendatavale konkreetsele ülesandele andmemahuga n seab vastavusse ülesande lahendamisel sooritatavate algoritmi sammude arvu f(n). Üldiselt eeldatakse,et antud algoritmi alusel koostatud programmide töö aeg on ajalise keerukuse funktsiooni kordne c*f(n), kus c on konstant. Eriti oluline on algoritmi ajalist keerukust väljendava funktsiooni käitumine alg- andmete mahu piiramatul kasvamisel. Vastavat hinnangut nimetatakse asümptootiliseks hinnanguks. Lahendusaja suhtelist kasvu kirjeldab järgmine tabel: Programmi töö aeg kujul c*f(n) Lahendamise aja suhteline kasv f(25)/f(5) c1*log(n) 2 c2*n2 25 c3*n3 125 c4*2n 1048576 Et kõik funktsi
1 Loeng. Sissejuhatus Võtmesõnad: abstract assert boolean break byte case catch char class const* continue default double do else enum extends final finally float for goto* if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while NB! Tunduvad võtmesõnadena, aga on literaalid: false null true Algtüübid: Täisarvud · byte(8-bitiline), short(16-bitiline ), int(32-bitiline), long(64-bitiline) Ujukomaarvud · float(32-bitiline), double(64-bitiline) Tõeväärtused · boolean(true, false) Sümbolid · char(16-bitiline Unicode-sümbol, 'u0000'(0) kuni 'uffff'(65535)) Nimi: · on tõstutundlik · võib sisaldada tähti, numbreid, _ , $ · ei tohi alata numbriga · ei tohi olla Java võtmesõna, · ei tohi olla true, false, null Ühiksuurendamine, ühikvähendamine ++muutuja : Muutujat suurendatakse
01 - PHP - Sissejuhatus Antud moodul on järgmine samm veebitehnoloogia õppimisel pärast HTML5 ja CSS3 õppimist. Siin õpime kuidas puuta koduleht PHP ja MySQL abil dünaamiliseks. Antud kursuse puhul olen aluseks võtnud vanema php kursuse, mis pärineb aastast 2009 ning oli toetatud e- ope.ee poolt. Et vanemast materjalist mingi jälg maha jääks, lisasin selle PDF dokumenti. Kui materjal on juba olemas, siis miks uuesti? Selle aja jooksul on tekkinud parem arusaam, kui hästi õpilased materjali omandavad ning milline võiks olla parem struktuur. Lisaks sellele tahan iga materjaliga anda kaasa kenasti esitluse ning luua videoõpetused. Kellele on kursus mõeldud? Kursuse loomisel olen eelkõige silmas pidanud oma õpilasi, kellele tuleb see kõik kenasti selgeks teha. Kuid loodan, et sellest on ka teistele kasu, kellega ma kokku otseselt ei puutu. Kursus on ülesehitatud selliselt, et üheskoos tehakse läbi harjutused ning ülesanded
..........................................................................29 Omaloodud andmestruktuur..................................................................................................29 Punktimassiiv....................................................................................................................31 Ülesandeid.........................................................................................................................32 Objektorienteeritud programmeerimine....................................................................................33 Tutvustus...............................................................................................................................33 Klassimuutuja....................................................................................................................34 Osuti, omistamine............................................................................................................. 34
Kõik kommentaarid