Zadaci za vežbu kod kuće (generici)
Completion requirements
Zadaci za vežbu su diferencirani po složenosti!
Najjednostavniji zadaci (za ocenu 2 ili 3):
- Kreiranje generičke metode:
- Kreirati generičku metodu u kojoj se ispisuje poruka da prvi argument voli drugi argument ( poziv tipa voli(a,b) vraćа "а voli b", a poziv voli(1,2) vraća "1 voli 2")
- Kreirati generičku metodu u kojoj se 3 puta ispisuje poruka koja je parametar metode (npr ispis("j") treba da ispiše u tri reda slovo j )
- Kreirati generičku metodu koja vraća veći od dva broja bilo kog tipa (int, float, double).
- Napisati metodu
FindMinkoja vraća minimalnu vrednost između tri elementa
- Kreiranje generičke klase:
- Kreirati generičku klasu
Storage<T>koja može da čuva i vraća elemente različitih tipova. - Kreirati generičku klasu
Pair<T1, T2>koja može čuvati par vrednosti različitih tipova podataka - Kreirati klasu
Triplet<T1, T2, T3>koja može da čuva tri elementa različitih tipova.
- Kreirati generičku klasu
U glavnom programu kreirati jedan objekat kreirane klase i prikazati elemente iz njega.
Zadaci srednje težine (za 2 - 3 - 4):
- Kreiranje generičke klase: Kreirati generičku klasu
Pair<T1, T2>koja može čuvati par vrednosti različitih tipova podataka i implementirati metodu za prikaz ovih vrednosti. U glavnom programu kreirati po dva objekta svake od kreiranih klasa i prikazati elemente iz njih. - Proširivanje primera sa nizovima: Kreirati metodu
PrintArraykoja treba da ispiše sve elemente niza redom, bez obzira na tip podataka u nizu. Zatim u glavnom programu kreirati nizove od po 5 elemenata (nizReči, nizSlova, nizBrojeva). Primenom kreirane metode ispisati elemente svih nizova uz adekvatne oznake prilikom ispisa. - Kreiranje i rad sa List<T>:
- Kreirati listu koja skladišti nazive proizvoda. Dodati nekoliko proizvoda u listu.
- Kreirati generičku metodu koja pronalazi određeni proizvod na osnovu unetog naziva. Ako proizvod postoji u listi ispisati poruku da proizvod postoji i njegov index, a ako ga nema u listi, onda ispisati odgovarajuću poruku.
- ...
- Kreirati listu koja skladišti nazive proizvoda. Dodati nekoliko proizvoda u listu.
- Rad sa Dictionary<TKey, TValue>:
- Kreirati rečnik koji povezuje imena sa godinama.
Dodati nekoliko parova ključ-vrednost i prikazati sve parove.
- Kreirati rečnik stranih reči. Dodati nekoliko stranih reči i njihovo značenje na našem jeziku. Zatim ispisati sve.
- Kreirati rečnik kompjuterskih termina. Uneti nekoliko parova termin-znacenje i ispisati sve.
- Kreirati rečnik koji povezuje imena sa godinama.
Dodati nekoliko parova ključ-vrednost i prikazati sve parove.
-
Korišćenje Stack<T>:
- Implementirati jednostavan algoritam koji koristi stek za obrnut redosled niza brojeva.
-
Implementacija Queue<T>:
- Napraviti aplikaciju koja simulira red čekanja za servis, koristeći red za dodavanje i uklanjanje zadataka.
- Kreiranje generičke izvedene klase: Kreirati klasu
Triple<T1, T2, T3>koja nasleđuje klasuPair<T1, T2>i dodaje još jednu vrednost tipaT3. - Nasleđivanje sa ograničenjima: Kreirati klasu koja nasleđuje generičku klasu
Pair<T1, T2>sa ograničenjem da generički tip mora biti string.
Malo teži zadaci (za 4 - 5):
- Kreiranje generičke klase: Kreirati generičku klasu
Pair<T1, T2>koja može čuvati par vrednosti različitih tipova podataka i implementirati metodu za prikaz ovih vrednosti. Dodatno kreirati i metodu koja pronalazi da li postoji par u kojem se nalazi neka zadata vrednost i ispisuje poruku da li postoji ili ne. - Proširivanje primera sa nizovima: Kreirati metodu
PrintArraykoja treba da ispiše sve elemente niza redom, bez obzira na tip podataka u nizu. Zatim u glavnom programu kreirati nizove od po 5 elemenata (nizReči, nizSlova, nizBrojeva). Korisnik treba da unosi, pomoću tastature, elemente svakog od nizova. Primenom kreirane metode ispisati elemente samo jednog niza uz adekvatne oznake prilikom ispisa - izbor niza da je na korisniku. - Kreiranje i rad sa List<T>:
- Kreirati listu
koja skladišti nazive proizvoda. Dodajte proizvode tako što se od
korisnika traži da unese proizvod, sve dok se ne unese oznaka za kraj
unosa (hint: raditi kroz petlju).
- Kreirati generičku metodu koja pronalazi određeni proizvod na osnovu unetog naziva. Ako proizvod postoji u listi ispisati poruku da proizvod postoji i njegov index, a ako ga nema u listi, onda ispisati odgovarajuću poruku.
- Kreirati metodu koja treba da obriše proizvod iz liste na osnovu unetog indeksa elementa u listi. Ako takav element ne postoji, ispisati odgovarajuću poruku.
- Kreirati
metodu koja treba da obriše proizvod iz liste na osnovu unetog naziva
proizvoda, gde se briše prvi element sa takvim nazivom. Ako nijedan takav
element ne postoji, ispisati odgovarajuću poruku. Ako ima makar jedan, ispisati poruku na kojem je indeksu taj element bio pre brisanja.
- Kreirati listu
koja skladišti nazive proizvoda. Dodajte proizvode tako što se od
korisnika traži da unese proizvod, sve dok se ne unese oznaka za kraj
unosa (hint: raditi kroz petlju).
- Rad sa Dictionary<TKey, TValue>:
- Kreirati rečnik
koji povezuje imena sa godinama.
Dodati nekoliko parova ključ-vrednost i prikazati sve
parove. Kreirati metodu koja radi ažuriranje vrednosti za određeni
ključ. Zatim kreirati generičku metodu koja briše par iz rečnika, tako što se kao
parametar navodi i ključ i vrednost, pa ako ih ima u rečniku, onda ih
izbrisati, a ako ih nema, ispisati odgovarajuću poruku. Alternativno, može se kreirati generička metoda za unos određenog broja novih parova u rečnik.
- Kreirati rečnik stranih reči. Implementirati generičku metodu kojom se dodaju stranie reči i njihovo značenje na našem jeziku. Zatim implementirati i generičke metode za pronalaženje reči u rečniku, pa ako je ima, ispisati njeno značenje a ako je nema dati korisniku na izbor da li će da se doda nova reč u rečnik ili ne. Na kreju, ispisati sve reči i njihova značenja.
- Kreirati rečnik
koji povezuje imena sa godinama.
Dodati nekoliko parova ključ-vrednost i prikazati sve
parove. Kreirati metodu koja radi ažuriranje vrednosti za određeni
ključ. Zatim kreirati generičku metodu koja briše par iz rečnika, tako što se kao
parametar navodi i ključ i vrednost, pa ako ih ima u rečniku, onda ih
izbrisati, a ako ih nema, ispisati odgovarajuću poruku. Alternativno, može se kreirati generička metoda za unos određenog broja novih parova u rečnik.
-
Korišćenje Stack<T>:
- Implementirati jednostavan algoritam koji koristi stek za obrnut redosled niza reči i rečenica. Korisnik treba preko tastature da unosi reči i rečenice, sve dok se ne unese -1 kao oznaka za kraj unosa. Nakon toga ispisati sve što je unošeno, ali u obrnutom redosledu od unosa.
- Implementirati jednostavan algoritam koji koristi stek za obrnut redosled niza reči i rečenica. Korisnik treba preko tastature da unosi reči i rečenice, sve dok se ne unese -1 kao oznaka za kraj unosa. Nakon toga ispisati sve što je unošeno, ali u obrnutom redosledu od unosa.
-
Implementacija Queue<T>:
- Napraviti aplikaciju koja simulira red čekanja za servis, koristeći red za dodavanje i uklanjanje zadataka. Korisnik treba preko tastature da unosi reči i rečenice, sve dok se ne
unese -1 kao oznaka za kraj unosa. Nakon toga ispisati sve što je
unošeno, onim redom kojim je i uneto.
- Napraviti aplikaciju koja simulira red čekanja za servis, koristeći red za dodavanje i uklanjanje zadataka. Korisnik treba preko tastature da unosi reči i rečenice, sve dok se ne
unese -1 kao oznaka za kraj unosa. Nakon toga ispisati sve što je
unošeno, onim redom kojim je i uneto.
- Kreiranje generičke izvedene klase: Kreirati klasu
Triple<T1, T2, T3>koja nasleđuje klasuPair<T1, T2>i dodaje još jednu vrednost tipaT3. U toj klasi kreirati i metodu za ispis zbira ta tri elementa ako je to moguće, a ako nije moguće sabrati elemente, ispisati odgovarajuću poruku (hint: try...catch...) - Nasleđivanje sa ograničenjima: Kreirati klasu koja nasleđuje generičku klasu
Triple<T1, T2, T3>sa ograničenjem: generički tip mora biti tip koji implementira određeni interfejs da bi se mogli unositi samo brojevi). U toj klasi kreirati i metodu za ispis zbira i proizvoda ta tri elementa ako je to moguće, a ako nije moguće, ispisati odgovarajuću poruku.
Last modified: Wednesday, 22 January 2025, 8:40 PM