Vsebina Od problema do načrta programa 1. del

Similar documents
Reševanje problemov in algoritmi

R V P 2 Predavanje 05

Linearne enačbe. Matrična algebra. Linearne enačbe. Linearne enačbe. Linearne enačbe. Linearne enačbe

OPTIMIRANJE IZDELOVALNIH PROCESOV

Osnove numerične matematike

Excel. Matjaž Željko

Univerza v Ljubljani Fakulteta za matematiko in fiziko. Oddelek za fiziko. Seminar - 3. letnik, I. stopnja. Kvantni računalniki. Avtor: Tomaž Čegovnik

Multipla korelacija in regresija. Multipla regresija, multipla korelacija, statistično zaključevanje o multiplem R

Računalnik iz domin. Škafar, Maja Šafarič, Nina Sangawa Hmeljak Mentor: Vid Kocijan

UNIVERZA V LJUBLJANI PEDAGOŠKA FAKULTETA POLONA ŠENKINC REŠEVANJE LINEARNIH DIFERENCIALNIH ENAČB DRUGEGA REDA S POMOČJO POTENČNIH VRST DIPLOMSKO DELO

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Analiza 1 Course title: Analysis 1. Študijska smer Study field. Samost. delo Individ.

Digitalne strukture. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta:

Digitalna tehnika. Delovni zvezek za laboratorijske vaje. doc. dr. Gorazd Pucihar. Ime in priimek študenta:

LISREL. Mels, G. (2006). LISREL for Windows: Getting Started Guide. Lincolnwood, IL: Scientific Software International, Inc.

TOPLJENEC ASOCIIRA LE V VODNI FAZI

OPTIMIZACIJA Z ROJEM DELCEV

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Parcialne diferencialne enačbe Partial differential equations. Študijska smer Study field

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Analiza 3 Course title: Analysis 3. Študijska smer Study field ECTS

Ivan Pucelj: RIMSKE ŠTEVILKE IN RAČUNANJE Z NJIMI. List za mlade matematike, fizike, astronome in računalnikarje

Baroklina nestabilnost

Spletni sistem za vaje iz jezika SQL

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

Cveto Trampuž PRIMERJAVA ANALIZE VEČRAZSEŽNIH TABEL Z RAZLIČNIMI MODELI REGRESIJSKE ANALIZE DIHOTOMNIH SPREMENLJIVK

23. državno tekmovanje v znanju računalništva (1999) NALOGE ZA PRVO SKUPINO

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

NALOGE ZA PRVO SKUPINO

UNIVERZA V NOVI GORICI POSLOVNO-TEHNIŠKA FAKULTETA REŠEVANJE OPTIMIZACIJSKIH PROBLEMOV S PROGRAMSKIM PAKETOM SCICOSLAB DIPLOMSKO DELO.

Kode za popravljanje napak

OFF-LINE NALOGA NAJKRAJŠI SKUPNI NADNIZ

Zgoščevanje podatkov

Hadamardove matrike in misija Mariner 9

Simulacija dinamičnih sistemov s pomočjo osnovnih funkcij orodij MATLAB in Simulink

Iskanje najcenejše poti v grafih preko polkolobarjev

UČNI NAČRT PREDMETA / COURSE SYLLABUS Numerical linear algebra. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

Študijska smer Study field. Samost. delo Individ. work Klinične vaje work. Vaje / Tutorial: Slovensko/Slovene

Optimizacija delovanja in povečanje obiska na spletni strani

Minimizacija učne množice pri učenju odločitvenih dreves

Kristijan Boček. Aritmetična knjižnica vgrajenega sistema za vodenje zaščitnega releja

PRIMERJAVA ANALITIČNIH PROGRAMSKIH ORODIJ PRI REŠEVANJU PROBLEMOV ODLOČANJA V POSLOVNIH PROCESIH

JERNEJ TONEJC. Fakulteta za matematiko in fiziko

Aritmetične operacije v logaritemskem številskem sistemu

Mathematica PRI MATEMATIKI V 1. IN 2. LETNIKU SPLOŠNEGA GIMNAZIJSKEGA PROGRAMA

