Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Deklarisati kvadratnu matricu cijelih brojeva proizvoljnih dimenzija sa parnim brojem redova, te implementirati sljedeće funkcije:
- // • Funkciju za unos i formiranje elemenata matrice prema sljedećem obrascu: elemente neparnih redova matrice (1., 3., 5. itd.) čine brojevi
- // koje unosi korisnik programa; elementi parnih redova matrice se formiraju na osnovu elemenata iz prethodnog reda u istoj koloni
- // matrice i to na način da je svaki novokreirani element matrice zapravo srednja cifra broja koji se u matrici nalazi iznad njega.
- // a pronalazak srednje cifre broja kreirati zasebnu funkciju srednja_cifra, te je pozvati u funkciji unos.
- // Srednju cifru brojeva sa parnim brojem cifara formirati kao srednju vrijednost dvaju cifara u sredini, npr. broj 4213 ima dvije srednje cifre,
- // 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.
- // • Funkciju max_element koja pronalazi element sa najvećim brojem cifara. Kreirati pomoćnu funkciju broj_cifara koja vraća broj
- // cifara broja proslijeđenog kao parametar.
- // • Funkciju za ispis elemenata matrice sa parametrom tipa bool koji određuje da li se ispisuje kompletna matrica ili samo
- // elementi matrice koje je unio korisnik (elementi neparnih redova).
- // Napisati i kratak testni program koji demonstrira funcionalnost kreiranih funkcija.
- // Primjer matrice dimenzija 4x4 i očekivanih rezultata je dat ispod.
- //
- //2163 123 30452 671
- //4 2 4 7
- //7331 6113 741232 798
- //3 1 2 9
- //Element matrice sa najvećim broje cifara: 741232.
- #include <iostream>
- #include <iomanip>
- using namespace std;
- const int red = 4;
- const int kol = 4;
- int srednjaCif(int);
- void unos(int[][kol]);
- int broj_cifara(int);
- void ispis(int[][kol], bool);
- int max_element(int[][kol]);
- void main() {
- char izbor;
- int niz[red][kol];
- cout << "Unesite elemente 2D niza" << endl;
- unos(niz);
- cout << "Unesite izbor y za ispis elemennata koje je korisnik unio ili n za ispis citavog 2d niza " << endl;
- do
- {
- cin >> izbor;
- } while (!(izbor == 'y' || izbor == 'n'));
- izbor == 'y' ? izbor = true : izbor = false;
- ispis(niz, izbor);
- cout << "Element koji ima najvise cifara je " << max_element(niz) << endl;
- system("pause>0");
- }
- int broj_cifara(int broj) {
- int brojac = 0;
- while (broj > 0) {
- broj /= 10;
- brojac++;
- }
- return brojac;
- }
- int srednjaCif(int broj) {
- int brojacCif = broj_cifara(broj);
- if (brojacCif % 2 == 0) {
- int prvi = broj / pow(10, (brojacCif / 2));
- int drugi = broj / pow(10, ((brojacCif / 2) - 1));
- return ((prvi % 10 + drugi % 10) / 2);
- }
- else {
- int pom = broj / pow(10, brojacCif / 2);
- return pom % 10;
- }
- }
- void unos(int n[][kol]) {
- for (int i = 0; i <red; i += 2)
- {
- for (int j = 0; j < kol; j++) {
- cin >> n[i][j];
- n[i + 1][j] = srednjaCif(n[i][j]);
- }
- }
- }
- void ispis(int n[][kol], bool izbor) {
- for (int i = 0; i < red; izbor ? i += 2 : i++)
- {
- for (int j = 0; j < kol; j++)
- {
- cout << setw(5) << n[i][j];
- }
- cout << endl;
- }
- }
- int max_element(int n[][kol]) {
- int najveci = n[0][0];
- for (int i = 0; i <red; i++)
- {
- for (int j = 0; j < kol; j++) {
- if (najveci<n[i][j])
- najveci =n[i][j];
- }
- }
- return najveci;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement