Programiranje

Transcription

Programiranje
Osnovni elementi
 Podatki
 Konstante
 Spremenljivke
 Ukazi
Osnove programiranja
 Prireditve in izrazi - računanje
 Zajemanje podatkov in izpis
 Kontrola in vodenje programa (vejitve in zanke)
S primeri v programskem jeziku
FORTRAN in JavaScript
 Strukture
 Komentarji
 Funkcije, metode in podprogrami
 Objekti in podatkovne strukture
Borut Golob
Računalništvo - osnove programiranja
Podatki
Zapis podatkov v računalniku
 Konstante – vrednosti se ne spreminjajo
 Način zapisa v pomnilniku
 Zapis s števili ali znaki
 Imenovane konstante (const, parameter …)
2
 odvisen od tipa podatkov
– različna predstavitev iste kombinacije bitov
 Natančnost in obseg
 Spremenljivke – vrednost se lahko spreminja
 odvisen od dodeljene količine pomnilnika
 običajno 1 bajt (8 bit), 2 bajta (16bit), 4 bajte (32
bit) ali 8 bajtov (64 bit)
 v posebnih primerih moţne operacije na nivoju bita
 Prireditev poljubne vrednosti
 Odvisno od tipa podatkov
 Istočasno pomnijo eno vrednost
 Polja – vrste, tabele … več vrednosti, določene z
indeksi
 Sklicevanje z imeni
Borut Golob
Računalništvo - osnove programiranja
3
Borut Golob
Računalništvo - osnove programiranja
Osnovni tipi podatkov
Sestavljeni tipi podatkov
 Numerični podatki
 Sestavljeni iz osnovnih tipov
 Običajno jih definira uporabnik – programer
 Moţnost dostopa do posameznih elementov
 Cela števila – brez decimalk
 + Absolutna natančnost, - omejen obseg
 Decimalna števila – zapis s plavajočo vejico
(angl. Floating point)
 + povečan obseg, - omejena natančnost
 Zgled: Definiran tip “Zobnik” – vsebuje podatke:




 Nenumerični podatki
 Besedilo – poljubni znaki
 Logični podatki – dve vrednosti: true, false
Borut Golob
Računalništvo - osnove programiranja
5
Odvisen od programskega jezika
Različna slovnična pravila
Običajno razdeljen na ukazne vrstice
Uporaba dovoljenih simbolov
Rezervirana imena – programski ukazi
Komentarji
Računalništvo - osnove programiranja
Borut Golob
besedilo, 10 znakov
celo število
decimalno število
logična vrednost
Računalništvo - osnove programiranja
6
 Opredelitev podatkov
 definicija spremenljivk
 Vhod – vnos potrebnih podatkov
 Obdelava podatkov
 Namenjeni programerju, ne računalniku
 Izboljšajo preglednost kode in olajšajo spremembe
 Večinoma ne vplivajo na hitrost izvajanja
Borut Golob
Oznaka:
Število zob:
Modul :
Čelni zobnik:
Elementarni deli programa
Zapis programske kode






4
7
 Algebraične rešitve (numerične)
 Razvejitev – logične odločitve
 Ponavljanje – zanke
 Izhod – prikaz rezultatov
 Shranjevanje (podatkov in rezultatov).
Borut Golob
Računalništvo - osnove programiranja
8
Razlike v zapisu
FORTRAN = FORmula TRANslation
 Zapis komentarja in programske vrstice v treh
programskih jezikih
 Najboljši jezik za znanstvene aplikacije in numerično
matematiko.
 Je standarden: vsebuje sintaktična pravila, ki jih je mogoče
na kateremkoli računalniku: pisati, prevajati in izvajati.
 Standardi se dopolnjujejo z razvojem programskih jezikov.
 Verzije:
! Fortran
IF (n>0) x=-x
’ VisualBasic
IF n>0 then x=-x
// JavaScript
IF (n>0) {x=-x}
Borut Golob
Računalništvo - osnove programiranja




FORTRAN I
FORTRAN IV (ANSI 1960)
FORTRAN 77 (ANSI 1977)
FORTRAN 95 (ANSI 1995)
FORTRAN II
FORTRAN 66 (ANSI 1966)
FORTRAN 90 (ANSI 1990)
FORTRAN 2003 (zadnja verzija)
 HPF – High Preformance Fortran – paralelno procesiranje
