5 Niz Stek String

  • Uploaded by: Nikola Nojic
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View 5 Niz Stek String as PDF for free.

More details

  • Words: 1,541
  • Pages: 34
Loading documents preview...
NIZ i STRING Dr Nenad Jovanovid FTN, 2010. godina 1

Objekat Niz  Niz predstavlja skup podataka istog tipa sa zajedničkim imenom.  U Java programskom jeziku nizovi se implementiraju kao objekti.  Da bi se kreirao niz u Javi potrebno je uraditi sledede: • Deklarisati promenljivu u kojoj de se čuvati niz • Kreirati novi objekat niza i dodeliti mu deklarisanu promenljivu • Smestiti podatke u niz.

 Deklaracija promenljive u kojoj de se čuvati niz vrši se na sličan način kao i deklaracija obične promenljive samo što se deklaraciji niza dodaje par srednjih zagrada '[' i ']' ________________________ © N. Jovanovid, 2010.

2

Deklarisanje niza int x[];  Nakon deklarisanja promenljive koja de čuvati niz, potrebno je kreirati objekat niza. To se može uraditi pomodu operatora new na slededi način: x = new int[10];

 Svakom članu niza možemo pristupiti navođenjem odgovarajudeg indeksa između uglastih zagrada. x[0] = 5; x[1] = 7; ...

________________________ © N. Jovanovid, 2010.

3

