'Primer 12a: glavna procedura (izbor inicijalizacije niza i algoritma sortiranja) Sub testSort() 'Deklaracija promenljivih Dim niz() As Integer Dim n As Integer 'Dimenzija niza Dim sniz As String 'Zapis niza u vidu niske Dim sPoruka As String, sOdgovor As String Dim iOdgovor As Integer 'Ulaz n = InputBox("Unesite broj elemenata niza") ReDim niz(n) iOdgovor = MsgBox("Zelite li da racunar sam generise niz", vbYesNo) If iOdgovor = vbYes Then 'racunar na osnovu broja elemenata sam generise niz (psedoslucajnih) celih brojeva initSlucajanNiz niz, n Else 'a mogli smo i preko tastature, ali to bi islo sporo (unosenje jednog po jednog elementa) unosNiza niz, n End If 'Ispisivanje niza sniz = ispisNiza(niz, n) If sniz = "" Then MsgBox "Niz je prazan" Exit Sub Else MsgBox "Polazni niz: " & sniz End If 'Sortiranje niza moze da se izvede na razne nacine sPoruka = "Izaberite kako cete sortirati niz:" & vbNewLine sPoruka = sPoruka & vbTab & "S (selection sort ili sortiranje izborom)" & vbNewLine sPoruka = sPoruka & vbTab & "I (insertion sort ili sortiranje umetanjem)" & vbNewLine sPoruka = sPoruka & vbTab & "B (bubble sort ili ?)" & vbNewLine sOdgovor = InputBox(sPoruka) Select Case sOdgovor Case "S" selectionSort2 niz, n Case "I" insertionsort niz, n Case "B" bubblesort niz, n Case Else MsgBox "Nepostojeca opcija. Kraj" End End Select 'Izlaz: Ispisivanje sortiranog niza sniz = ispisNiza(niz, n) 'Ovo radimo ponovo jer se niz promenio MsgBox "Sortirani niz: " & vbNewLine & sniz End Sub Sub initSlucajanNiz(niz() As Integer, ByVal n As Integer) Dim i As Integer Randomize (Minute(Time()) * Second(Time())) For i = 1 To n 'n > 0 generise sledeci broj, ostali ponavljaju vec generisane brojeve 'Rnd(n) je generisani broj izmedju 0 i 1, 0 <= Rnd(n) < 1 'mnozenjem sa 99 dobijamo broj izmedju 0 i 99, 0 <= Rnd(n)*99 < 99 'CInt vrsi konverziju u ceo broj i vrsi zaokruzivanje, tako da je rezultat moze da ukljuci i 99 'tj. 0 <= CInt(Rnd(n) * 99) <= 99 niz(i) = CInt(Rnd(n) * 99) Next i End Sub