Visual Basic Petlje Primjer Vrlo vaan o Zadatak
Visual Basic – Petlje – Primjer – Vrlo važan o Zadatak: Upišite N. Nakon toga upišite niz od N brojeva. Na kraju upišite broj A i provjerite je li broj A unesen u nizu brojeva.
Visual Basic – Petlje – Primjer – Vrlo važan o o o o o Upiši N Upiši niz od N brojeva Upiši A DN = False Za I = 1, . . . , N radi Ako je I-ti broj u nizu jednak A DN = True Izađi is For petlje Ispiši DN
Visual Basic – Petlje – Primjer – Vrlo važan Dim N, A, I As Integer Dim DN As Boolean N = Input. Box("N=") o Upiši niz od N brojeva A = Input. Box(A=") DN = False For I = 1 To N o Ako je I-ti broj u nizu jednak A onda DN = True Exit For End If Next If DN Then Msg. Box("Broj " & Str(A) & " se nalazi u nizu. ") Else Msg. Box("Broj " & Str(A) & " se ne nalazi u nizu. ") End If
Visual Basic – Petlje – Primjer – Vrlo važan o Bilo bi vrlo teško izvesti ovaj program kada bismo trebali nsvaki broj u nizu unijeti kao zasebnu varijablu sa zasebnim imenom. o VB ima mogućnost da se niz varijabli istog tipa podataka čuva pod zajedničkim imenom.
Visual Basic – Petlje – Primjer – Vrlo važan o Polje: Dim P(100) As Integer o Svaka varijabla u polju ima isto ime (u našem slučaju P) i redni broj u polju (indeks). o Element polja se referencira pomoću imena polja i indeksa u zagradama i koristi se kao varijabla tipa koji je naveden kod deklaracije polja.
Visual Basic – Petlje – Primjer – Vrlo važan Dim Dim N = For N, A, I As Integer P(100) As Integer DN As Boolean Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next A = Input. Box("A=") DN = False For I = 1 To N If P(I) = A Then DN = True Exit For End If Next If DN Then Msg. Box("Broj " & Str(A) & " se nalazi u nizu. ") Else Msg. Box("Broj " & Str(A) & " se ne nalazi u nizu. ") End If
Visual Basic – Petlje – Primjer – Vrlo važan o Ovaj se primjer zove pretraživanje polja. o Metoda koju smo koristili zove se slijedno pretraživanje polja.
Visual Basic – Petlje – Četvrti primjer o Zadatak: Upišite N. Nakon toga upišite niz od N brojeva. Na kraju upišite broj A i provjerite koliko se puta broj A nalazi u nizu.
Visual Basic – Petlje – Četvrti primjer Upiši N Upiši niz od N brojeva Upiši A C=0 Za I = 1, . . . , N radi Ako je I-ti broj u nizu jednak A C = C+1 o Ispiši C o o o
Visual Basic – Petlje – Četvrti primjer Dim N = For N, A, I, C As Integer P(100) As Integer Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next A = Input. Box("A=") C = 0 For I = 1 To N If P(I) = A Then C = C + 1 Next Msg. Box("Broj " & Str(A) & " je upisan " & Str(C) & " puta. ")
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Zadatak: Unesite broj N. Unesite N brojeva tipa Single. Poredajte brojeve po veličini od najmanjeg do najvećeg. o Sortiranje! o Računala oko 50% svoga rada provedu u nekoj vrsti sortiranja podataka.
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o o Unesi N brojeva Sortiraj brojeve Ispiši niz
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N, I As Integer, P(1000) As Single Dim Ispis As String N = Input. Box("N=") For I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next o Sortiraj brojeve Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Strategija: n Pronaći najveći element i staviti ga na kraj polja. n Smanjiti N za 1 i ponoviti postupak za pčetni dio polja sve dok N ne postane 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 9 4 6 8 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 5 2 1 4 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 4 2 1 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 4 2 1 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 4 2 1 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 4 2 1 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 1 2 4 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 1 2 4 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas 1 2 4 5 6 8 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Znači, prvo ćemo naći maksimum svih N brojeva i zamijeniti mu mjesto s posljdenjim elementom o Time je najveći element došao na svoje mjesto i potrebno je sortirati samo još prvih N-1 brojeva. o Taj se postupak ponavlja sve dok je brojeva koje treba sortirati veći od 1.
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I As Integer, P(1000) As Single Ispis As String Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next For I = N To 2 Step -1 o Pronađi maksimum prvih I elemenata u polju o Zamijeni vrijednost elementa s maksimalnom vrijednošću i posljednjeg Next Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako pronaći maksimum prvih I elemenata? o Stavimo prvi element u nizu kao trenutno najveći o Redom čitamo elemente niza i kada nađemo veći od trenutno najvećeg, njega postavimo za trenutno najveći o Kada pregledamo sve brojeve, trenutno najveći će postati maksimum niza.
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Treba nam još jedna petlja, čija završna vrijednost ovisi o prvoj petlji! o Treba nam i varijabla koja u kojoj ćemo čuvati trenutno najveći element.
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I, J, Max As Integer, P(1000) As Single Ispis As String Input. Box("N=") I = 1 To N Brojači ovih P(I) = Input. Box("P(" & Str(I) & ")=") Next petlji su različite For I = N To 2 Step -1 varijable! Max = 1 For J = 2 To I If P(J) > P(Max) Then Max = J Next o Zamijeni vrijednost elementa s maksimalnom vrijednošću i posljednjeg Next Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 9 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 9 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 9 1
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 9 1 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 1 1 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Kako bismo zamijenili vrijednost dvije varijable, potrebna nam je još jedna, pomoćna varijabla: 1 9 9
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I, J, Max As Integer, P(1000), Pom As Single Ispis As String Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next For I = N To 2 Step -1 Max = 1 For J = 2 To I If P(J) > P(Max) Then Max = J Next If Max <> I Then Pom = P(Max) = P(I) = Pom End If Next Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis) Ugnježdene petlje
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I, J, Max As Integer, P(1000), Pom As Single Ispis As String Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next For I = N To 2 Step -1 Max = 1 For J = 2 To I If P(J) > P(Max) Then Max = J Next If Max <> I Then Pom = P(Max) = P(I) = Pom End If Next Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I, J, Max As Integer, P(1000), Pom As Single Ispis As String Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next For I = N To 2 Step -1 Max = P(1) For J = 2 To I If P(J) > P(Max) Then Max = J Next If Max <> I Then Pom = P(Max) = P(I) = Pom End If Next Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Ako niste sigurni kako će vaše ugnježdene petlje raditi, dodajte uz svaki Next i ime brojača petlje. Tako će VB moći provjeriti jeste li napravili logičku pogrešku.
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas Dim N = For N, I, J, Max As Integer, P(1000), Pom As Single Ispis As String Input. Box("N=") I = 1 To N P(I) = Input. Box("P(" & Str(I) & ")=") Next For I = N To 2 Step -1 Max = 1 For J = 2 To I If P(J) > P(Max) Then Max = J Next J If Max <> I Then Pom = P(Max) = P(I) = Pom End If Next I Ispis = "" For I = 1 To N Ispis = Ispis & Str(P(I)) If I < N Then Ispis = Ispis & ", " Next Msg. Box(Ispis)
Visual Basic – Petlje, Polja – Primjer – Najvažniji danas o Ovo sortiranje, koje nikako nije najbolje, zove se sortiranje izborom (selection sort).
- Slides: 62