Primer  Definisademo klasu Niz koja de imati jedno polje x, u kome demo čuvati elemente niza. public class Niz{ int x[]; ... // Kraj klase }

________________________ © N. Jovanovid, 2010.

4

 Konstruktor pravi novi objekat klase Niz sa datim brojem elemenata. // Konstruktor public Niz(int brojElemenata){ x = new int[brojElemenata]; }

________________________ © N. Jovanovid, 2010.

5

 Metoda generisiSlucajanNiz generiše elemente niza čije su vrednosti slučajne veličine u opsegu od 0 do 100. // Generisanje niza ciji su clanovi slucajni public int[] generisiSlucajanNiz() { for (int i=0; i<x.length; i++) x[i]=(int)(Math.random()*100); return x; }

 Objekat Niz ima polje length koje definiše broj elemenata niza

________________________ © N. Jovanovid, 2010.

6

 Metoda stampajNiz prikazuje članove niza. // Stampanje clanova niza public void stampajNiz() { for (int i = 0; i<x.length; i++) System.out.println("x*“ + i + "+ = " + x*i+); }

________________________ © N. Jovanovid, 2010.

7

 Metoda saberiNiz public Niz saberiNiz(Niz y){ Niz z = new Niz(x.length); for (int i = 0; i<x.length; i++) { z.x[i] = x[i] + y.x[i]; } return z; } ________________________ © N. Jovanovid, 2010.

8

 Metoda nadjiMaksimalanClan nalazi clan niza čija je vrednost maksimalna. // Maksimalan clan niza public int nadjiMaksimalanClan(){ int max=x[0]; for (int i=0; i<x.length; i++) { if(x[i]>max) max=x[i]; } return max; } ________________________ © N. Jovanovid, 2010.

9

 Metoda nadjiMinimalanClan nalazi clan niza čija je vrednost minimalna. // Minimalan clan niza public int nadjiMinimalanClan(){ int min=x[0]; for (int i=0; i<x.length; i++) { if(x[i]<min) min=x[i]; } return min; }

________________________ © N. Jovanovid, 2010.

10

 Metode sortirajNizMI i sortirajNizMJZ sortiraju članove niza metodom izbora i metodom jednostruke zamene. // Sortiranje niza metodom izbora public void sortirajNizMI(){ for (int i=0; i<x.length-1; i++) { for (int j=i+1; j<x.length; j++) { if (x[i] > x[j]) { promeni(i, j); } } } } ________________________ © N. Jovanovid, 2010.

11

// Sortiranje niza metodom jednostruke zamene public void sortirajNizMJZ(){ int l=x.length-1; int kon; do { kon=0; for(int i=0; i x[i+1]) { promeni(i, i+1); } kon=1; } l=l-1; } while(l*kon!=0); }

________________________ © N. Jovanovid, 2010.

12

 Metoda Promeni je pomodna metoda koja izmenjuje vrednosti odgovarajudih članova niza.

public void promeni(int i, int j){ int temp = x[i]; x[i] = x[j]; x[j] = temp; }

________________________ © N. Jovanovid, 2010.

13

Zadatak  Koristedi klasu Niz napisati program u Java programskom jeziku koji de: • Kreirati novi objekat x klase Niz, koji de imati 9 elemenata. • Generisati slučajne vrednosti za elemente kreiranog niza x. • Prikazati elemente niza x na ekranu. • Kreirati novi objekat y klase Niz, koji de imati 9 elemenata. • Generisati slučajne vrednosti za elemente kreiranog niza y. • Prikazati elemente niza y na ekranu. • Kreirati novi niz z čiji de elementi biti zbir članova niza x i y. • Prikazati niz z na ekranu. • Nadi minimalan član niza z i prikazati ga na ekranu. • Sortirati niz x. • Prikazati elemente sortiranog niza na ekranu. ________________________ © N. Jovanovid, 2010.

14

Objekat String  U Javi znakovni niz predstavlja objekat tipa String.  Svaka klasa sadrži metodu toString() koja vrši konverziju u znakovni niz.

________________________ © N. Jovanovid, 2010.

15

Konstruktori  U klasi String postoji više konstruktora: Konstruktor

Opis

Primer

String()

pravi objekat klase String bez znakova

String s = new String()

String(char nizznakova[])

pravi objekat klase String inicijalizovan nizom znakova

char niz = {'a', 'b', 'c'} String s = new String(niz)

String(String literal)

pravi objekat klase String inicijalizovan literalom

String s = new String("abc")

String(char nizznakova[], int pocetak, int brojZnakova)

pravi objekat klase String inicijalizovan podnizom znakova od početnog indeksa

char niz = {'a', 'b', 'c', 'd', 'e', 'f'} String s = new String(niz, 2, 2)

________________________ © N. Jovanovid, 2010.

16

Primeri String korisnickoIme = "Petar"; _______________________________ String ime = "Petar"; String prezime = "Petrovic"; ______________________________ String imePrezime = new String("Petar Petrovic");

________________________ © N. Jovanovid, 2010.

17

Length()  Dužina znakovnog niza izračunava metoda length() Primer char znaci[] = {'a', 'b', 'c'}; String s = new String(znaci); System.out.println(s.length);

________________________ © N. Jovanovid, 2010.

18

Nadovezivanje stringova  Znakovne nizove mogude je nadovezivati pomodu operatora +. Primer String ime = "Petar"; String prezime = "Petrovic"; String imePrezime = ime + prezime;

________________________ © N. Jovanovid, 2010.

19

charAt  Metoda charAt(int indeks) pronalazi znak koji se nalazi na određenom mestu znakovnog niza. Primer char znak = "abcde".charAt(2); // znak = 'c'

________________________ © N. Jovanovid, 2010.

20

equals  Metoda equals() vrši upoređivanje dva znakovna niza. Primer String s1 = "Dobar dan"; String s2 = "Dobar DAN"; String s3 = "Dobar dan"; System.out.println(s1+" equals " + s2 + " = " + s1.equals(s2)); System.out.println(s1+" equals " + s3 + " = " + s1.equals(s3));

 Metoda equals i operator == izvode dve različite operacije. Metoda equals upoređuje znake unutar objekta String, a operator == upoređuje dve reference da bi utvrdio da li one ukazuju na isti objekat. ________________________ © N. Jovanovid, 2010.

21

indexOf  Metoda indexOf() traži prvo pojavljivanje znaka ili podniza u datom Stringu. Primer: String s = "Dobar dan"; System.out.println("indexOf(d) = " + s.indexOf("d") ); System.out.println("indexOf("bar") = " + s.indexOf("bar") );

________________________ © N. Jovanovid, 2010.

22

substring  Metoda substring() izvlači podniz znakova iz Stringa. Primer: String s = "Dobar dan"; System.out.println("substring(2,6) = " + s.substring(2,6));

________________________ © N. Jovanovid, 2010.

23

StringBuffer  Klasa StringBuffer dopunjuje klasu String.  Objekti klase String su nepromenljivi, a objekti klase StringBuffer su nizovi znakova promenljive dužine.  Metoda append() može da nadoveže znakovni niz na kraj objekta StringBuffer.

________________________ © N. Jovanovid, 2010.

24

Zadatak  Napraviti klasu Memorija. Konstruktor treba da inicijalizuje objekat klase Memorija sa 65436 polja tipa String, sa sadržajem “0”, koja de predstavljati memorijske delije.  Klasa treba da sadrži metode za očitavanje ocitaj(M) i smeštanje upisi(M,v) vrednosti v tipa String u memorijsku lokacija sa adresom M. ________________________ © N. Jovanovid, 2010.

25

Stek  Stek je memorijska struktura koja je rezervisana za smeštanje podataka koji se mogu opisati slededim nizom:  S[1], S[2], S[3],...,S[SP]  Karakteristika steka je da na njega ukazuje vrednost sadržaja registra SP i da na stek mogu da se smeštaju podaci kao i da se čitaju ali redosledom obrnutim od upisivanja podataka.  Za smeštanje podatka na vrh steka definiše se operacija PUSH, a za čitanje podatka sa vrha steka definiše se operacija POP.  Operacija TOP očitava elemenat sa vrha steka, a operacija empty ispituje da li na steku ima elemenata

________________________ © N. Jovanovid, 2010.

26

 Projektovademo klasu Stek koja de služiti za smeštanje i čitanje podataka tipa String u niz elementi koji sadrži podatke tipa String. Celobrojna promenljiva velicina je pokazivač na tekudi elemenat steka. class Stek{ int velicinaSteka = 0; int pocetak; int sp; String[] elementi; … }

________________________ © N. Jovanovid, 2010.

27

 Konstruktor pravi niz elementi // konstruktor public Stek (int pocetak, int velicina){ velicinaSteka = velicina; this.pocetak = pocetak; elementi = new String[velicina]; sp= pocetak; }

________________________ © N. Jovanovid, 2010.

28

 Celobrojne vrednosti se unose na stek i sa steka skidaju pomodu operacija push i pop. Operacija punjenja steka push // punjenje steka public void push (String x){ if(sp < pocetak+velicinaSteka) elementi[sp++] = x; } ________________________ © N. Jovanovid, 2010.

29

 Operacija pražnjenja steka // praznjenje steka public String pop() { if (sp == pocetak-1) return null; else return elementi[--sp]; } ________________________ © N. Jovanovid, 2010.

30

 Dali je stek prazan? public boolean empty(){ if (sp == pocetak-1) return true; else return false; }

________________________ © N. Jovanovid, 2010.

31

 Vrada elemenat sa vrha steka public String top() { if (sp == pocetak-1) return null; else return elementi[sp-1]; }

________________________ © N. Jovanovid, 2010.

32

 Definisademo i bezadresnu operaciju sabiranja, koja sabira dve vršne vrednosti na steku i rezultat smešta na vrh steka. Operacija sabiranja add public void add (){ if(sp < pocetak+velicinaSteka){ sp--; sp--; elementi[sp] = ""+(Integer.parseInt(elementi[sp]) + Integer.parseInt(elementi[sp+1])) ; sp++; } } ________________________ © N. Jovanovid, 2010.

33

Zadatak  Koristedi klasu Stek Napisati program u Java programskom jeziku koji de: • Kreirati novi objekat klase Stek. • Izračunari izraz W = X+Y+Z za X = 3, Y = 5, Z = 2. • Prikazati vrednost promenljive W na ekranu.

________________________ © N. Jovanovid, 2010.

34

Related Documents


More Documents from "Piotr Lipowicz"

9_interfejsi
February 2021 0
2_klase I Objekti
February 2021 0
5 Niz Stek String
February 2021 0
3_kontrolne Strukture
February 2021 0
Html
February 2021 4