9
Borut Golob
Računalništvo - osnove programiranja
10
Zgled programa
Program v FORTRAN90
Računanje korenov kvadratne enačbe:
Ax2+Bx+C=0 ima znano rešitev
PROGRAM REALNI_KORENI
! Program resi kvadratno enačbo: Ax**2+Bx+C=0
IMPLICIT NONE
REAL :: A,B,C
! Deklaracija spremenljivk
REAL :: diskriminanta,ko1,ko2
PRINT*,'Vnesi koeficiente A,B,C'
READ*,A,B,C
! Bere koeficiente enačbe
diskriminanta=b**2-4.0*A*C
! Računa diskriminanto
IF(diskriminanta<0.0)THEN
PRINT*,' ni realnih korenov'
ELSE
! izračun korenov
ko1=(-B+SQRT(diskriminanta))/(2.0*A)
ko2=(-B-SQRT(diskriminanta))/(2.0*A)
PRINT*, 'korena sta:',ko1,ko2
! Izpise oba korena
ENDIF
END PROGRAM REALNI_KORENI
 B  B 2  4 AC
x
2A
kjer so koreni realni
če je diskriminanta (B2-4AC)
večja ali enaka nič.
Izgled programa, ki zahteva koeficiente enačbe
(A,B,C) in izpiše realne korene kvadratne enačbe,
ponazarja mnoge lastnosti programskega
jezika Fortran.
Borut Golob
Računalništvo - osnove programiranja
11
Borut Golob
Računalništvo - osnove programiranja
Struktura programa v Fortran
JavaScript = ECMAScript ≠ Java
Program IME




Glava s komentarji, namenom programa, avtor
Deklaracija spremenljivk
12
Skriptni jezik – (script = ukazna datoteka)
Tolmač (angl. Interpter) – sprotno izvajanje
Izvajanje v brskalniku – večina podpira
Razvoj
 1995 – Sun -> Java
 Istega leta – Netscape – Live script
Telo programa
 Kasneje preimenovan v JavaScript
 Konkurenca – Jscript (Microsoft iz VBScript)
End
 Standardizacija – ECMAscript
Borut Golob
Računalništvo - osnove programiranja
13
Borut Golob
Računalništvo - osnove programiranja
JavaScript - uporaba
JavaScript - umestitev
 Tekstna datoteka s pripono .html
 V telo – <body>









<html>
<body>
<script type="text/javascript">
<!-document.write("Program v JavaScriptu");
//-->
</script>
</body>
</html>
Borut Golob
Računalništvo - osnove programiranja
14
 Izvajanje takoj
 V glavo – <head>
 Imenovanje – definicija: function Ime()
 Izvajanje ob klicu
 Lahko tudi ob nalaganju: <body onload=“Ime()”>
 Zunanja datoteka s končnico .js
 Vključitev z določilom src
<script type="text/javascript" src="xxx.js"></script>
15
Borut Golob
Računalništvo - osnove programiranja
16
Tipi podatkov - FORTRAN
Zgled
 Numerični:
 // berem podatke – koeficiente enačbe
 var a=+prompt("Vnesi a","1"); var b=+prompt("Vnesi b","-5");
 var c=+prompt("Vnesi c","3");




 var d=b*b-4*a*c; //izračun diskriminante







–
–
–
–
Cela števila
Realna (decimalna) števila
Kompleksna števila
Dvojna natančnosti
 Nenumerični:
if (d<0) {
document.write("Ni realnih korenov")
}
else {
//Izračun korenov
var x1=(-b+Math.sqrt(d))/(2*a)
var x2=(-b-Math.sqrt(d))/2/a
document.write("X1="+x1 + ",<BR>X2=" + x2) }
Borut Golob
INTEGER
REAL
COMPLEX
DOUBLE PRECISION
 CHARACTER
 LOGICAL
– Znakovni podatki
– Logični (.TRUE. .FALSE.)
 Izvedeni: programer definira kombinacijo tipov
spremenljivk (podobno kot v objektnih jezikih)
17
Računalništvo - osnove programiranja
Borut Golob
Računalništvo - osnove programiranja
Cela števila - INTEGER
Decimalna števila - REAL
 Obseg 4 bajte (32 bit)
 Obseg 4 bajte (32 bit)
-231
231-1
 Razpon:
do
 -2.147.483.648 do +2.147.483.647
 1 bit predznak, 23 bit mantisa, 8 bit eksponent
 Natančnost 6 mest
 Razpon: ~ od -1038 do -10-38 , 0 in od 10-38 do 1038
 Deklaracija spremenljivk:
 Deklaracija spremenljivk:
 INTEGER :: ime
