1 / 23

jesen/zima 2007

Uvod u programiranje I. jesen/zima 2007. Strukture. Grupni tip podataka – kolekcija (grupa) elemenata posmatrana kao celina Nizovi – grupni tip podataka čiji elementi imaju isti tip Strukture – grupni tip podataka čiji elementi mogu biti različitog tipa. Strukture.

alida
Download Presentation

jesen/zima 2007

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. Uvod u programiranje I jesen/zima 2007

  2. Strukture • Grupni tip podataka – kolekcija (grupa) elemenata posmatrana kao celina • Nizovi – grupni tip podataka čiji elementi imaju isti tip • Strukture – grupni tip podataka čiji elementi mogu biti različitog tipa Uvod u programiranje I

  3. Strukture • Primer: podaci o studentima • Ime i prezime • Datum rođenja • Godina studija • Prosečna ocena Uvod u programiranje I

  4. Strukture • Primer: podaci o auto delovima • Naziv • Šifra • Cena • Količina na lageru Uvod u programiranje I

  5. Strukture • Primer: podaci o auto delovima struct auto_deo { char naziv[80]; char sifra[10]; int kol; floatcena; }; Uvod u programiranje I

  6. Strukture • naziv, sifra, cena, kol– članovi (polja) strukture • Deklaracija strukture samo opisuje strukturu i ne dovodi do rezervisanja memorije • Rezervisanje memorije se obavlja pri definisanju promenljivih tipa struct auto_deo Uvod u programiranje I

  7. Strukture • struct auto_deo deo1, deo2; • struct auto_deo { char naziv[80]; char sifra[10]; int kol; floatcena; } deo1, deo2; Uvod u programiranje I

  8. deo2 deo1 naziv naziv sifra sifra kol kol cena cena Strukture Uvod u programiranje I

  9. Strukture • Deklaracija strukture struct ime-strukture { tip1 polje1; tip2 polje2; ... tipn poljen; }; Uvod u programiranje I

  10. Strukture • Polja strukture mogu biti bilo kod tipa osim funkcija • Polja strukture mogu biti pokazivači • Polja jedne strukture mogu biti neke druge strukture (ali ne iste strukture) Uvod u programiranje I

  11. Strukture • Primer: podaci o radnicima struct datum { int dan; int mes; int god; }; struct radnik { char imeiprezime[50]; struct datum datum_rodjenja; struct datum datum_zaposlenja; }; Uvod u programiranje I

  12. Strukture • struct radnik zaposleni; zaposleni imeiprezime dan datum_rodjenja mes god dan datum_zaposlenja mes god Uvod u programiranje I

  13. Strukture • Korišćenje strukture • Pojedina polja strukture su obične promenljive odgovarajućeg tipa • Pojedina polja strukture se mogu koristiti bilo gde se promenljiva odgovarajućeg tipa može koristiti • Pojedina polja strukture se koriste upotrebom tačka-notacije Uvod u programiranje I

  14. Strukture • Primer: struct auto_deo deo1, deo2; ... deo1.naziv = ”Karburator”; deo1.sifra = ”SJL-123”; deo1.kol = 23; deo1.cena = 99.9; deo2.naziv[0] = ’T’; scanf(”%d”, &deo2.kol); deo2.cena = 17.5; Uvod u programiranje I

  15. Strukture • Primer: struct radnik zaposleni; ... printf(”Ime i prezime: %s”, zaposleni.imeiprezime); zaposleni.datum_rodjenja.dan = 13; zaposleni.datum_rodjenja.mes = 12; zaposleni.datum_rodjenja.god = 1960; zaposleni.datum_zaposlenja.dan = 1; zaposleni.datum_zaposlenja.mes = 1; zaposleni.datum_zaposlenja.god = 2000; Uvod u programiranje I

  16. Strukture • Indirektno korišćenje struktura struct datum d; struct datum *p; ... p = &d; (*p).dan = 11; /* d.dan = 11; */ (*p).mes = 2; /* d.mes = 2; */ (*p).god = 2007; /* d.god = 2007; */ /* ekvivalentno */ p -> dan = 11; p -> mes = 2; p -> god = 2007; Uvod u programiranje I

  17. deo1 deo2 naziv ”Volan” naziv ”ABC-000” sifra sifra 10 kol kol 195.0 cena cena Strukture • Inicijalizacija struktura struct auto_deo deo1={”Volan”, ”ABC-000”, 10, 195.9}, deo2; Uvod u programiranje I

  18. deo1 deo2 naziv naziv ”Volan” ”Volan” ”ABC-000” ”ABC-000” sifra sifra 10 10 kol kol 195.0 195.0 cena cena Strukture • Kopiranje struktura struct auto_deo deo1={”Volan”, ”ABC-000”, 10, 195.9}, deo2; ... deo2 = deo1; Uvod u programiranje I

  19. Strukture • Strukture mogu biti elementi nizova struct auto_deo lager[500]; lager 0 naziv 1 2 sifra . . . kol cena 498 499 Uvod u programiranje I

  20. Strukture • Strukture mogu biti elementi nizova struct auto_deo lager[500]; ... lager[0].naziv = ”Auspuh”; lager[0].sifra = ”AAA-111”; lager[0].kol = 5; lager[0].cena = 299.9; ... lager[10].naziv[0] = ’A’; Uvod u programiranje I

  21. Strukture • Struktura ne može sadržati samu sebe, ali može pokazivače struct auto_deo { char naziv[80]; char sifra[10]; int kol; floatcena; struct auto_deo *sled_deo; }; Uvod u programiranje I

  22. Strukture • struct auto_deo deo1, deo2; deo1 deo2 naziv naziv sifra sifra kol kol cena cena sled_deo sled_deo Uvod u programiranje I

  23. deo1 deo2 naziv naziv sifra sifra kol kol cena cena sled_deo sled_deo Strukture • deo1.sled_deo = &deo2; deo2.sled_deo = NULL; Uvod u programiranje I

More Related