1 / 19

Nizovi

Nizovi. 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.

lamont
Download Presentation

Nizovi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. 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. Nizovi pomažu kod organiziranja višestrukih varijabli. DIM naredba služi za kreiranje niza (određuje se dimenzija niza). Kreira niz a od 5 elemenata.5 je dimenzija niza DIM a(5) DIM a(5) FOR i = 1 to 5 READ a(i) NEXT i DATA 2, 4, 6, 8, 10 FOR i = 1 to 5 PRINT a(i); NEXT i a = 2 b = 4 c = 6 d = 8 e = 10 PRINT a, b, c, d, e 2 4 6 8 10

  10. Primjer 1. • Kiša je padala dva od tri dana: • Dan 1: 3.54 l • Dan 2: 0.00 l • Dan 3: 1.79 l • Napišite program koji će pohraniti ove vrijednosti u niz RAINi 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 ) • NEXT 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:" FOR i = 1 TO n PRINT broj(i); NEXT 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) • CLSPRINT “Koliko ima brojeva”;INPUT nDIM a(n)FOR i=1 TO nPRINT “Unesi “;i;”. broj “; INPUT a(i)NEXT Imax=a(1)FOR i=1 TO nIF a(i)>max THEN max=a(i) END IFNEXT IPRINT “Najveći broj je “;maxEND

  19. Primjer 6. (maksimum niza) • CLSPRINT “Koliko ima brojeva”;INPUT nDIM a(n)FOR i=1 TO nPRINT “Unesi “;i;”. broj “; INPUT a(i)NEXT Imax=a(1)poz=1FOR i=1 TO nIF a(i)>max THEN max=a(i)poz=i END IFNEXT IPRINT “Najveći broj je “;maxEND Na kojoj poziciji u nizu se nalazi najveći element, tj. koji je indeks najvećeg elementa niza?

More Related