INTEGER :: datum, k=4, limita
 REAL :: ime
REAL:: x, y=100.001, z
 Imenovana konstanta
Integer, parameter:: Nula=0
Borut Golob
 Imenovana konstanta
Real, parameter:: Pi=3.141592
20
Računalništvo - osnove programiranja
Borut Golob
Računalništvo - osnove programiranja
Dvojna natančnost
Kompleksna števila - COMPLEX
 Obseg 8 bajt (64 bit)
 Par realnih števil
 Natančnost 16 mest
 Razpon: ~ -10308 do -10-308 in 10-308 do 10308
 Obseg 2×4 bajt (2×32 bit)
 Deklaracija spremenljivk:
 DOUBLE PRECISION:: ime
ali
 REAL*8 :: ime
REAL*8:: determinanta, veliko=1d0
 COMPLEX:: z, kompl=(1.0, 2.0)
 Zapis konstante
 Par realnih števil v oklepaju, ločen z vejico
 (0., 0.) (1e0,-3.2e-1)
 Z = (1.2e3, 0.3)
 Zapis konstante – eksponentni zapis z D
 1D0 1.234567890123456d308
22
Računalništvo - osnove programiranja
Logične spremenljivke - LOGICAL
Borut Golob
Računalništvo - osnove programiranja
23
Znakovne spremenljivke
 Deklaracija:
 Obseg:
 dve moţni vrednosti:
.TRUE.
 CHARACTER [(len=20)] :: ime[*15]
CHARACTER, len=5 :: Ime='Janez', B*12
CHARACTER :: beseda*6, C*12
CHARACTER*10::a,niz*25,cifre='0123456789'
.FALSE.
 Deklaracija:
 Prireditev:
 LOGICAL :: ime
LOGICAL:: predlog =.FALSE., pogoj
CHARACTER (len=20):: univerza
univerza ="Univerza v Mariboru "
univerza ="Ljudska Univerza v Kranju"
predolg zapis
univerza ="Oxford" - ostanek zapolni s presledki
 Prireditev:
pogoj=.TRUE.
Borut Golob
21
 Prvo je realni del, drugo imaginarni del števila
 Deklaracija spremenljivk:
Borut Golob
19
Računalništvo - osnove programiranja
24
Borut Golob
Računalništvo - osnove programiranja
25
IMPLICIT NONE
Podatkovni tipi - JavaScript
 Izključi privzete deklaracije
 osnovni tipi:
 Integer začne s črkami I, J, K, L, M, N, vse druge so real
 Takoj za stavkom PROGRAM ali SUBROUTINE
 Vse spremenljivke je potrebno deklarirati – izogibanje
napakam
program test
implicit none
deklaracije spremenljivk
instrukcije - telo programa
end program test
Borut Golob
 objekt - object
26
Realna – celi del, pika,
decimalni del, eksponent
 3.1415
 10.
 .5
 3.1E12
 .1e12
 2e-12
 konstant, spremenljivk, funkcij
 s pomočjo operacij – aritmetičnih, znakovnih, logičnih
 Zgledi:
3.1415927;
Pi;
'Besedilo'
i+1;
2*Pi*r;
i+j**2/(1-x*x)
SQRT(x**2+y**2);
sin(fi*Pi/180)
'Gospod '//Priimek
- tekstni izraz
.not.(x > y .or. .true.) – logični izraz
28
Računalništvo - osnove programiranja
Aritmetični operatorji - FORTRAN
predstavitev
potenciranje
mnoţenje
deljenje
seštevanje
odštevanje
Borut Golob
Operator Opis
1
2
2
3
3
seštevanje
x=y+2
x=7
-
odštevanje
x=y-2
x=3
*
mnoţenje
x=y*2
x=10
/
deljenje
x=y/2
x=2.5
%
modulus (ostanek) x=y%2
++
Increment (porast) x=++y=y+1 x=6
--
Decrement (upad)
Enako kot
x=y
+=
x+=y
x=x+y
x=15
-=
x-=y
x=x-y
x=5
*=
x*=y
x=x*y
x=50
/=
x/=y
x=x/y
x=2
%=
x%=y
x=x%y
x=0
Borut Golob
b+c*d/e-f**g/h+i*j+k
x=5
Računalništvo - osnove programiranja
31
 nedovoljene operacije: deljenje z 0, 0neg
 prednostne operacije (z leve) in oklepaji
Rezultat
=
x=4
Računalništvo - osnove programiranja
Osnovne aritmetične operacije
 Če je x=10 in y=5
zgled
x=--y = y-1
x=1
30
Prireditveni operatorji - JavaScript
Operator
Zgled: y=5 Rezultat
+
Borut Golob
Računalništvo - osnove programiranja
29
Računalništvo - osnove programiranja
Aritmetični operatorji - JavaScript
prednost pri
izvajanju
**
*
/
+
-
Borut Golob
27
Računalništvo - osnove programiranja
 Postopek za določitev vrednosti iz
Infinity – presega obseg
NaN – Not a Number
Operator
Borut Golob
Izraz – aritmetični, znakovni, logični
Število - number
Borut Golob
nedoločen tip - undefined
prazen tip - null
logični tip - boolean – true, false
število - number
niz - string – med narekovaji (' ali " - enaki)
posebni znaki za \, npr. \", \n – nova vrsta
 sestavljeni tipi:
Računalništvo - osnove programiranja
Cela - integer
 25
 0
 812376348
 0x5ab7
 0Xa0F
 0xFFFF
 0126
 05





aritmetični izraz
1+2*3
10/2*5.0
-b**2/2.0
a/b**2 - c
i**j**2
32
Borut Golob
se izvede (z oklepaji)
1+(2*3)
(10/2)*5.0
-((b**2)/2.0)
(a/(b**2)) – c
i**(j**2) – potenciranje je izjema (z desne)
Računalništvo - osnove programiranja
33
Vgrajene funkcije - FORTRAN
Metode objekta Math – JavaScript
funkcija
opis
argument
vrednost
SQRT(X)
kvadratni koren
REAL
REAL
SIN(X)
sinus (radiani)
REAL
REAL
COS(X)
kosinus (radiani)
REAL
REAL
TAN(X)
tangens (radiani)
REAL
REAL
ABS(X)
absolutna vrednost
INTEGER/REAL
INTEGER/REAL
EXP(X)
naravna eksponentna funkcija e
REAL
REAL
LOG(X)
naravni logaritem
REAL
REAL
MAX(X1,...,Xn)
maksimum x1 do xN
INTEGER/REAL
INTEGER/REAL
MIN(X1,...,Xn)
minimum x1 do xN
INTEGER/REAL
INTEGER/REAL
LEN(C)
dolţina znakovne vrednosti
CHARACTER
INTEGER
MOD(y,x)
celoštevilčni ostanek pri deljenju y/x
INTEGER/REAL
INTEGER/REAL
LOG10(x)
desetiški logaritem
REAL
REAL
INT(X)
celoštevilčni del realne vrednosti x
REAL
INTEGER
REAL(I)
pretvorba cele vrednosti v realno
INTEGER
REAL
Borut Golob
Računalništvo - osnove programiranja









34
Vhod in izhod - FORTRAN
Math.log(a)
Math.max(a,b)
Math.min(a,b)
Math.pow(a,b)
Math.random()
Math.round(a)
Math.sin(a)
Math.sqrt(a)
Math.tan(a)
Računalništvo - osnove programiranja
READ oblika, seznam
PRINT oblika,seznam
 Stavek READ – privzeta naprava: tipkovnica
READ *,a
PRINT*,'a=',a
 * - privzeta oblika – najpogosteje
 številka stavka FORMAT, ki vsebuje formatna določila
 formatna določila v oklepaju kot znakovna konstanta
 seznam – seznam spremenljivk, konstant ali izrazov
 Stavek PRINT – privzeta naprava: zaslon
 Oblikovanje izpisa – FORMAT
 privzeto *
 Stavek FORMAT (formatna določila)
 Besedilni niz
'(formatna določila)'
READ*,a,b; PRINT*,a,b
READ*,a
READ*,b
PRINT*,’To je a:’,a,’ in PI=’,3.1415
PRINT*,"koren stevila ",a," je ",SQRT(a)
36
Borut Golob
Računalništvo - osnove programiranja
Vhod in Izhod – JavaScript
Vhod in Izhod – JavaScript
 Nima vgrajenih funkcij
 Nima vgrajenih funkcij
 Odvisen od gostitelja
 Odvisen od gostitelja
 Pojavno okno – alert
 Pojavno okno – alert
alert("To je pojavno okno")
 Metoda write objekta document
 document.write("besedilo" + spremenljivka)
 document.write("besedilo" + spremenljivka)
 Oblikovanje z uporabo značk html
 Oblikovanje z uporabo značk html
document.write("<h1>Rezultat</h1><big>X
<sub>1</sub>="+x1+"</big>
<br />X<sub>2</sub>="+x2)
Računalništvo - osnove programiranja
37
alert("To je pojavno okno")
 Metoda write objekta document
Borut Golob
35
 oblika – podano oblikovanje:
 Prikaz rezultatov – program izpiše
Računalništvo - osnove programiranja
Borut Golob









Enostavni Vhod in Izhod (IO)
 Podajanje vrednosti – program bere
Borut Golob
Math.abs(a)
Math.acos(a)
Math.asin(a)
Math.atan(a)
Math.atan2(a,b)
Math.ceil(a)
Math.cos(a)
Math.exp(a)
Math.floor(a)
document.write("<h1>Rezultat</h1><big>X
<sub>1</sub>="+x1+"</big>
<br />X<sub>2</sub>="+x2)
38
Branje – vnos podatkov
Borut Golob
Računalništvo - osnove programiranja
39
Branje – vnos podatkov
 Formularji na spletnih straneh
 Pojavno okno prompt – vrne besedilo
 <form …>
 Pojavno okno confirm – vrne logično vrednost
 var ime=prompt("Vnesite ime")
 Pretvorba v število –parse
 parseInt(niz,št.sistem) – pretvorba v celo število
 parseFloat(niz) – pretvorba v realno število
 Vedno samo ena vrednost
 var odgovor=confirm("Ţelite nadaljevati“)
 var vrednost=+promt("Vnesite vrednost")
Borut Golob
Računalništvo - osnove programiranja
41
Borut Golob
Računalništvo - osnove programiranja
42
Primer programa - FORTRAN
Imena spremenljivk - čitljivost
dobro
Sila
pospesek
masa
program pretvorba_F_to_C
implicit none
! Pretvorba iz stopinj Fahrenheita v Celsius
! Izpis rezultatov na zaslon
real, parameter :: factor = 1.8
real ::temp_fahr, temp_cels
print *, 'Vnesi temperaturo v stopinjah Fahrenheit'
read *, temp_fahr
temp_cels = (temp_fahr – 32.0) / factor
print *, ‘Temperatura je', temp_cels,'stopinj C'
end program pretvorba_F_to_C
Borut Golob
43
Računalništvo - osnove programiranja
slabo
f
a
m
grdo
x
y
z
program crap
print *, 'temp'
read *, x
y = (x – 32.0)/1.8
print *, y
end program crap
Borut Golob
Računalništvo - osnove programiranja
44
Zgled izvajanja
Razvejitev programa
Pogojni stavki in odločitve
Borut Golob
45
Računalništvo - osnove programiranja
Vejenje

2.
Borut Golob




Procesor izvaja ukaze po podanem vrstnem redu, če ne
določimo drugače (von Neumann)
Odločitev, odvisno od pogojev,
ali naj bo
niz instrukcij
izveden,
46
Izvajanje odvisno od izpolnitve pogoja
Pogoj – logični izraz
Rezultat: TRUE ali FALSE
Zgledi:




Odločitev, odvisno od pogojev,
kateri (izmed več)
niz instrukcij
bo izveden
47
Računalništvo - osnove programiranja
Primerjalni operatorji
(angl.)
Večji
(Greater Than)
Večji ali enak
(Greater or Equal)
Manjši
(Less Than)
Manjši ali enak
(Less or Equal)
Enak
(EQual)
Neenak
(Not-Equal)
Logični operatorji
IN (oba true)
ALI (vsaj eden true)
NEGACIJA
Borut Golob
Računalništvo - osnove programiranja
Pogojni stavki
Vejenje omogoča:
1.
Borut Golob
Visual Java
Fortran Basic Script
> .GT.
>
>
>= .GE.
>=
>=
< .LT.
<
<
<= .LE.
<=
<=
== .EQ.
=
==
/= .NE.
<>
!=
.AND.
.OR.
.NOT.
Računalništvo - osnove programiranja
And
Or
Not
&&
||
!
49
X==Y
I>0
Ocena>50 && Ocena<=100
Pogoj1 .OR. Pogoj2 .OR. Pogoj3
Borut Golob
Računalništvo - osnove programiranja
48
Blok IF – THEN – END IF (Fortran)
 IF (pogoj) Then
 Če je pogoj izpolnjen
(.true.) se stavki med
Then in End If izvedejo,
sicer pa ne
 Izvršilni stavki
 …
 END IF
 Kratka oblika –
Stavek IF  Če je pogoj izpolnjen se
 IF (pogoj) Stavek
Borut Golob
stavek (samo en)
izvede, sicer pa ne
Računalništvo - osnove programiranja
50
Blok IF – THEN – END IF
Pogojni stavek - IF (JavaScript)
 Stavek IF
- Kratka oblika
 if (pogoj) Stavek
IF
 Sestavljeni stavek
 Izvršilni stavki
 …
NE
Zgled
- JavaScript
if (X>Max) {
Max = X;
}
Then
Izvršilni stavki
Kratka oblika
}
End if
Borut Golob
51
Računalništvo - osnove programiranja
Oblika zapisa
Fortran
Java
Script
Visual
Basic
if (pogoj) {
stavki
}
IF (n==0) {X=X/100}
53
Blok IF – THEN – ELSE – END IF
Zgled
DA
Else
Izvršilni stavki
- FORTRAN
Borut Golob
Zgled
Računalništvo - osnove programiranja
– JavaScript
55
Blok IF – THEN – ELSEIF – END IF
 if (pogoj1) {
 izvršilni stavki
}
 else if(pogoj2) {
 izvršilni stavki
}
 else
{
 izvršilni stavki
 ELSE
 sicer pa stavki med
Else in End If
 END IF
Borut Golob
54
Računalništvo - osnove programiranja
 Če je izpolnjen pogoj1
(.true.) se izvedejo stavki
med Then in ElseIf,
 Izvršilni stavki
 sicer, če je izpolnjen
 ELSE IF(pogoj2)Then pogoj2, se izvedejo
stavki med Then in
 Izvršilni stavki
naslednjim ElseIf ali Else
 IF (pogoj1) Then
 ELSE
if(x>y){y=x}
else {x=y}
End if
 se izvedejo stavki med
Then in Else,
Blok IF – THEN – ELSEIF – END IF
IF(X>Y)THEN
Y = X
ELSE
X = Y
END IF
NE
Izvršilni stavki
 Če je pogoj izpolnjen
(vrednost = .true.)
 Izvršilni stavki
 …
IF n=0 then X=X/100
Računalništvo - osnove programiranja
52
Računalništvo - osnove programiranja
 Izvršilni stavki
 …
IF pogoj Then
stavki
End If
Then
Borut Golob
 IF (pogoj) Then
IF (n==0) X=X/100
Pogoj ?
if (X>MAX) MAX=x
Blok IF – THEN – ELSE – END IF
kratka oblika
IF (pogoj) THEN
stavki
ENDIF
Borut Golob
 Če je izpolnjen pogoj1
(.true.) se izvede prvi
blok stavkov med { in },
 sicer, če je izpolnjen
pogoj2, se izvede drugi
blok stavkov med { in }
 Število stavkov ElseIf je
neomejeno
 sicer pa, če noben pogoj
ni izpolnjen, se izvede
zadnji blok stavkov med
{ in }
 Število stavkov ElseIf je
neomejeno
 Izvršilni stavki
 sicer pa stavki med
Else in End If
 END IF
Borut Golob
56
Računalništvo - osnove programiranja
Blok IF – THEN – ELSEIF - ELSE
IF
ELSEIF
Pogoj ?
NE
Pogoj ?
DA
Then
Izvršilni
stavki
NE
DA
Then
Izvršilni
stavki
Else
Izvršilni
stavki
End if
{
Borut Golob
Pogoj ?
- FORTRAN
IF (X>Max) THEN
Max = X
END IF
DA
 Če je pogoj izpolnjen
(.true.) se izvedejo
stavki v bloku med
{ in }, sicer pa ne.
 if (pogoj) {
IF
Zgled
 Če je pogoj izpolnjen se
stavek (samo en)
izvede, sicer pa ne
Računalništvo - osnove programiranja
57
Borut Golob
Računalništvo - osnove programiranja
58
Zgled – JavaScript
Zgled – Fortran
If (X >
print
Else If
print
Else
print
End If
if (x > y )
{
document.write ('x je večji')
}
else if (x < y )
{
document.write ( 'x je manjši')
}
else {
document.write ( 'x in y sta enaka')
}
Y ) Then
*, 'X je večji'
(X < Y ) Then
*, 'X je manjši'
*, 'X in Y sta enaka'
Borut Golob
59
Računalništvo - osnove programiranja
Zgled – JavaScript – krajši zapis
Select case (izraz)
case( izbira 1) then
nabor ukazov 1
case( izbira 2) then
nabor ukazov 2
...
case default
nabor ukazov N
Endselect
if (x > y ) document.write ('x je večji')
else if (x < y ) document.write ( 'x je manjši')
Izraz je cela, logična ali znakovna
vrednost;
izbira je razpon od:do ali seznam
else document.write ( 'x in y sta enaka')
61
Računalništvo - osnove programiranja
Zgled SELECT CASE – Fortran
if (pogoj)
{
}
_________________
if(pogoj) {
ukazi … }
else {
ukazi … }
Borut Golob
UKAZI
1
DA
UKAZI
2
DA
UKAZI
N
NE
Izbira 2
NE
nobena
NE
62
If (pogoj) Ukaz
__________________
Ukazi…
End If
_________________
If(pogoj) Then
Ukazi …
Else
Ukazi …
End If
63
Borut Golob
If(pogoj) Then
Ukazi …
Else If(pogoj) Then
Ukazi …
… poljubno mnogo Elseif
Else
Ukazi …
End If
Računalništvo - osnove programiranja
64
– JavaScript
if (pogoj) ukaz
__________________
ukazi…
DA
Računalništvo - osnove programiranja
If (pogoj) Then
Računalništvo - osnove programiranja
Povzetek - vejenje
Borut Golob
Izbira 1
Povzetek - vejenje – Fortran
integer:: met, cilj
...
select case (met)
case(7,11)
print*,’ zmaga’
case(2,3,12)
print*,’ poraz’
case default
cilj = met
print*,’ meci dokler nimas’,cilj
endselect
Borut Golob
60
Računalništvo - osnove programiranja
Večkratna izbira (Select case)
if (x > y )
document.write ('x je večji')
else if (x < y )
document.write ( 'x je manjši')
else
document.write ( 'x in y sta enaka')
Borut Golob
Borut Golob
Ponavljanje in Zanke
if(pogoj) {
ukazi … }
else if(pogoj) {
ukazi …
Neštete zanke
Zanke z določenim številom ponovitev
… poljubno mnogo elseif
{
else
ukazi …
Računalništvo - osnove programiranja
}
65
Borut Golob
Računalništvo - osnove programiranja
66
Ponavljanje izvajana - zanka for ali DO
Del programske kode izvedemo večkrat:
1. Ponavljanje enakih stavkov z
znanim številom ponavljanj
(štete zanke)
2. Ponavljanje enakih stavkov
neznano število krat,
dokler velja določen pogoj
(logične zanke DO in DO WHILE)
Borut Golob
Računalništvo - osnove programiranja
Struktura zank DO - Fortran
 Izvaja stavke med stavkom DO in END DO.
[labela:]
DO index = od,do,korak
…
…
…
END DO [labela]
[labela:]
DO
! Neskončna zanka
…
…
…
IF(pogoj)EXIT
…
…
…
END DO [labela]
[labela:]
DO WHILE (pogoj)
…
…
…
END DO [labela]
67
Borut Golob
Računalništvo - osnove programiranja
68
Zanka DO – sintaksa
Zanka DO – sintaksa
 Zanka se prične z ukazom DO in konča s stavkom END
DO.
 Če je podano ime (labela:) zanke DO na začetku,
mora biti zapisano enako ime tudi na koncu (ENDDO
labela).
 index – indeks zanke je celo število (INTEGER).
 od,do,korak – so cela števila ali celoštevilčni izrazi
od in do sta skrajni vrednosti.
 korak (inkrement), ki je lahko pozitiven ali negativen.
Če ni podan je njegova vrednost 1.
 Če je korak pozitiven, bo zanka DO nehala delovati ko
je index > do.
 Zanka DO brez index, mora imeti vsaj eno preverjanje
izvajanja.
 Zanka DO WHILE se izvaja le kadar je pogoj izpolnjen
in neha delovati, ko pogoj ni izpolnjen. Uporabimo
kadar ne poznamo števila ciklov.
 Če je gnezdenih več zank DO, mora biti ena zanka v
celoti znotraj druge.
 Ukaz CYCLE - preskoči na konec aktivne zanke.
 Ukaz EXIT - prekine izvajanje aktivne zanke DO.
 Izvajanje zanke lahko zapustimo (EXIT), ne moremo
pa prenesti izvajanja v zanko.
Borut Golob
Računalništvo - osnove programiranja
69
Primeri zank – Fortran
Računalništvo - osnove programiranja
70
Primeri zank – Fortran
 Šteta zanka
 Šteta zanka
DO L = 1, 5
PRINT*,L,'. ponovitev'
END DO
 Nešteta zanka
L = 1
DO
if(L>5) exit
PRINT*,L,'. ponovitev‘
L = L + 1
END DO
Borut Golob
Borut Golob
do stevec=1,nmax,2
print*,stevec,liha stevila'
Enddo
L = 1
DO WHILE(L<=5)
PRINT*,L,’. ponovitev’
L=L+1
END DO
Računalništvo - osnove programiranja
71
Zanka while - JavaScript
 Nešteta zanka
stevec=2
Do
If (stevec>nmax) exit
print*,stevec,'parna stevila‘
stevec = stevec + 2
enddo
Borut Golob
Računalništvo - osnove programiranja
72
Zanka for - JavaScript
 while ( pogoj) stavek
 Zgledi:
 for (start; pogoj; korak) stavek
 Zgleda:
while (confirm("Nadaljujem"))
var i=0
while(i<10)document.write("<br>I= "+i++);
for (k=3; k<=Math.sqrt(n); k=k+2) {
if(n%k==0)
document.write(k+' deli '+n+'<br>')
}
var i=1
while (i<10) {
document.write("<br> Število " + i);
i=i+2 }
Borut Golob
Računalništvo - osnove programiranja
for (i=0; i<=10; i++)
document.write("<br />I= " + i)
73
Borut Golob
Računalništvo - osnove programiranja
74
Zanka do - JavaScript
Nadzor izvajanja zanke
 do {
 CYCLE – Fortran
 continue – JavaScript
stavki } while (pogoj)
 Vsaj eno izvajanje – kontrola na koncu
 Obvezno pisanje z { oklepaji }
 Preskoči ostanek zanke in
nadaljuje izvajanje na
začetku zanke – nov korak
 Zgled:
 EXIT – Fortran
 break – JavaScript
i=0
do {
i=i+3
document.write("<br />I= " + i)
} while(i<15)
Borut Golob
Računalništvo - osnove programiranja
Začetek zanke
 Prekine izvajanje zanke in
nadaljuje izvajanje na prvem
stavku, ki sledi zanki
75
Borut Golob
CYCLE
continue
EXIT
break
Konec zanke
Nadaljevanje
Računalništvo - osnove programiranja
Zgled – CYCLE / continue
Zgled – EXIT / break
 Izpis števil brez mnogokratnikov števila 3
 Ugotavljanje ali je število n praštevilo
 FORTRAN
 FORTRAN
DO i = 1, n
IF(i==i/3*3) CYCLE
PRINT *, i
END DO
DO i = 2, n-1
IF (MOD(N,I)==0) EXIT
END DO
IF (i==n) PRINT *, n,' je prastevilo‘
 JavaScript
 JavaScript
for(i=1;i<=n;i++) {
if(i%3==0) continue
document.write ('<br>'+i) }
for(i=2;i<n;i++) { if(n%i==0) break }
if (i==n)
document.write (n+' je praštevilo<br>‘)
Borut Golob
Računalništvo - osnove programiranja
77
Borut Golob
Računalništvo - osnove programiranja
Gnezdene strukture
Označevanje zank
 Zanke in pogojne stavke (if) lahko gnezdimo
 Notranja struktura mora biti v celoti vsebovana
v zunanji strukturi
 Zgled: Pravilno
Napačno
 Zanke lahko tudi označimo
DO
DO
IF ( pogoj ) THEN
END IF
END DO
Borut Golob
 Oznaka – poljubno ime z dvopičjem:
zunaj: DO i=1,5
not: DO j=1,3
PRINT *, i, j
END DO not
END DO zunaj
END DO
END IF
Računalništvo - osnove programiranja
79
78
 Izboljšanje preglednosti
 Sklicevanje na oznako
- FORTRAN
IF ( pogoj ) THEN
76
Borut Golob
-JavaScript
Zunaj: for(i=1;i<=5;i++)
{
Not: for(j=1;j<=3;j++)
document.write(i+', '+j)
}
Računalništvo - osnove programiranja
80