STRUKTURNI TIP PODATAKA (STRUCT)

Uvod – Zašto nam je potreban struct? 

Ako želimo da čuvamo podatke o jednom učeniku, šta nam je potrebno?

Na primer:

Podatak Tip
Ime string
Prezime string
Godina rođenja int
Prosečna ocena double

Do sada smo ove podatke definisali kao zasebne promenljive.

string ime;
string prezime;
int godinaRodjenja;
double prosek;

Problem nastaje kada želimo da imamo podatke za 20 učenika. Potrebno je pronaći način da ih grupišemo.

Teorija:

Strukturni tip podataka (struct) predstavlja korisnički definisan tip koji objedinjuje više promenljivih, koje mogu biti različitih tipova.

Svaka promenljiva unutar strukture naziva se član strukture.

Struktura omogućava da podatke koji pripadaju jednoj celini posmatramo kao jedan složeni podatak.

Opšti oblik:

struct NazivStrukture
{
    tip1 clan1;
    tip2 clan2;
    tip3 clan3;
}

Prilikom definisanja strukture ne kreira se odmah promenljiva. Definiše se novi tip podataka koji se kasnije može koristiti za deklarisanje promenljivih.

Primer 1 – Definisanje strukture Ucenik – Kreirati strukturu Ucenik, u kojoj se nalaze ime, prezime, datumRodjenja i prosek. U glavnom programu kreirati promenljivu tog tipa, dodeliti neke vrednosti i ispisati na ekranu.

Rešenje:

using System;

struct Ucenik
{
    public string ime;
    public string prezime;
    public int godinaRodjenja;
    public double prosek;
}

class Program
{
    static void Main()
    {
        Ucenik u1;

        u1.ime = "Marko";
        u1.prezime = "Markovic";
        u1.godinaRodjenja = 2008;
        u1.prosek = 4.25;

        Console.WriteLine(u1.ime);
        Console.WriteLine(u1.prezime);
        Console.WriteLine(u1.godinaRodjenja);
        Console.WriteLine(u1.prosek);

        Console.ReadKey();
    }
}

Objašnjenje:

  • struct Ucenik definiše novi tip podataka.

  • public omogućava pristup članovima izvan strukture.

  • Ucenik u1 kreira promenljivu strukturnog tipa.

  • Tačka (.) koristi se za pristup pojedinačnim članovima.

  • u1.ime predstavlja član ime promenljive u1.

Teorija:

Nakon deklarisanja promenljive strukturnog tipa, pojedinačnim članovima pristupa se pomoću operatora tačka (.).

Na primer:

Ucenik u1;

u1.ime = "Ana";
u1.prezime = "Petrovic";
u1.godinaRodjenja = 2007;
u1.prosek = 4.80;

Svaki član ima svoj tip podataka i svoju vrednost.

Važno je razlikovati definisanje strukture od kreiranja promenljive tog tipa.

Primer 2 – Više promenljivih istog strukturnog tipa – Jedna od prednosti strukture jeste mogućnost kreiranja više promenljivih istog tipa – Kreirati strukturu Ucenik i u glavnom programu kreirati više promenljivih tog tipa. Dodeliti im neke vrednosti i sve to ispisati na ekranu.

using System;

struct Ucenik
{
    public string ime;
    public string prezime;
    public double prosek;
}

class Program
{
    static void Main()
    {
        Ucenik u1, u2;

        u1.ime = "Marko";
        u1.prezime = "Markovic";
        u1.prosek = 4.25;

        u2.ime = "Ana";
        u2.prezime = "Petrovic";
        u2.prosek = 4.80;

        Console.WriteLine(u1.ime + " " + u1.prezime);
        Console.WriteLine(u2.ime + " " + u2.prezime);

        Console.ReadKey();
    }
}

Primer 3 – Niz struktura – Napraviti niz učenika, dodeliti odgovarajuće vrednosti i sve ispisati na ekranu. ( U ovom primeru povezuju se prethodno obrađeni nizovi sa novim tipom podataka.)

using System;

struct Ucenik
{
    public string ime;
    public double prosek;
}

class Program
{
    static void Main()
    {
        Ucenik[] ucenici = new Ucenik[3];

        ucenici[0].ime = "Marko";
        ucenici[0].prosek = 4.25;

        ucenici[1].ime = "Ana";
        ucenici[1].prosek = 4.80;

        ucenici[2].ime = "Petar";
        ucenici[2].prosek = 3.75;

        for (int i = 0; i < ucenici.Length; i++)
        {
            Console.WriteLine(
                ucenici[i].ime + " - " + ucenici[i].prosek);
        }

        Console.ReadKey();
    }
}

Teorija:

Kao što možemo kreirati niz celih brojeva ili niz string vrednosti, možemo kreirati i niz promenljivih strukturnog tipa.

Na primer:

Ucenik[] ucenici = new Ucenik[3];

Ovim se kreira niz koji sadrži tri elementa tipa Ucenik.

Pristup članovima strukture u nizu ostvaruje se kombinovanjem indeksa niza i operatora tačka:

ucenici[0].ime = "Marko";

Prvo se bira element niza, a zatim član strukture.


Zadaci za vežbu

Zadatak 1 – Automobil – Definisati strukturu Automobil koja sadrži: marku, model, godinu proizvodnje, cenu. Kreirati promenljivu tipa Automobil, uneti vrednosti i prikazati ih.

struct Automobil
{
    public string marka;
    public string model;
    public int godina;
    public double cena;
}

class Program
{
    static void Main()
    {
        Automobil a;

        a.marka = "Ford";
        a.model = "Focus";
        a.godina = 2015;
        a.cena = 8500;

        Console.WriteLine(a.marka);
        Console.WriteLine(a.model);
        Console.WriteLine(a.godina);
        Console.WriteLine(a.cena);

        Console.ReadKey();
    }
}

Zadatak 2 – Knjiga – Definisati strukturu Knjiga koja sadrži: naslov, autora, broj stranica, cenu. Kreirati dve promenljive tipa Knjiga i prikazati podatke za obe knjige.

Zadatak 3 – Prosek učenika  – Definisati strukturu Ucenik sa imenom i tri ocene. Kreirati niz od tri učenika i izračunati prosečnu ocenu svakog učenika.

Formula za računanje proseka:

double prosek = (u.ocena1 + u.ocena2 + u.ocena3) / 3.0;

...

Last modified: Friday, 2 October 2026, 6:56 PM