Anonymous Anonymous - 1 month ago
188 0

No description

C++

Neki primjer kolokvija iz 2013.

/*Napišite program koji od korisnika traži unos prirodnog broja u intervalu
[2, 10]. Unos se ponavlja sve dok unesena vrijednost ne bude u odgovarajucem
intervalu. Nakon toga korisnik unosi elemente 2D matrice, a ispisuje se:
• matrica u matricnom obliku
• elementi na glavnoj dijagonali
• elementi na sporednoj dijagonali
• svi parni elementi ispod glavne dijagonale
• svi neparni elementi iznad glavne dijagonale
• je li umnožak elemenata na sporednoj dijagonali veci od umnoška elemenata na glavnoj dijagonali*/

#include<iostream>
using namespace std;
int main ()
{
	
	//n oznaèava broj redaka i stupaca matrice, kako n mora biti manje od 10 postavili smo matricu na (10, 10)
	int n, matrica[10][10], i, j, umnozakGlavna=1, umnozakSporedna=1; 

	do{

		cout<<"Unesi broj u intervalu [2,10]: ";
		cin>>n;

	}while(n<2 || n>10);

	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
			cout<<"Unesite element matrice na poziciji ["<<i<<"]["<<j<<"]: ";
			cin>>matrica[i][j];
		}
	}

	cout<<"Ispis matrice: "<<endl;

	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
			cout<<matrica[i][j]<<" ";
		}
		cout<<endl;
	}

	cout<<"\nIspis glavne dijagonale: "<<endl;

	for (i=0; i<n; i++)
	{
			cout<<matrica[i][i]<<"\t";						//glavna dijagonala -> i=j tj. elementi na istim brojèanim pozicijama npr. [0][0],[1][1],...,[i][i]
			umnozakGlavna=umnozakGlavna*matrica[i][i];		//množimo elemente glavne dijagonale
	}

	cout<<"\n\nIspis sporedne dijagonale: "<<endl;

	for (i=0; i<n; i++)
	{
			cout<<matrica[i][n-1-i]<<"\t";							//sporedna dijagonala -> od zadnjeg stupca, [n-1], u redu [1] do stupca [0] u [n-1] redu
			umnozakSporedna=umnozakSporedna*matrica[i][n-1-i];		//množimo elemente sporedne dijagonale
	}

	cout<<"\n\nIspis svih parnih elemenata ispod glavne dijagonale"<<endl;

	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
			if(i>j)									//elementi ISPOD glavne dijagonale su oni kod kojih je [i] > [j]
			{
				if (matrica[i][j]%2==0)				//ako je element na poziciji [i][j] paran ispisuje se
				{
					cout<<matrica[i][j]<<" ";
				}
				else								//ako element nije paran ne ispisuje se
				{
					cout<<" ";
				}
			}
			else									//iznad glavne dijagonale ispisujemo prazan znak
			{										//ovaj i else uvjet iznad su tu samo radi izgleda ispisa
					cout<<" ";
			}
		}			
		cout<<endl;
	}

	cout<<"\nIspis svih neparnih elemenata iznad glavne dijagonale"<<endl;
	
	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
		{
			if(i<j)									//elementi IZNAD glavne dijagonale su oni kod kojih je [i] < [j]
			{
				if (matrica[i][j]%2!=0)				//ako je element na poziciji [i][j] neparan ispisuje se, inaèe ne ispisujemo ništa
				{
					cout<<matrica[i][j]<<" ";		//ispis koji nije u obliku matrice, za razliku od onog prethodnog
				}
			}
		}			
	}

	cout<<"\n\nJe li umnozak elemenata na sporednoj dijagonali veci od umnoska elemenata na glavnoj dijagonali?"<<endl;

	if (umnozakGlavna>umnozakSporedna)
	{
		cout<<"\nVeci je umnozak elemenata glavne dijagonale i iznosi "<<umnozakGlavna<<endl;
	}
	else if (umnozakGlavna<umnozakSporedna)
	{
		cout<<"\nVeci je umnozak elemenata sporedne dijagonale i iznosi "<<umnozakSporedna<<endl;
	}
	else
	{
		cout<<"\nUmnosci glavne i sporedne dijagonale su jednaki i iznose "<<umnozakGlavna<<endl;
	}

	cin.sync();
	cin.get();
	return 0;
}