Advertisement
Guest User

T4 fri

a guest
Mar 26th, 2017
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.47 KB | None | 0 0
  1. /* TP_Tutorijal_4 Zadatak_1 */
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5.  
  6. using std::cin;
  7. using std::cout;
  8. using std::endl;
  9.  
  10. int main()
  11. {
  12.     int n;
  13.     cout << "Unesite broj rijeci: ";
  14.     cin >> n;
  15.     std::vector<std::string> rijeci (n);
  16.     cout << "Unesite rijeci: " << endl;
  17.     for (int i = 0; i < n; i++)
  18.         std::cin >> rijeci[i];
  19.     /* Brisanje duplikata */
  20.     for (int i = 0; i < static_cast<int> (rijeci.size()) - 1; i++)
  21.             for (int j = (i + 1); j < static_cast<int> (rijeci.size()); j++)
  22.                     if (rijeci[i] == rijeci[j])
  23.                             rijeci.erase (rijeci.begin() + j);
  24.     /* Ispisivanje prve i zadnje rijeci po abecedi */
  25.     std::string min = rijeci[0], max = rijeci[0];
  26.     for (int i = 1; i < static_cast<int> (rijeci.size()); i++) {
  27.         if (rijeci[i] < min) min = rijeci[i];
  28.         if (rijeci[i] > max) max = rijeci[i];
  29.     }
  30.     cout << endl << "Prva rijec (po abecednom poretku): " << min << endl
  31.          <<"Posljednja rijec (po abecednom poretku): " << max << endl << endl;
  32.  
  33.     /* Ispis svih rijeci bez duplikata  */
  34.     cout << "Popis svih rijeci (bez duplikata): " << endl;
  35.     for(int i = 0; i < rijeci.size(); i++)
  36.         cout << " " <<rijeci[i] << endl;
  37.  
  38.     return 0;
  39. }
  40.  
  41.  
  42.  
  43.  
  44. ----------------------
  45. /* TP_Tutorijal_4 Zadatak_2 */
  46. #include <iostream>
  47. #include <vector>
  48. #include <string>
  49.  
  50. using std::cin;
  51. using std::cout;
  52. using std::endl;
  53.  
  54. void Cifre(int n, int &c_min, int &c_max) {;
  55.     c_max = n % 10;
  56.     c_min = c_max;
  57.     n /= 10;
  58.     while(n > 0) {
  59.         if (n % 10 > c_max) c_max = n % 10;
  60.         if (n % 10 < c_min) c_min = n % 10;
  61.         n /= 10;
  62.     }
  63. }
  64.  
  65. int main()
  66. {
  67.     int a, b;
  68.     Cifre(37232645, a, b);
  69.     cout << "Najmanja: " << a << endl << "Najveca: " << b << endl;
  70.  
  71.     return 0;
  72. }
  73. ---------------------------------------------------
  74. #include <iostream>
  75. #include <vector>
  76. #include <string>
  77.  
  78. using std::cin;
  79. using std::cout;
  80. using std::endl;
  81.  
  82. void Izvrni(std::string &s) {
  83.     for(int i = static_cast<int> (s.length()) - 1, j = 0; j < i; i--, j++) {
  84.         std::swap(s[i], s[j]);
  85.     }
  86. }
  87.  
  88.  
  89. int main()
  90. {
  91.     std::string s = "Ovo je neki test ...";
  92.     Izvrni(s);
  93.     cout << s;
  94.    
  95.     return 0;
  96. }
  97. ----------------------------------------------------
  98. /* TP_Tutorijal_4 Zadatak_4 */
  99. #include <iostream>
  100. #include <string>
  101. #include <cmath>
  102.  
  103. using std::cin;
  104. using std::cout;
  105. using std::endl;
  106.  
  107. template <typename TipBroja>
  108. void UnosBroja(std::string prompt, std::string greska, TipBroja &broj) {
  109.     cout << prompt;
  110.     while (!(cin >> broj) || std::cin.peek() != '\n') {
  111.         cout << greska;
  112.         cin.clear();
  113.         cin.ignore (10000, '\n');
  114.         cout << prompt;
  115.     }
  116. }
  117. /* Specijalizacija gen. fje za unsigned int tip brojeva */
  118. template <>
  119. void UnosBroja(std::string prompt, std::string greska, unsigned int &broj) {
  120.     cout << prompt;
  121.     while (!(cin >> broj) || std::cin.peek() != '\n') {
  122.         cout << greska;
  123.         cin.clear();
  124.         cin.ignore (10000, '\n');
  125.         cout << prompt;
  126.     }
  127. }
  128.  
  129. /*
  130.     template <typename TIP>
  131.     TIP VratiNesto(int x) {}
  132.  
  133.     VratiNesto(6)          // greska
  134.     VratiNesto<double>(6)  // OK
  135. */
  136.  
  137. int main()
  138. {
  139.     double x;
  140.     UnosBroja("Unesi realan broj x: ", "Nije double!\n", x);
  141.  
  142.     int n;
  143.     UnosBroja("Unesi eksponent n: ", "Nije int!\n", n);
  144.  
  145.     cout << std::pow(x, n) << endl;
  146.  
  147.     return 0;
  148. }
  149. ------------------------------------------------------------------------
  150. /* TP_Tutorijal_4 Zadatak_5 */
  151. #include <iostream>
  152. #include <vector>
  153. #include <string>
  154.  
  155. using std::cin;
  156. using std::cout;
  157. using std::endl;
  158.  
  159. template <typename tip>
  160. std::vector<tip> Presjek (std::vector<tip> v1, std::vector<tip> v2) {
  161.     std::vector<tip> rez;
  162.     for(int i = 0; i < v1.size(); i++)
  163.         for(int j = 0; j < v2.size(); j++)
  164.             if(v1[i] == v2[j]) { // elementi su jednaki
  165.                 /* provjera da li je element vec sadrzan u rezultantnom vektoru */
  166.                 bool sadrzan(false);
  167.                 for(int k = 0; k < rez.size(); k++) {
  168.                     if (v1[i] == rez[k]) {
  169.                         sadrzan = true;
  170.                         break;
  171.                     }
  172.                 }
  173.                 if(sadrzan) break; // ako je sadrzan preskoci ga
  174.                 rez.push_back(v1[i]); // posto nije sadrzan, upisi ga u rezultantni vektor
  175.             }
  176.     return rez;
  177. }
  178.  
  179. int main()
  180. {
  181.     cout << "Izaberte tip elemenata vektora:\n1. Double\n2. String\nIzbor: ";
  182.         int izbor;
  183.         cin >> izbor;
  184.         if (izbor == 1)
  185.         {
  186.                 cout << "Unesite broj elemanta prvog vektora: ";
  187.                 int n;
  188.                 cin >> n;
  189.                 cout << "Unesite elemente prvog vektora: ";
  190.                 std::vector<double> v1 (n);
  191.                 for(int i = 0; i < n; i++)
  192.                         cin >> v1[i];
  193.                 cin.ignore (10000, '\n');
  194.                 cout << "Unesite broj elemanta drugog vektora: ";
  195.                 int m;
  196.                 cin >> m;
  197.                 cout << "Unesite elemente drugog vektora: ";
  198.                 std::vector<double> v2 (m);
  199.                 for(int i = 0; i < m; i++)
  200.                         cin >> v2[i];
  201.                 cin.ignore (10000, '\n');
  202.                 auto v(Presjek (v1, v2));
  203.                 cout << "Presjek unesenih vektora je: ";
  204.                 for (auto x : v)
  205.                         cout << x << ' ';
  206.         }
  207.         else if (izbor == 2)
  208.         {
  209.                 cout << "Unesite broj rijeci prvog vektora: ";
  210.                 int n;
  211.                 cin >> n;
  212.                 std::vector<std::string> v1 (n);
  213.                 cout << "Unesite rijeci prvog vektora:\n";
  214.                 for (int i = 0; i < n; i++)
  215.                         cin >> v1[i];
  216.                 cin.ignore (10000, '\n');
  217.                 cout << "Unesite broj rijeci drugog vektora: ";
  218.                 int m;
  219.                 cin >> m;
  220.                 std::vector<std::string> v2 (m);
  221.                 cout << "Unesite rijeci drugog vektora:\n";
  222.                 for(int i = 0; i < m; i++)
  223.                         cin >> v2[i];
  224.                 cin.ignore (10000, '\n');
  225.                 auto v(Presjek (v1, v2));
  226.                 cout << "Presjek unesenih stringova je: ";
  227.                 for (auto x : v)
  228.                         cout << x << ' ';
  229.         }
  230.     else cout << "Izbor nije validan!" << endl;
  231.  
  232.     return 0;
  233. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement