Teorija:

Nabrojivi i strukturni tip mogu se koristiti zajedno.

Na primer, struktura može sadržati član koji je tipa enum.

Tako se u okviru jednog složenog podatka mogu čuvati različite informacije:

  • tekstualni podaci;

  • numerički podaci;

  • podaci nabrojivog tipa.

Ovakav način organizovanja podataka omogućava preglednije predstavljanje stvarnih objekata i njihovih osobina.


Zadatak 1 – Evidencija učenika  – Napraviti program koji čuva podatke o učenicima. Svaki učenik treba da ima: ime, prezime, godinu rođenja, prosečnu ocenu, smer koji pohađa.  Smer će biti definisan pomoću enum tipa.

Postupak izrade

Korak 1 –

enum Smer
{
    Racunarski,
    Elektrotehnicki,
    Masinski
}

Korak 2 –

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

Korak 3 –

Ucenik[] ucenici = new Ucenik[3];

Korak 4 –

ucenici[0].ime = "Marko";
ucenici[0].prezime = "Markovic";
ucenici[0].godinaRodjenja = 2008;
ucenici[0].prosek = 4.25;
ucenici[0].smer = Smer.Racunarski;

ucenici[1].ime = "Ana";
ucenici[1].prezime = "Petrovic";
ucenici[1].godinaRodjenja = 2007;
ucenici[1].prosek = 4.80;
ucenici[1].smer = Smer.Elektrotehnicki;

ucenici[2].ime = "Petar";
ucenici[2].prezime = "Jovanovic";
ucenici[2].godinaRodjenja = 2008;
ucenici[2].prosek = 3.75;
ucenici[2].smer = Smer.Masinski;

Korak 5 –

for (int i = 0; i < ucenici.Length; i++)
{
    Console.WriteLine("Ucenik: " +
        ucenici[i].ime + " " + ucenici[i].prezime);

    Console.WriteLine("Godina rodjenja: " +
        ucenici[i].godinaRodjenja);

    Console.WriteLine("Prosek: " +
        ucenici[i].prosek);

    Console.WriteLine("Smer: " +
        ucenici[i].smer);

    Console.WriteLine("--------------------");
}

 Proširenje programa – Pretraga učenika – dodati mogućnost pronalaženja učenika prema prezimenu.

Console.Write("Unesite prezime za pretragu: ");
string trazenoPrezime = Console.ReadLine();

bool pronadjen = false;

for (int i = 0; i < ucenici.Length; i++)
{
    if (ucenici[i].prezime == trazenoPrezime)
    {
        Console.WriteLine("Pronadjen ucenik:");
        Console.WriteLine(ucenici[i].ime + " " +  ucenici[i].prezime);
        Console.WriteLine("Prosek: " + ucenici[i].prosek);
        Console.WriteLine("Smer: " +   ucenici[i].smer);

        pronadjen = true;
    }
}

if (pronadjen == false)
{
    Console.WriteLine("Ucenik nije pronadjen.");
}

Ovim zadatkom učenici ponavljaju: nizove, for petlju, if naredbu, poređenje string vrednosti, logički tip bool, rad sa strukturama i nabrojivim tipovima.

Dodatni zadaci

Zadatak A – Prikaz učenika određenog smera: Prikazati samo učenike koji pohađaju računarski smer.

Zadatak B – Najbolji učenik: Pronaći učenika sa najvećim prosekom.

Zadatak C – Brojanje učenika: Izračunati koliko učenika pohađa svaki smer.

Zadatak D – Prosečna ocena odeljenja: Izračunati prosečnu ocenu svih učenika.

int indeks = 0;

for (int i = 1; i < ucenici.Length; i++)
{
    if (ucenici[i].prosek > ucenici[indeks].prosek)
    {
        indeks = i;
    }
}

Console.WriteLine("Najbolji ucenik je: " +
    ucenici[indeks].ime + " " +
    ucenici[indeks].prezime);

Console.WriteLine("Prosek: " +
    ucenici[indeks].prosek);

Još jedan zadatak za vežbu

Napraviti konzolnu aplikaciju koja predstavlja evidenciju knjiga u maloj biblioteci.

Definisati nabrojivi tip VrstaKnjige sa vrednostima: Roman, Strucna, Istorijska, Decija.

Definisati strukturu Knjiga sa članovima: naslov (string), autor (string), broj stranica (int), cena (double), vrsta (VrstaKnjige).

U programu:

  1. Kreirati niz od tri knjige.

  2. Dodeliti vrednosti svim članovima.

  3. Prikazati podatke o svim knjigama.

  4. Prikazati samo knjige određene vrste.

  5. Pronaći knjigu sa najvećim brojem stranica.

Dodatni zadatak: Omogućiti korisniku da unese naziv knjige i proveriti da li se ona nalazi u nizu.

...

Last modified: Friday, 2 October 2026, 7:11 PM