2.1 Uvod v računalniško programiranje
Download
Report
Transcript 2.1 Uvod v računalniško programiranje
IT
Računalniško
programiranje
Uvod: metode in orodja za
računalniško programiranje
Danijel Rebolj, FG 2007/2008
Literatura
M. Gams: Osnove dobrega
programiranja. CZ, Ljubljana, 1985
Izvajanje programa
I/O podsistem
(periferija)
centralni
elektronski
kompleks
na enoprocesorskem računalniku
centralni
procesor
hitri pomnilnik
(RAM, ROM)
podatkovna
vodila (bus)
osnovne I/O enote izhodne enote zunanji pomnilniki
tipkovnica tiskalniki
miška
risalniki
zaslon
disk
CD
Izvajanje programa
Programski jeziki
Strojni jezik
preprosta binarna koda,
enostavno berljiv za stroj
težko razumljiv za človeka
0110000101100111
1000111001011010
0010010111010110
Programski jeziki
Nizkonivojski jeziki (assembly language)
še vedno na ravni strojnih ukazov
razumljivejši za človeka
LDA 3220
MLT 0012
STO 2423
Programski jeziki
Visokonivojski (visoki) jeziki
En stavek predstavlja več strojnih
ukazov
So na bistveno višji abstraktni ravni kot
nizkonivojski jeziki
Preprosti za razumevanje in uporabo
(programiranje) za človeka
Niso neposredno razumljivi računalniku
Visoki programski jeziki
Značilnosti
prenosljivost (neodvisni od vrste
računalnika)
podobni so naravnim jezikom
veliko število (preko 2000) – nastali so
zaradi različnih potreb (npr. podatkovno
usmerjeni, algoritemski, funkcijski,
logični itd.)
“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)
Osnovna orodja klasičnega
programiranja
urejevalnik (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 programiranja (npr. LSED, TextPad, Bluefish)
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
modul 1
prevajalnik
(compiler)
modul 2
...
modul n
program v
vmesni strojni kodi
združevalnik
(linker)
sistemska
knjižnica
izvajalni
program
program v
strojni kodi
Prevajalniki in združevalniki
Primer: JAVA
TextPad: zapišemo program v jeziku
Java program.java
Javac: prevedemo program
program.java program.class
Java: program.class + vsi potrebni
moduli (sprotno povezovanje)
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 izvedbo
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 programa
Osnova programa je algoritem za
izračun kvadratne enačbe:
ax bx c 0
2
Algorit emza rešit ev:
D b2 4 a c
b D
b D
x1
, x2
2a
2a
Primer enostavnega programa
Kako to “vidi” računalnik:
a
1.0
1
input a,b,c
b
2.0
2
D=b*b-4*a*c
c
-3.0
3
x1=(-b-D^0.5)/(2*a)
16.0
x1 -3.0
4
x1=(-b+D^0.5)/(2*a)
print x1,x2
D
x2 1.0
5
Primer enostavnega programa
Podatkovne strukture:
Double a, b, c, D, x1, x2
Instrukcije (procedura):
Input a, b, c
D=b^2-4*a*c
if 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
Različice
uporabniškega
vmesnika