Paralelni in distribuirani algoritmi v numerični analizi

Teorija verjetnosti uvod. prof. dr. Jurij Tasič Asistent Emil Plesnik Laboratorij za digitalno obdelavo signalov, slik in videa

Linearna algebra. Bojan Orel. Univerza v Ljubljani

OA07 ANNEX 4: SCOPE OF ACCREDITATION IN CALIBRATION

Matematika 1. Gabrijel Tomšič Bojan Orel Neža Mramor Kosta

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo MAGISTRSKA NALOGA. Tina Lešnik

Domen Perc. Implementacija in eksperimentalna analiza tehnike razvrščanja podatkov s konsenzom

Statistika 2 z računalniško analizo podatkov. Neizpolnjevanje predpostavk regresijskega modela

Izvedbe hitrega urejanja za CPE in GPE

2002.X.1 Mobilni milijonar

AKSIOMATSKA KONSTRUKCIJA NARAVNIH

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Verjetnostni algoritmi za testiranje praštevilskosti

Mathcad sa algoritmima

ENAČBA STANJA VODE IN VODNE PARE

Projektovanje paralelnih algoritama II

MECHANICAL EFFICIENCY, WORK AND HEAT OUTPUT IN RUNNING UPHILL OR DOWNHILL

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

Uvod v odkrivanje znanj iz podatkov (zapiski predavatelja, samo za interno uporabo)

VAJE 2: Opisna statistika

2 Zaznavanje registrske tablice

Gregor Papa DOKTORSKA DISERTACIJA. mentor: prof. dr. Franc Bratkovič

SVM = Support Vector Machine = Metoda podpornih vektorjev

modeli regresijske analize nominalnih spremenljivk

Dejan Petelin. Sprotno učenje modelov na podlagi Gaussovih procesov

OPTIMIZACIJSKE METODE skripta v pripravi

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Diferencialne enačbe. Študijska smer Study field ECTS

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

ENERGY AND MASS SPECTROSCOPY OF IONS AND NEUTRALS IN COLD PLASMA

Attempt to prepare seasonal weather outlook for Slovenia

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Ekstremne porazdelitve za odvisne spremenljivke

Uporaba preglednic za obdelavo podatkov

MODELIRANJE IN SIMULACIJA TER NJUNA UPORABA V MEDICINI IN FARMACIJI

Pohitritev izvajanja evolucijskih algoritmov z večprocesorskimi in multiračunalniškimi sistemi

Statistika 2 z računalniško analizo podatkov

Študijska smer Study field. Klinične vaje work. Nosilec predmeta / prof. dr. Peter Legiša, prof. dr. Bojan Magajna, prof. dr.

ZDRAVLJENJE BOLNICE S VON WILLEBRANDOVO BOLEZNIJO TIPA 3 IN INHIBITORJI

NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? R: 9 Odgovor primerno utemelji!

Intervalske Bézierove krivulje in ploskve

Miha Troha. Robotsko učenje in planiranje potiskanja predmetov

Vsebina vaj: Komunikacije v Avtomatiki Avditorne vaje. 1. Postopki cikličnega kodiranja (CRC). 2. Postopki zgoščevanja podatkov (Huffman).

Analiza variance in linearna regresija

Martin Juvan: SPREMENLJIVO ŠTEVILO PARAMETROV. List za mlade matematike, fizike, astronome in računalnikarje

UČNI NAČRT PREDMETA / COURSE SYLLABUS. Študijska smer Study field. Samost. delo Individ. work Klinične vaje work

Linearna regresija. Poglavje 4

Klemen Kregar, Mitja Lakner, Dušan Kogoj KEY WORDS

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. O neeksaknotsti eksaktnega binomskega intervala zaupanja

Ministrstvo za infrastrukturo in prostor Geodetska uprava Republike Slovenije TOPO & INSPIRE WORKSHOP

22. državno tekmovanje v znanju računalništva (1998) NALOGE ZA PRVO SKUPINO. Kaj izpiše naslednji program? Rešitev: str. 8

