Advertisement
Guest User

TP TUT 3 Z1-Z6

a guest
Mar 24th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 10.77 KB | None | 0 0
  1. PRVI
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. /* TP 2016/2017: Tutorijal 3, Zadatak 1
  6.  
  7.    Autotestove pisao Haris Hasic. Sva pitanja
  8.    sugestije i prijave gresaka mozete slati na
  9.    mail: hhasic2@etf.unsa.ba
  10.    
  11. */
  12.  
  13. bool parnost(int a){
  14.    if(a%2 == 0) return true;
  15.    return false;
  16. }
  17.  
  18. int suma_cifara(int a){
  19.    int suma(0);
  20.    
  21.    while(a != 0){
  22.       suma += a%10;
  23.       a /= 10;
  24.    }
  25.    return suma;
  26. }
  27.  
  28. std::vector<int> IzdvojiElemente(std::vector<int> a, bool x){
  29.    std::vector<int> b;
  30.    std::vector<int> c;
  31.    
  32.     for(int i=0; i<a.size(); i++){
  33.       if(parnost(suma_cifara(a.at(i))))
  34.          b.push_back(a.at(i));
  35.       else
  36.          c.push_back(a.at(i));
  37.     }
  38.    if(x) return b;
  39.    else return c;
  40. }
  41.  
  42. int main ()
  43. {
  44.    std::cout << "Koliko zelite unijeti elemenata: ";
  45.    int n;
  46.    std::cin >> n;
  47.    if(n < 1){
  48.       std::cout << "Broj elemenata mora biti veci od 0!";
  49.          return 0;
  50.    }
  51.    int element;
  52.    
  53.    std::vector<int> a;
  54.    std::cout << "Unesite elemente: ";
  55.    
  56.    for(int i=0; i<n; i++){
  57.       std::cin >> element;
  58.       a.push_back(element);
  59.    }
  60.    
  61.    std::vector<int> b;
  62.    std::vector<int> c;
  63.    
  64.    for(int i=0; i<n; i++){
  65.       if(parnost(suma_cifara(a.at(i))))
  66.          b=IzdvojiElemente(a,true);
  67.       else
  68.          c=IzdvojiElemente(a,false);
  69.    }
  70.  
  71.    for(int x: b)
  72.       std::cout << x << " ";
  73.  
  74.    std::cout << std::endl;
  75.    
  76.    for(int x: c)
  77.       std::cout << x << " ";
  78.    
  79.     return 0;
  80. }
  81. ---------------------------------------------------------------------------------------------------------------------------------
  82. DRUGI
  83. /* TP 2016/2017: Tutorijal 3, Zadatak 2
  84.  
  85.    Autotestove pisao Haris Hasic. Sva pitanja
  86.    sugestije i prijave gresaka mozete slati na
  87.    mail: hhasic2@etf.unsa.ba
  88.    
  89. */
  90. #include <iostream>
  91. #include <vector>
  92.  
  93. bool parnost(int a){
  94.    if(a%2 == 0) return true;
  95.    return false;
  96. }
  97.  
  98. int suma_cifara(int a){
  99.    int suma(0);
  100.    
  101.    while(a != 0){
  102.       suma += a%10;
  103.       a /= 10;
  104.    }
  105.    return suma;
  106. }
  107.  
  108. std::vector<int> IzdvojiElemente(std::vector<int> a, bool x){
  109.    std::vector<int> b;
  110.    std::vector<int> c;
  111.    
  112.     for(int i=0; i<a.size(); i++){
  113.       if(parnost(suma_cifara(a.at(i))))
  114.          b.push_back(a.at(i));
  115.       else
  116.          c.push_back(a.at(i));
  117.     }
  118.    if(x) return b;
  119.    else return c;
  120. }
  121.  
  122. int main ()
  123. {
  124.    std::cout << "Koliko zelite unijeti elemenata: ";
  125.    int n;
  126.    std::cin >> n;
  127.    if(n < 1){
  128.       std::cout << "Broj elemenata mora biti veci od 0!";
  129.          return 0;
  130.    }
  131.    int element;
  132.    
  133.    std::vector<int> a;
  134.    std::cout << "Unesite elemente: ";
  135.    
  136.    for(int i=0; i<n; i++){
  137.       std::cin >> element;
  138.       a.push_back(element);
  139.    }
  140.    
  141.    std::vector<int> b;
  142.    std::vector<int> c;
  143.    
  144.    for(int i=0; i<n; i++){
  145.       if(parnost(suma_cifara(a.at(i))))
  146.          b=IzdvojiElemente(a,true);
  147.       else
  148.          c=IzdvojiElemente(a,false);
  149.    }
  150.  
  151.    for(int i=0; i<b.size(); i++){
  152.       if(i==b.size()-1)
  153.       std::cout << b.at(i);
  154.       else
  155.       std::cout << b.at(i) << ",";
  156.      
  157.    }
  158.    std::cout << std::endl;
  159.    
  160.    for(int i=0; i<c.size(); i++){
  161.       if(i==c.size()-1)
  162.       std::cout << c.at(i);
  163.       else
  164.       std::cout << c.at(i) << ",";
  165.      
  166.    }
  167.     return 0;
  168. }
  169. -------------------------------------------------------------------------------------------------------------------------------------
  170. TRECI
  171. /* TP 2016/2017: Tutorijal 3, Zadatak 3
  172.  
  173.    Autotestove pisao Haris Hasic. Sva pitanja
  174.    sugestije i prijave gresaka mozete slati na
  175.    mail: hhasic2@etf.unsa.ba
  176.    
  177. */
  178. #include <iostream>
  179. #include <deque>
  180.  
  181. bool parnost(int a){
  182.    if(a%2 == 0) return true;
  183.    return false;
  184. }
  185.  
  186. int suma_cifara(int a){
  187.    int suma(0);
  188.    
  189.    while(a != 0){
  190.       suma += a%10;
  191.       a /= 10;
  192.    }
  193.    return suma;
  194. }
  195.  
  196. std::deque<int> IzdvojiElemente(std::deque<int> a, bool x){
  197.    std::deque<int> b;
  198.    std::deque<int> c;
  199.    
  200.     for(int i=0; i<a.size(); i++){
  201.       if(parnost(suma_cifara(a.at(i))))
  202.          b.push_back(a.at(i));
  203.       else
  204.          c.push_back(a.at(i));
  205.     }
  206.    if(x) return b;
  207.    else return c;
  208. }
  209.  
  210. int main ()
  211. {
  212.    std::cout << "Koliko zelite unijeti elemenata: ";
  213.    int n;
  214.    std::cin >> n;
  215.    if(n < 1){
  216.       std::cout << "Broj elemenata mora biti veci od 0!";
  217.          return 0;
  218.    }
  219.    int element;
  220.    
  221.    std::deque<int> a;
  222.    std::cout << "Unesite elemente: ";
  223.    
  224.    for(int i=0; i<n; i++){
  225.       std::cin >> element;
  226.       a.push_back(element);
  227.    }
  228.    
  229.    std::deque<int> b;
  230.    std::deque<int> c;
  231.    
  232.    for(int i=0; i<n; i++){
  233.       if(parnost(suma_cifara(a.at(i))))
  234.          b=IzdvojiElemente(a,true);
  235.       else
  236.          c=IzdvojiElemente(a,false);
  237.    }
  238.  
  239.    for(int i=0; i<b.size(); i++){
  240.       if(i==b.size()-1)
  241.       std::cout << b.at(i);
  242.       else
  243.       std::cout << b.at(i) << ",";
  244.      
  245.    }
  246.    std::cout << std::endl;
  247.    
  248.    for(int i=0; i<c.size(); i++){
  249.       if(i==c.size()-1)
  250.       std::cout << c.at(i);
  251.       else
  252.       std::cout << c.at(i) << ",";
  253.      
  254.    }
  255.     return 0;
  256. }
  257. -----------------------------------------------------------------------------------------------------------------------
  258. CETVRTI
  259. /* TP 2016/2017: Tutorijal 3, Zadatak 4
  260.  
  261.    Autotestove pisao Haris Hasic. Sva pitanja
  262.    sugestije i prijave gresaka mozete slati na
  263.    mail: hhasic2@etf.unsa.ba
  264.    
  265. */
  266.  
  267. #include <iostream>
  268. #include <deque>
  269.  
  270. bool parnost(int a){
  271.    if(a%2 == 0) return true;
  272.    return false;
  273. }
  274.  
  275. int suma_cifara(int a){
  276.    int suma(0);
  277.    
  278.    while(a != 0){
  279.       suma += a%10;
  280.       a /= 10;
  281.    }
  282.    return suma;
  283. }
  284.  
  285. std::deque<int> IzdvojiElemente(std::deque<int> a, bool x){
  286.    std::deque<int> b;
  287.    std::deque<int> c;
  288.    
  289.     for(int i=0; i<a.size(); i++){
  290.       if(parnost(suma_cifara(a.at(i))))
  291.          b.push_front(a.at(i));
  292.       else
  293.          c.push_front(a.at(i));
  294.     }
  295.    if(x) return b;
  296.    else return c;
  297. }
  298.  
  299. int main ()
  300. {
  301.    std::cout << "Koliko zelite unijeti elemenata: ";
  302.    int n;
  303.    std::cin >> n;
  304.    if(n < 1){
  305.       std::cout << "Broj elemenata mora biti veci od 0!";
  306.          return 0;
  307.    }
  308.    int element;
  309.    
  310.    std::deque<int> a;
  311.    std::cout << "Unesite elemente: ";
  312.    
  313.    for(int i=0; i<n; i++){
  314.       std::cin >> element;
  315.       a.push_back(element);
  316.    }
  317.    
  318.    std::deque<int> b;
  319.    std::deque<int> c;
  320.    
  321.    for(int i=0; i<n; i++){
  322.       if(parnost(suma_cifara(a.at(i))))
  323.          b=IzdvojiElemente(a,true);
  324.       else
  325.          c=IzdvojiElemente(a,false);
  326.    }
  327.  
  328.    for(int i=0; i<b.size(); i++){
  329.       if(i==b.size()-1)
  330.       std::cout << b.at(i);
  331.       else
  332.       std::cout << b.at(i) << ",";
  333.      
  334.    }
  335.    std::cout << std::endl;
  336.    
  337.    for(int i=0; i<c.size(); i++){
  338.       if(i==c.size()-1)
  339.       std::cout << c.at(i);
  340.       else
  341.       std::cout << c.at(i) << ",";
  342.      
  343.    }
  344.     return 0;
  345. }
  346. --------------------------------------------------------------------------------------------------------------------------
  347. PETI
  348. /* TP 2016/2017: Tutorijal 3, Zadatak 5
  349.  
  350.    Autotestove pisao Haris Hasic. Sva pitanja
  351.    sugestije i prijave gresaka mozete slati na
  352.    mail: hhasic2@etf.unsa.ba
  353.    
  354. */
  355.  
  356. #include <iostream>
  357. #include <deque>
  358.  
  359. bool parnost(int a){
  360.    if(a%2 == 0) return true;
  361.    return false;
  362. }
  363.  
  364. int suma_cifara(int a){
  365.    int suma(0);
  366.    
  367.    while(a != 0){
  368.       suma += a%10;
  369.       a /= 10;
  370.    }
  371.    return suma;
  372. }
  373.  
  374. std::deque<int> IzdvojiElemente(std::deque<int> a, bool x){
  375.    std::deque<int> b;
  376.    std::deque<int> c;
  377.    
  378.     for(int i=0; i<a.size(); i++){
  379.       if(parnost(suma_cifara(a.at(i))))
  380.          b.push_front(a.at(i));
  381.       else
  382.          c.push_front(a.at(i));
  383.     }
  384.    if(x) return b;
  385.    else return c;
  386. }
  387.  
  388. int main ()
  389. {
  390.    std::cout << "Koliko zelite unijeti elemenata: ";
  391.    int n;
  392.    std::cin >> n;
  393.    if(n < 1){
  394.       std::cout << "Broj elemenata mora biti veci od 0!";
  395.          return 0;
  396.    }
  397.    int element;
  398.    
  399.    std::deque<int> a;
  400.    std::cout << "Unesite elemente: ";
  401.    
  402.    for(int i=0; i<n; i++){
  403.       std::cin >> element;
  404.       a.push_front(element);
  405.    }
  406.    
  407.    std::deque<int> b;
  408.    std::deque<int> c;
  409.    
  410.    for(int i=0; i<n; i++){
  411.       if(parnost(suma_cifara(a.at(i))))
  412.          b=IzdvojiElemente(a,true);
  413.       else
  414.          c=IzdvojiElemente(a,false);
  415.    }
  416.  
  417.    for(int i=0; i<b.size(); i++){
  418.       if(i==b.size()-1)
  419.       std::cout << b.at(i);
  420.       else
  421.       std::cout << b.at(i) << ",";
  422.      
  423.    }
  424.    std::cout << std::endl;
  425.    
  426.    for(int i=0; i<c.size(); i++){
  427.       if(i==c.size()-1)
  428.       std::cout << c.at(i);
  429.       else
  430.       std::cout << c.at(i) << ",";
  431.      
  432.    }
  433.     return 0;
  434. }
  435. -------------------------------------------------------------------------------------------------------------
  436. SESTI
  437. /* TP 2016/2017: Tutorijal 3, Zadatak 6
  438.  
  439.    Autotestove pisao Haris Hasic. Sva pitanja
  440.    sugestije i prijave gresaka mozete slati na
  441.    mail: hhasic2@etf.unsa.ba
  442.    
  443. */
  444. #include <iostream>
  445. #include <vector>
  446. #include <iomanip>
  447.  
  448. typedef std::vector<std::vector<int>> matrica;
  449.  
  450. matrica KroneckerovProizvod (std::vector<int> a, std::vector<int> b){
  451.    
  452.      
  453.    matrica x(a.size(), std::vector<int>(b.size()));
  454.    for(int i=0; i<a.size(); i++){
  455.       for(int j=0; j<b.size(); j++){
  456.          x[i][j] = a[i]*b[j];
  457.       }
  458.    }
  459.    return x;
  460. }
  461.  
  462. int NajvecaSirina(matrica a){
  463.    
  464.    int brojac(0);
  465.    int max(0);
  466.    
  467.    for(std::vector<int> red:a) {
  468.       for(int y:red) { // Probajte sa rangovskim petljama
  469.          
  470.          int temp(y);
  471.          
  472.          if(temp < 0)
  473.             brojac+=1;
  474.            
  475.          while(temp%10 != 0){
  476.             temp = temp/10;
  477.             brojac++;
  478.          }
  479.            
  480.          if(brojac > max)
  481.             max = brojac;
  482.            
  483.          brojac = 0;
  484.       }
  485.    }
  486.    return max;
  487.    
  488. }
  489.  
  490. int main ()
  491. {
  492.    
  493.    
  494.    std::cout << "Unesite broj elemenata prvog vektora: ";
  495.    int vel1;
  496.    std::cin >> vel1;
  497.    
  498.    std::cout << "Unesite elemente prvog vektora: ";
  499.    int element;
  500.    std::vector<int> a;
  501.    for(int i=0; i<vel1; i++){
  502.       std::cin >> element;
  503.       a.push_back(element);
  504.    }
  505.    
  506.    std::cout << "Unesite broj elemenata drugog vektora: ";
  507.    int vel2;
  508.    std::cin >> vel2;
  509.    
  510.    std::cout << "Unesite elemente drugog vektora: ";
  511.    std::vector<int> b;
  512.    for(int i=0; i<vel2; i++){
  513.       std::cin >> element;
  514.       b.push_back(element);
  515.    }
  516.    
  517.    matrica mat = KroneckerovProizvod(a,b);
  518.    std::cout << std::endl;
  519.    
  520.    for(int i=0; i<vel1; i++){
  521.       for(int j=0; j<vel2; j++){
  522.          std::cout << std::right << std::setw(NajvecaSirina(mat)+1) << mat[i][j];
  523.       }
  524.       std::cout << std::endl;
  525.    }
  526.    
  527.    
  528.     return 0;
  529. }
  530. ----------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement