Julia - Osnovna sintaksa - Kontrolne strukture i petlje

In [2]:
#U okviru ove lekcije obradićemo standardne if-else strukture, logičke operatore koji idu uz njih i kako ih
#koristimo u okviru ovih struktura, kao i petlje za kontrolu toka programa
In [3]:
#IF ELSE

#Kao i u većini programskih jezika, i u programskom jeziku Julia postoji implementirana IF naredba.

#Ukoliko je uslov u datoj naredbi ispunjen, doći će do izvršavanja programskog koda obuhvaćenim njom, a ako ne, taj 
#deo koda se preskače i nastavlja se dalje izvršavanje programa. Na primer:

x = 2.5;

if x == 2.5
    x = x + 1;
end

println("Vrednost promenljive x je: ", x);
Vrednost promenljive x je: 3.5
In [5]:
#Alternativno, možemo dodati i ELSE granu koja će za cilj imati izvršavanje neke druge funkcionalnosti u slučaju da 
#uslov postavljen sa IF nije ispunjen. Na primer:

x = 2.5;

if x == 23.5
    x = x + 1;
else
    x = x - 1;
end

println("Vrednost promenljive x je: ", x);
Vrednost promenljive x je: 1.5
In [9]:
#Konačno, možemo dodati i višestruko grananje dodavanjem ELSEIF konstrukta. Na primer:

x = 2.5;

if x == 23.5
    x = x + 1;
elseif x == 2.5
    x = x + 2;
else
    x = x - 1;
end

println("Vrednost promenljive x je: ", x);
Vrednost promenljive x je: 4.5
In [10]:
# U okviru ovih struktura možemo imati i istovremeno ispitivanje više uslova, pa u zavinosti od relacije koju 
#definišemo. Te relacije mogu da se sastoje od operatora konjukcije, disjunkcije, ili neke njihove kombinacije

#Primer sa operatorom konjukcije:

x = 2.5;
y = 1.5;

if x == 2.5 && y > 1    #&& je operator konjukcije
    x = x + 1;
end

println("Vrednost promenljive x je: ", x);
Vrednost promenljive x je: 3.5
In [11]:
#Primer sa operatorom disjunkcije:

x = 2.5;
y = 1.5;

if x == 2.5 || y > 3   #&& je operator konjukcije
    x = x + 1;
end

println("Vrednost promenljive x je: ", x);
Vrednost promenljive x je: 3.5
In [13]:
#FOR PETLJA

#for petlja predstavlja jedan od najva\nijih konstrukata u modernim programskim jeyicima, pa tako i u programskom 
#jeziku Julia. Primer koriscenja ove strukture dat je sledećim delom programskog koda:

for i in 1:100    #in služi da bi nam reklo u kom opsegu će se kretati naš brojač i, prva vrednost pre 
    println("i = ", i); #dvotačke označava početnu vrednost brojača, a vrednost posle : označava najveću vrednost
end
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10
i = 11
i = 12
i = 13
i = 14
i = 15
i = 16
i = 17
i = 18
i = 19
i = 20
i = 21
i = 22
i = 23
i = 24
i = 25
i = 26
i = 27
i = 28
i = 29
i = 30
i = 31
i = 32
i = 33
i = 34
i = 35
i = 36
i = 37
i = 38
i = 39
i = 40
i = 41
i = 42
i = 43
i = 44
i = 45
i = 46
i = 47
i = 48
i = 49
i = 50
i = 51
i = 52
i = 53
i = 54
i = 55
i = 56
i = 57
i = 58
i = 59
i = 60
i = 61
i = 62
i = 63
i = 64
i = 65
i = 66
i = 67
i = 68
i = 69
i = 70
i = 71
i = 72
i = 73
i = 74
i = 75
i = 76
i = 77
i = 78
i = 79
i = 80
i = 81
i = 82
i = 83
i = 84
i = 85
i = 86
i = 87
i = 88
i = 89
i = 90
i = 91
i = 92
i = 93
i = 94
i = 95
i = 96
i = 97
i = 98
i = 99
i = 100
In [16]:
#WHILE petlja

#while petlja predstavlja jedan od najva\nijih konstrukata u modernim programskim jezicima, pa tako i u programskom 
#jeziku Julia. Primer koriscenja ove strukture dat je sledećim delom programskog koda:

i = 1;  #počinjemo od neke vrednosti brojača i 

while i < 100     #dokle god je ispunjen ovaj uslov, vrtećemo se u ovoj petlji. 
                  #trenutak kada se on naruši, pri narednom ispitivanju iskočićemo iz ove petlje
    println("i = ", i);
    i = 3 * i;
end

println("Vrednost nakon izlaska iz petlje: ");
println("i = ", i);
i = 1
i = 3
i = 9
i = 27
i = 81
Vrednost nakon izlaska iz petlje: 
i = 243
In [23]:
#Ugnježdena for petlja: 
for i in 1:10, j in 4:9, k in 1:3
             @show (i, j, k)   #alternativan način za ispis rezultata koji daje ispis u obliku torke
        end
