PROGRAMIRANJE Uvod Alenka Krape Sonja Buhvald Helena Medveek
PROGRAMIRANJE Uvod Alenka Krapež Sonja Buhvald Helena Medvešek
Reševanje problemov • Množica rešljivih problemov • Množica problemov rešljivih z računalnikom
Od problema do programa 1. Opredelitev problema • kaj že vemo, katere podatke poznamo (vhodni podatki), kaj naj bo rezultat 2. Načrtovanje postopka rešitve (algoritma) • Delitev probleme na manjše (Divide et impera ) 3. Zapis algoritma v programskem jeziku 4. Testiranje programa 5. Rešitev problema z izvajanjem programa
Algoritem = spisek navodil za izvedbo nekega postopka vsako navodilo (= korak algoritma) mora biti DOBRO poznana operacija Algoritmi morajo biti: – nedvoumni – končati se morajo v KONČNEM številu korakov
Algoritem je zaporedje preprostih navodil, ki nas v končnem številu korakov pripeljejo do rezultata. Zapis algoritma v izbranem programskem jeziku = (računalniški) program.
Zapis algoritma • • z besedami s sliko z diagramom … Potrebujemo 5 jajc, 20 dag sladkorja, ščepec soli, 20 dag jedilne čokolade, 25 dag masla. Čokolado razlomimo na koščke in omehčamo nad soparo Umešamo maslo sol in sladkor. Dodamo omehčano čokolado in rumenjake Stepamo, dokler zmes ne postane penasta. Zmes zlijemo v pekač Beljake stepemo v trd sneg. Sneg nanesemo na čokoladno zmes Pečemo na 150° 20 min
Primer Izpis kvadrata poljubnega števila: START Beri A 1. Preberi število A 2. Izračunaj A A*A 3. Izpiši A A A*A Izpiši A STOP
Simboli diagrama poteka PRIMER START PRIREDITEV POTEK a a+1 STOP VEJITEV BRANJE PODATKOV Beri a, b, c IZPIS PODATKOV izpiši a, b, c a+b<c
PODATKI 1. Konstanta 1. Vrednost, ki se med 2. Spremenljivka 2. Ime za prostor v izvajanjem programa ne spreminja pomnilniku, ki je rezerviran za podatke (vsebina), ki je določena s podatkovnim tipom.
PRIREDITVENI OPERATOR PRIMERI Spremenljivka x naj dobi vrednost 10. Spremenljivki n naj se vrednost poveča za 1. Spremenljivki A priredimo matematični izraz B+C. X 10 n n+1 A B+C
VEJITEV Primeri Kadar ne vemo, kakšna bo odločitev. . NE-pogoj ni izpolnjen pogoj Ali dežuje? NE Pojdi na Peco DA DA-pogoj je izpolnjen Ostani doma
ZANKA Kadar želimo, da se ukaz izvede večkrat. . i i+1 NE i > 10 DA
START Ali dani diagram poteka predstavlja algoritem? korak x x 1 x ne x>1 da STOP TABELA REZULTATOV = SLED
START Kakšna vrednost se izpiše? x 1 korak x ne x < 0, 3 da Izpiši x STOP x
Kakšen je rezultat algoritma? START i 1 Izpiši i DA i i+1 i < 20 NE STOP
Primer START Izpiši vrednost spremenljivke y: Beri x y=2 x; x>0 y=3 x-1; x<=0 NE DA x>0 y 3*x - 1 y 2*x Izpiši y STOP
Problem: Reševanje kvadratne enačbe
Pot do algoritma 1. Kaj vemo, katere podatke poznamo, kakšni so možni rezultati? D
START Beri a, b, c D b 2 – 4 ac da D>0 ne x 1 r x 1 i 0 x 2 r x 2 i 0 x 2 i Izpiši x 1 r, x 1 i, x 2 r, x 2 i STOP
Zanka in števec - vaja Dano je zaporedje pozitivnih števil. Znak za konec zaporedja je 0. Sestavimo algoritem, a) ki bere to zaporedje podatkov in izpiše njihovo vsoto; b) izpiše koliko števil je prebral.
Vaja Imamo geometrijsko zaporedje 1, 3, 9, 27, … Razvijmo algoritem, a) ki izpiše tisti člen, ki prvi preseže vrednost 10 000. b) izpiše kateri po vrsti je ta člen.
Zamenjava dveh elementov Imamo spremenljivko a in spremenljivko b. Algoritem naj zamenja vrednosti!
Vaja Kakšni vrednosti imata spremenljivki a in b po izvršitvi naslednjega zaporedja ukazov. a 1 b 2 c b b a a c
Vaja Kakšni vrednosti imata spremenljivki a in b po izvršitvi naslednjega zaporedja ukazov. a a+b b a-b a a-b
Poišči največji element beri A beri B max A max>B ne max B da
Vaja Sestavi algoritem, ki: bere 200 števil in izpiše največje med njimi.
Psevdokoda Beri Max I 1 Ponavljaj beri število če je število > Max, potem Max število I I+1 dokler ni I => 200. Izpiši Max.
Vaja Sestavi algoritem, ki izračuna N! N! = 1*2*3*4*5*…. *N
Vaja Sestavi algoritem, ki: bere 200 števil in izpiše največje in najmanjše med njimi.
Vaja Sestavi algoritem, ki: Omogoča, da preberemo srečno število (5). Ugibamo, dokler ne uganemo. Algoritem na koncu izpiše: Bravo! Uganil si. Srečno število je 5.
Vaja START Kakšno vrednost ima spremenljivka q po izvršitvi algoritma? q 0 ne STOP q < 500 q q+3 da da (q > 70)v(q<90) ne q q+2
START Vaja Preberi n Fibonacci: Izpiši vse člene Fibonaccijevega zaporedja, ki so manjši od prebranega števila. 1 1 2 3 5 8 13 21 34 55 a 0 b 1 b c a b c a+b DA Izpiši b b<n NE STOP
START Vaja Preberi n Izračunaj in izpiši vsoto števk naravnega števila n, ki ga preberemo v 0 NE n <> 0 DA v v+n%10 n n/10 Izpiši b STOP
- Slides: 33