Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.36 KB | None | 0 0
  1. //Deklarisati kvadratnu matricu cijelih brojeva proizvoljnih dimenzija sa parnim brojem redova, te implementirati sljedeće funkcije:
  2. // • Funkciju za unos i formiranje elemenata matrice prema sljedećem obrascu: elemente neparnih redova matrice (1., 3., 5. itd.) čine brojevi
  3. // koje unosi korisnik programa; elementi parnih redova matrice se formiraju na osnovu elemenata iz prethodnog reda u istoj koloni
  4. // matrice i to na način da je svaki novokreirani element matrice zapravo srednja cifra broja koji se u matrici nalazi iznad njega.
  5. // a pronalazak srednje cifre broja kreirati zasebnu funkciju srednja_cifra, te je pozvati u funkciji unos.
  6. // Srednju cifru brojeva sa parnim brojem cifara formirati kao srednju vrijednost dvaju cifara u sredini, npr. broj 4213 ima dvije srednje cifre,
  7. // te funkcija treba da kao srednju cifru vrati vrijednost aritmetičke sredine cifre 2 i 1 zaokružene na veću decimalnu, u konkretnom slučaju broj 2.
  8. // • Funkciju max_element koja pronalazi element sa najvećim brojem cifara. Kreirati pomoćnu funkciju broj_cifara koja vraća broj
  9. // cifara broja proslijeđenog kao parametar.
  10. // • Funkciju za ispis elemenata matrice sa parametrom tipa bool koji određuje da li se ispisuje kompletna matrica ili samo
  11. // elementi matrice koje je unio korisnik (elementi neparnih redova).
  12. // Napisati i kratak testni program koji demonstrira funcionalnost kreiranih funkcija.
  13. // Primjer matrice dimenzija 4x4 i očekivanih rezultata je dat ispod.
  14. //
  15. //2163 123 30452 671
  16. //4 2 4 7
  17. //7331 6113 741232 798
  18. //3 1 2 9
  19. //Element matrice sa najvećim broje cifara: 741232.
  20.  
  21. #include <iostream>
  22. #include <iomanip>
  23. using namespace std;
  24.  
  25.  
  26.  
  27. const int red = 4;
  28. const int kol = 4;
  29.  
  30. int srednjaCif(int);
  31. void unos(int[][kol]);
  32. int broj_cifara(int);
  33. void ispis(int[][kol], bool);
  34. int max_element(int[][kol]);
  35.  
  36. void main() {
  37. char izbor;
  38. int niz[red][kol];
  39.  
  40.  
  41.  
  42. cout << "Unesite elemente 2D niza" << endl;
  43. unos(niz);
  44.  
  45. cout << "Unesite izbor y za ispis elemennata koje je korisnik unio ili n za ispis citavog 2d niza " << endl;
  46. do
  47. {
  48. cin >> izbor;
  49. } while (!(izbor == 'y' || izbor == 'n'));
  50. izbor == 'y' ? izbor = true : izbor = false;
  51.  
  52. ispis(niz, izbor);
  53.  
  54.  
  55. cout << "Element koji ima najvise cifara je " << max_element(niz) << endl;
  56.  
  57.  
  58. system("pause>0");
  59.  
  60.  
  61. }
  62. int broj_cifara(int broj) {
  63. int brojac = 0;
  64. while (broj > 0) {
  65. broj /= 10;
  66. brojac++;
  67. }
  68. return brojac;
  69. }
  70. int srednjaCif(int broj) {
  71. int brojacCif = broj_cifara(broj);
  72. if (brojacCif % 2 == 0) {
  73. int prvi = broj / pow(10, (brojacCif / 2));
  74. int drugi = broj / pow(10, ((brojacCif / 2) - 1));
  75. return ((prvi % 10 + drugi % 10) / 2);
  76. }
  77. else {
  78. int pom = broj / pow(10, brojacCif / 2);
  79. return pom % 10;
  80. }
  81. }
  82.  
  83. void unos(int n[][kol]) {
  84.  
  85. for (int i = 0; i <red; i += 2)
  86. {
  87. for (int j = 0; j < kol; j++) {
  88.  
  89.  
  90. cin >> n[i][j];
  91.  
  92. n[i + 1][j] = srednjaCif(n[i][j]);
  93.  
  94. }
  95. }
  96. }
  97. void ispis(int n[][kol], bool izbor) {
  98.  
  99. for (int i = 0; i < red; izbor ? i += 2 : i++)
  100. {
  101. for (int j = 0; j < kol; j++)
  102. {
  103. cout << setw(5) << n[i][j];
  104.  
  105. }
  106. cout << endl;
  107. }
  108. }
  109.  
  110. int max_element(int n[][kol]) {
  111. int najveci = n[0][0];
  112. for (int i = 0; i <red; i++)
  113. {
  114. for (int j = 0; j < kol; j++) {
  115. if (najveci<n[i][j])
  116. najveci =n[i][j];
  117. }
  118. }
  119.  
  120. return najveci;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement