Transcript Priloga 1_Programiranje_Algoritem
Programiranje Algoritem
Mag. Fani Mavrič Branko Šarabon
29. 04. 2020
Programiranje je proces izdelave računalniškega programa.
Program, ki ga napišemo sami, mogoče res ni najpopolnejši, ker zato nimamo potrebnih izkušenj, vendar je plod naših idej in zamisli, kar pa je tudi nekaj vredno.
2
Uvod
•
program
– zaporedje ukazov in podatkov, ki jih računalnik izvede samostojno in pri tem reši določen problem; • programi – že izdelani (izdelale npr. programske hiše…), – programi za reševanje specifičnih problemov (izdelamo npr. sami) •
programiranje
– vsa dela, ki se nanašajo na izdelavo programa: od analize problema do implementacije* delujočega programa; • opredelitev problema predstavlja opis tega, kar je potrebno narediti, da bi rešili problem opredelitev problema -
KAJ KAKO
razčlenitev problema
* implementacija
– izvršitev, izvedba 29. 04. 2020 3
Informacijska sistemska analiza
je posebno področje računalništva, ki se ukvarja s miselno in učinkovito opredelitvijo problemov za katere naj se izdelajo računalniški programi.
29. 04. 2020 4
Algoritem
•
algoritem
je zaporedje navodil, ki razgrajuje problem na preprostejše probleme, te pa lahko rešimo z zaporedjem preprostih ukazov rešitev problema
Algoritem je postopek, zaporedje definiranih opravil in ukazov, ki zagotavljajo rešitev problema v končnem številu korakov.
• primeri: – hornerjev algoritem za deljenje dveh polinomov, – evklidov algoritem za iskanje največjega skupnega delitelja dveh števil, – algoritem za uporabo mikrovalovne pečice; • Kako podrobno razčlenimo algoritem je odvisno od tistega, ki bo algoritem uporabljal.
• Pogoji, ki jim mora algoritem zadoščati:
zaustavljiv, jasen (zapisan z elementarnimi navodili), nedvoumen;
29. 04. 2020 5
Algoritem
•
Algoritem je zaporedje preprostih navodil, katerih izvršitev nas pripelje do rešitve.
29. 04. 2020 6
Algoritem
• Je zaporedje preprostih navodil, ki nas v končnem številu korakov pripeljejo do rešitve.
– Opredelimo postopek reševanja problema – Določimo operacije, ki jih bomo uporabili – Vsak algoritem se mora enkrat končati 29. 04. 2020 7
29. 04. 2020 Algoritem za poznavalca Algoritem za začetnika 8
Palačinke
• Napišite potek priprave za dobre domače palačinke v obliki algoritma.
29. 04. 2020 9
29. 04. 2020 10
Zapis algoritma
• V računalništvu zapisujemo algoritme z diagramom poteka.
– Elipsa, pravokotnik … – Puščica označuje izvajanje algoritma 29. 04. 2020 11
Diagram poteka z branjem, z izpisom in s prireditvijo
29. 04. 2020 12
Zapis algoritma
• slikovni zapis (npr. s piktogrami) • besedni opis • z dogovorjenimi simboli in navodili –
diagram poteka Diagram poteka
(
flow-chart
) je grafični prikaz struktur s poudarkom na krmiljenju in osnovnih akcijah programa C izpiši delitelj stop start beri a,b
ne
b ≠ 0
da
delitelj ← b b ← a mod b a ← delitelj 29. 04. 2020 13
Prirejanje
Ker želimo algoritmu (programu) zagotovi univerzalnost in ker ne vemo, kako se v postopku spreminjajo vrednosti podatkov, podatke opišemo s spremenljivkami.
Vsaka spremenljivka ima – svoje
ime
, – v določenem trenutku svojo
vrednost
; n ← n + 1 N ← 1 spr ← a + b n ← n + 1 spremenljivka N dobi vrednost 1 spremenljivka n dobi za 1 večjo vrednost Najprej se izračuna desni del prireditve, ki se nato priredi levi strani prireditvenega stavka.
29. 04. 2020 14
Branje / izpis
Nekaterim spremenljivkam v programu moramo posredovati vrednosti.
Branje / izpis
je t.i. vhodno/izhodni stavek. Vrednost spremenljivki v programu posreduje bodisi uporabnik, drug program, naprava… Program rezultate izpiše na zaslon, tiskalnik, jih posreduje drugemu programu.
beri N izpiši N 29. 04. 2020 15
Vejitev
Vejitev je del algoritma, ki njegovo izvajanje cepi na dve veji.
Postopek bo zajel izvajanje tiste veje, ki ustreza vrednosti pogoja. da ne A > B 29. 04. 2020 16
29. 04. 2020
Vejitev
Diagram poteka z vejitvijo V diagramu preberemo dve števili in izpišemo večje 17
Zanka
Zanka ponazarja ponavljanje enega ali zaporedja ukazov.
V postopku izdelave algoritma je število ponovitev lahko znano ali pa tudi ne. za i od 1 do 100 izpiši i a > b da ne a ← a + 1 29. 04. 2020 18
Zanka
29. 04. 2020 Diagram poteka z zanko Algoritem izpiše B mnogokratnikov števila A 19
Naloga
Sestavi diagram poteka za po števanko (prvih 10 ve čkratnikov) prebranega števila.
start beri a i ← 1
da
i ≤ 10
ne
izpiši i*a i ← i+1 stop 29. 04. 2020
Domača naloga:
sestavi diagram poteka, ki bo izračunal
n!
n! = 1*2*3*…*(n-1)*n
20
Naloga
Imamo geometrično zaporedje št. 3: 1, 3, 9, 27, 81 … Kateri po vrsti je tisti člen zaporedja, ki prvi preseže 10 000? Algoritem naj izpiše ta člen ter njegovo zaporedno številko.
29. 04. 2020 21
Rešitev
START A ← 1 I ← 0 A ← 3*A I ← I + 1 NE A > 10 000 DA Izpiši A; I STOP
29. 04. 2020 22
2. Naloga
• Nariši diagram poteka, ki prebere dve števili. Prvo izpiše tolikokrat, kot je vrednost drugega števila. 29. 04. 2020 23
Rešitev
START Vnesi X, vnesi Y ST ← 1 ST <=Y DA Izpiši X NE ST ← ST + 1 STOP
29. 04. 2020 24
29. 04. 2020 Ali:
START Vnesi X, vnesi Y Y > 0 DA Izpiši X NE Y ← Y - 1 STOP
25
Domača naloga
• Nariši diagram poteka, ki prebere dve celoštevilčni vrednosti in izpiše vsa cela števila med njima. – Dodatna naloga: Števila izpiši v pravilnem vrstnem redu, od najmanjšega do največjega.
• Nariši diagram poteka, ki izpiše vsa naravna števila od 1 do 20, razen tistih, ki so deljiva s 3, s 5 ali s 7.
29. 04. 2020 26
Domača naloga
• Nariši diagram poteka, ki prebere rezultate v daljino za N dijakov. Izračuna in izpiše naj srednjo dolžino skoka, najboljši rezultat in zaporedno številko dijaka, ki je skočil najdlje.
29. 04. 2020 27
Literatura
• Rado Wechtersbach: Informatika 29. 04. 2020 28