Što je niz?
Niz je struktura podataka koja se koristi za pohranu elemenata istog tipa podataka. Elementi su poredani sekvencijalno s tim da je prvi element s indeksom 0, a zadnji element s indeksom n-1, gdje je n ukupan broj elemenata u polju.
U ovom vodiču naučit ćete:
- Što je niz?
- Kako prijaviti i inicijalizirati niz
- Nizovi fiksne veličine
- Dinamički nizovi
- Dohvaćanje sadržaja niza
- Dodavanje novih elemenata u niz
- Brisanje niza
- Splitska funkcija
- Funkcija pridruživanja
Kako prijaviti i inicijalizirati niz
U VB.NET-u se nizovi deklariraju pomoću izraza Dim. Na primjer:
Dim myData() As Integer
U gornjem primjeru definirali smo niz nazvan myData i on bi trebao sadržavati elemente cjelobrojnog tipa podataka. Sljedeći primjer pokazuje kako možemo proglasiti niz koji sadrži elemente niza:
Dim myData(10) As String
Definirali smo niz s imenom myData da sadrži 10 žica.
Nizove možemo inicijalizirati u trenutku njihove deklaracije. Na primjer:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Proglasili smo niz myData i dodali smo mu 6 cjelobrojnih elemenata. To se također može učiniti za slučaj nizova:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Stvorili smo niz imena učenika i dodali smo mu 5 imena.
Nizovi fiksne veličine
Polje fiksne veličine sadrži fiksni broj elemenata. To znači da tijekom definiranja morate definirati broj elemenata koje će sadržavati. Pretpostavimo da vam treba niz koji sadrži samo 3 imena učenika. Niz možete definirati i inicijalizirati na sljedeći način:
Dim students(0 to 2) As Stringstudents(0) = "John"students (1) = "Alice"students (2) = "Antony"
Započeli smo deklariranjem niza s nizom učenika. 0 do 2 izjavljuje da će niz pohraniti elemente od svog indeksa 0 do indeksa 2, što znači da ćemo ukupno imati 3 elementa.
Da bismo dodali elemente u niz, koristili smo ime niza i odredili indeks u kojem će element biti pohranjen. Na primjer, ime John bit će pohranjeno u indeksu 0 niza, što znači da će činiti prvi element niza. Antony će biti posljednji element niza.
Dinamički nizovi
Ovo je niz koji može sadržavati bilo koji broj elemenata. Veličina polja može rasti u bilo kojem trenutku. To znači da u polje možete dodati nove elemente u bilo kojem trenutku. Da bismo to demonstrirali, definirajmo prvo niz cijelih brojeva:
Dim nums() As Integer
Definirali smo čitav niz imena nums. Sada morate dodati dva elementa u niz, istovremeno dajući mu prostor za promjenu veličine. Izjavu ReDim morate koristiti na sljedeći način:
ReDim nums(1)nums(0) = 12nums(1) = 23
Naš niz sada ima dva elementa u indeksima 0 i 1. Moramo mu dodati treći element u indeksu 3, a da pritom sačuvamo dva elementa koja već ima. To možemo učiniti na sljedeći način:
ReDim Preserve nums(2)nums(2) = 35
Niz sada ima tri elementa.
Dohvaćanje sadržaja niza
Dohvaćanje znači pristup elementima niza. Za pristup elementu niza koristimo njegov indeks. Pokažimo to na primjeru.
Korak 1) Započnite stvaranjem nove aplikacije konzole.
Korak 2) U aplikaciju dodajte sljedeći kod:
Module Module1Sub Main()Dim students(0 to 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Console.WriteLine("First student is {0} ", students(0))Console.WriteLine("Second student is {0} ", students(1))Console.WriteLine("Third student is {0} ", students(2))Console.ReadKey()End SubEnd Module
Korak 3) Pokrenite kôd klikom na gumb Start na alatnoj traci. Dobit ćete sljedeći prozor:
Koristili smo sljedeći kod:
Objašnjenje koda:
- Izrada modula pod nazivom Module1.
- Izrada glavnog potprocedura.
- Stvaranje niza s imenom učenika za spremanje elemenata niza. Polje će pohraniti elemente od indeksa 0 do indeksa 2, što znači da će imati ukupno 3 elementa.
- Dodajući ime John kao prvi element niza, odnosno John pohranjen u indeksu 0.
- Dodavanje imena Alice kao drugog elementa niza, odnosno Alice pohranjene u indeksu 1.
- Dodavanje imena Antony kao trećeg elementa niza, odnosno Antony pohranjenog u indeksu 2.
- Ispis određenog teksta i elementa pohranjenog u indeksu 0 učenika niza na konzoli. Studenti (0) pomažu nam da pristupimo elementu s indeksom 0 niza imena students.
- Ispis određenog teksta i elementa pohranjenog u indeksu 1 učenika polja na konzoli. Studenti (1) pomažu nam da pristupimo elementu u indeksu 1 niza imena students.
- Ispis određenog teksta i elementa pohranjenog u indeksu 2 učenika polja na konzoli. Studenti (2) pomažu nam da pristupimo elementu u indeksu 2 niza imena students.
- Pauziranje prozora konzole na čekanju ili korisnika da poduzme mjere za njegovo zatvaranje.
- Kraj potpostupka.
- Kraj modula.
Dodavanje novih elemenata u niz
To će se dogoditi samo ako imate dinamički niz. Ako ste deklarirali dimenzionalni niz fiksne veličine i pun je elemenata niza, ne možete mu dodati nove elemente. Sljedeći primjer pokazuje kako dodati nove elemente u dinamički niz:
Korak 1) Započnite stvaranjem nove aplikacije konzole.
Korak 2) U aplikaciju dodajte sljedeći kod:
Module Module1Sub Main()Dim nums() As IntegerReDim nums(1)nums(0) = 12nums(1) = 23For x = 0 To nums.Length - 1Console.WriteLine("Initial array element: {0}", nums(x))NextReDim Preserve nums(2)nums(2) = 35For x = 0 To nums.Length - 1Console.WriteLine("Final array element: {0}", nums(x))NextConsole.ReadKey()End SubEnd Module
Korak 3) Kliknite gumb Start na alatnoj traci za pokretanje koda. Trebali biste dobiti sljedeći prozor:
Koristili smo sljedeći kod:
Objašnjenje koda:
- Izrada modula pod nazivom Module1.
- Izrada glavnog potprocedura.
- Stvaranje niza pod nazivom nums za držanje cjelobrojnih vrijednosti.
- Određivanjem da će gornji niz pohraniti dva elementa, to jest, na indeksu 0 i 1, istodobno dopuštajući prostor za promjenu veličine.
- Dodavanje elementa 12 indeksu 0 brojeva niza.
- Dodavanje elementa 23 indeksu 1 brojeva niza.
- Korištenje for petlje za stvaranje varijable x koja će nam pomoći u iteraciji od prvog do posljednjeg elementa niza num. Imajte na umu da niz sada ima dva elementa, 12 i 23.
- Ispis teksta i elemenata polja na konzoli.
- Završetak petlje for i preskakanje na sljedeći dio koda.
- Promijenite veličinu brojeva niza kako biste omogućili elemente s indeksima od 0 do 2. Sada će moći pohraniti 3 elementa, a ne 2. Ključna riječ Preserve pomaže nam u održavanju trenutnih elemenata niza, to jest 12 i 23.
- Dodavanje elementa 35 indeksu 2 niza. Niz sada ima tri elementa, 12, 23 i 35.
- Korištenje for petlje za stvaranje varijable x koja će nam pomoći u iteraciji od prvog do posljednjeg elementa niza num. Imajte na umu da niz sada ima tri elementa, 12, 23 i 35.
- Ispis teksta i elemenata polja na konzoli.
- Završetak petlje for i preskakanje na sljedeći dio koda.
- Pauzirajte prozor konzole čekajući da korisnik poduzme mjere za njegovo zatvaranje.
- Kraj potpostupka.
- Kraj modula.
Brisanje niza
Preporučuje se da svoj niz izbrišete nakon što završite s njim, uglavnom kada imate posla s dinamičkim nizom. To će vam pomoći da oslobodite malo memorije.
Da biste izbrisali niz, samo trebate pozvati izraz Erase nakon kojeg slijedi ime niza. Na primjer:
Dim nums(1) As Integernums(0) = 12nums(1) = 23Erase nums
Proglasili smo niz cijelih brojeva nazvanih nums i dodali smo mu dva elementa. Izraz Erase nums izbrisat će niz.
Splitska funkcija
Funkcija razdvajanja koju pruža Visual Basic .NET pomaže nam podijeliti niz na dijelove i zadržati ih u nizu. Sljedeći primjer pokazuje kako se koristi ova funkcija:
Korak 1) Stvorite novu aplikaciju konzole.
Korak 2) U aplikaciju dodajte sljedeći kod:
Module Module1Sub Main()Dim myarray() As StringDim guru99 As StringDim x As Integerguru99 = "Welcome, to, Guru99"myarray = Split(guru99, ", ")For x = LBound(myarray) To UBound(myarray)Console.WriteLine(myarray(x))NextConsole.ReadKey()End SubEnd Module
Korak 3) Pokrenite kôd klikom na gumb Start na alatnoj traci. Trebali biste dobiti sljedeći prozor:
Koristili smo sljedeći kod:
Objašnjenje koda:
- Izrada modula pod nazivom Module1.
- Pokretanje glavnog potprocedura.
- Stvaranje polja s imenom myarray za držanje vrijednosti niza.
- Stvaranje varijable niza pod nazivom guru99.
- Stvaranje cjelobrojne varijable pod nazivom x.
- Dodjeljivanje niza varijabli guru99.
- Dijeljenje gornjeg niza na dijelove i njihovo smještanje u niz nazvan myarray. "," (Zarez) je graničnik, pa će ga funkcija razdvajanja koristiti za označavanje kraja različitih dijelova niza.
- Korištenje varijable x za itiranje kroz niz nazvan myarray. LBound i UBound specificiraju donje granice, odnosno gornje granice polja.
- Ispis vrijednosti polja s imenom myarray na konzoli.
- Završavajući petlju for i
Funkcija pridruživanja
Funkcija pridruživanja pomaže nam da spojimo više nizova u jedan niz. Sljedeći primjer to pokazuje:
Korak 1) Započnite stvaranjem nove aplikacije konzole.
Korak 2) U aplikaciju dodajte sljedeći kod:
Module Module1Sub Main()Dim students(0 To 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Dim classmates As Stringclassmates = Join(students, ", ")Console.WriteLine(classmates)Console.ReadKey()End SubEnd Module
Korak 3) Pokrenite kôd klikom na gumb Start na alatnoj traci:
Koristili smo sljedeći kod:
Objašnjenje koda:
- Izrada modula pod nazivom Module1.
- Izrada glavnog potprocedura.
- Stvaranje niza s imenom učenika koji će sadržavati 3 vrijednosti niza.
- Dodavanje imena John indeksu 0 niza.
- Dodavanje imena Alice indeksu 1 niza.
- Dodavanje imena Antony indeksu 2 niza.
- Definiranje varijable imenovane školski drugovi niza podataka.
- Spajanje svih elemenata niza učenika i njihovo razdvajanje pomoću (, zarez). Rezultat ove operacije bit će dodijeljen varijabli školskih kolega.
- Ispis sadržaja varijable školskih kolega na konzoli.
- Pauziranje prozora konzole čekajući da korisnik poduzme mjere za njegovo zatvaranje.
- Završetak glavnog potprocedura.
- Završetak modula.
Sažetak
- Nizovi se koriste za spremanje podataka koji pripadaju istoj vrsti podataka.
- Dinamički niz omogućuje korisniku da mu promijeni veličinu dodajući mu više elemenata. Naredbu ReDim koristite za dodavanje elemenata u postojeći niz
- Veličina niza fiksne veličine ne može se mijenjati.
- Elementi niza poredani su pomoću indeksa, s tim da je prvi element s indeksom 0, a zadnji element s indeksom n-1, gdje je n ukupan broj elemenata niza.
- Nizovi se mogu izbrisati pomoću funkcije Erase
- Možete koristiti funkcije split i join za razdvajanje ili pridruživanje nizu nizova