Задача 1. Нека е дадена биекция c:char -> int. Кодиране на символния низ a1,...,ak наричаме редицата от стойности от тип int n1,...,nk, където ni = c (ai). Да се създаде клас Encoding, която реализира съответствието “символ – код” за единичен символ.

 

Да се реализира на клас Досие (Dossier), който съдържа КОДИРАН текст с

произволна дължина. Досиетата съдържат и информация за кодиране (декодиране) на текста. Информацията представлява динамичен масив от съответствия “символ – код”, за всички участващи в текста символи. Да се реализират:

 

  • канонично представяне на клас Dossier

  • конструктор с параметри - текст(char*) и таблица за кодиране (Encoding*), който кодира текста (добавете допълнителни параметри, ако са необходими)

  • булев оператор &&, който проверява дали кодовете на две досиета си противоречат (т.е. дали дават различно кодиране за един и същи символ)

  • оператор за събиране (+), който събира два кодирани текста от досието, чиито кодове не си противоречат. Ако кодовете си противаоречат, се създава празно досие

  • printText, който извежда оригиналния текст на екрана



Задача 2. Да се дефинира клас Relation, който съдържа два обекта от тип int, наречени subject и object, и низ с произволна дължина relation, описващ връзката между тези обекти.

Пример: Relation r1(2,6,“is smaller than”),r2(6,3,“is divisible by”);

За класа да се реализират голямата четворка и оператор за изход operator<<

Пример: r1.print(): 2 is smaller than 6.

За класа Relation реализирайте и оператор за композиция * по следния начин.

Ако r = r1 * r2, то r.subject = r1.subject, r.object = r2.object,

 r.action = r1.action r1.object “, which is“ r2.action

Пример: (r1*r2).print(): 2 is smaller than 6, which is divisible by 3

Композицията се допуска само ако r1.object == r2.subject, в противен случай резултатът  e r1.

Упътване: Обръшението към ф-ята itoa(val,str,10) записва числото val в низа сочен от str.

 

Last modified: Friday, 5 April 2013, 1:10 PM