IZRAČUN POLOŽAJA GPS-SATELITA IZ PODATKOV PRECIZNIH EFEMERID GPS-ORBIT COMPUTATION FROM PRECISE EPHEMERIS DATA

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE

UNIVERZA V MARIBORU FAKULTETA ZA NARAVOSLOVJE IN MATEMATIKO. Oddelek za matematiko in računalništvo DIPLOMSKO DELO. Gregor Ambrož

Katja Tuma Generiranje in reševanje sudokuja

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2016/17) Diferencialne enačbe. Študijska smer Study field ECTS

Gradnja Vietoris-Ripsovega simplicialnega kompleksa

UDK : ISSN Original scientific article/izvirni znanstveni ~lanek MTAEC9, 46(5)471(2012)

UČNI NAČRT PREDMETA / COURSE SYLLABUS (leto / year 2017/18) Predmet: Optimizacija 1 Course title: Optimization 1. Študijska smer Study field

Naloge iz LA T EXa : 3. del

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO. Filip Urh DINAMIČNI PARALELIZEM NA GPE.

Transcription:

Vsebina Od problema do načrta programa 1. del Osnovne strategije iskanja rešitev problema Načini opisovanja rešitev problema Osnovni gradniki rešitve problema Primeri Napišite postopek za kuhanje kave Rešitev problema je opisana kot zaporedje napotkov Napotki si sledijo en za drugim vrstni red je pomemben zaporedje/sekvenca Posamezne korake lahko opišemo podrobneje razgradnja/dekompozicija Razgradnja poteka tako dolgo, dokler ne dobimo enostavnih napotkov V programski kodi se napotki imenujejo stavki ali ukazi. Zaporedje stavkov združujemo v bloke, podprograme in programske module. Napišite postopek za prehod preko ceste pri semaforju Pri nekoliko kompleksnejših problemih nam enostavno zaporedje navodil ne zadostuje Glede na nek pogoj se moramo odločiti katero izmed alternativnih variant bomo izvedli izbira/alternativa V programski kodi izbiro ponazorimo z odločitvenimi stavki Če bo lepo vreme, bom šel na čago, sicer se bom učil OPDP. Če je vrednost imenovalca ulomka enaka 0, javi napako. 1

Izdelajte postopek s katerim boste komplet 52 igralnih kart razdelili na rdeče in črne Zelo pogosto moramo neko sekvenco napotkov večkrat ponoviti število ponovitev je lahko podano naprej ali pa je odvisno od nekega pogoja ponavljanje/iteracija V programski kodi ponavljanje izvajajo ponavljalni stavki/zanke Napišite postopek za izračun končne ocene pri predmetu OPDP, če poznate število točk testov, domačih nalog in vaj Najpogosteje problemi, ki jih rešujemo z računalniki vsebujejo neke matematične izračune V programskem jeziku takšne račune imenujemo izrazi Izrazi so lahko običajno samo enostavne matematične operacije/operatorji: plus, minus, krat, deljeno, ostanek pri deljenju in elementarne matematične funkcije (npr. sinus, logaritem, ). Ploščina kvadrata je: a 2. Razdalja med točkami v ravnini je: (x 2 x 1 ) 2 + (y 2 y 1 ) 2 Tudi pri odločitvah in pogojih za ponavljanje se pojavljajo izrazi povedo, če je nekaj res ali ni logični izrazi Logične izraze lahko kombiniramo z operacijami kot so in, ali in ne/ni Če bo lepo vreme, in če bom imel denar ali pa si ga bom lahko sposodil, in če se ne rabim učiti OPDP, bom šel na čago. V izrazih se lahko pojavljajo nespremenljive (konstantne) vrednosti konstante Druge vrednosti se med izvajanjem postopka spreminjajo spremenljivke Začetne vrednosti spremenljivk določimo z izrazi (prireditveni ) ali pa jih preberemo od zunaj 2

Vrednosti konstant in spremenljivk imajo lahko vrednosti različnih tipov števila, barve, datumi, podatkovni tip Podatkovni tip določa kakšne vrednosti lahko zavzame nek podatek in katere operacije lahko izvajamo nad njimi (kakšne izraze lahko tvorimo z njimi) Pri reševanju problemov z računalnikom se skoraj vedno pojavi potreba po vnosu nekaterih podatkov vhodni parametri programa Ti podatki se potem obdelajo po postopku, ki smo ga določili Na koncu nam mora program izpisati rezultat obdelave izhodni parametri Osnovne strategije iskanja rešitev Iskanje in uporaba obstoječih rešitev Postopna razgradnja problema (top down pristop), pristop deli in vladaj Kombinacija ij različnih ih tehnik Iskanje in uporaba obstoječih rešitev Zelo malo problemov je takšnih, ki bi jih morali razviti čisto od začetka Uporabimo lahko obstoječe ideje in rešitve, ki so jih razvili drugi razvijalci Uporabimo lahko (delne) rešitve lastnih projektov ponovna uporaba (pouporaba) Paziti moramo na avtorske pravice in plagiatorstvo (npr. odprtokodne rešitve) Primeri ponovne uporabe Ponovna uporaba delov programov Programske knjižnice Npr. podatki in manipulacija podatkov o študentih so del večine aplikacij za študentsko evidenco vpisi, izpiti, diplome, spletni ltiračun č študenta, t e vpis, Ponovna uporaba uporabniških vmesnikov Npr. ponovna uporaba uporabniških vmesnikov pri RAD orodjih Ponovna uporaba domačih nalog in programov sošolcev ni dovoljena Obstoječa aplikacija kot osnova za reševanje problemov Obstoječa aplikacija nam lahko služi kot orodje za izdelavo bolj popolnih aplikacij Z analizo obstoječe programske kode lahko pridemo do potrebnih postopkov za rešitev problema reverzni inženiring 3

Postopna razgradnja problema Deli in vladaj Rešitev problema najprej opišemo na najvišjem nivoju (abstraktni oz. kontekstni nivo) Posamezne dele rešitve nato podrobneje razgradimo Postopek ponavljamo tako dolgo, da dobimo lahko obvladljive podprobleme, ki jih je možno pretvoriti v programsko kodo Postopna razgradnja je le ena izmed verzij bolj osnovne strategije reševanja kompleksnejših problemov deli in vladaj: Problem razdelimo na manjše, med seboj neodvisne podprobleme Posamično rešimo vsakega od podproblemov Na koncu delne rešitve podproblemov združimo v končno rešitev problema Problem mora biti razgradljiv Različne metodologije/pristopi k reševanju problemov Strukturni pristop (strukturno programiranje) Objektni pristop (objektno programiranje) Funkcijski pristop Aspektni pristop Načini opisovanja rešitev problema Psevdokod Naravno besedilo za opis postopka z določenimi sintaksnimi omejitvami Diagram poteka Grafična predstavitev dt postopka Nassi Shneiderman diagrami Entitetno relacijski model (podatkovna baza) Razredni diagrami Osnovni elementi algoritmov Programski sklopi Podprogrami funkcije in procedure Programski moduli (datoteke) Spremenljivke, podatkovni dtk itipi, i konstante t in izrazi 4

Osnovni elementi algoritmov Spremenljivke Stavki Elementarni stavki Prireditveni Branje podatkov Izpis podatkov Sestavljeni stavki Zaporedje (sekvenca) Odločitev (izbira, selekcija) Ponavljanje (iteracija) Sočasno izvajanje Spremenljivke so elementi algoritma (programa), ki hranijo neko informacijo potrebno za rešitev naloge Nabor vrednosti, ki jo lahko neka spremenljivka hrani, je določen z njenim podatkovnim tipom Za poimenovanja spremenljivk ima vsak programski jezik določena slovnična pravila 3 2 5 Spremenljivke 3.0 5,98 3,1 A 9 $ Spremenljivko si lahko ponazorimo kot kontejnerje, kjer lahko hrani samo določeno vrsto stvari (papir, steklo, plastika, ) Pri računalniku so različne stvari cela števila, števila z decimalno vejico, črke, v računalniku je naenkrat lahko v kontejnerju samo ena vrednost Poimenovanja spremenljivk Običajno je prvi znak imena spremenljivke črka, ki mu sledi več črk ali števk določeni programski jeziki dopuščajo še kakšne druge znake (npr. podčrtaj) A, I, X, Abrakadabra, Stevec, StElementov, MAX_SIZE, Spremenljivka_z_zelo_dolgim_imenom 6tinivo, va vrednost, Pazi!, #@@%# Nekateri programski jeziki ločijo različne velikosti črk v imenih spremenljivk (C!), drugi ne Spremenljivke V večini programskih jezikov je potrebno spremenljivko, ki jo uporabljamo, predhodno deklarirati oz. specificirati Deklaracija zagotovi (rezervira) prostor za vrednost spremenljivke v pomnilniku računalnika in določi njen podatkovni tip Specifikacija poveže ime spremenljivke v enem programskem modulu in deklaracijo (iste) spremenljivke v drugem modulu ne rezervira nobenega pomnilniškega prostora Spremenljivke Določeni programski jeziki (npr. Basic) dopuščajo uporabo spremenljivk brez deklaracije spremenljivke lahko vsebujeo vrednost (skoraj) poljubnega podatkovnega tipa V algoritmih in načrtih programa deklaracijo spremenljivk običajno izpustimo 5

Podatkovni tipi Podatkovni tipi Določajo nabor vrednosti, ki jih lahko hrani neka spremenljivka ali konstanta oz. nabor vrednosti, ki jih lahko določa (vrača) nek izraz Podatkovni tipi so lahko: enostavni informacijo predstavlja ena vrednost sestavljeni informacija je zgrajena iz več vrednosti (polja, strukture, razredi, ) Vsak podatkovni tip ima definiran nabor operacij (operatorjev in funkcij), ki jih lahko izvajamo nad njegovo zalogo vrednosti in jih uporabljamo v izrazih V programskih jezikih so te operacije strogo določene č V psevdokodu oz. v diagramu poteka sta običajno nabor možnosti in sintaksa bolj ohlapna Operatorji imajo določeno prioriteto (kateri operator se bo izvedel prej) in asociativnost (ali se izvaja iz leve proti desni ali z desne proti levi) Enostavni podatkovni tipi Celoštevilčni podatkovni tip Določajo nabor vrednosti iz množice celih števil v določenem obsegu Običajno ločimo med nepredznačenimi (unsigned) in predznačenimi (signed) celoštevilčnimi podatkovnimi tipi prvi zajemajo samo nenegativne vrednosti, drugi pa dopuščajo tako pozitivne kot negativne vrednosti Enostavni podatkovni tipi Realni podatkovni tip Določajo nabor vrednosti iz množice realnih števil v določenem obsegu in z določeno natančnostjo Logični podatkovni tip Vsebuje nabor vrednosti dveh elementov (True in False) Najpogosteje se uporablja v odločitvenih pogojih stavkov za izbiro in ponavljanje Znakovni podatkovni tip, časovni podatkovni tip, Celoštevilčni podatkovni tip Celoštevilčni podatkovni tip Obseg vrednosti: Primeri za nepredznačena števila 0 255, 0 65535, 0 4294967295 Primeri za predznačena števila 128 +127, 32768 +32767, 2147483648 +2147483647 Operatorji: Operator Opis () Oklepaji spremenijo prednost operatorjev Sprememba predznaka *, / (div), % (mod), ** AND, OR, XOR, NOT Množenje, celoštevilčno deljenje, ostanek pri deljenju, potenca Aritmetični: in, navadni ali, izključen ali, aritmetična negacija +, Seštevanje, odštevanje Funkcije: Funkcija abs(x) sqr(x) round(x) Opis Absolutna vrednost (abs( 3)=>3) Kvadrat števila (enako kot x*x) Zaokrožena vrednost (operand je realna vrednost) (round(0.5)=>1) 6

Realni podatkovni tip Realni podatkovni tip Obseg in napačnost: IEEE realna števila z enojno natančnostjo 1,18*10 38 3,40*10 +38 7 mest natančnosti IEEE realna števila z dvojno natančnostjo 2,23*10 308 1,79*10 +308 15 mest natančnosti Operatorji: Operator Opis () Oklepaji spremenijo prednost operatorjev Sprememba predznaka ** Potenca *, / Množenje in deljenje +, Seštevanje, odštevanje Funkcije: Funkcija abs(x) sqr(x) sqrt(x) sin(x), cos(x), tan(x) log(x), exp(x), log10(x) Opis Absolutna vrednost Kvadrat števila (enako kot x*x) Kvadratni koren števila (sqrt(9)=>3) Krožne funkcije Naravni logaritem, esponent z osnovo e, desetiški logaritem Logični podatkovni tip Logični podatkovni tip Operatorji: Operator Opis () Oklepaji spremenijo prednost operatorjev NOT Logična negacija AND Logični in OR, XOR Logični ali, logični ekskluzivni ali A B NOT A A AND B A OR B A XOR B F F T F F F F T T F T T T F F F T T T T F T T F T True/Res F False/Ni res Relacijski (primerjalni) operatorji delujejo nad drugimi podatkovnimi tipi in vračajo logično vrednost Relacijski operator Opis <, <=, >, >= Je manjši, je manjši ali enak, je večji, je večji ali enak = (==), <> (!=) Je enak, je različen Konstante Simbolične konstante Konstante so elementi algoritma oz. programa, ki nosijo neko informacijo, ki se med izvajanjem ne spreminja Tako kot spremenljivke in izrazi, ima tudi konstanta določen svoj podatkovni tip Številčne konstante 5, 3.6, 12E 3, 0.025 Logične konstante True, False Znakovne konstante A V večini programskih jezikov lahko določenim konstantam priredimo simbolično ime, ki ga potem uporabljamo v kodi Simbolična konstanta se obnaša podobno kot spremenljivka, le da ji naknadno ne moremo spremeni vrednosti Simbolične konstante povečajo preglednost programske kode in enostavnejše spreminjanje #define PI 3.14159 7

Izrazi Izrazi Izraz je kombinacija spremenljivk, konstant, operatorjev in klicev funkcij, ki vrača neko vrednost Glede na tip podatka, ki mu pripada p rezultat izraza, delimo izraze na: matematične (celoštevilčne oz. realne) logične znakovne Izraze različnih tipov običajno ne moremo mešati med seboj oz. jih je potrebno najprej pretvoriti na skupen podatkovni tip (typecasting) Pretvorbo lahko izvede programer (eksplicitno) ali za to poskrbi prevajalnik (implicitno) 3*5.0 pred izračunom se levi operand pretvori iz celega v realno število Številčni izrazi: Zgledi izrazov 3/5.0 3/5 5+8*(2 sqr(5)) 3*sin(0.5) Logični izrazi: Elementarni stavki Prireditveni : izračuna določen izraz in vrednost priredi podani spremenljivki Izraz na desni strani se mora po tipu ujemati s tipomspremenljivkena na levistrani 3>5.0 3>5 8<9 AND (12<3 OR 5<>6) Psevdokod: set spremenljivka = izraz Diagram poteka: ali spremenljivka = izraz spremenljivka = izraz Elementarni stavki Branje podatkov: prebere enega ali več podatkov iz vhodne enote in jih priredi podani spremenljivkam Psevdokod: Diagram poteka: read spremenljivka read spremenljivka Elementarni stavki Izpis podatkov: izpiše enega ali več izrazov na izhodno napravo Psevdokod: d print izraz Diagram poteka: print izraz 8

Zaporedje (sekvenca) Ponazarja zaporedje izvajanja stavkov (elementarnih ali sestavljenih) Stavki se izvedejo en za drugim v podanem zaporedju Psevdokod: Diagram poteka: Zaporedje (sekvenca) Zaporedje elementarnih stavkov enakega tipa običajno navedemo v skupnem bloku: a = 12 b = a*3 begin end ali print a print b Odločitev (selekcija) Glede na nek pogoj se izvede ena izmed dveh (ali več) alternativnih poti skozi postopek Možnih je več različic odločitvenega stavka: Stavek kif brez alternative Stavek if z eno alternativo Sestavljeni if z več alternativami Odločitev (selekcija) Odločitveni z eno alternativo Če je izpolnjen nek pogoj, se izvede določena pot skozi program, sicer se izvajanje tega dela kode preskoči Psevdokod: Diagram poteka: if logični izraz then logični izraz Odločitev (selekcija) Odločitveni z dvema alternativama Psevdokod: Diagram poteka: if logični izraz then logični izraz Odločitev (selekcija) Odločitveni z več alternativami Psevdokod: if logični izraz then if logični izraz then if logični izraz then ali if logični izraz then if logični izraz then if logični izraz then 9

Odločitev (selekcija) Odločitveni z več alternativami Diagram poteka: log. izraz log. izraz log. izraz Komentarji Komentarji so bistveni del vsakega algoritma in programa, ker nudijo razlago rešitve problema Komentarje v programski kodi prevajalnik ignorira Ločimo med: Vrstičnimi komentarji segajo do konca vrstice Blok komentarji zajemajo lahko del vrstice ali več vrstic Primer 1 Komentarji v psevdokodu: // vrstični komentar /* */ blokovni komentar Komentarji v diagramu poteka read x,y Preberemo koordinato točke Naloga: Izdelajte postopek, ki bo izpisal vsoto dveh vnesenih števil. Analizainrazgradnja in problema: 1. Branje dveh števil 2. Izračun vsote 3. Izpis vsote Primer 1 Načrt rešitve s psevdokodom: // 1. Branje dveh števil read stevilo1,stevilo2 stevilo2 // 2. Izračun vsote set vsota=stevilo1+stevilo2 // 3. Izpis vsote print vsota Primer 1 Načrt rešitve z diagramom poteka: read stevilo1 read stevilo2 vsota = stevilo1+ stevilo2 print vsota 10

Posplošitev primera 1 Naloga: Izdelajte postopek, ki bo izpisal XXXX vnesenih števil. Analizainrazgradnjain problema: 1. Branje vhodnih parametrov 2. Izračun izhodnih vrednosti 3. Izpis izhodnih vrednosti Posplošitev primera 1 Načrt rešitve s psevdokodom: // 1. Branje vhodnih parametrov read // 2. Izračun izhodnih vrednosti set // 3. Izpis izhodnih vrednsoti print Posplošitev primera 1 Primer 2 Načrt rešitve diagramom poteka: read Naloga: Izdelajte postopek, ki bo izpisal manjšega in večjega izmed dveh vnesenih števil. Analizainrazgradnja in problema: print 1. Branje dveh števil 2. Ugotavljanje katero število je večje in katero manjše 3. Izpis manjšega in večjega števila Primer 2 Podrobnejša razgradnja problema: 1. Branje dveh števil 2a. Ugotavljanje katero število je manjše 2b. Ugotavljanje katero število je večje 3. Izpis manjšega in večjega števila Rešitev A // 1. Branje dveh števil read stevilo1,stevilo2 // 2a. Ugotavljanje katero število je manjše if stevilo1<stevilo2 then set manjše = stevilo1 set manjše = stevilo2 // 2b. Ugotavljanje katero število je večje if stevilo1<stevilo2 then set večje = stevilo2 set večje = stevilo1 // 3. Izpis manjšega in večjega števila print manjše, večje 11

