Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nizovi.

Similar presentations


Presentation on theme: "Nizovi."— Presentation transcript:

1 Nizovi

2 Nizovi Mnogi programi rade s velikom količinom podataka. Ako se radi o tisućama brojeva (npr. plaća radnika), onda bi trebalo smisliti isto toliko različitih naziva varijabli. U QBasic-u možemo koristiti niz za spremanje veće količine istovrsnih podataka.

3 Zamislite da imate 10,000 šešira i da morate svakome od njih dati jedinstvenu oznaku. Kako biste to napravili? Bilo bi razumno svakom šeširu dati njegov broj. Sada možete tražiti “šešir 8432” ili poslati “šešir 844” na čišćenje. Korištenjem brojeva za označavanje šešira imate neiscrpnu zalihu imena za šešire.

4 Zamislite sada da imate kolekciju od 2,000 kravata
Zamislite sada da imate kolekciju od 2,000 kravata. Možete li dati svakoj kravati njen broj? Sada vam je lako tražiti šešir 1,982 i kravatu 1,999 Dvije su stvari koje označavaju element: Ime kolekcije (“šešir" ili “kravata") Broj objekta Numeriranje unutar kolekcije ne ovisi o nijednoj drugoj kolekciji. Možete imati i šešir broj 863 i kravatu broj 863. Ne možete tražiti kravatu broj 2005 jer vaša kolekcija sadrži samo 2000 kravata…

5 Definiranje niza Niz definiramo primjenom instrukcije DIM
DIM naziv_tip (broj elemenata niza) Primjer: DIM broj(5) – brojevni niz od 5 elemenata DIM mjesec$(12) – niz stringova od 12 elemenata

6 Označavanje jednog elementa niza
Ime_niza(indeks) Npr., neka je DAY$ niz stringova koji označavaju dane u tjednu. Tada je DAY$(1) = "Monday" prvi element niza. DAY$ je naziv niza Koja je vrijednost varijable DAY$(1)?

7 Mora se unaprijed kazati koliko će elemenata biti u nizu
DIM ime_niza( veličina ) Npr., DIM DAY$( 7 ) – računalo će rezervirati 7 lokacija DIM x(10) – računalo će rezervirati 10 lokacija DIM y(20,20) – dvodimenzionalna matrica Ako je DAY$ kao gore, da li je sljedeća linija moguća: DAY$(8) = “Neradni dan"

8 Indeksi elemenata niza mogu biti aritmetički izrazi.
Npr., DAY$(n+3) Elementu niza može se pridijeliti i vrijednost neke druge varijable istog tipa podataka. Npr., DAY$(2)=a$

9 Niz je lista varijabli istog tipa
Niz je lista varijabli istog tipa. Nizovi pomažu kod organiziranja višestrukih varijabli. DIM naredba služi za kreiranje niza (određuje se dimenzija niza). DIM a(5) Kreira niz a od 5 elemenata. 5 je dimenzija niza a(1) a(2) a(3) a(4) a(5) DIM a(5) FOR i = 1 to 5 READ a(i) NEXT i DATA 2, 4, 6, 8, 10 PRINT a(i); a = 2 b = 4 c = 6 d = 8 e = 10 PRINT a, b, c, d, e

10 Primjer 1. Kiša je padala dva od tri dana: Dan 1: 3.54 l Dan 2: 0.00 l
Napišite program koji će pohraniti ove vrijednosti u niz RAIN i izračunati i ispisati prosjek padalina

11 Primjer 1. DIM RAIN(3) RAIN(1) = 3.54 RAIN(2) = 0 RAIN(3) = 1.79
SUM = RAIN(1) + RAIN(2) + RAIN(3) AVG = SUM / 3 PRINT "Prosjek: "; AVG; " litara" END Omogućite sada korisniku unošenje padalina.

12 Primjer 2. DIM RAIN(3) PRINT “Upišite padaline za dan 1:"
INPUT RAIN(1) PRINT "Upišite padaline za dan 2:" INPUT RAIN(2) PRINT "Upišite padaline za dan 3:" INPUT RAIN(3) SUM = RAIN(1) + RAIN(2) + RAIN(3) AVG = SUM / 3 PRINT “Prosjek:", AVG, " litara“ END

13 Primjer 2. – s petljom DIM RAIN(3) FOR i=1 to 3
PRINT "Upišite padaline za dan " ; i INPUT RAIN(i) NEXT i SUM = RAIN(1) + RAIN(2) + RAIN(3) AVG = SUM / 3 PRINT “Prosjek:", AVG, " litara“ END

14 Primjer 3. Napišite program koji će izračunati prosjek padalina za proizvoljan broj dana Korisnik prvo mora kazati koliko dana želi. Unijeti količine padalina za svaki dan. Izračunati i ispisati prosjek padalina. Ispisati samo one dane kojima su padaline ispod prosjeka

15 Primjer 4. Pronađite grešku: PRINT “Koliko ima elemenata niza?"
INPUT n DIM MYDATA( n ) FOR i=1 TO 25 MYDATA( i ) = 48.23 NEXT i FOR i=1 TO n PRINT MYDATA( i )

16 Primjer 5. Program za unos i smještanje u memoriju n brojeva, te njihov ispis u jednom redu ‘Unos i ispis niza od n brojeva CLS INPUT “Koliko ima brojeva?” , n 'definiranje niza DIM broj(n) 'unos clanova niza FOR i = 1 TO n INPUT "Unesi broj: ", broj(i) NEXT i 'Ispis niza PRINT "Ispis:" PRINT broj(i);

17 Primjer 6. (maksimum niza)
Primjer: Sastaviti algoritam za određivanje najvećeg broja u nizu zadanih realnih brojeva.

18 Primjer 6. (maksimum niza)
CLS PRINT “Koliko ima brojeva”; INPUT n DIM a(n) FOR i=1 TO n PRINT “Unesi “;i;”. broj “; INPUT a(i) NEXT I max=a(1) FOR i=1 TO n IF a(i)>max THEN max=a(i) END IF NEXT I PRINT “Najveći broj je “;max END

19 Primjer 6. (maksimum niza)
CLS PRINT “Koliko ima brojeva”; INPUT n DIM a(n) FOR i=1 TO n PRINT “Unesi “;i;”. broj “; INPUT a(i) NEXT I max=a(1) poz=1 FOR i=1 TO n IF a(i)>max THEN max=a(i) poz=i END IF NEXT I PRINT “Najveći broj je “;max END Na kojoj poziciji u nizu se nalazi najveći element, tj. koji je indeks najvećeg elementa niza?


Download ppt "Nizovi."

Similar presentations


Ads by Google