Upload
errol
View
62
Download
0
Embed Size (px)
DESCRIPTION
RP&PB Računalniško programiranje. Uvod: metode in orodja za računalniško programiranje Danijel Rebolj 2010. Dodatni viri. M. Gams: Osnove dobrega programiranja. C Z, Ljubljana, 1985 http://en.wikipedia.org/wiki/Programming_language - PowerPoint PPT Presentation
Citation preview
RP&PB Računalniško
programiranjeUvod: metode in orodja za
računalniško programiranje
Danijel Rebolj 2010
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
Programski jezikiStrojni jezikipreprosta binarna koda,enostavno berljiv za strojtežko razumljiv za človeka
011000010110011110001110010110100010010111010110
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)
Programski jeziki – strojni jezikiIzvajanje programa
Programski jezikiNizkonivojski jeziki tudi assembly languageše vedno na ravni strojnih ukazovrazumljivejši za človeka
LDA 3220MLT 0012 STO 2423
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
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.)
Programski jezikiJeziki prihodnosti
Napovedprogramerjev za 2013
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
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)
“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)
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)
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
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.
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)
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
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
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
Primer enostavnega programaRazličice uporabniškega vmesnika