Rešitev B // 1. Branje dveh števil read stevilo1,stevilo2 /* 2. Ugotavljanje katero število je manjše in katero večje */ if stevilo1<stevilo2 then set manjše = stevilo1 set večje = stevilo2 set manjše = stevilo2 set večje = stevilo1 // 3. Izpis manjšega in večjega števila print manjše, večje Rešitev B manjše = stevilo1 večje = stevilo2 read stevilo1 read stevilo2 stevilo1< stevilo2 manjše = stevilo2 večje = stevilo1 print manjše print večje Primer 3 Primer 3 Naloga: Izdelajte postopek, ki bo določil in izpisal razdaljo med dvema točkama v ravnini. Analizainrazgradnjain problema: 1. Branje koordinat dveh točk 2. Izračun razdalje 3. Izpis razdalje Podrobnejša analiza Kako se izračuna razdalja med dvema točkama v ravnini Pogledamo v matematični priročnik Pogooglamo g Vprašamo profesorja matematike d = (x 2 x 1 ) 2 + (y 2 y 1 ) 2 Primer 3 Načrt rešitve s psevdokodom: // 1. Branje koordinat dveh točk read x1,y1,x2,y2 x2 y2 // 2. Izračun razdalje set d=sqrt(sqr(x2 x1)+sqr(y2 y1)) // 3. Izpis razdalje print d Primer 4 Naloga: Izdelajte postopek, ki bo izpisal kvocient dveh vnesenih števil. V primeru, da je drugo število enako 0, naj izpiše obvestilo o napaki. Analiza in razgradnja problema: 1. Branje dveh števil 2. Ugotavljanje ali je drugo število enako 0 3. Če je, izpis sporočila o napaki 4. Če ni, izračun kvocienta in izpis rezultata 12

Posplošitev primera 4 Naloga: Izdelajte postopek, ki bo XXXX. V primeru, da je YYYY, naj izpiše obvestilo o napaki. Analizainrazgradnjain problema: 1. Branje vhodnih podatkov 2. Ugotavljanje ali so vhodni podatki pravilni 3. Če niso, izpis sporočila o napaki 4. Če so, izračun naloge in izpis rezultata Primer 4 Posplošena rešitev s psevdokodom: // 1. Branje vhodnih podatkov read /* vhodni podatki */ // 2. Ugotavljanje j pravilnosti if not /* podatki pravilni */ then print Napaka // 3. Izračun rezultata /* set rezultat = */ // 4. Izpis rezultata print /* rezultat */ Posplošena rešitev z diagramom poteka read Primer 4 Konkretna rešitev s psevdokodom: print podatki pravilni print Napaka // 1. Branje vhodnih podatkov read a,b // 2. Ugotavljanje j pravilnosti if not (b<>0) then print Napaka // 3. Izračun rezultata set rezultat = a/b // 4. Izpis rezultata print rezultat Konkretna rešitev z diagramom poteka read a,b Primer 5 b<>0 Naloga: Izdelajte postopek, ki bo izpisal večjega izmed dveh vnesenih števil. Analiza in razgradnja problema: kvocient = a/b print Napaka print kvocient 1. Branje dveh števil 2. Ugotavljanje katero število je večje 3. Izpis večjega števila 13

Primer 5 Rešitev s psevdokodo // 1. Branje dveh števil // 2. Ugotavljanje katero število je večje // 3. Izpis večjegaštevila Primer 5 Rešitev s psevdokodo // 1. Branje dveh števil read a,b // 2. Ugotavljanje katero število jevečje // 3. Izpis večjega števila Primer 5 Rešitev s psevdokodo // 1. Branje dveh števil read a,b // 2. Ugotavljanje katero število jevečje if a>b then set vecje = a set vecje = b // 3. Izpis večjega števila Primer 5 Rešitev s psevdokodo // 1. Branje dveh števil read a,b // 2. Ugotavljanje katero število jevečje if a>b then set vecje = a set vecje = b // 3. Izpis večjega števila print vecji Primer 6 Naloga iz lanskega testa: Napišite postopek za izračun končne ocene pri predmetu OPDP, če poznate število točk testov, domačih nalog in vaj. Analiza problema: Prebrali bomo točke testov, vaj in domačih nalog. Nato bomo izračunali skupno število točk. Na koncu bomo izračunali in izpisali končno oceno. // preberemo podatke o točkah read točke_testov, točke_vaj, točke_domačih_nalog // izračunamo skupno število točk set skupne_točke = ROUND( 0.4*točke_testov + 0.4*točke_vaj + 0.2*točke_domačih_nalog) // izračunamo in izpišemo oceno if skupne_točke>=90 then print 10 if skupne_točke>=80 then print 9 if skupne_točke>=70 then print 8 if skupne_točke>=60 then print 7 if skupne_točke>=50 then print 6 print 5 14