(i, j, k) = (1, 4, 1)
(i, j, k) = (1, 4, 2)
(i, j, k) = (1, 4, 3)
(i, j, k) = (1, 5, 1)
(i, j, k) = (1, 5, 2)
(i, j, k) = (1, 5, 3)
(i, j, k) = (1, 6, 1)
(i, j, k) = (1, 6, 2)
(i, j, k) = (1, 6, 3)
(i, j, k) = (1, 7, 1)
(i, j, k) = (1, 7, 2)
(i, j, k) = (1, 7, 3)
(i, j, k) = (1, 8, 1)
(i, j, k) = (1, 8, 2)
(i, j, k) = (1, 8, 3)
(i, j, k) = (1, 9, 1)
(i, j, k) = (1, 9, 2)
(i, j, k) = (1, 9, 3)
(i, j, k) = (2, 4, 1)
(i, j, k) = (2, 4, 2)
(i, j, k) = (2, 4, 3)
(i, j, k) = (2, 5, 1)
(i, j, k) = (2, 5, 2)
(i, j, k) = (2, 5, 3)
(i, j, k) = (2, 6, 1)
(i, j, k) = (2, 6, 2)
(i, j, k) = (2, 6, 3)
(i, j, k) = (2, 7, 1)
(i, j, k) = (2, 7, 2)
(i, j, k) = (2, 7, 3)
(i, j, k) = (2, 8, 1)
(i, j, k) = (2, 8, 2)
(i, j, k) = (2, 8, 3)
(i, j, k) = (2, 9, 1)
(i, j, k) = (2, 9, 2)
(i, j, k) = (2, 9, 3)
(i, j, k) = (3, 4, 1)
(i, j, k) = (3, 4, 2)
(i, j, k) = (3, 4, 3)
(i, j, k) = (3, 5, 1)
(i, j, k) = (3, 5, 2)
(i, j, k) = (3, 5, 3)
(i, j, k) = (3, 6, 1)
(i, j, k) = (3, 6, 2)
(i, j, k) = (3, 6, 3)
(i, j, k) = (3, 7, 1)
(i, j, k) = (3, 7, 2)
(i, j, k) = (3, 7, 3)
(i, j, k) = (3, 8, 1)
(i, j, k) = (3, 8, 2)
(i, j, k) = (3, 8, 3)
(i, j, k) = (3, 9, 1)
(i, j, k) = (3, 9, 2)
(i, j, k) = (3, 9, 3)
(i, j, k) = (4, 4, 1)
(i, j, k) = (4, 4, 2)
(i, j, k) = (4, 4, 3)
(i, j, k) = (4, 5, 1)
(i, j, k) = (4, 5, 2)
(i, j, k) = (4, 5, 3)
(i, j, k) = (4, 6, 1)
(i, j, k) = (4, 6, 2)
(i, j, k) = (4, 6, 3)
(i, j, k) = (4, 7, 1)
(i, j, k) = (4, 7, 2)
(i, j, k) = (4, 7, 3)
(i, j, k) = (4, 8, 1)
(i, j, k) = (4, 8, 2)
(i, j, k) = (4, 8, 3)
(i, j, k) = (4, 9, 1)
(i, j, k) = (4, 9, 2)
(i, j, k) = (4, 9, 3)
(i, j, k) = (5, 4, 1)
(i, j, k) = (5, 4, 2)
(i, j, k) = (5, 4, 3)
(i, j, k) = (5, 5, 1)
(i, j, k) = (5, 5, 2)
(i, j, k) = (5, 5, 3)
(i, j, k) = (5, 6, 1)
(i, j, k) = (5, 6, 2)
(i, j, k) = (5, 6, 3)
(i, j, k) = (5, 7, 1)
(i, j, k) = (5, 7, 2)
(i, j, k) = (5, 7, 3)
(i, j, k) = (5, 8, 1)
(i, j, k) = (5, 8, 2)
(i, j, k) = (5, 8, 3)
(i, j, k) = (5, 9, 1)
(i, j, k) = (5, 9, 2)
(i, j, k) = (5, 9, 3)
(i, j, k) = (6, 4, 1)
(i, j, k) = (6, 4, 2)
(i, j, k) = (6, 4, 3)
(i, j, k) = (6, 5, 1)
(i, j, k) = (6, 5, 2)
(i, j, k) = (6, 5, 3)
(i, j, k) = (6, 6, 1)
(i, j, k) = (6, 6, 2)
(i, j, k) = (6, 6, 3)
(i, j, k) = (6, 7, 1)
(i, j, k) = (6, 7, 2)
(i, j, k) = (6, 7, 3)
(i, j, k) = (6, 8, 1)
(i, j, k) = (6, 8, 2)
(i, j, k) = (6, 8, 3)
(i, j, k) = (6, 9, 1)
(i, j, k) = (6, 9, 2)
(i, j, k) = (6, 9, 3)
(i, j, k) = (7, 4, 1)
(i, j, k) = (7, 4, 2)
(i, j, k) = (7, 4, 3)
(i, j, k) = (7, 5, 1)
(i, j, k) = (7, 5, 2)
(i, j, k) = (7, 5, 3)
(i, j, k) = (7, 6, 1)
(i, j, k) = (7, 6, 2)
(i, j, k) = (7, 6, 3)
(i, j, k) = (7, 7, 1)
(i, j, k) = (7, 7, 2)
(i, j, k) = (7, 7, 3)
(i, j, k) = (7, 8, 1)
(i, j, k) = (7, 8, 2)
(i, j, k) = (7, 8, 3)
(i, j, k) = (7, 9, 1)
(i, j, k) = (7, 9, 2)
(i, j, k) = (7, 9, 3)
(i, j, k) = (8, 4, 1)
(i, j, k) = (8, 4, 2)
(i, j, k) = (8, 4, 3)
(i, j, k) = (8, 5, 1)
(i, j, k) = (8, 5, 2)
(i, j, k) = (8, 5, 3)
(i, j, k) = (8, 6, 1)
(i, j, k) = (8, 6, 2)
(i, j, k) = (8, 6, 3)
(i, j, k) = (8, 7, 1)
(i, j, k) = (8, 7, 2)
(i, j, k) = (8, 7, 3)
(i, j, k) = (8, 8, 1)
(i, j, k) = (8, 8, 2)
(i, j, k) = (8, 8, 3)
(i, j, k) = (8, 9, 1)
(i, j, k) = (8, 9, 2)
(i, j, k) = (8, 9, 3)
(i, j, k) = (9, 4, 1)
(i, j, k) = (9, 4, 2)
(i, j, k) = (9, 4, 3)
(i, j, k) = (9, 5, 1)
(i, j, k) = (9, 5, 2)
(i, j, k) = (9, 5, 3)
(i, j, k) = (9, 6, 1)
(i, j, k) = (9, 6, 2)
(i, j, k) = (9, 6, 3)
(i, j, k) = (9, 7, 1)
(i, j, k) = (9, 7, 2)
(i, j, k) = (9, 7, 3)
(i, j, k) = (9, 8, 1)
(i, j, k) = (9, 8, 2)
(i, j, k) = (9, 8, 3)
(i, j, k) = (9, 9, 1)
(i, j, k) = (9, 9, 2)
(i, j, k) = (9, 9, 3)
(i, j, k) = (10, 4, 1)
(i, j, k) = (10, 4, 2)
(i, j, k) = (10, 4, 3)
(i, j, k) = (10, 5, 1)
(i, j, k) = (10, 5, 2)
(i, j, k) = (10, 5, 3)
(i, j, k) = (10, 6, 1)
(i, j, k) = (10, 6, 2)
(i, j, k) = (10, 6, 3)
(i, j, k) = (10, 7, 1)
(i, j, k) = (10, 7, 2)
(i, j, k) = (10, 7, 3)
(i, j, k) = (10, 8, 1)
(i, j, k) = (10, 8, 2)
(i, j, k) = (10, 8, 3)
(i, j, k) = (10, 9, 1)
(i, j, k) = (10, 9, 2)
(i, j, k) = (10, 9, 3)
In [26]:
#CONTINUE

#Naredba continue služi da automatski pređemo u narednu iteraciju naše petlje, bez daljeg izvršavanja programskog 
#koda u trenutnoj iteraciji od dela kada je ona izvršena

for m in 1:100
            if m % 3 == 0
               m = m + 1;
               continue
            end
            println(m)
end
1
2
4
5
7
8
10
11
13
14
16
17
19
20
22
23
25
26
28
29
31
32
34
35
37
38
40
41
43
44
46
47
49
50
52
53
55
56
58
59
61
62
64
65
67
68
70
71
73
74
76
77
79
80
82
83
85
86
88
89
91
92
94
95
97
98
100
In [27]:
#ono šta možemo primetiti jeste to da, iako je u okviru programskog koda obuhvaćenog petljom menjanna vrednost
#promenljive m, ona je ipak prilikom pokretanja svake nove iteracije uzimala vrednost koja joj sleduje
#po kretanju brojača definisanim na početku
In [28]:
#Za kraj, daćemo ilustraciju kako se pristupa elementima niza, i daćemo prikaz prolaska kroz elemente nekog niza

#elementu sa indeksom i niza array može se pristupiti na sledeći način: array[i] 

niz_primer = [1, 4, 55, 600, 7000, 70000];

for i in 1:length(niz_primer)    #funkcija length(array) daće nam podatak o dužini niza array
    println("Element na ", i, "-toj poziciji niz_primer niza je: ", niz_primer[i])
end
Element na 1-toj poziciji niz_primer niza je: 1
Element na 2-toj poziciji niz_primer niza je: 4
Element na 3-toj poziciji niz_primer niza je: 55
Element na 4-toj poziciji niz_primer niza je: 600
Element na 5-toj poziciji niz_primer niza je: 7000
Element na 6-toj poziciji niz_primer niza je: 70000
In [ ]: