Advertisement
Guest User

Untitled

a guest
Nov 27th, 2015
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.11 KB | None | 0 0
  1.  
  2. PASTEBIN | #1 paste tool since 2002
  3. create new pastetoolsapiarchivefaq
  4. PASTEBIN
  5. search...
  6. Search...
  7. create new paste trending pastes
  8. sign uploginmy alertsmy settingsmy profile
  9. BLACK FRIDAY SPECIAL! For a limited time only. Get 40% discount on a LIFETIME PRO account!Want more features on Pastebin? Sign Up, it's FREE!
  10. Public Pastes
  11. Untitled
  12. 7 sec ago
  13. Untitled
  14. 10 sec ago
  15. Untitled
  16. 16 sec ago
  17. bintree
  18. C | 23 sec ago
  19. Untitled
  20. 33 sec ago
  21. Untitled
  22. 39 sec ago
  23. Untitled
  24. 50 sec ago
  25. isoutofscreen
  26. C# | 56 sec ago
  27. 0
  28. Guest
  29. PT_Zapoctovka_2
  30. BY: A GUEST ON NOV 27TH, 2015 | SYNTAX: NONE | SIZE: 7.42 KB | VIEWS: 59 | EXPIRES: NEVER
  31. DOWNLOAD | RAW | EMBED | REPORT ABUSE | PRINT | QR CODE | CLONE
  32. AD-BLOCK DETECTED - PLEASE SUPPORT PASTEBIN BY BUYING A PRO ACCOUNT
  33. For only $2.95 you can unlock loads of extra features, and support Pastebin's development at the same time.
  34. pastebin.com/pro
  35.  
  36. /* --------------------------------------------------------------------------------
  37. Meno:
  38.  
  39. Subor premenujte na Priezvisko_Meno_Id_pisomka2_10hod.cpp (pouzite vase udaje, pripona musi ostat .cpp).
  40. Cela implementacia musi byt v tomto jednom subore (odovzdajte do miesta odovzdania v AIS len tento zdrojovy subor).
  41. Nemente deklaracie funkcii. <- DOLEZITE
  42. Programu musi byt kompilovatelny. <- DOLEZITE
  43. Nemente implementacie hotovych funkci, ani zadanych struktur a tried.
  44. V pripade potreby mozete kod doplnit o dalsie funkcie, struktury, alebo triedy.
  45. Globalne premenne su zakazane.
  46. Funkcia 'main' musi byt v zdrojovom kode posledna.
  47.  
  48. Vypracujte ulohy zadane dalej.
  49. V maine je uz pripravy testovaci kod.
  50. -------------------------------------------------------------------------------- */
  51.  
  52. #include <iostream>
  53. #include <vector>
  54. #include <list>
  55. #include <map>
  56. #include <set>
  57. #include <string>
  58. #include <sstream>
  59. #include <iomanip>
  60. #include <algorithm>
  61.  
  62. using namespace std;
  63.  
  64. #pragma warning( disable : 4290 ) //zabranenie warning-u //warning C4290 : C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
  65.  
  66. //---------- 1. uloha (1 bod) ---------------------------------------------------------
  67.  
  68. //Doplnte a otestujte implementaciu hash-ovacej funkcie.
  69. //Vstupom je e-mailova adresa 'emailAddress'.
  70. //Hash-ovacia funkcia musi byt zavisla iba od casti pred znakom '@', nesmie byt zavisla od zvysnej casti.
  71. //Ak by e-mailova adresa obsahovala viacero znakov '@', tak do vypoctu zahrnte iba znaky pred prvym vyskytom znaku '@'.
  72. //Ak by e-mailova adresa neobsahovala znak '@', tak hodnota hash-ovacej funkcie bude zavisiet od vsetkych znakov.
  73. //Algoritmus pre vypocet hash-u vypocita sumu ASCII kodov znakov, z ktorej potom vypocita zvysok po deleni 11.
  74. int hashEmailAddress(string emailAddress) {
  75. return -1; //tento riadok je len kvoli kompilacii
  76. }
  77.  
  78. //---------- 2. a 3. uloha (2 body a 1 bod) -----------------------------------------------------------
  79.  
  80. //2) Doplnte a otestujte kopirovaci konstruktor triedy 'Polygon', ktory zabezpeci vytvorenie hlbokej kopie. (2 body)
  81.  
  82. //3) Doplnte destruktor triedy 'Polygon', ktory dealokuje dynamicky akokovanu pamat v konstruktoroch
  83. // Pouzite spravnu verziu operatora. (1 bod)
  84.  
  85. struct Position { //struktura reprezentuje poziciu bodu polygonu
  86. int x;
  87. int y;
  88. };
  89.  
  90. class Polygon { //trieda reprezentuje polygon definovany postupnostou bodov
  91. private:
  92. Position* points; //pozicie bodov polygonu
  93. int length; //pocet bodov polygonu
  94. public:
  95. Polygon(int length) : length(length) {
  96. points = new Position[length];
  97. for (int i = 0; i < length; i++) {
  98. points[i].x = rand() % 10;
  99. points[i].y = rand() % 10;
  100. }
  101. }
  102. //TU DOPLNTE KOPIROVACI KONSTRUKTOR
  103.  
  104.  
  105. //TU DOPLNTE DESTRUKTOR
  106.  
  107.  
  108. void set(int index, int valueX, int valueY) {
  109. points[index].x = valueX;
  110. points[index].y = valueY;
  111. }
  112. string toString() { //funkcia vrati obsah polygonu ako string (pre testovacie ucely)
  113. ostringstream stream;
  114. for (int i = 0; i < length; i++) {
  115. stream << setw(3) << to_string(points[i].x) << ',' << setw(3) << to_string(points[i].y) << ", ";
  116. }
  117. return stream.str();
  118. }
  119. };
  120.  
  121. //---------- 4. uloha (1 bod) ------------------------------------------------------------------------
  122.  
  123. //Doplnte a otestujte implementaciu funkcie 'append', ktora prida na koniec zoznamu 'data' hodnotu 100.
  124. void append(list<int> & data) {
  125.  
  126. }
  127.  
  128. //---------- 5. uloha (1 bod) ------------------------------------------------------------------------
  129.  
  130. //Doplnte a otestujte implementaciu funkcie, ktora vrati pocet prvok zoznamu 'data' vacsich ako 500.
  131. //V implementacii pouzite funkciu 'count_if'
  132.  
  133. int countGreaterThan500(list<int> data) {
  134. return -1; //tento riadok je len kvoli kompilacii
  135. }
  136.  
  137. //---------- 6. uloha (2 body) ---------------------------------------------------------------
  138.  
  139. //Funkcia 'squareRoot' vrati druhu odmocninu vstupneho parametra 'number'.
  140. //Doplnte a otestujte implementaciu funkcie tak, aby funkcia vyhodila vynimku typu 'invalid_argument' ak je hodnota 'number' mensia ako 0.
  141. //Poznamka: konstruktor vynimky 'invalid_argument' musi mat zadany parameter.
  142. double squareRoot(double number) throw (invalid_argument) {
  143.  
  144. return sqrt(number);
  145. }
  146.  
  147. //---------- 7. uloha (2 body) ------------------------------------------------------------
  148.  
  149. //Doplnte a otestujte implementaciu funkcie 'contains' vykonavajucej binarne hladavanie nad usporiadanym vektorom 'sortedVector'.
  150. //Prvky su vo vstupnom vektore usporiadane od najmensieho po najvacsi.
  151. //Funkcia vrati 'true' ak vstupny vektor obsahuje hodnotu 'number', inak vrati 'false'.
  152. //Maximalny pocet iteracii/rekurzivnych volani musi byt logaritmus poctu prvkov vstupneho vektora.
  153. bool contains(int number, vector<int> & sortedVector) {
  154. return -1; //tento riadok je len kvoli kompilacii
  155. }
  156.  
  157. //-------------------------------------------------------------------------------------------
  158.  
  159. int main() {
  160.  
  161. cout << "---- 1. uloha ----" << endl;
  162. string email1 = "peter@gmail.com";
  163. string email2 = "peter@is.stuba.sk";
  164. string email3 = "palo@gmail.com";
  165. string email4 = "email_bez_zavinacu";
  166. string email5 = "aaaa@b@c";
  167. cout << hashEmailAddress(email1) << " == 5" << endl;
  168. cout << hashEmailAddress(email2) << " == 5" << endl;
  169. cout << hashEmailAddress(email3) << " == 10" << endl;
  170. cout << hashEmailAddress(email4) << " == 4" << endl;
  171. cout << hashEmailAddress(email5) << " == 3" << endl;
  172.  
  173. cout << "---- 2. uloha ----" << endl;
  174. Polygon p1(8);
  175. Polygon p2(p1);
  176. p1.set(1, 100, 200);
  177. p1.set(7, 300, 400);
  178. cout << p1.toString() << endl;
  179. cout << p2.toString() << endl;
  180.  
  181. cout << "---- 4. uloha ----" << endl;
  182. list<int> data4append = { 6, 7, 1, 2 };
  183. append(data4append);
  184. for (int value : data4append) {
  185. cout << value << ", ";
  186. }
  187. cout << endl;
  188.  
  189. cout << "---- 5. uloha ----" << endl;
  190. list<int> data5greater = { 1, 1001, 1005, 5, 6, 1007, 1009, 8, 2, 7, 3, 1004 };
  191. cout << countGreaterThan500(data5greater) << " == 5" << endl;
  192.  
  193. cout << "---- 6. uloha ----" << endl;
  194. try {
  195. cout << squareRoot(4) << " == 2" << endl;
  196. cout << squareRoot(16) << " == 4" << endl;
  197. }
  198. catch (invalid_argument & exception) {
  199. cout << "ERROR: BOLA VYHODNA VYNIMKA " << exception.what() << endl;
  200. }
  201. try {
  202. cout << squareRoot(-1) << endl;
  203. cout << "ERROR: NEBOLA VYHODENA VYNIMKA" << endl;
  204. }
  205. catch (invalid_argument & exception) {
  206. cout << "OK: bola vyhodna vynimka " << exception.what() << endl;
  207. }
  208.  
  209. cout << "---- 7. uloha ----" << endl;
  210. vector<int> v7 = { 10, 15, 20, 50, 60, 80, 90 };
  211. cout << contains(10, v7) << " == 1" << endl;
  212. cout << contains(15, v7) << " == 1" << endl;
  213. cout << contains(20, v7) << " == 1" << endl;
  214. cout << contains(50, v7) << " == 1" << endl;
  215. cout << contains(60, v7) << " == 1" << endl;
  216. cout << contains(80, v7) << " == 1" << endl;
  217. cout << contains(90, v7) << " == 1" << endl;
  218. cout << "-----" << endl;
  219. cout << contains( 1, v7) << " == 0" << endl;
  220. cout << contains(14, v7) << " == 0" << endl;
  221. cout << contains(51, v7) << " == 0" << endl;
  222. cout << contains(85, v7) << " == 0" << endl;
  223. cout << contains(100,v7) << " == 0" << endl;
  224. cout << "-----" << endl;
  225. vector<int> v71 = { 10 };
  226. cout << contains(10, v71) << " == 1" << endl;
  227. cout << "-----" << endl;
  228. cout << contains( 5, v71) << " == 0" << endl;
  229. cout << contains(15, v71) << " == 0" << endl;
  230. cout << "-----" << endl;
  231. vector<int> v70;
  232. cout << contains(10, v70) << " == 0" << endl;
  233.  
  234. return EXIT_SUCCESS;
  235. }
  236. clone this paste RAW Paste Data
  237.  
  238. /* --------------------------------------------------------------------------------
  239. Meno:
  240.  
  241. Subor premenujte na Priezvisko_Meno_Id_pisomka2_10hod.cpp (pouzite vase udaje, pripona musi ostat .cpp).
  242. Cela implementacia musi byt v tomto jednom subore (odovzdajte do miesta odovzdania v AIS len tento zdrojovy subor).
  243. Nemente deklaracie funkcii. <- DOLEZITE
  244. Programu musi byt kompilovatelny. <- DOLEZITE
  245. Nemente implementacie hotovych funkci, ani zadanych struktur a tried.
  246. V pripade potreby mozete kod doplnit o dalsie funkcie, struktury, alebo triedy.
  247. Globalne premenne su zakazane.
  248. Funkcia 'main' musi byt v zdrojovom kode posledna.
  249.  
  250. Vypracujte ulohy zadane dalej.
  251. V maine je uz pripravy testovaci kod.
  252. -------------------------------------------------------------------------------- */
  253.  
  254. #include <iostream>
  255. #include <vector>
  256. #include <list>
  257. #include <map>
  258. #include <set>
  259. #include <string>
  260. #include <sstream>
  261. #include <iomanip>
  262. #include <algorithm>
  263.  
  264. using namespace std;
  265.  
  266. #pragma warning( disable : 4290 ) //zabranenie warning-u //warning C4290 : C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
  267.  
  268. //---------- 1. uloha (1 bod) ---------------------------------------------------------
  269.  
  270. //Doplnte a otestujte implementaciu hash-ovacej funkcie.
  271. //Vstupom je e-mailova adresa 'emailAddress'.
  272. //Hash-ovacia funkcia musi byt zavisla iba od casti pred znakom '@', nesmie byt zavisla od zvysnej casti.
  273. //Ak by e-mailova adresa obsahovala viacero znakov '@', tak do vypoctu zahrnte iba znaky pred prvym vyskytom znaku '@'.
  274. //Ak by e-mailova adresa neobsahovala znak '@', tak hodnota hash-ovacej funkcie bude zavisiet od vsetkych znakov.
  275. //Algoritmus pre vypocet hash-u vypocita sumu ASCII kodov znakov, z ktorej potom vypocita zvysok po deleni 11.
  276. int hashEmailAddress(string emailAddress) {
  277. return -1; //tento riadok je len kvoli kompilacii
  278. }
  279.  
  280. //---------- 2. a 3. uloha (2 body a 1 bod) -----------------------------------------------------------
  281.  
  282. //2) Doplnte a otestujte kopirovaci konstruktor triedy 'Polygon', ktory zabezpeci vytvorenie hlbokej kopie. (2 body)
  283.  
  284. //3) Doplnte destruktor triedy 'Polygon', ktory dealokuje dynamicky akokovanu pamat v konstruktoroch
  285. // Pouzite spravnu verziu operatora. (1 bod)
  286.  
  287. struct Position { //struktura reprezentuje poziciu bodu polygonu
  288. int x;
  289. int y;
  290. };
  291.  
  292. class Polygon { //trieda reprezentuje polygon definovany postupnostou bodov
  293. private:
  294. Position* points; //pozicie bodov polygonu
  295. int length; //pocet bodov polygonu
  296. public:
  297. Polygon(int length) : length(length) {
  298. points = new Position[length];
  299. for (int i = 0; i < length; i++) {
  300. points[i].x = rand() % 10;
  301. points[i].y = rand() % 10;
  302. }
  303. }
  304. //TU DOPLNTE KOPIROVACI KONSTRUKTOR
  305.  
  306.  
  307. //TU DOPLNTE DESTRUKTOR
  308.  
  309.  
  310. void set(int index, int valueX, int valueY) {
  311. points[index].x = valueX;
  312. points[index].y = valueY;
  313. }
  314. string toString() { //funkcia vrati obsah polygonu ako string (pre testovacie ucely)
  315. ostringstream stream;
  316. for (int i = 0; i < length; i++) {
  317. stream << setw(3) << to_string(points[i].x) << ',' << setw(3) << to_string(points[i].y) << ", ";
  318. }
  319. return stream.str();
  320. }
  321. };
  322.  
  323. //---------- 4. uloha (1 bod) ------------------------------------------------------------------------
  324.  
  325. //Doplnte a otestujte implementaciu funkcie 'append', ktora prida na koniec zoznamu 'data' hodnotu 100.
  326. void append(list<int> & data) {
  327.  
  328. }
  329.  
  330. //---------- 5. uloha (1 bod) ------------------------------------------------------------------------
  331.  
  332. //Doplnte a otestujte implementaciu funkcie, ktora vrati pocet prvok zoznamu 'data' vacsich ako 500.
  333. //V implementacii pouzite funkciu 'count_if'
  334.  
  335. int countGreaterThan500(list<int> data) {
  336. return -1; //tento riadok je len kvoli kompilacii
  337. }
  338.  
  339. //---------- 6. uloha (2 body) ---------------------------------------------------------------
  340.  
  341. //Funkcia 'squareRoot' vrati druhu odmocninu vstupneho parametra 'number'.
  342. //Doplnte a otestujte implementaciu funkcie tak, aby funkcia vyhodila vynimku typu 'invalid_argument' ak je hodnota 'number' mensia ako 0.
  343. //Poznamka: konstruktor vynimky 'invalid_argument' musi mat zadany parameter.
  344. double squareRoot(double number) throw (invalid_argument) {
  345.  
  346. return sqrt(number);
  347. }
  348.  
  349. //---------- 7. uloha (2 body) ------------------------------------------------------------
  350.  
  351. //Doplnte a otestujte implementaciu funkcie 'contains' vykonavajucej binarne hladavanie nad usporiadanym vektorom 'sortedVector'.
  352. //Prvky su vo vstupnom vektore usporiadane od najmensieho po najvacsi.
  353. //Funkcia vrati 'true' ak vstupny vektor obsahuje hodnotu 'number', inak vrati 'false'.
  354. //Maximalny pocet iteracii/rekurzivnych volani musi byt logaritmus poctu prvkov vstupneho vektora.
  355. bool contains(int number, vector<int> & sortedVector) {
  356. return -1; //tento riadok je len kvoli kompilacii
  357. }
  358.  
  359. //-------------------------------------------------------------------------------------------
  360.  
  361. int main() {
  362.  
  363. cout << "---- 1. uloha ----" << endl;
  364. string email1 = "peter@gmail.com";
  365. string email2 = "peter@is.stuba.sk";
  366. string email3 = "palo@gmail.com";
  367. string email4 = "email_bez_zavinacu";
  368. string email5 = "aaaa@b@c";
  369. cout << hashEmailAddress(email1) << " == 5" << endl;
  370. cout << hashEmailAddress(email2) << " == 5" << endl;
  371. cout << hashEmailAddress(email3) << " == 10" << endl;
  372. cout << hashEmailAddress(email4) << " == 4" << endl;
  373. cout << hashEmailAddress(email5) << " == 3" << endl;
  374.  
  375. cout << "---- 2. uloha ----" << endl;
  376. Polygon p1(8);
  377. Polygon p2(p1);
  378. p1.set(1, 100, 200);
  379. p1.set(7, 300, 400);
  380. cout << p1.toString() << endl;
  381. cout << p2.toString() << endl;
  382.  
  383. cout << "---- 4. uloha ----" << endl;
  384. list<int> data4append = { 6, 7, 1, 2 };
  385. append(data4append);
  386. for (int value : data4append) {
  387. cout << value << ", ";
  388. }
  389. cout << endl;
  390.  
  391. cout << "---- 5. uloha ----" << endl;
  392. list<int> data5greater = { 1, 1001, 1005, 5, 6, 1007, 1009, 8, 2, 7, 3, 1004 };
  393. cout << countGreaterThan500(data5greater) << " == 5" << endl;
  394.  
  395. cout << "---- 6. uloha ----" << endl;
  396. try {
  397. cout << squareRoot(4) << " == 2" << endl;
  398. cout << squareRoot(16) << " == 4" << endl;
  399. }
  400. catch (invalid_argument & exception) {
  401. cout << "ERROR: BOLA VYHODNA VYNIMKA " << exception.what() << endl;
  402. }
  403. try {
  404. cout << squareRoot(-1) << endl;
  405. cout << "ERROR: NEBOLA VYHODENA VYNIMKA" << endl;
  406. }
  407. catch (invalid_argument & exception) {
  408. cout << "OK: bola vyhodna vynimka " << exception.what() << endl;
  409. }
  410.  
  411. cout << "---- 7. uloha ----" << endl;
  412. vector<int> v7 = { 10, 15, 20, 50, 60, 80, 90 };
  413. cout << contains(10, v7) << " == 1" << endl;
  414. cout << contains(15, v7) << " == 1" << endl;
  415. cout << contains(20, v7) << " == 1" << endl;
  416. cout << contains(50, v7) << " == 1" << endl;
  417. cout << contains(60, v7) << " == 1" << endl;
  418. cout << contains(80, v7) << " == 1" << endl;
  419. cout << contains(90, v7) << " == 1" << endl;
  420. cout << "-----" << endl;
  421. cout << contains( 1, v7) << " == 0" << endl;
  422. cout << contains(14, v7) << " == 0" << endl;
  423. cout << contains(51, v7) << " == 0" << endl;
  424. cout << contains(85, v7) << " == 0" << endl;
  425. cout << contains(100,v7) << " == 0" << endl;
  426. cout << "-----" << endl;
  427. vector<int> v71 = { 10 };
  428. cout << contains(10, v71) << " == 1" << endl;
  429. cout << "-----" << endl;
  430. cout << contains( 5, v71) << " == 0" << endl;
  431. cout << contains(15, v71) << " == 0" << endl;
  432. cout << "-----" << endl;
  433. vector<int> v70;
  434. cout << contains(10, v70) << " == 0" << endl;
  435.  
  436. return EXIT_SUCCESS;
  437. }
  438. Pastebin.com Tools & Applications
  439. iPhone/iPad Windows Firefox Chrome WebOS Android Mac Opera Click.to UNIX WinPhone
  440. create new paste | api | trends | syntax languages | faq | tools | privacy | cookies | contact | dmca | advertise on pastebin | scraping | go PRO
  441. Follow us: pastebin on facebook | pastebin on twitter | pastebin in the news
  442. Dedicated Server Hosting by Steadfast
  443. Pastebin v3.11 rendered in: 0.003 seconds
  444. Site design & logo © 2015 Pastebin; user contributions (pastes) licensed under cc by-sa 3.0 Top
  445. /* --------------------------------------------------------------------------------
  446. Meno:
  447.  
  448. Subor premenujte na Priezvisko_Meno_Id_pisomka2_10hod.cpp (pouzite vase udaje, pripona musi ostat .cpp).
  449. Cela implementacia musi byt v tomto jednom subore (odovzdajte do miesta odovzdania v AIS len tento zdrojovy subor).
  450. Nemente deklaracie funkcii. <- DOLEZITE
  451. Programu musi byt kompilovatelny. <- DOLEZITE
  452. Nemente implementacie hotovych funkci, ani zadanych struktur a tried.
  453. V pripade potreby mozete kod doplnit o dalsie funkcie, struktury, alebo triedy.
  454. Globalne premenne su zakazane.
  455. Funkcia 'main' musi byt v zdrojovom kode posledna.
  456.  
  457. Vypracujte ulohy zadane dalej.
  458. V maine je uz pripravy testovaci kod.
  459. -------------------------------------------------------------------------------- */
  460.  
  461. #include <iostream>
  462. #include <vector>
  463. #include <list>
  464. #include <map>
  465. #include <set>
  466. #include <string>
  467. #include <sstream>
  468. #include <iomanip>
  469. #include <algorithm>
  470.  
  471. using namespace std;
  472.  
  473. #pragma warning( disable : 4290 ) //zabranenie warning-u //warning C4290 : C++ exception specification ignored except to indicate a function is not __declspec(nothrow)
  474.  
  475. //---------- 1. uloha (1 bod) ---------------------------------------------------------
  476.  
  477. //Doplnte a otestujte implementaciu hash-ovacej funkcie.
  478. //Vstupom je e-mailova adresa 'emailAddress'.
  479. //Hash-ovacia funkcia musi byt zavisla iba od casti pred znakom '@', nesmie byt zavisla od zvysnej casti.
  480. //Ak by e-mailova adresa obsahovala viacero znakov '@', tak do vypoctu zahrnte iba znaky pred prvym vyskytom znaku '@'.
  481. //Ak by e-mailova adresa neobsahovala znak '@', tak hodnota hash-ovacej funkcie bude zavisiet od vsetkych znakov.
  482. //Algoritmus pre vypocet hash-u vypocita sumu ASCII kodov znakov, z ktorej potom vypocita zvysok po deleni 11.
  483. int hashEmailAddress(string emailAddress) {
  484.  
  485. return -1; //tento riadok je len kvoli kompilacii
  486. }
  487.  
  488. //---------- 2. a 3. uloha (2 body a 1 bod) -----------------------------------------------------------
  489.  
  490. //2) Doplnte a otestujte kopirovaci konstruktor triedy 'Polygon', ktory zabezpeci vytvorenie hlbokej kopie. (2 body)
  491.  
  492. //3) Doplnte destruktor triedy 'Polygon', ktory dealokuje dynamicky akokovanu pamat v konstruktoroch
  493. // Pouzite spravnu verziu operatora. (1 bod)
  494.  
  495. struct Position { //struktura reprezentuje poziciu bodu polygonu
  496. int x;
  497. int y;
  498. };
  499.  
  500. class Polygon { //trieda reprezentuje polygon definovany postupnostou bodov
  501. private:
  502. Position* points; //pozicie bodov polygonu
  503. int length; //pocet bodov polygonu
  504. public:
  505. Polygon(int length) : length(length) {
  506. points = new Position[length];
  507. for (int i = 0; i < length; i++) {
  508. points[i].x = rand() % 10;
  509. points[i].y = rand() % 10;
  510. }
  511. }
  512. //TU DOPLNTE KOPIROVACI KONSTRUKTOR
  513. Polygon(const Polygon & p1) : length(p1.length) {
  514. points = new Position[length];
  515. for (int i = 0; i < length; i++)
  516. {
  517. points[i].x = p1.points[i].x;
  518. points[i].y = p1.points[i].y;
  519. }
  520.  
  521. //TU DOPLNTE DESTRUKTOR
  522. ~Polygon() {
  523. delete points;
  524. }
  525.  
  526.  
  527. void set(int index, int valueX, int valueY) {
  528. points[index].x = valueX;
  529. points[index].y = valueY;
  530. }
  531. string toString() { //funkcia vrati obsah polygonu ako string (pre testovacie ucely)
  532. ostringstream stream;
  533. for (int i = 0; i < length; i++) {
  534. stream << setw(3) << to_string(points[i].x) << ',' << setw(3) << to_string(points[i].y) << ", ";
  535. }
  536. return stream.str();
  537. }
  538. };
  539.  
  540. //---------- 4. uloha (1 bod) ------------------------------------------------------------------------
  541.  
  542. //Doplnte a otestujte implementaciu funkcie 'append', ktora prida na koniec zoznamu 'data' hodnotu 100.
  543. void append(list<int> & data) {
  544. data.push_back(100);
  545. }
  546.  
  547. //---------- 5. uloha (1 bod) ------------------------------------------------------------------------
  548.  
  549. //Doplnte a otestujte implementaciu funkcie, ktora vrati pocet prvok zoznamu 'data' vacsich ako 500.
  550. //V implementacii pouzite funkciu 'count_if'
  551. bool Greater (int i)
  552. {
  553. return (i>500);
  554. }
  555.  
  556. int countGreaterThan500(list<int> data) {
  557. return count_if(data.begin(),data.end(),Greater);
  558. //return -1; //tento riadok je len kvoli kompilacii
  559. }
  560.  
  561. //---------- 6. uloha (2 body) ---------------------------------------------------------------
  562.  
  563. //Funkcia 'squareRoot' vrati druhu odmocninu vstupneho parametra 'number'.
  564. //Doplnte a otestujte implementaciu funkcie tak, aby funkcia vyhodila vynimku typu 'invalid_argument' ak je hodnota 'number' mensia ako 0.
  565. //Poznamka: konstruktor vynimky 'invalid_argument' musi mat zadany parameter.
  566. class invalid_argument {};
  567. double squareRoot(double number) throw (invalid_argument) {
  568. try {
  569. return sqrt(number);
  570. throw (number < 0);
  571. }
  572. catch (invalid_argument ia)
  573. {
  574. cout << "Number je mensie ako 0." << endl;
  575. }
  576. }
  577.  
  578. //---------- 7. uloha (2 body) ------------------------------------------------------------
  579.  
  580. //Doplnte a otestujte implementaciu funkcie 'contains' vykonavajucej binarne hladavanie nad usporiadanym vektorom 'sortedVector'.
  581. //Prvky su vo vstupnom vektore usporiadane od najmensieho po najvacsi.
  582. //Funkcia vrati 'true' ak vstupny vektor obsahuje hodnotu 'number', inak vrati 'false'.
  583. //Maximalny pocet iteracii/rekurzivnych volani musi byt logaritmus poctu prvkov vstupneho vektora.
  584.  
  585.  
  586.  
  587. bool contains(int number, vector<int> & sortedVector) {
  588. return -1; //tento riadok je len kvoli kompilacii
  589. }
  590.  
  591. //-------------------------------------------------------------------------------------------
  592.  
  593. int main() {
  594.  
  595. cout << "---- 1. uloha ----" << endl;
  596. string email1 = "peter@gmail.com";
  597. string email2 = "peter@is.stuba.sk";
  598. string email3 = "palo@gmail.com";
  599. string email4 = "email_bez_zavinacu";
  600. string email5 = "aaaa@b@c";
  601. cout << hashEmailAddress(email1) << " == 5" << endl;
  602. cout << hashEmailAddress(email2) << " == 5" << endl;
  603. cout << hashEmailAddress(email3) << " == 10" << endl;
  604. cout << hashEmailAddress(email4) << " == 4" << endl;
  605. cout << hashEmailAddress(email5) << " == 3" << endl;
  606.  
  607. cout << "---- 2. uloha ----" << endl;
  608. Polygon p1(8);
  609. Polygon p2(p1);
  610. p1.set(1, 100, 200);
  611. p1.set(7, 300, 400);
  612. cout << p1.toString() << endl;
  613. cout << p2.toString() << endl;
  614.  
  615. cout << "---- 4. uloha ----" << endl;
  616. list<int> data4append = { 6, 7, 1, 2 };
  617. append(data4append);
  618. for (int value : data4append) {
  619. cout << value << ", ";
  620. }
  621. cout << endl;
  622.  
  623. cout << "---- 5. uloha ----" << endl;
  624. list<int> data5greater = { 1, 1001, 1005, 5, 6, 1007, 1009, 8, 2, 7, 3, 1004 };
  625. cout << countGreaterThan500(data5greater) << " == 5" << endl;
  626.  
  627. cout << "---- 6. uloha ----" << endl;
  628. try {
  629. cout << squareRoot(4) << " == 2" << endl;
  630. cout << squareRoot(16) << " == 4" << endl;
  631. }
  632. catch (invalid_argument & exception) {
  633. cout << "ERROR: BOLA VYHODNA VYNIMKA " << exception.what() << endl;
  634. }
  635. try {
  636. cout << squareRoot(-1) << endl;
  637. cout << "ERROR: NEBOLA VYHODENA VYNIMKA" << endl;
  638. }
  639. catch (invalid_argument & exception) {
  640. cout << "OK: bola vyhodna vynimka " << exception.what() << endl;
  641. }
  642.  
  643. cout << "---- 7. uloha ----" << endl;
  644. vector<int> v7 = { 10, 15, 20, 50, 60, 80, 90 };
  645. cout << contains(10, v7) << " == 1" << endl;
  646. cout << contains(15, v7) << " == 1" << endl;
  647. cout << contains(20, v7) << " == 1" << endl;
  648. cout << contains(50, v7) << " == 1" << endl;
  649. cout << contains(60, v7) << " == 1" << endl;
  650. cout << contains(80, v7) << " == 1" << endl;
  651. cout << contains(90, v7) << " == 1" << endl;
  652. cout << "-----" << endl;
  653. cout << contains( 1, v7) << " == 0" << endl;
  654. cout << contains(14, v7) << " == 0" << endl;
  655. cout << contains(51, v7) << " == 0" << endl;
  656. cout << contains(85, v7) << " == 0" << endl;
  657. cout << contains(100,v7) << " == 0" << endl;
  658. cout << "-----" << endl;
  659. vector<int> v71 = { 10 };
  660. cout << contains(10, v71) << " == 1" << endl;
  661. cout << "-----" << endl;
  662. cout << contains( 5, v71) << " == 0" << endl;
  663. cout << contains(15, v71) << " == 0" << endl;
  664. cout << "-----" << endl;
  665. vector<int> v70;
  666. cout << contains(10, v70) << " == 0" << endl;
  667.  
  668. return EXIT_SUCCESS;
  669. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement