Садржај
2 Класе и објекти
2.1 Основни појмови о класама и објектима
3 Генеричке класе
4 Наслеђивање и полиморфизам
5 Примери пројеката са решењима
5.1 Различита кретања
5.2 Квиз
5.4 Приказ рада алгоритама сортирања

Интерфејси – задаци

1. Гласни и покретни објекти

Написати најједноставније могуће интерфејсе и класе који су довољни да следећи програм може да се изврши.

Извршавањем овог програма треба да се добије следећи излаз:

Glasovi glasnih:
        pas: av av
        motorna testera: vruum
Brzine pokretnih:
        pas: 36Km/h
        bicikl: 50Km/h
Упутство

Интерфејс IGlasan треба да има само метод string Zvuk(), а интерфејс IPokretan само метод double Brzina() (или int Brzina()).

Класа Pas треба да имплементира оба интерфејса, класа MotornaTestera само интерфејс IGlasan, а класа Bicikl само интерфејс IPokretan. Поред тога, свака од ове три класе треба да редефинише метод ToString користећи кључну реч override.

2. Упоредиви велики бројеви

Написати класу VelikiBroj која омогућава правилно поређење бројева са великим бројем цифара. Класу написати тако да следећи програм може да се изврши:

Извршавањем овог програма треба да се добије следећи излаз:

-125
-123
-12
0
251
263
2500

Напомена: У комплетној класи требало би написати бар још и операторе за сабирање, одузимање и множење, али то није тема овог задатака.

Упутство

Класа VelikiBroj треба да имплементира интерфејс IComparable. Знак и цифре броја могу заједно да се чувају у приватној ниски cifre. Написати одговарајући метод ToString(). Приликом поређења два броја (задата помоћу ниски), у методу CompareTo водити рачуна о следећем:

  • ако су оба броја негативна, резултат поређења је обрнут од оног који се добија поређењем тих бројева без предзнака.

  • ако је само један број негативан, он је мањи.

  • ако су оба броја позитивна, мањи је онај који има мање цифара.

  • ако су оба броја позитивна и имају једнак број цифара, мањи по вредности је уједно и лексикографски мањи, тј. бројеви могу да се пореде као ниске.

3. Фибоначијев низ

Написати метод који генерише колекцију Фибоначијевих бројева \(1, 1, 2, 3, 5, 8 \ldots\), све до задате границе. Као што је познато, сваки Фибоначијев број (осим прва два) добија се као збир претходна два. Написати и програм, који помоћу овог метода исписује све Фибоначијеве бројеве мање од милион. Ни метод који генерише колекцију, ни метод који је користи, не треба да чувају елементе колекције.

Упутство

Метод треба да враћа референцу на интерфејс IEnumerable<int>. Довољно је да метод памти два узастопна елемента Фибоначијевог низа, да у петљи враћа следећи елемент помоћу наредбе yield return и (у истој петљи) да израчунава нови пар узастопних елемената.

4. Пермутације

Написати класу GeneratorPermutacija са методом Permutacije, који генерише колекцију ниски (стрингова) састављених од задатих карактера у свим могућим редоследима. Класу написати тако да може да се изврши следећи програм:

Извршавањем програма треба да се добије следећи излаз, при чему ниске не морају да буду исписане баш у овом редоследу:

sve
sev
vse
ves
evs
esv

Ни у класи чији метод генерише пермутације датих карактера, ни на месту употребе тог метода, генерисане ниске не треба да се чувају.

(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+