RP&PB Računalniško programiranje
description
Transcript of RP&PB Računalniško programiranje
![Page 1: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/1.jpg)
RP&PB Računalniško
programiranjeUvod: metode in orodja za
računalniško programiranje
Danijel Rebolj 2010
![Page 2: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/2.jpg)
Dodatni viri
M. Gams: Osnove dobrega programiranja. CZ, Ljubljana, 1985
http://en.wikipedia.org/wiki/Programming_language
http://en.wikipedia.org/wiki/Timeline_of_programming_languages
![Page 3: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/3.jpg)
Programski jezikiStrojni jezikipreprosta binarna koda,enostavno berljiv za strojtežko razumljiv za človeka
011000010110011110001110010110100010010111010110
![Page 4: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/4.jpg)
Programski jeziki – strojni jezikiIzvajanje programa
centralni
procesor
hitri pomnilnik(RAM, ROM)
cen
traln
i ele
ktro
ns
ki
kom
ple
ks
osnovne I/O enote
zaslon
tipkovnicamiška
izhodne enote
tiskalnikirisalniki
zunanji pomnilniki
disk CD
podatkovnavodila (bus)
I/O
pod
sist
em
(peri
feri
ja)
![Page 5: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/5.jpg)
Programski jeziki – strojni jezikiIzvajanje programa
![Page 6: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/6.jpg)
Programski jezikiNizkonivojski jeziki tudi assembly languageše vedno na ravni strojnih ukazovrazumljivejši za človeka
LDA 3220MLT 0012 STO 2423
![Page 7: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/7.jpg)
Programski jezikiVisokonivojski (visoki) jezikiSo na bistveno višji abstraktni ravni
kot nizkonivojski jezikiPreprosti za razumevanje in
uporabo (programiranje) za človekaNiso neposredno razumljivi
računalniku
P = L*H
![Page 8: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/8.jpg)
Programski jezikiZnačilnosti visokih jezikovneodvisnost od vrste računalnika
prenosljivostpodobni so naravnim jezikomveliko število (preko 2000) –
nastali so zaradi različnih potreb (npr. podatkovno usmerjeni, algoritemski, funkcijski, logični itd.)
![Page 9: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/9.jpg)
![Page 10: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/10.jpg)
Programski jezikiJeziki prihodnosti
Napovedprogramerjev za 2013
![Page 11: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/11.jpg)
Prevajalniki in združevalniki
Prevajalnik transformira izvorni program v semantično identičen strojni jezik.
Združevalnik poveže prevedene module. modul 1
modul 2
modul n
...
program v izvorni kodi
prevajalnik(compiler)
modul 1
modul 2
modul n
...
program v vmesni strojni kodi
združevalnik(linker)
program v strojni kodi
izvajalniprogram
sistemskaknjižnica
![Page 12: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/12.jpg)
Prevajalniki in združevalniki
Primer: JAVATextPad: zapišemo program v
jeziku Java program.javaJavac: prevedemo program
program.java program.classJava: program.class + vsi potrebni
moduli (sprotno povezovanje)
![Page 13: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/13.jpg)
“Klasično” programiranje
Temelji na pojmu algoritma, spremenljivke in Von Neumanovega stroja
Značilnosti: ročno načrtovanje, sekvenčno programiranje, sekvenčno izvajanje programov, ročno kodiranje, ročno upravljanje procesa programiranja
(kodiranje, prevajanje, združevanje in testiranje)
![Page 14: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/14.jpg)
Orodja klasičnega programiranjaurejevalnik (EDI, EDIT)prevajalnik (Fortran, Cobol, Basic, C,
C++, Ada, Pascal, Lisp, Java,...)združevalnik (LINK, LNK)razhroščevalnik (DEBUG)obstajajo tudi kombinirana okolja za
podporo klasičnemu postopku progra-miranja (npr. LSED, TextPad, Bluefish)
![Page 15: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/15.jpg)
Sintaksa in semantika
Pravila, ki določajo kaj je dovoljeno, imenujemo sintaksa jezika (slovnica)
Sintaktično pravilen program je tisti, ki upošteva sintaktična pravila
Pomen programa imenujemo njegovo semantiko (= programska logika)
Semantično pravilen program je tisti, ki počne, kar od njega pričakujemo
![Page 16: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/16.jpg)
Ravni programiranja
Kreiranje kompleksnih programov je mogoče le, če predhodno določimo jasno splošno strukturo.
Načrtovanje splošne strukture programa (Top-down načrt) imenujemo tudi “programiranje v širšem smislu”
“Programiranje v ožjem smislu” (kodiranje), se nanaša na izvajanje detajlov načrta.
![Page 17: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/17.jpg)
Programski gradniki
Podatki: Spremenljivke (reference na pomnilnik)
osnovni tipi (integer, double, string), izpeljani tipi (kombinacije osnovnih tipov),
datoteke (sekvenčne, direktne, indeksne).
Instrukcije: Krmilne strukture (sekvenca, selekcija,
repeticija) Moduli (podprogrami)
![Page 18: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/18.jpg)
Primer enostavnega programaOsnova programa je algoritem za
izračun kvadratne enačbe:
a
Dbx
a
Dbx
cabD
cbxax
2,
2
4
:rešitev za Algoritem
0
21
2
2
![Page 19: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/19.jpg)
Podatkovne strukture:Double a, b, c, D, x1, x2
Instrukcije (procedura):Input a, b, cD=b^2-4*a*cif D < 0 then
print “Ni rešitve…”else
x1=(-b-D^0.5)/(2*a)x2=(-b+D^0.5)/(2*a)print “Rešitev:”,x1, x2
end if
Primer enostavnega programa
![Page 20: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/20.jpg)
Primer enostavnega programaKako to “vidi” računalnik:
a
b
c
D
x1
x2
1
2
3
4
5
input a,b,c
D=b*b-4*a*c
x1=(-b-D^0.5)/(2*a)x2=(-b+D^0.5)/(2*a)print x1,x2
1.0
2.0
-3.0
16.0-3.0
1.0
![Page 21: RP&PB Računalniško programiranje](https://reader035.fdocuments.net/reader035/viewer/2022062805/56814c4e550346895db95b13/html5/thumbnails/21.jpg)
Primer enostavnega programaRazličice uporabniškega vmesnika