Задача 1. Да се реализира клас Билет (за театрално представление), който поддържа информация за името на представлението и цена. Съществува още билет с намаление за студенти и пенсионери, чиято цена е 50% от цената на нормалния. Той е поименен и важи след предоставяне на подходящ документ, в момента на закупуването.

Да се напише функция, която приема множество от билети (нормални и студентски) за дадено представление и извежда общата стойност на билетите.

 

Задача 2. Да се реализира абстрактен базов клас Set, който описва следните операции върху крайно множество от цели числа (int):

      bool member(int x): проверява дали цялото число x е елемент на множество;

      оператор []: връща i-тия елемент на множество. Индексацията на елементите е без значение;

      int length (): брой елементи в множеството;

      оператор <: проверява дали текущото множество е същинско подмножество на дадено множество s;

      булев оператор *: проверява дали две множества имат непразно сечение;

      оператор +=: променя текущото множество до обединение с параметъра.

 

Да се реализират наследници IntRange(*) и ArraySet. Клас IntRange наследява класа Set и представя затворен интервал от цели числа. Краищата на интервала да се задават при конструиране на обекта. ArraySet е клас, поддържащ множество от максимум n числа, където n се задава по време на конструиране на обекта. Класът да поддържа следните операции:

      bool insert(int x): добавя елемента x към множеството. Ако капацитетът е изчерпан или този елемент се съдържа в множеството, връща лъжа. Връща истина в противен случай.

 

Да се реализира функция bool mon([попълнете правилния тип] sets[], int n), която получава масив от обекти (или указатели към обекти) множества. Масивът е с големина n. Функцията трябва да проверява дали елементите на масива образуват строго монотонно растяща редица.

 

(*) Операторът += за IntRange трябва да намира покритието на двата интервала, т.е. най-малкият интервал, който съдържа едновременно и дадените два интервала.


Последно модифициране: сряда, 18 май 2016, 20:34